ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΔΙΔΑΚΤΟΡΙΚΗ ΔΙΑΤΡΙΒΗ

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

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΔΙΔΑΚΤΟΡΙΚΗ ΔΙΑΤΡΙΒΗ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΚΤΟΡΙΚΗ ΔΙΑΤΡΙΒΗ «ΑΝΑΠΤΥΞΗ, ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΔΙΚΤΥΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΡΩΝ ΚΑΙ ΠΑΡΟΧΗΣ ΥΠΗΡΕΣΙΩΝ» ΧΡΗΣΤΟΣ Ε. ΧΡΥΣΟΥΛΑΣ ΔΙΠΛΩΜΑΤΟΥΧΟΣ ΗΛΕΚΤΡΟΛΟΓΟΣ ΜΗΧΑΝΙΚΟΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΑΡΙΘΜΟΣ ΔΙΔΑΚΤΟΡΙΚΗΣ ΔΙΑΤΡΙΒΗΣ:232 ΠΑΤΡΑ ΑΠΡΙΛΙΟΣ 2009

2 2

3 3

4 4

5 Ευχαριστίες Θα ήθελα να ευχαριστήσω όλους όσους με στήριξαν κατά τη διάρκεια της εκπόνησης της διδακτορικής διατριβής. Ευχαριστώ θερμά τον καθηγητή κ. Οδυσσέα Κουφοπαύλου για την καθοδήγησή του, τις χρήσιμες συμβουλές του και τη συνολική του υποστήριξη κατά τη διάρκεια της εκπόνησης της παρούσας διδακτορικής διατριβής. Ευχαριστώ επίσης τα μέλη τις τριμελούς επιτροπής καθηγητές κ. Κωνσταντίνο Γκούτη και κ. Σπύρο Δενάζη για τις πολύτιμες παρατηρήσεις τους και συμβουλές τους, ώστε να γίνει η διδακτορική διατριβή καλύτερη, καθώς και όλα τα μέλη της επταμελούς επιτροπής. Ευχαριστώ επίσης, για τις ωραίες στιγμές που περάσαμε μαζί αλλά και για τη βοήθειά τους, τα μέλη του εργαστηρίου Σχεδιασμού Ολοκληρωμένων Κυκλωμάτων του τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Yπολογιστών, Απόστολο Φούρναρη, Νικόλαο Ευθυμιόπουλο, Σάκη Χρηστακίδη, Γιώργο Σελίμη, Γιώργο Κωστόπουλο και Βαγγέλη Χαλεπλίδη. Επίσης ευχαριστώ τη Νίκη Σαραντόγλου για την υποστήριξη που μου πρόσφερε όλη αυτήν την περίοδο. Τέλος θα ήθελα να ευχαριστήσω τους γονείς μου, Βαγγέλη και Αγάθη, για τη συμπαράστασή τους και την κατανόησή τους όλα αυτά τα χρόνια, και τη φίλη μου Κατερίνα για την υπομονή της και την αμέριστη βοήθειά της. Η διδακτορική διατριβή τους είναι αφιερωμένη. Χρήστος Ε. Χρυσούλας Πάτρα, Ιούνιος

6 6

7 Περίληψη Τα δίκτυα έχουν ζήσει μια αλματώδη ανάπτυξη τα τελευταία χρόνια. Ανάπτυξη που αφορά όχι μόνο το μέγεθος τους αλλά και τη λειτουργικότητά τους. Οι κόμβοι ενός δικτύου μπορούν πλέον να επιτελέσουν και λειτουργίες βασισμένες σε πολιτικές όπως το proxy-caching, το encryption, το tunneling και το firewalling. Στις μέρες μας έχει αρχίσει να εμφανίζετε η δυνατότητα προγραμματισμού στους κόμβους ενός δικτύου, επιτρέποντας έτσι τον πειραματισμό με ποιο πολύπλοκες υπηρεσίες. Η ανάγκη για ποιο γρήγορη υλοποίηση νέων υπηρεσιών στα δίκτυα χρησιμοποιώντας τις ήδη υπάρχουσες πολύπλοκες δυνατότητες θέτει μια νέα, μεγάλη, πρόκληση στα ήδη υπάρχοντα εργαλεία ελέγχου των δικτύων. Η πολυπλοκότητα των υπηρεσιών, ο αριθμός των κόμβων του δικτύου, ο προγραμματισμός τέτοιων κόμβων, και η ταχύτητα απαιτούν μια πρωτοποριακή αντιμετώπιση του αντικειμένου που καλείτε υλοποίηση υπηρεσιών (Service Deployment). Η παρούσα διδακτορική διατριβή παρουσιάζει μια αυτοματοποιημένη προσέγγιση σχετική με την υλοποίηση υπηρεσιών που μπορεί με ευκολία να εφαρμοστεί και σε μεγάλα ετερογενή δίκτυα. Η διατριβή επικεντρώνεται σε δυο κυρίως θέματα. Πρώτα παρουσιάζουμε ένα πλαίσιο που συνδέει τα επίπεδα του δικτύου και των κόμβων με ιεραρχικά κατανεμημένους υπολογισμούς. Και δεύτερον παρουσιάζουμε μια μέθοδο που χρησιμοποιήσαμε για να επιτύχουμε το ταίριασμα μεταξύ των προγραμματιστικών μοντέλων που χρησιμοποιούνται για τις υπηρεσίες και αυτών που χρησιμοποιούνται σαν δικτυακοί κόμβοι. Με τη βοήθεια των δυο παραπάνω προοπτικών οδηγούμαστε σε μια ολοκληρωμένη άποψη για το πώς πρέπει σε βάθος να αναλυθεί η έννοια της υλοποίησης υπηρεσιών (Service Deployment). Όταν νέες υπηρεσίες εγκαθιστούνται, το αυτοματοποιημένο σύστημα της υλοποίησης υπηρεσιών επιτρέπει στις κατανεμημένα και πολύπλοκα χαρακτηριστικά των δικτυακών στοιχείων να εντοπιστούν γρηγορότερα και να χρησιμοποιηθούν ποιο αποδοτικά, σε σχέση πάντα με ένα παραδοσιακό κεντρικοποιήμενο σύστημα. Αυτό έχει σαν αποτέλεσμα την ταχύτερη εγκατάσταση και την βέλτιστη χρησιμοποίηση των διαθέσιμων υπηρεσιών. Η δομή της παρούσας διδακτορικής διατριβής είναι η ακόλουθη: Στο Κεφάλαιο 1 τονίζονται οι στόχοι της διδακτορικής διατριβής ενώ αναφέρονται περιληπτικά οι βασικές συνεισφορές της. Ο βασικός στόχος του Κεφαλαίου 2 είναι να εισάγει τον αναγνώστη στις αρχές της επιστήμης της XML. Αναφέρονται όλα τα βασικά στοιχεία που είναι απαραίτητα στο να διασαφηνιστούν έννοιες και αρχές σχετικά με την XML και τη χρήση της. Διευκρινίζονται θέματα όπως διαλειτουργικότητά της και η ανεξαρτησία που προσφέρει. Γίνεται μια σε βάθος περιγραφή από τα οφέλη που θα αποκομίσουμε υιοθετώντας μια τεχνολογία όπως η XML. Οφέλη που θα μας βοηθήσουν να αναπτύξουμε και να δημιουργήσουμε μια δυναμική αρχιτεκτονική που να ναι σε θέση να καλύψει τις ανάγκες μας. 7

8 Στο Κεφάλαιο 3 παρουσιάζονται η μελέτη και εν συνεχεία ο σχεδιασμός του κατανεμημένου δρομολογητή (Distributed Router). Γίνεται μια παρουσίαση της προτεινόμενης λύσης. Παρουσιάζεται με έναν απλό και περιεκτικό τρόπο το FlexiNET κομμάτι του οποίου είναι ο κατανεμημένος δρομολογητής. Αναφερόμαστε στον διαχωρισμό του επιπέδου forwarding από το επίπεδο του control. Στη συνέχεια γίνεται μια λεπτομερής περιγραφή της προτεινόμενης αρχιτεκτονικής. Παρουσιάζεται μια λεπτομερής περιγραφή των επιμέρους επιπέδων του κατανεμημένου δρομολογητή. Παρουσιάζονται οι απαιτήσεις και προδιαγραφές των επιμέρους επιπέδων και γίνεται μια αντιστοίχηση με την αρχιτεκτονική του FlexiNET. Στο Κεφάλαιο 4 παρουσιάζεται μελέτη, ο σχεδιασμός και η υλοποίηση ενός ολοκληρωμένου συστήματος διαχείρισης πόρων και υλοποίησης υπηρεσιών. Αρχικά γίνεται μια παρουσίαση σχετικών εργασιών πάνω στο αντικείμενο που πραγματευόμαστε. Εντοπίζονται οι όποιες αδυναμίες και τονίζεται πως μπορούμε με τη βοήθεια του προτεινόμενου συστήματος να τις ξεπεράσουμε. Παρουσιάζουμε τις υπηρεσίες ιστού πάνω στις οποίες είναι δομημένο το σύστημά μας. Στη συνέχεια προχωράμε σε μια εις βάθος περιγραφή του συστήματος με τη χρήση εικόνων και σχεδιαγραμμάτων. Παρουσιάζουμε τον τρόπο με τον οποίο συνδέεται η προτεινόμενη αρχιτεκτονική με την αρχιτεκτονική του κατανεμημένου δρομολογητή. Χρησιμοποιούμε έναν απλό matchmaking αλγόριθμο για το τελικό τεστάρισμα του συστήματός μας. Και τέλος παρουσιάζουμε τον τρόπο με τον οποίο υλοποιείται μια υπηρεσία και καταγράφουμε τα πειραματικά αποτελέσματα. Έτσι γίνεται αναφορά στις παραμέτρους υλοποίησης του συστήματος και πως αυτές επηρεάζουν το συνολικό σύστημα. Στο Κεφάλαιο 5 παρουσιάζεται λεπτομερώς η διαδικασία μέσα από την οποία οδηγούμαστε από μια XML περιγραφή του κατανεμημένου μας δρομολογητή σε μια σημασιολογική περιγραφή αυτού. Αρχικά, παρουσιάζουμε με λεπτομέρεια τι είναι ο σημασιολογικός ιστός και πως δομείται. Στη συνέχεια παρουσιάζουμε τα πρότυπα και μοντέλα που χρησιμοποιεί και καταλήγουμε σε μια σημασιολογική περιγραφή του κατανεμημένου δρομολογητή. Μια βασισμένη σε οντολογίες περιγραφή του. Στο Κεφάλαιο 6 προτείνεται αρχιτεκτονική για δίκτυα σημασιολογικού Grid (Semantic Grid). Αρχικά δίνεται μια περιγραφή της τεχνολογίας Grid. Παρουσιάζονται οι στόχοι της και τα κυρία χαρακτηριστικά της συνοδευόμενα από μια γενική αρχιτεκτονική. Στη συνέχεια περνάμε στην προτεινόμενη αρχιτεκτονική. Με τη βοήθεια σχεδιαγραμμάτων και εικόνων δίνεται μια όσο το δυνατόν λεπτομερής περιγραφή του συστήματος και πως ενσωματώνει την σημασιολογική περιγραφή του κατανεμημένου δρομολογητή που παρουσιάσαμε στο προηγούμενο κεφάλαιο (Κεφάλαιο 5). Κλείνοντας το κεφάλαιο κάνουμε μια σύγκριση των αποτελεσμάτων που είχαμε πετύχει με το αρχικό μας σύστημα (Κεφάλαιο 4) σε σχέση με την υλοποίηση με τη βοήθεια του σημασιολογικού Grid. Τα αποτελέσματα και ο σχολιασμός της σύγκρισης παρουσιάζονται στο τέλος του κεφαλαίου. Συμπεράσματα και μελλοντικές προεκτάσεις της εργασίας αυτής παρουσιάζονται στο Κεφάλαιο 7. 8

9 Abstract Owing to the increase in both heterogeneity and complexity in today s networking systems, the need arises for new network-based services architectures. They must provide flexibility and efficiency in the definition, deployment and execution of the services and, at the same time, handle the adaptability and evolution of such services. In this paper we present an approach that applies a Web-service-based resource management framework. It enables the provision of parallel applications as QoSaware applications, whose performance characteristics may be dynamically negotiated between a client application and service providers. Our component model allows context dependencies to be explicitly expressed and dynamically managed with respect to the hosting environment, computational resources and dependencies on other components. In such a model the resource management, in terms of representation, allocation and management of the resources, plays a vital role regarding the efficiency of the entire dynamic service deployment architecture. Network and service management fields nowadays find themselves at crossroads with middleware technologies, new network architectures and emerging research directions. Middleware technologies like Web services have reached maturity and enjoy wide deployment and adoption. Network architectures and infrastructures built for different purposes are well on their way towards IP convergence, giving rise to new integrated and more complex architectures. Finally, recent ambitious research directions like autonomic computing and communications have already made a dynamic appearance in the networking community, increasing the challenges even further. This activity has coincided with the end of an era in network and service management during which vast experience has been accumulated and numerous lessons have been learned. It is based on what constitutes the past state of the art in telecommunications and in data networks, realized by many as CORBA-based distributed management platforms and SNMP-based platforms, respectively. This produces speculation and activity about redefining/reassessing the initial requirements that drove the developments in network and service management in the past and about the shape of management when projected into the future. As network infrastructure is shifting towards service-centric networks, a number of architectural characteristics are likely to influence management operations and functionality and dictate specific choices of technologies for the realization thereof. In our opinion, three such characteristics are going to play a crucial role in the coming years: Federated network architectures. In an effort to provide seamless end-to-end connectivity that meets customer demands, networks/service providers have started forming federations of networks wherein a number of operations, such as AAA (Authentication, Authorization, and Accounting), monitoring and SLA (Service-Level Agreement) support, are treated in a homogeneous way in a heterogeneous environment. Network architectures with distinct separation of concerns. The most representative example is the separation of control from the forwarding plane, which allows the two to evolve separately. The binding element between the two is a set of open interfaces 9

10 that abstract functionality and allow access to vendor-independent functionalities and resources. Distributed network node architectures. Individual network nodes and other devices are clustered together to form more complex and extensible distributed architectures that operate as one integrated node. Such constellations provide the means of adding resources as needed and foster dynamic service deployment, namely the injection of new functionality into the network. In such a context, management faces a number of challenges originating from the increasing complexity and size of networks, the heterogeneity of devices and technologies that must coexist, and the high degree of flexibility required in services. The common denominator is the management functionality that injects services and components on demand and configures the network end-to-end. Unless we address these challenges with sufficient and complete technical solutions first, it is difficult to see how new research initiatives, e.g. autonomic networking, can be brought to a successful outcome. This has been the primary motivation of our research presented in this thesis, which touches upon these issues by exploring potential solutions on the service deployment and network configuration within a network architecture, called FlexiNET, that bears the aforementioned architectural characteristics. We have based our designs on Web services as the de facto standard technology in networks with high integration capability and one of the most promising approaches to future management technologies. Our research has been carried out as part of the FlexiNET European Union IST research project, and we have developed the Dynamic Service Deployment (DSD) functionality, hosted by the FlexiNET Wireless Access Node (FWAN), one of the key architectural components of the FlexiNET architecture. 10

11 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1. Εισαγωγή 17 ΚΕΦΑΛΑΙΟ 2. Η XML και η αναγκαιότητά της Εισαγωγή Χρήσεις της XML Επεκτασιμότητα της XML Πλεονεκτήματα της XML Διαλειτουργικότητα και ανεξαρτησία πλατφόρμας Υποστήριξη πολυγλωσσικών όρων και πολλαπλών δομών Επαναχρησιμοποίηση και αναδόμηση δεδομένων Αρχεία αναγνώσιμα από ανθρώπους και υπολογιστές Δεν χρειάζεται άδεια χρήσης Υπάρχουν ήδη εφαρμογές της XML σε πολλά πεδία Μειονεκτήματα της XML Αβεβαιότητα για το μέλλον Αδυναμία αναπαράστασης μη-ιεραρχικών δομών Περιορισμένη υποστήριξη από browsers Αρχεία μεγάλα σε μέγεθος με επαναλαμβανόμενα στοιχεία Απαίτηση εξειδικευμένων γνώσεων για ανάπτυξη XML σχημάτων Μετάβαση και οφέλη υιοθέτησης τεχνολογίας XML 29 ΚΕΦΑΛΑΙΟ 3. Μελέτη και σχεδιασμός του Κατανεμημένου Δρομολογητή (Distributed Router) Παρουσίαση προτεινόμενης λύσης Ορισμοί FlexiNET Forwarding and control element separation Execution environment Component 33 11

12 3.3 Απαιτήσεις του κατανεμημένου δρομολογητή Απαιτήσεις High-Level Απαιτήσεις Module-Level Απαιτήσεις Execution Environment-Level Απαιτήσεις Component-Level Αρχιτεκτονικός σχεδιασμός Αρχιτεκτονική του κατανεμημένου δρομολογητή Δομή μοντέλου κόμβων Προδιαγραφές του Μοντέλου Κόμβων Υψηλό επίπεδο High level Επίπεδο Ενοτήτων Module level Επίπεδο Περιβάλλοντος Εκτέλεσης Execution Environment level Επίπεδο Στοιχείου Component level Συμπεράσματα 40 ΚΕΦΑΛΑΙΟ 4. Μελέτη, Σχεδιασμός και Υλοποίηση ενός Συστήματος Διαχείρισης Πόρων & Υλοποίησης Εισαγωγή Συζήτηση σχετικής δουλείας Υπηρεσίες ιστού Web services Εφαρμογή Ιστού Τεχνολογία υπηρεσιών Ιστού Εφαρμογή υπηρεσιών Ιστού Αρχιτεκτονική βασισμένη σε XML Αρχιτεκτονική FlexiNET Αρχιτεκτονική DSD (Dynamic Service Deployment) Προτεινόμενη αρχιτεκτονική DSD Δομή μοντέλου κόμβων 52 12

13 4.6. Matchmaking Περίπτωση λειτουργίας σε επίπεδο χρήστη : υλοποίηση της ΑΑΑ Proxy υπηρεσίας Πειραματικά αποτελέσματα 57 ΚΕΦΑΛΑΙΟ 5. Σημασιολογικός Ιστός Εισαγωγή Δομή του Σημασιολογικού Ιστού Μεταδεδομένα και Οντολογίες Μεταδεδομένα Οντολογίες Μοντέλα και Πρότυπα XML RDF OWL Εργαλεία Σημασιολογική Αναζήτηση Ποια τα μειονεκτήματα της υπάρχουσας αρχιτεκτονικής του μοντέλου κόμβων; Η ανάγκη για μια Οντολογία ενότητας (Module Ontology) Μια βασισμένη σε οντολογίες αρχιτεκτονική 93 ΚΕΦΑΛΑΙΟ 6. Προτεινόμενη αρχιτεκτονική για δίκτυα σημασιολογικού Grid (Semantic Grid) Κατανεμημένα συστήματα Περιγραφή της τεχνολογίας/υπηρεσίας Grid Οι στόχοι της τεχνολογίας Grid Κύρια χαρακτηριστικά Η βασική αρχιτεκτονική της τεχνολογίας Grid Προτεινόμενο Σύστημα Λεπτομερής Περιγραφή της Προτεινόμενης Αρχιτεκτονικής Αλληλεπίδραση του Agent με την Grid υπηρεσία

14 6.4.2 Αλληλεπίδραση των Grid ενοτήτων με τους Agents Σχετική Δουλεία Πειραματικά αποτελέσματα 106 ΚΕΦΑΛΑΙΟ 7. Τελικά συμπεράσματα και μελλοντική εργασία 107 ΒΙΒΛΙΟΓΡΑΦΙΑ 111 ΔΗΜΟΣΙΕΥΣΕΙΣ 117 ΠΑΡΑΡΤΗΜΑ Α 119 ΠΑΡΑΡΤΗΜΑ Β

15 ΛΙΣΤΑ ΕΙΚΟΝΩΝ Εικόνα 1: Αρχιτεκτονική Κατανεμημένου Δρομολογητή...34 Εικόνα 2: Εσωτερική διαμόρφωση του κόμβου...35 Εικόνα 3: Δομή του Μοντέλου Κόμβων...36 Εικόνα 4. Μια αφηρημένη άποψη των διάφορων προδιαγραφών που καθορίζουν την αρχιτεκτονική υπηρεσιών Ιστού...46 Εικόνα 5. Άποψη των υψηλών επιπέδων των λειτουργικών συστατικών της υπηρεσίας Ιστού...47 Εικόνα 6. Αρχιτεκτονική FlexiNET...49 Εικόνα 7. Η προτεινόμενη αρχιτεκτονική DSD...51 Εικόνα 8. Δομή μοντέλου κόμβων...52 Εικόνα 9: Παρουσίαση του agent στο επίπεδο ενοτήτων...54 Εικόνα 10: Αίτημα υπηρεσίας...55 Εικόνα 11: Αρχιτεκτονική AAA Proxy...55 Εικόνα 12: Ανταλλαγή μηνυμάτων κατά την υλοποίηση του AAA Proxy...56 Εικόνα 13: Δυναμική υλοποίηση υπηρεσίας...57 Εικόνα 14: Matchmaking...58 Εικόνα 15: Προσθέτοντας νέες ενότητες...58 Εικόνα 16: Τα επίπεδα αρχιτεκτονικής του Semantic Web...62 Εικόνα 17: RDF γράφος που περιγράφει το Χρήστο Χρυσούλα...80 Εικόνα 18: Προτεινόμενη Οντολογία...94 Εικόνα 19: Αναπαράσταση στιγμιότυπου...95 Εικόνα 20: Ο OWL κώδικας του στιγμιότυπου Memory Εικόνα 21: Ένα τυπικό Grid δίκτυο Εικόνα 22: Αρχιτεκτονική προτεινόμενου συστήματος Εικόνα 23: Αναζήτηση υπηρεσίας από τον Agent Εικόνα 24: Αναζήτηση υπηρεσίας από τον Grid client Εικόνα 25: Συγκέντρωση των Πόρων του συστήματος Εικόνα 26: Εισαγωγή νέων PCs Εικόνα 27: Υλοποίηση μιας υπηρεσίας

16 ΛΙΣΤΑ ΠΙΝΑΚΩΝ Πίνακας 1: Δυναμική υλοποίηση υπηρεσίας μέσω υπηρεσιών Ιστού

17 ΚΕΦΑΛΑΙΟ 1. Εισαγωγή Η συγκεκριμένη Διδακτορική Διατριβή ήρθε να συνεισφέρει στην ανάγκη για σχεδιασμό, ανάπτυξη και υλοποίηση συστημάτων που να μπορούν να οδηγήσουν σε αποδοτικότερη χρησιμοποίηση των πόρων τους και εν συνεχεία να μπορέσουν με δυναμικό τρόπο να υλοποιήσουν νέες υπηρεσίες. Τα δίκτυα έχουν ζήσει μια αλματώδη ανάπτυξη τα τελευταία χρόνια. Ανάπτυξη που αφορά όχι μόνο το μέγεθος τους αλλά και τη λειτουργικότητά τους. Οι κόμβοι ενός δικτύου μπορούν πλέον να επιτελέσουν και λειτουργίες βασισμένες σε πολιτικές όπως το proxy-caching, το encryption, το tunneling και το firewalling. Στις μέρες μας έχει αρχίσει να εμφανίζετε η δυνατότητα προγραμματισμού στους κόμβους ενός δικτύου, επιτρέποντας έτσι τον πειραματισμό με ποιο πολύπλοκες υπηρεσίες. Η ανάγκη για ποιο γρήγορη υλοποίηση νέων υπηρεσιών στα δίκτυα χρησιμοποιώντας τις ήδη υπάρχουσες πολύπλοκες δυνατότητες θέτει μια νέα, μεγάλη, πρόκληση στα ήδη υπάρχοντα εργαλεία ελέγχου των δικτύων. Η πολυπλοκότητα των υπηρεσιών, ο αριθμός των κόμβων του δικτύου, ο προγραμματισμός τέτοιων κόμβων, και η ταχύτητα απαιτούν μια πρωτοποριακή αντιμετώπιση του αντικειμένου που καλείτε υλοποίηση υπηρεσιών (Service Deployment). Η παρούσα διδακτορική διατριβή παρουσιάζει μια αυτοματοποιημένη προσέγγιση σχετική με την υλοποίηση υπηρεσιών που μπορεί με ευκολία να εφαρμοστεί και σε μεγάλα ετερογενή δίκτυα. Η διατριβή επικεντρώνεται σε δυο κυρίως θέματα. Πρώτα παρουσιάζουμε ένα πλαίσιο που συνδέει τα επίπεδα του δικτύου και των κόμβων με ιεραρχικά κατανεμημένους υπολογισμούς. Και δεύτερον παρουσιάζουμε μια μέθοδο που χρησιμοποιήσαμε για να επιτύχουμε το ταίριασμα μεταξύ των προγραμματιστικών μοντέλων που χρησιμοποιούνται για τις υπηρεσίες και αυτών που χρησιμοποιούνται σαν δικτυακοί κόμβοι. Με τη βοήθεια των δυο παραπάνω προοπτικών οδηγούμαστε σε μια ολοκληρωτική άποψη για το πώς πρέπει σε βάθος να αναλυθεί η έννοια της υλοποίησης υπηρεσιών (Service Deployment). Όταν νέες υπηρεσίες εγκαθιστούνται, το αυτοματοποιημένο σύστημα της υλοποίησης υπηρεσιών επιτρέπει στις κατανεμημένα και πολύπλοκα χαρακτηριστικά των δικτυακών στοιχείων να εντοπιστούν γρηγορότερα και να χρησιμοποιηθούν ποιο αποδοτικά, σε σχέση πάντα με ένα παραδοσιακό κεντρικοποιήμενο σύστημα. Αυτό έχει σαν αποτέλεσμα την ταχύτερη εγκατάσταση και την βέλτιστη χρησιμοποίηση των διαθέσιμων υπηρεσιών. Η δομή της παρούσας διδακτορικής διατριβής είναι η ακόλουθη: Στο Κεφάλαιο 1 τονίζονται οι στόχοι της διδακτορικής διατριβής ενώ αναφέρονται περιληπτικά οι βασικές συνεισφορές της. 17

18 Ο βασικός στόχος του Κεφαλαίου 2 είναι να εισάγει τον αναγνώστη στις αρχές της επιστήμης της XML. Αναφέρονται όλα τα βασικά στοιχεία που είναι απαραίτητα στο να διασαφηνιστούν έννοιες και αρχές σχετικά με την XML και τη χρήση της. Διευκρινίζονται θέματα όπως διαλειτουργικότητά της και η ανεξαρτησία που προσφέρει. Γίνεται μια σε βάθος περιγραφή από τα οφέλη που θα αποκομίσουμε υιοθετώντας μια τεχνολογία όπως η XML. Οφέλη που θα μας βοηθήσουν να αναπτύξουμε και να δημιουργήσουμε μια δυναμική αρχιτεκτονική που να ναι σε θέση να καλύψει τις ανάγκες μας. Στο Κεφάλαιο 3 παρουσιάζονται η μελέτη και εν συνεχεία ο σχεδιασμός του κατανεμημένου δρομολογητή (Distributed Router). Γίνεται μια παρουσίαση της προτεινόμενης λύσης. Παρουσιάζεται με έναν απλό και περιεκτικό τρόπο το FlexiNET κομμάτι του οποίου είναι ο κατανεμημένος δρομολογητής. Αναφερόμαστε στον διαχωρισμό του επιπέδου forwarding από το επίπεδο του control. Στη συνέχεια γίνεται μια λεπτομερής περιγραφή της προτεινόμενης αρχιτεκτονικής. Παρουσιάζεται μια λεπτομερής περιγραφή των επιμέρους επιπέδων του κατανεμημένου δρομολογητή. Παρουσιάζονται οι απαιτήσεις και προδιαγραφές των επιμέρους επιπέδων και γίνεται μια αντιστοίχηση με την αρχιτεκτονική του FlexiNET. Στο Κεφάλαιο 4 παρουσιάζεται μελέτη, ο σχεδιασμός και η υλοποίηση ενός ολοκληρωμένου συστήματος διαχείρισης πόρων και υλοποίησης υπηρεσιών. Αρχικά γίνεται μια παρουσίαση σχετικών εργασιών πάνω στο αντικείμενο που πραγματευόμαστε. Εντοπίζονται οι όποιες αδυναμίες και τονίζεται πως μπορούμε με τη βοήθεια του προτεινόμενου συστήματος να τις ξεπεράσουμε. Παρουσιάζουμε τις υπηρεσίες ιστού πάνω στις οποίες είναι δομημένο το σύστημά μας. Στη συνέχεια προχωράμε σε μια εις βάθος περιγραφή του συστήματος με τη χρήση εικόνων και σχεδιαγραμμάτων. Παρουσιάζουμε τον τρόπο με τον οποίο συνδέεται η προτεινόμενη αρχιτεκτονική με την αρχιτεκτονική του κατανεμημένου δρομολογητή. Χρησιμοποιούμε έναν απλό matchmaking αλγόριθμο για το τελικό τεστάρισμα του συστήματός μας. Και τέλος παρουσιάζουμε τον τρόπο με τον οποίο υλοποιείται μια υπηρεσία και καταγράφουμε τα πειραματικά αποτελέσματα. Έτσι γίνεται αναφορά στις παραμέτρους υλοποίησης του συστήματος και πως αυτές επηρεάζουν το συνολικό σύστημα. Στο Κεφάλαιο 5 παρουσιάζεται λεπτομερώς η διαδικασία μέσα από την οποία οδηγούμαστε από μια XML περιγραφή του κατανεμημένου μας δρομολογητή σε μια σημασιολογική περιγραφή αυτού. Αρχικά, παρουσιάζουμε με λεπτομέρεια τι είναι ο σημασιολογικός ιστός και πως δομείται. Στη συνέχεια παρουσιάζουμε τα πρότυπα και μοντέλα που χρησιμοποιεί και καταλήγουμε σε μια σημασιολογική περιγραφή του κατανεμημένου δρομολογητή. Μια βασισμένη σε οντολογίες περιγραφή του. Στο Κεφάλαιο 6 προτείνεται αρχιτεκτονική για δίκτυα σημασιολογικού Grid (Semantic Grid). Αρχικά δίνεται μια περιγραφή της τεχνολογίας Grid. Παρουσιάζονται οι στόχοι της και τα κυρία χαρακτηριστικά της συνοδευόμενα από μια γενική αρχιτεκτονική. Στη συνέχεια περνάμε στην προτεινόμενη αρχιτεκτονική. Με τη βοήθεια σχεδιαγραμμάτων και εικόνων δίνεται μια όσο το δυνατόν λεπτομερής περιγραφή του συστήματος και πως ενσωματώνει την σημασιολογική περιγραφή του κατανεμημένου δρομολογητή που παρουσιάσαμε στο προηγούμενο κεφάλαιο (Κεφάλαιο 5). Κλείνοντας το κεφάλαιο κάνουμε μια σύγκριση των αποτελεσμάτων που είχαμε πετύχει με το αρχικό μας σύστημα (Κεφάλαιο 4) σε σχέση με την 18

19 υλοποίηση με τη βοήθεια του σημασιολογικού Grid. Τα αποτελέσματα και ο σχολιασμός της σύγκρισης παρουσιάζονται στο τέλος του κεφαλαίου. Συμπεράσματα και μελλοντικές προεκτάσεις της εργασίας αυτής παρουσιάζονται στο Κεφάλαιο 7. 19

20 20

21 ΚΕΦΑΛΑΙΟ 2. Η XML και η αναγκαιότητά της Ο βασικός στόχος του Κεφαλαίου 2 είναι να εισάγει τον αναγνώστη στις βασικές αρχές της γλώσσας XML. Αναφέρονται όλα τα βασικά στοιχεία που είναι απαραίτητα στο να διασαφηνιστούν έννοιες και αρχές σχετικά με την XML. Διευκρινίζονται θέματα όπως ιστορική της εξέλιξη και τι είναι αυτό που οδήγησε στην τόσο γενικευμένη πια χρήσης της. Η παραπάνω γνώση αποτελεί τη βάση για την σε βάθος κατανόηση και χρήση της Εισαγωγή Η XML είναι μια γλώσσα για τη δόμηση δεδομένων. Με την έννοια δομημένα δεδομένα εννοούμε μία συλλογή στοιχείων δεδομένων όπως είναι για παράδειγμα τα λογιστικά φύλλα, οι κατάλογοι διευθύνσεων, οι παράμετροι διαμόρφωσης, οι οικονομικές συναλλαγές και τα τεχνικά σχέδια. Η XML είναι, δηλαδή, ένα σύνολο κανόνων (ή διαφορετικά ένα πακέτο κατευθυντήριων γραμμών ή συμβάσεων) για το σχεδιασμό μορφών κειμένου οι οποίες διευκολύνουν τη δόμηση των δεδομένων σας. Η XML δεν είναι γλώσσα προγραμματισμού. Δεν χρειάζεται, επομένως, να είστε προγραμματιστής για να την χρησιμοποιήσετε ή να τη μάθετε. Η XML διευκολύνει τον υπολογιστή να παράγει δεδομένα, να διαβάζει δεδομένα και να εξασφαλίζει τη σαφήνεια της δομής των δεδομένων. Η XML αποφεύγει τις συνήθεις παγίδες του σχεδιασμού γλωσσών: είναι επεκτάσιμη, ανεξάρτητη του συστήματος υλικού και μπορεί να υποστηρίξει διεθνείς και τοπικές προσαρμογές. Η XML είναι πλήρως συμβατή με το σύστημα UNICODE. H XML (extensible Markup Language) αποτελεί ένα απλοποιημένο υποσύνολο της SGML. Για την ανάπτυξη της συστάθηκε μια ειδική ομάδα εργασίας από τον διεθνή οργανισμό World Wide Web Consortium (W3C) τον Αύγουστο του 1996 με επικεφαλής τον John Bosak της Sun Microsystems. Η πρώτη έκδοση της XML 1.0 εκδόθηκε σαν Σύσταση (Recommendation) του W3C στις 10 Φεβρουαρίου του Η XML σχεδιάστηκε με πρωταρχικό στόχο να επιτρέψει τη χρήση της SGML στο διαδίκτυο. Οι αρχικές προσπάθειες κινήθηκαν προς τη δημιουργία μιας νέας έκδοσης της SGML κατάλληλης για το web ( SGML on the web ), αλλά οδήγησαν τελικά στη δημιουργία μιας νέας γλώσσας. Η XML αποτελεί στην ουσία μια συντετμημένη έκδοση της SGML έτσι ώστε να είναι ευκολότερος ο ορισμός νέων τύπων εγγράφων και η δημιουργία προγραμμάτων συντακτικής ανάλυσης των εγγράφων (parsers). Παρα-λείπονται τα πιο πολύπλοκα και λιγότερο χρησιμοποιούμενα τμήματα της SGML, εξακολουθεί όμως να είναι SGML, συνεπώς συμβατή με υπάρχουσες εφαρμογές και εργαλεία της SGML. Είναι χαρακτηριστικό ότι το reference manual της SGML αριθμεί 600 σελίδες, ενώ το αντίστοιχο της XML μόλις 26 σελίδες. 'The idea of XML is to maintain the 50% of SGML that is used 90% of the time. Liberty and Kraley, W3C 21

22 Ο βασικός στόχος της XML είναι να περιγράψει τη δομή ενός εγγράφου,αποδίδοντας σημασιολογική πληροφορία στα περιεχόμενά του. Το κομμάτι της παρουσίασης του κειμένου το αναλαμβάνουν συμπληρωματικές τεχνολογίες, όπως η CSS (Cascading Style Sheets) και η XSL (XML Style Language) που θα δούμε σε επόμενο κεφάλαιο, οι οποίες επιτρέπουν την προβολή ενός εγγραφου XML με πολλούς και διαφορετικούς τρόπους, χωρίς να επηρεάζεται το αρχικό αρχείο XML. Η XML είναι και αυτή μια μετα-γλώσσα (meta-language) επιτρέποντας την εξαγωγή και τη δημιουργία άλλων γλωσσών. Χρησιμοποιώντας σαν βάση την XML μπορούν να δημιουργηθούν ένα πλήθος παραγώγων της γλώσσας με σκοπό να καλύψουν εξειδικευμένες ανάγκες εγγράφων σε οποιαδήποτε πεδίο, από την χημεία και τα μαθη-ματικά, μέχρι το ηλεκτρονικό εμπόριο και την ηλεκτρονική διακυβέρνηση. Όπως έχουμε ήδη αναφέρει, η XML αποτελεί μια γλώσσα σήμανσης (markup) που μπορεί να χρησιμοποιηθεί για τη δόμηση, αποθήκευση και ανταλλαγή δεδομένων. Με βάση την XML μπορεί να στηθεί ένα κατάλληλο πλαίσιο για να επιτρέψει την ανταλλαγή δομημένων δεδομένων ανάμεσα στα συνεργαζόμενα μέλη, χρησιμοποιώντας την υποδομή του διαδικτύου. Με την έννοια δομημένα δεδομένα εννοούμε μία συλλογή στοιχείων δεδομένων όπως είναι για παράδειγμα τα λογιστικά φύλλα, οι κατάλογοι διευθύνσεων, οι παράμετροι διαμόρφωσης, οι οικονομικές συναλλαγές και τα τεχνικά σχέδια. Η XML δεν είναι γλώσσα προγραμματισμού οπότε δεν απαιτείται να είναι κάποιος προγραμματιστής για να χειριστεί ένα αρχείο XML. Πρέπει επίσης να τονιστεί ότι η XML, σε αντίθεση με την HTML, δεν αποτελεί μια αυτόνομη λύση από μόνη της. Η XML χρησιμοποιείται για να ορίσει απλώς ένα πλαίσιο (framework) που μπορεί να χρησιμοποιηθεί για να παράγει λύσεις, αλλά ένα απομονωμένο αρχείο XML δεν αποτελεί τίποτα παραπάνω από ένα πολύ ευανάγνωστο, δομημένο και οργανωμένο έγγραφο. Η XML αποτελεί δηλαδή ένα σύνολο κανόνων (ή διαφορετικά ένα πακέτο κατευθυντήριων γραμμών ή συμβάσεων) για το σχεδιασμό μορφών κειμένου οι οποίες διευκολύνουν τη δόμηση των δεδομένων. Ένα αρχείο XML έχει αυτοπεριγραφόμενη δομή (self-describing) αφήνοντας την ερμηνεία των δεδομένων στην εκάστοτε εφαρμογή, διευκολύνοντας έτσι τον υπολογιστή να παράγει, να διαβάζει και να επεξεργαστεί τα δεδομένα, εξασφαλίζοντας τη σαφήνεια της δομής τους. Ένα XML έγγραφο έχει λογική και φυσική δομή. Η λογική δομή (logical structure) είναι ένα πρότυπο (template) που ορίζει ποια στοιχεία θα συμπεριληφθούν σε κάποιο έγγραφο και με ποια σειρά. Η φυσική δομή (physical structure) περιέχει τα πραγματικά δεδομένα που χρησιμοποιούνται σε ένα έγγραφο. Η XML στην ουσία βοηθάει στην κωδικοποίηση πληροφοριών σε μια δομή με νόημα και σημειολογία μέσω ενός απλού "λεξιλογίου". Ένα αρχείο XML δεν είναι παρά ένα απλό αρχείο κειμένου που ακολουθεί μια αυστηρή και σαφώς προσδιορισμένη δομή. Αποτελεί έτσι μια αυτόνομη και αυτοπεριγραφόμενη οντότητα και είναι εύκολα αναγνώσιμο και άμεσα επεξεργάσιμο τόσο από ανθρώπους όσο και από μηχανές. Σε σύγκριση με τα δυαδικά αρχεία, ένα αρχείο κειμένου σε XML καταλαμβάνει περισσότερο αποθηκευτικό χώρο. Το γεγονός αυτό όμως ξεπερνιέται χρησιμοποιώντας αλγορίθμους συμπίεσης, όπως είναι το zip, ενώ και τα ίδια τα πρωτόκολλα επικοινωνίας, όπως το HTTP/1.1, μπορούν να συμπιέσουν πολύ εύκολα αρχεία με μεγάλη ταχύτητα μεταφοράς και το ίδιο αποτελεσματικά με τα δυαδικά αρχεία. Παράλληλα, το πρόβλημα του χώρου αντισταθμίζεται και από το 22

23 γεγονός ότι ένα αρχείο σε μορφή κειμένου επιτρέπει στο χρήστη, αν είναι αναγκαίο, να έχει πρόσβαση στα δεδομένα χωρίς το πρόγραμμα που τα παρήγαγε, χρησιμοποιώντας έναν απλό επεξεργαστή κειμένου. Ακόμα, είναι συνήθως ευκολότερο να ανακτηθούν οι πληροφορίες από ένα XML αρχείο ακόμα και αν έχει καταστραφεί (corrupted) ένα μέρος του αρχείου, σε αντίθεση με ένα δυαδικό αρχείο. Η XML, όπως και η HTML, χρησιμοποιεί ετικέτες (tags) (λέξεις μέσα σε γωνιακές αγκύλες '<' και '>') και γνωρίσματα (τύπου όνομα = "τιμή"). Η μεγάλη διαφορά όμως με την HTML είναι ότι οι ετικέτες χρησιμοποιούνται με διαφορετικό τρόπο και για διαφορετικό σκοπό. Η HTML χρησιμοποιεί ένα περιορισμένο σετ από ετικέτες (περίπου 80). Η σημασία της κάθε ετικέτας και του κάθε γνωρίσματος είναι καθορισμένη και προσδιορίζει συνήθως τον τρόπο με τον οποίο θα εμφανίζεται το κείμενο σε έναν φυλλομετρητή (web browser). Αντίθετα η XML χρησιμοποιεί ετικέτες μόνο για να οριοθετήσει κομμάτια δεδομένων, αφήνοντας την ερμηνεία τους στην εφαρμογή που τα διαβάζει.επίσης διαχωρίζει πλήρως την έννοια των δεδομένων από την παρουσίασή τους.ένα αρχείο XML προσανατολίζεται αυστηρά στην δόμηση και αποθήκευση δεδομένων, απαλλάσσοντάς το έτσι από οποιαδήποτε πληροφορία που έχει να κάνει με την παρουσίαση και την μορφοποίησή των δεδομένων κατά την προβολή τους. Το κομμάτι της παρουσίασης το αναλαμβάνουν εξ ολοκλήρου συμπληρωματικές τεχνολογίες (CSS, XSL). Εν ολίγοις, η ετικέτα "<p>" σε ένα αρχείο XML, δεν συνεπάγεται την ύπαρξη μιας παραγράφου (p = paragraph), όπως θα σήμαινε σε ένα αρχείο HTML. Ανάλογα με την περίπτωση, ενδέχεται να είναι μια τιμή κόστους (p = price), μια παράμετρος (p = parameter), ένα πρόσωπο (p = person), το γράμμα π ή ακόμα και κάτι ανεξάρτητο, που να μην αρχίζει καν από π (p), αλλά πάντα κάτι που σκοπό θα έχει να περιγράψει εννοιολογικά τα δεδομένα που θα αποθηκευτούν και όχι τον τρόπο παρουσίασής τους Χρήσεις της XML Η XML βρίσκει σήμερα ευρείας εφαρμογής και έχει πλέον επηρεάσει έντονα όλους τους τομείς την σύγχρονης πραγματικότητας στο χώρο της πληροφορικής και των τεχνολογιών επικοινωνίας γενικότερα. Με μια γενική προσέγγιση, οι χρήσεις της XML μπορούν να συγκεντρωθούν σε τρεις βασικές κατηγορίες: Στην ανταλλαγή δεδομένων ανάμεσα σε, συνήθως ασύμβατες, εφαρμογές. Στην εκτέλεση κλήσεων απομακρυσμένων διαδικασιών - RPC (Remote Procedure Calls), αξιοποιώντας τη διαπλατφορμικότητα της XML (platformindependence). Στην αποθήκευση δεδομένων, αξιοποιώντας και τις δυνατότητες αναδόμησης και επαναχρησιμοποίησης τους για διαφορετικούς σκοπούς. Μια από τις πιο σημαντικές χρήσεις της XML συναντάται στη διευκόλυνση της ηλεκτρονικής ανταλλαγής εγγράφων EDI (Electronic Data Interchange). Η εμφάνιση της XML έφερε μια επανάσταση στο χώρο, καθώς κατέστησε δυνατή την ηλεκτρονική επικοινωνία ανάμεσα σε όλα τα συνεργαζόμενα μέρη ολόκληρης της βιομηχανικής αλυσίδας, από τους προμηθευτές και τους πρωτογενείς παραγωγούς μέχρι τους πωλητές και τους τελικούς χρήστες. Διαφορετικές βιομηχανίες και επιχειρήσεις μπορούν, χρησιμοποιώντας την XML, να συμφωνήσουν στην υιοθέτηση ενός κοινού προτύπου δόμησης της ηλεκτρονικής πληροφορίας που ανταλλάσσεται 23

24 κατά την πραγματοποίηση των ηλεκτρονικών συναλλαγών τους. Έτσι, χρησιμοποιώντας την υπάρχουσα υποδομή του παγκόσμιου ιστού (World Wide Web), μπορεί να εγκατασταθεί με μεγάλη ευκολία ένα συνεργατικό μοντέλο ακόμα και ανάμεσα σε ασύμβατα μεταξύ τους συστήματα, τα οποίο θα χαρακτηρίζεται από ευελιξία και επάρκεια. Ούτως η άλλως, το διαδίκτυο αποτελεί μια ιδανική τοποθεσία για την ηλεκτρονική ανταλλαγή πληροφοριών. Οπότε η XML έρχεται να προσφέρει όσα η ανεπαρκής, όσο αναφορά το κομμάτι της περιγραφής και δόμησης των δεδομένων, HTML δεν μπορούσε να καλύψει. Το δεύτερο μεγάλο κομμάτι χρήσης της XML αφορά στην υλοποίηση κλήσεων απομακρυσμένων διαδικασιών - RPC και εφαρμογών που ακολουθούν την clientserver αρχιτεκτονική. Σε συνδυασμό με τη γλώσσα προγραμματισμού Java, η XML παρέχει τη δυνατότητα σε μια απλή εφαρμογή πλοήγησης του διαδικτύου (web browser), να αποτελέσει ένα ολοκληρωμένο περιβάλλον για την ανάπτυξη σύνθετων διαδικτυακών εφαρμογών. Με τον τρόπο αυτό επιτυγχάνεται πλήρως η διαπλατφορμικότητα, τόσο σε επίπεδο λειτουργικού συστήματος και εφαρμογών λογισμικού, όσο και σε επίπεδο πλατφόρμας από άποψη hardware, αφού οι ίδιες εφαρμογές μπορούν να υλοποιηθούν ώστε να υποστηρίζουν από συμβατούς προσωπικούς υπολογιστές μέχρι υπολογιστές παλάμης (PDAs, palmtops) και έξυπνα κινητά τηλέφωνα (smart mobile phones). Έτσι, αξιοποιώντας τις τεχνολογίες της XML, του HTTP και του SOAP (Simple Object Access Protocol), μπορούν να στηθούν σύνθετες εφαρμογές που βασίζονται στην ανταλλαγή πληροφοριών και μηνυμάτων πάνω από ένα κατανεμημένο και αποκεντρωμένο περιβάλλον (decentralized and distributed environment) και ανάμεσα σε διαφορετικές και ασυμβίβαστες μεταξύ τους εφαρμογές και πλατφόρμες. Παράλληλα, ξεπερνώντας τους περιορισμούς της HTML και της χρήσης CGI script στην πλευρά του server, η XML δίνει στους προγραμματιστές τη δυνατότητα να δημιουργούν εφαρμογές οι οποίες μεταφέρουν το κομμάτι της επεξεργασίας της πληροφορίας στο client μέρος, μειώνοντας την κυκλοφοριακή κίνηση του διαδικτύου και συμβάλλοντας σε ένα ταχύτερο internet. Τέλος, η τεχνολογία XML προσφέρει μια πολύ ανταγωνιστική λύση για την αποθήκευση δομημένης πληροφορίας. Η αυτοπεριγραφόμενη δομή των αρχείων XML και η δυνατότητα απόδοσης σημασιολογικής πληροφορίας στα αποθηκευμένα δεδομένα τα καθιστούν ένα πολύ καλό file format για την αποθήκευση των αρχείων μιας εφαρμογής, είτε πρόκειται για μια απλή εφαρμογή γραφείου είτε μια σύνθετη εφαρμογή, όπως ένα σχεδιαστικό CAD πρόγραμμα ή ένα πρόγραμμα μουσικής ενορχήστρωσης. Παράλληλα, στα πλαίσια του ολοένα και ανερχόμενου σημασιολογικού ιστού (Semantic Web), η XML τείνει να αποτελέσει το αυριανό πρότυπο για την αποθήκευση πληροφορίας στον παγκόσμιο ιστό, καθιστώντας δυνατή την πραγματοποίηση αυτοματοποιημένων διαδικτυακών συναλλαγών και την σημασιολογική αναζήτηση πληροφοριών στο διαδίκτυο. Αξιοποιώντας τις δυνατότητες αναδόμησης και επεξεργασίας των δεδομένων πριν την παρουσίασή τους, κάνοντας χρήση συμπληρωματικών τεχνολογιών (CSS, XSL), η τεχνολογία XML μπορεί να αποτελέσει τη βάση για την ενοποιημένη αποθήκευση ολόκληρης της πληροφορίας με έναν δομημένο τρόπο. Η εκάστοτε εφαρμογή θα αναλαμβάνει την προβολή των στοιχείων εκείνων που απαιτούνται ανά περίπτωση, βάσει κάποιων δυναμικών κριτηρίων και κατόπιν κατάλληλης επεξεργασίας των δεδομένων. Για παράδειγμα, αν αναφερθούμε στις πληροφορίες που παρέχονται από κάποιο δικτυακό τρόπο, η αποθήκευσή των δεδομένων σε ΧML παρέχει την ευελιξία τόσο στην μορφοποίηση και στην επιλογή του περιεχομένου που τελικά θα προβληθεί, όσο και στην επιβολή κάποιων περιορισμών ή μετασχηματισμών των 24

25 δεδομένων, ανάλογα με την πλατφόρμα προβολής για παράδειγμα, όπως αφαίρεση εικόνων και γραφικών στην περίπτωση PDAs και κινητών τηλεφώνων Επεκτασιμότητα της XML Ένα από τα πιο βασικά χαρακτηριστικά της XML είναι αυτό που υποδηλώνεται άλλωστε και από το όνομά της, χαρακτηρίζοντας τη σαν μια επεκτάσιμη (extensible) γλώσσα. Η XML αποτελεί όπως έχουμε ήδη αναφέρει μια μετα-γλώσσα επιτρέποντας, μέσω της δημιουργίας νέων ετικετών (tags), τον σχεδιασμό και τη δημιουργία καινούριων γλωσσών, εφαρμογών - παραγώγων της XML. Οι προγραμματιστές μπορούν, ορίζοντας ένα δικό τους λεξιλόγιο, να προσδιορίσουν μια καινούρια γλώσσα σήμανσης προσαρμοσμένη στις εξειδικευμένες ανάγκες και απαιτήσεις της εκάστοτε εφαρμογής ή του συγκεκριμένου πεδίου εφαρμογής. Το πρόβλημα όμως είναι ότι η επεκτασιμότητα αυτή δεν παρέχεται χωρίς κόστος. Σε ένα κατανεμημένο περιβάλλον, απαιτείται διαχείριση της επεκτασιμότητας για την αποφυγή σύγχυσης και την επίτευξη της διαλειτουργικότητας. Για το λόγο αυτό έχουν δημιουργηθεί κάποιες τεχνολογίες που σκοπό έχουν να οριοθετούν κάθε καινούριο παράγωγο της γλώσσας, ώστε να μην υπάρχει σύγχυση για την ταυτοποίηση της μορφής και τη δομής του εγγράφου. Για τον προσδιορισμό ενός παραγώγου της XML χρησιμοποιείται συνήθως ένα DTD (Document Type Definition), το οποίο αποτελεί στην ουσία ένα γλωσσάριο, μια σειρά από κατευθυντήριους κανόνες και περιορισμούς, οι οποίοι καθορίζουν το χρησι-μοποιούμενο σετ ετικετών και τον τρόπο με τον οποίο αυτά θα χρησιμοποιούνται μέσα σε ένα έγγραφο XML. Τα DTD είναι επαναχρησιμοποιήσιμα και μπορούν να μοιράζονται ταυτόχρονα από πολλαπλά έγγραφα XML. Συνήθως υπάρχει μια αναφορά μέσα σε κάθε XML έγγραφο, χρησιμοποιώντας ένα URL, που αναφέρει πιο DTD ακολουθεί το έγγραφο. Χρησιμοποιώντας το DTD γίνεται και το validation του εγγράφου, ελέγχεται δηλαδή αν η δομή του εγγράφου ακολουθεί τους κανόνες που έχουν οριστεί ώστε να εξασφαλιστεί η διαλειτουργικότητα ανάμεσα στα συμβαλλόμενα μέρη που έχουν συμφωνήσει να ακολουθούν το συγκεκριμένο πρότυπο για την ανταλλαγή των ηλεκτρονικών τους εγγράφων. Τα DTDs, που κληρονομήθηκαν από τον πρόγονο της XML, την SGML, έχουν αρχίσει σταδιακά να αντικαθίστανται από μια ευπροσάρμοστη τεχνολογία, τα XML Schemas, που ακολουθούν τη δομή της XML. Ο βασικός σκοπός των XML Schemas είναι να επιτρέψουν την αυτοματοποιημένη επικύρωση της δομής ενός εγγράφου από τον υπολογιστή. Ένα Schema αποτελείται από metadata που είναι σχεδιασμένα για να περιγράφουν την οργάνωση και το περιεχόμενο συσχετισμένων εγγράφων XML, αυξάνοντας έτσι την ποικιλομορφία και την χρησιμότητα του περιεχομένου των εγγράφων. Ένα XML schema δίνει τη δυνατότητα οριοθέτησης περισσότερων και πιο εξειδικευμένων κανόνων και περιορισμών των XML εγγράφων από ότι ένα DTD. Ένας ακόμα μηχανισμός που συμβάλλει στην επεκτασιμότητα της XML και βοηθάει στον προσδιορισμό των στοιχείων ενός εγγράφου XML είναι και οι χώροι Ονοματοδοσιάς (XML Namespaces). Προσδιορίζοντας τους χώρους ονοματοδοσίας που χρησιμοποιεί ένα έγγραφο αποφεύγεται η σύγχυση από συνώνυμα στοιχεία. Παράλληλα δίνεται η δυνατότητα στον καθένα να επεκτείνει τη γλώσσα καθορίζοντας δικές του ετικέτες, υπάγοντάς τες κάτω από έναν καινούριο χώρο ονοματοδοσίας, χωρίς να υπάρχει πρόβλημα σύγκρουσης με ονόματα ετικετών που ήδη χρησιμοποιούνται. Για τη δήλωση των χώρων ονοματοδοσίας χρησιμοποιούνται 25

26 τα URIs (Universal Resource Identifier), που προσδιορίζουν μοναδικά έναν χώρο στον παγκόσμιο ιστό Πλεονεκτήματα της XML Πέραν τον όσων έχουμε ήδη αναφέρει σχετικά με την XML, υπάρχουν και ένα πλήθος άλλων εν γένει χαρακτηριστικών της που την κάνουν να ξεχωρίζει και να πλεονεκτεί σε σχέση με τον ανταγωνισμό. Στις παραγράφους που ακολουθούν θα επισημάνουμε τα πιο σημαντικά από αυτά Διαλειτουργικότητα και ανεξαρτησία πλατφόρμας Τα έγγραφα της XML, σε αντίθεση με τα δυαδικά (binary) αρχεία, αποτελούν έγγραφα απλού κειμένου. Αυτό, σε συνδυασμό με την αυτοπεριγραφόμενη δομή τους, επιτρέπει τη διαλειτουργικότητα και την ανεξαρτησία πλατφόρμας. Αρχεία XML μπορούν εύκολα να μεταφερθούν και να χρησιμοποιηθούν από διαφορετικές εφαρμογές και σε διαφορετικά λειτουργικά συστήματα (Windows, Unix, Linux, Solaris, Macintosh) ή ακόμα και σε διαφορετικές πλατφόρμες hardware, από μεγάλα mainframes και προσωπικούς υπολογιστές, μέχρι κινητά τηλέφωνα και συσκευές παλάμης (PDAs, palmtops). Πολλά εργαλεία έχουν ήδη αναπτυχθεί από διάφορους κατασκευαστές λογισμικού που αναλαμβάνουν την αυτόματη μετατροπή των proprietary τύπων αρχείων των διάφορων εφαρμογών σε αρχεία XML, ώστε να επιτευχθεί η διαλειτουργικότητα και φορητότητα ανάμεσα σε διαφορετικές πλατφόρμες Υποστήριξη πολυγλωσσικών όρων και πολλαπλών δομών Η XML υποστηρίζει εν γένει Unicode χαρακτήρες. Έτσι μπορούν απ ευθείας να ενσωματωθούν πολυγλωσσικοί χαρακτήρες, όπως Κινεζικά, Κυριλλικά και Εβραϊκά, καθώς και διάφορα ιστορικά σετ χαρακτήρων. Παράλληλα, χάρη στην ιεραρχική δομή που ακολουθούν τα αρχεία της XML, μπορούν να αναπαρασταθούν οι περισσότερες δομές δεδομένων από το χώρο της πληροφορικής τεχνολογίας και τα μαθηματικά, όπως εγγραφές, λίστες, δέντρα κ.ο.κ Επαναχρησιμοποίηση και αναδόμηση δεδομένων Η XML επιτρέπει την ενιαία αποθήκευση ολόκληρου του περιεχομένου ενός εγγράφου σε μια, δομημένη μεν αλλά απαλλαγμένη από κάθε στοιχείο παρουσίασης, μορφή. Χάρη στις συμπληρωματικές τεχνολογίες αναδόμησης και μορφοποίησης που διαθέτει (CSS, XSL), το περιεχόμενο μπορεί να επαναχρησιμοποιηθεί από ένα πλήθος εφαρμογών και σε διαφορετικά συστήματα και πλατφόρμες, ώστε να καλύψει τις ανάγκες της εκάστοτε εφαρμογής. 26

27 Αρχεία αναγνώσιμα από ανθρώπους και υπολογιστές Ένα ακόμα σημαντικό χαρακτηριστικό της XML είναι ότι παράγει αρχεία που είναι αναγνώσιμα και επεξεργάσιμα τόσο από ανθρώπους όσο και από υπολογιστές και μηχανές. Τα αρχεία XML είναι αρχεία απλού κειμένου που ακολουθούν μια απλή ιεραρχική μορφή. Τα δεδομένα περιέχονται μέσα σε δομημένες ετικέτες οι οποίες αποκαλύπτουν απ ευθείας τη δομή οργάνωσης του εγγράφου και παράλληλα προσδίδουν σημασιολογική έννοια στα δεδομένα, ώστε να μπορεί κάποιος να ανατρέξει απ ευθείας σε ένα έγγραφο XML, χρησιμοποιώντας ένα απλό πρόγραμμα επεξεργασίας κειμένου, και να διαβάσει ή να διορθώσει το περιεχόμενό του. Τα αρχεία XML, σε αντίθεση με την HTML που δικαιολογεί κάποιες παρατυπίες και αποκλίσεις, υπόκεινται σε πολύ αυστηρούς κανόνες σύνταξης και δομής, καθιστώντας τους αλγορίθμους ανάλυσης W3C ικανούς να αναλύσουν τη δομή και να επεξεργαστούν τα δεδομένα οποιοδήποτε έγκυρου (valid) XML εγγράφου Δεν χρειάζεται άδεια χρήσης Η XML αποτελεί σύσταση του διεθνούς μη κερδοσκοπικού οργανισμού W3C, οπότε δεν απαιτείται άδεια χρήσης (royalty free). Πρόκειται για ένα κοινά αποδεκτό πρότυπο που προσφέρει πρόσβαση σε μια μεγάλη και διαρκώς αναπτυσσόμενη κοινότητα εργαλείων, που μπορεί να εξυπηρετούν πλήρως και από μόνα τους εξειδικευμένες ανάγκες οποιαδήποτε πεδίου εφαρμογής. Τυγχάνει ευρείας και ολοένα επεκτεινόμενης υποστήριξης από ειδικούς με μεγάλη εμπειρία στις εν λόγω τεχνολογίες. Καθώς η XML δεν χρειάζεται άδεια χρήσης, ο καθένας μπορεί να κατασκευάσει δικό του λογισμικό πάνω στην XML χωρίς να πρέπει να πληρώσετε τίποτα σε κανέναν, και δεν υπάρχει δέσμευση προς έναν μόνο κατασκευαστή Υπάρχουν ήδη εφαρμογές της XML σε πολλά πεδία Σήμερα έχουν ήδη αναπτυχθεί πλήθος εφαρμογών που στηρίζονται στην XML και καλύπτουν πολλά πεδία της βιομηχανίας και των επιστημών. Τα στάνταρτ που ακολουθούν αυτές οι εφαρμογές καθώς και το πλαίσιο υλοποίησής τους έχουν καθοριστεί από διάφορους ανεξάρτητους μη κερδοσκοπικούς ή κυβερνητικούς οργανισμούς, όπως είναι η W3C και η OASIS. Οπότε είναι εύκολο για μια επιχείρηση να υιοθετήσει κάποια από τις ήδη υπάρχουσες εφαρμογές ώστε να επιτελέσει σταδιακά τη μετάπτωση της σε XML-based τεχνολογίες Μειονεκτήματα της XML Η XML βεβαίως δεν αποτελεί πανάκεια. Υπάρχουν και κάποια μειονεκτήματα και αδυναμίες που την καθιστούν λιγότερο ελκυστική σαν επιλογή σε ορισμένες περιπτώσεις. Τα πιο σημαντικά από αυτά παρουσιάζονται στις παραγράφους που ακολουθούν Αβεβαιότητα για το μέλλον Μιλώντας για μια τεχνολογία που κινείται στο χώρο της πληροφορικής και της επικοινωνίας, ενός ραγδαία εξελισσόμενου κλάδου, ποτέ δεν μπορούμε να είμαστε σίγουροι για το τι μας επιφυλάσσει το μέλλον. Παρόλα αυτά η XML είναι μεν μια 27

28 καινούρια τεχνολογία, καθώς εμφανίστηκε επίσημα το 1998, αλλά παρόλα αυτά μπορεί να θεωρηθεί ως ώριμη τεχνολογία καθώς στηρίχθηκε στην SGML, η οποία αναπτύχθηκε στις αρχές της δεκαετίας του '80, τυποποιήθηκε από τον ISO το 1986 και χρησιμοποιήθηκε ευρέως σε προγράμματα με εκτεταμένη τεκμηρίωση. Οι σχεδιαστές της XML επέλεξαν τα καλύτερα τμήματα της SGML, χρησιμοποίησαν την εμπειρία που είχαν αποκτήσει κατά την ανάπτυξη της HTML, και παρήγαγαν μία γλώσσα η οποία δεν είναι λιγότερο ισχυρή από την SGML αλλά είναι πιο κανονικοποιημένη και πολύ πιο εύχρηστη. Ήδη η XML έχει βρει εφαρμογή σε όλους σχεδόν τους τομείς της πληροφορικής, της ηλεκτρονικής επικοινωνίας και του διαδικτύου, ενώ αποτελεί τη βάση του ανερχόμενου σημασιολογικού ιστού. Ακόμα και αν υπάρξει κάποια στιγμή μια τεχνολογία που θα την αντικαταστήσει, είναι πολύ πιθανόν η διάδοχός της να ακολουθεί και αυτή με τη σειρά της τις αρχές της XML, καθώς χαρακτηριστικά της XML όπως η απλότητα της δομής και η επεκτασιμότητά της, είναι στοιχεία που δύσκολα θα αντικατασταθούν Αδυναμία αναπαράστασης μη-ιεραρχικών δομών Τα αρχεία XML ακολουθούν μια δενδροειδή, ιεραρχική δομή. Για το λόγο αυτό η XML συναντάει δυσκολία και απαιτείται περισσότερη προσπάθεια για την αποτύπωση μη-ιεραρχικών δομών δεδομένων. Προβληματική είναι επίσης η αναπαράσταση σχεσιακών (relational) ή αντικειμενοστραφών (object-oriented) μοντέλων Περιορισμένη υποστήριξη από browsers Οι παλαιότεροι καθώς και κάποιοι από τους σημερινούς browsers παρέχουν μια περιορισμένη υποστήριξη για την XML και τις συμπληρωματικές τις τεχνολογίες. Αν και οι ανερχόμενες εκδόσεις των browsers πρόκειται να καλύψουν πλήρως το πρόβλημα αυτό, πολλές επιχειρήσεις και ιδιώτες σήμερα χρησιμοποιούν παλαιότερες εκδόσεις στους υπολογιστές τους, με αποτέλεσμα να αντιμετωπίζουμε προβλήματα ασυμ-βατότητας. Κοιτώντας βέβαια μπροστά το πρόβλημα αυτό πρόκειται να εκλείψει τελείως στα επόμενα χρόνια Αρχεία μεγάλα σε μέγεθος με επαναλαμβανόμενα στοιχεία Τα αρχεία XML, λόγω του αυτό-περιγραφόμενου χαρακτήρα τους και όντας απλά αρχεία κειμένου, εμφανίζουν στοιχεία πλεονασμού και επανάληψης. Αυτό δυσχεραίνει σε ένα βαθμό την αναγνωσιμότητα των XML εγγράφων από τον άνθρωπο και την αποδοτικότητα επεξεργασίας τους από εφαρμογές λογισμικού. Επίσης, οδηγεί στην δημιουργία αρχείων συγκριτικά μεγαλύτερων σε μέγεθος, σε σχέση με αντίστοιχα δυαδικά αρχεία, δυσχεραίνοντας τη χρήση τους σε περιπτώσεις περιορισμένου bandwidth, αν και η συμπίεση των αρχείων, χρησιμοποιώντας αλγορίθμους όπως το zip για παράδειγμα, μπορεί να αντιμετωπίσει το πρόβλημα στις περισσότερες των περιπτώσεων Απαίτηση εξειδικευμένων γνώσεων για ανάπτυξη XML σχημάτων Αν και η XML χρησιμοποιεί μια σχετικά απλή δομή που είναι εύκολα αναγνώσιμη και κατανοητή, η ανάλυση και ο σχεδιασμός μιας καινούριας γλώσσας βασισμένης 28

29 στην XML απαιτεί εξειδικευμένες γνώσεις και ικανότητες. Συγκεκριμένα, επειδή η δομή ενός XML εγγράφου έχει πολύ μεγάλη σημασία, απαιτείται επιδεξιότητα και εμπειρία σε θέματα ανάλυσης κειμένων για την κατάλληλη επιλογή του περιεχομένου, το σχεδιασμό της δομής και της σήμανσης που θα χρησιμοποιηθεί και την ανάπτυξη του σχήματος που τελικά θα ακολουθεί το έγγραφο. Επίσης, εξ αιτίας της κληρονομικότητάς της από την πολύπλοκη και απαιτητική SGML, η σύνταξη της XML περιέχει μερικά δυσνόητα χαρακτηριστικά που δυσκολεύουν ακόμα περισσότερο τη υλοποίησή της. Βέβαια, όπως άλλωστε έχει ήδη αναφερθεί, υπάρχει έτοιμα ανεπτυγμένα πολλά παράγωγα της XML που καλύπτουν το σύνολο των βιομηχανικών και επιχειρησιακών απαιτήσεων. Παρόλα αυτά όμως είναι σίγουρο ότι πάντα θα υπάρχει μια έστω και μικρή απαίτηση για το σχεδιασμό κάποιου καινούριου ή την επέκταση ενός υπάρχοντος XML σχήματος Μετάβαση και οφέλη υιοθέτησης τεχνολογίας XML Η διαδικασία της μετάβασης σε ένα σύστημα που στηρίζεται στην τεχνολογία της XML απαιτεί, εκτός των άλλων, και την μεταφορά των εγγράφων από την υπάρχουσα κωδικοποίηση σε έγγραφα που στηρίζονται στην XML. Η διαδικασία αυτή δεν αποτελεί μια τυπική διαδικασία μετατροπής τύπου αρχείων (file format conversion). Πρόκειται για μια πιο επίπονη και σημαντική διαδικασία καθώς με τον τρόπο αυτό τα δεδομένα αποκτούν δομή και σημασιολογική πληροφορία, αποκτώντας παράλληλα αυξημένη επιχειρησιακή αξία. Η μετατροπή από ένα format που επικεντρώνεται στην παρουσίαση των δεδομένων, όπως είναι η HTML, η RTF, η MIF και η PostScript, σε μια δομημένη μορφή, όπως είναι η XML, απαιτεί την κατανόηση της πραγματικής πληροφορίας που περιέχουν τα δεδομένα. Αυτό με τη σειρά του απαιτεί μια ανάλυση της δομής των εγγράφων και καθορισμό της σημασιολογίας (semantics) των επιμέρους τμημάτων, πάνω στα οποία στηρίζονται οι διάφορες επιχειρησιακές διαδικασίες. Το θετικό στοιχείο βέβαια αποτελεί, για άλλη μια φορά, το γεγονός ότι έχουν ήδη πραγματοποιηθεί παρόμοιες αναλύσεις που καλύπτουν σχεδόν όλο το φάσμα των επιχειρησιακών πεδίων. Πολλά έτοιμα εργαλεία και μοντέλα είναι διαθέσιμα, και μάλιστα δωρεάν, τα οποία μπορούν να βοηθήσουν σε όλες τις φάσεις της διαδικασίας μετάβασης από το υπάρχον σύστημα σε ένα σύστημα που στηρίζεται στην τεχνολογία της XML. Τα οφέλη που προκύπτουν από την υιοθέτηση της XML είναι πολλά και πολλαπλασιάζονται όσο ολοένα και περισσότερες επιχειρήσεις πραγματοποιούν τη μετάβαση στην XML. Η επιλογή της XML απαλλάσσει την δέσμευση από συγκεκριμένους κατασκευαστές και προμηθευτές, επιτρέποντας διαλειτουργικότητα με άλλες επιχειρήσεις παγκοσμίως, κάνοντας χρήση του παγκόσμιου ιστού. Η απαίτηση για εξειδικευμένες εφαρμογές λογισμικού μπορεί να αντικατασταθεί με web-based λύσεις που δεν απαιτούν παρά έναν απλό browser. Τα δεδομένα μπορούν να ταξιδεύουν με ασφάλεια μεταφέροντας ολόκληρη την πληροφορία ενσωματωμένη μέσα στην εσωτερική δομή τους. 29

30 30

31 ΚΕΦΑΛΑΙΟ 3. Μελέτη και σχεδιασμός του Κατανεμημένου Δρομολογητή (Distributed Router) Η μοντελοποίηση αποτελεί βασικό εργαλείο στην ανάπτυξη και αξιολόγηση μιας νέας ιδέας. Στο κεφάλαιο 3 προτείνουμε μια αρχιτεκτονική για έναν κατανεμημένο gigabit δρομολογητή νέας γενιάς που σχεδιάστηκε και υλοποιήθηκε στα πλαίσια του ευρωπαϊκού προγράμματος IST FlexiNET [1]. Στο πρόγραμμα FlexiNET, μια υπηρεσία (service) που καλείτε «δυναμική υλοποίηση υπηρεσιών» (dynamic service deployment) δυναμικά υλοποιεί, επιβλέπει και απεγκαταστεί υπηρεσίες με βάση τις απαιτήσεις ενός χρήστη ή ενός συστήματος. Η προτεινόμενη αρχιτεκτονική του κατανεμημένου δρομολογητή επιτυγχάνει αύξηση των επιδόσεων λειτουργικότητα και αξιοπιστία. Η αύξηση των επιδόσεων επιτυγχάνετε καθώς μπορούμε να προσθέτουμε καινούργια modules που να χουν όμοιες διεπαφές σε ένα component που καλείτε εκτατό λειτουργικό block. Επίσης νέες υπηρεσίες μπορούν εύκολα να προστεθούν με την ένταξη νέων modules που να χουν την κατάλληλη λειτουργικότητα. Ένα σημαντικό χαρακτηριστικό του μοντέλου είναι και το έξης: η «ανεπάρκεια» σε ένα module δεν θα επηρεάσει τα υπόλοιπα, καθώς λειτουργούν ανεξάρτητα. 3.1 Παρουσίαση προτεινόμενης λύσης Οι μελλοντικοί δρομολογητές πρέπει να προσφέρουν και επεξεργασία πακέτων εκτός από δρομολόγηση και προώθηση. Η εκτεταμένη επεξεργασία πακέτων μπορεί να κυμαίνεται από σε βάθος έλεγχο των πακέτων για να επιτύχουμε φιλτράρισμα μέχρι και ειδικού σκοπού μορφοποίηση για να επιτευχθεί προηγμένη προσαρμογή μέσων (advanced media adaptation). Μολονότι οι σημερινοί βασισμένοι σε λογισμικό δρομολογητές [2-6] αποδεικνύεται ότι λειτουργούν κατά τη βασική ιδέα-αρχή για την οποία σχεδιάστηκαν, δεν μπορούν να επιτύχουν υψηλές επιδόσεις και επεκτασιμότητα. Οι τελευταίας γενιάς επεξεργαστές δικτύου (network processors) [7] παρέχουν ένα κατάλληλο στοιχείο επεξεργασίας πακέτων στη διεπαφή σύνδεσης. Βοηθούμενοι από μια καλά ορισμένη component-based αρχιτεκτονική, προσφέρουν μια εξαιρετική επεξεργαστική ισχύ για δρομολογητές υψηλών αποδόσεων. Ένας τέτοιου τύπου ιεραρχικά δομημένος δικτυακός κόμβος ξεπερνά τους περιορισμούς σε αποδοτικότητα και επεκτασιμότητα, ωστόσο αυξάνει την πολυπλοκότητα στη διαχείριση και στον έλεγχο της πλατφόρμας του δρομολογητή. Οι σημερινοί δρομολογητές είναι απλά κουτιά. Ένας κατανεμημένος δρομολογητής είναι μια συλλογή από off-the-self φυσικά κουτιά συνδεδεμένα σε ένα τοπικό δίκτυο έτσι ώστε να εμφανίζονται σαν ένα φυσικό κουτί με τα χαρακτηριστικά ενός κανονικού δρομολογητή. Υπάρχει μια ξεκάθαρη τάση στην αύξηση των λειτουργιών που ένας δικτυακός δρομολογητής υποστηρίζει. Ξέχωρα από το παραδοσιακό forwarding, σήμερα οι δρομολογητές προγραμματίζονται να φιλτράρουν πακέτα, να μεταφράζουν διευθύνσεις, να παίρνουν επιπέδου-n αποφάσεις δρομολόγησης, να εκτελούν proxies, 31

32 να υποστηρίζουν υπολογιστικά αδύναμες οικιακές συσκευές και να υποστηρίζουν ειδικού σκοπού εικονικά δίκτυα. Γενικά μιλώντας, περιμένουμε οι δρομολογητές να υποστηρίξουν μια μεγάλη γκάμα από λειτουργίες δρομολόγησης, με την κάθε λειτουργία να επεξεργάζεται και να προωθεί τα πακέτα. Την ίδια στιγμή δρομολογητές προγραμματίζονται για να υλοποιούν νέες υπηρεσίες. Νέο υλικό καθιστά εύκολη την δημιουργία δρομολογητών με τη χρήση εμπορικών και όχι μόνο κομματιών, όπως επεξεργαστές δικτύων [7], συστήματα μεταγωγής πακέτων -system area network switches [8] και προγραμματιζόμενων καρτών [9]. Η προτεινόμενη αρχιτεκτονική του κατανεμημένου δρομολογητή έχει μια δυναμική πλατφόρμα που υποστηρίζει λογισμικό για την υλοποίηση της ποιότητας υπηρεσίας (QoS). Παρέχει όλη εκείνη την απαραίτητη υποδομή ώστε να υποστηρίζει την εσωτερική επικοινωνία των κομματιών που υλοποιούν τις υπηρεσίες. Επιπλέον, η προτεινόμενη αρχιτεκτονική παρέχει όλους τους απαραιτήτους μηχανισμούς αναφορικά με την εγκατάσταση, το συντονισμό και την απεγκατάσταση των υπηρεσιών σε κάθε επεξεργαστή που υποστηρίζει λογισμικό. 3.2 Ορισμοί FlexiNET Η προτεινόμενη προσέγγιση για τη σωστή διαχείριση των πόρων αποτελεί μέρος του DSD module που αναπτύξαμε κατά τη διάρκεια υλοποίησης του προγράμματος FlexiNET. Ο κύριος σκοπός του προγράμματος ήταν να καθορίσει και να υλοποιήσει μια δυναμική και πρότυπη αρχιτεκτονική που να περιλαμβάνει ικανό αριθμό δικτυακών κομματιών (elements) που να προσφέρουν έλεγχο περιαγωγής, έλεγχο μεταγωγής και δρομολόγησης, καθώς και προηγμένο έλεγχο των υπηρεσιών στα σημεία σύνδεσης του δικτύου. Η ιδέα δεν ήταν να αντικαταστήσουμε ή να βελτιώσουμε την ήδη υπάρχουσα δικτυακή υποδομή, αλλά να προσφέρουμε μια ειδικού βάρους συμπληρωματική δικτυακή αρχιτεκτονική που θα υποστήριζε διαχωρισμό των δεδομένων, της λογικής της υπηρεσίας και του ελέγχου από το ίδιο το δίκτυο μεταφοράς. Η μεταφορά της ενδο-διασύνδεσης, της ευφυΐας, του DSD και της διαχείρισης των υπηρεσιών στα άκρα του δικτύου κρίνετε ουσιαστικό. Αυτό θα επιτρέψει στα κεντρικά δίκτυα (core networks) να χρησιμοποιηθούν σαν πόροι ενός backbone δικτύου που υλοποιούνται και επικοινωνούν με δικτυακές υπηρεσίες και εφαρμογές [10-11] Forwarding and control element separation Το Forwarding and control element separation (ForCES) [12-14] είναι μια προσπάθεια μιας ομάδας εργασίας της IETF. Ο βασικός στόχος είναι η μοντελοποίηση ενός πρωτοκόλλου μεταξύ των στοιχείων του επιπέδου ελέγχου (control plane) και του επιπέδου προώθησης (forwarding plane). Ακόμη το ForCES προσπαθεί να μοντελοποιήσει τις δυνατότητες και τις λειτουργίες στο επίπεδο προώθησης. Το στοιχείο προώθησης (forwarding element-fe) είναι μια συλλογή από λογικά λειτουργικά κομμάτια ομαδοποιημένα σε γράφο. 32

33 Execution environment Το περιβάλλον εκτέλεσης (Execution environment-ee) είναι η πλατφόρμα στην οποία τα components λειτουργούν. Ένα παράδειγμα είναι ο Java Virtual Machine. Από την πλευρά του ForCES, ένα ΕΕ μπορεί να είναι ένα FE ή ένα στοιχείο ελέγχου (control element-ce) [12-14] Component Τα components είναι κομμάτια κώδικα που τρέχουν σε ένα ΕΕ και επιτελούν καθορισμένη λειτουργία. Μια επιλογή είναι να ακολουθήσουμε το μοντέλο ForCES και τα components να είναι LFBs (Logical Function Blocks) [12-14]. Ομαδοποιώντας LFBs μπορούμε να δημιουργήσουμε FEs. Η ομαδοποίηση γίνεται στο επίπεδο EE, έτσι ώστε το EE να γνωρίζει ποια FEs έχει. 3.3 Απαιτήσεις του κατανεμημένου δρομολογητή Η ιδέα του να έχουμε διαφορετικά επίπεδα στο μοντέλο μας υιοθετήθηκε με σκοπό να μπορέσουμε να ομαδοποιήσουμε και να διαχωρίσουμε διαφορετικές έννοιες. Επιπλέον κατά τη διάρκεια του σχεδιασμού και εν συνεχεία της υλοποίησης φροντίσαμε ώστε το κάθε επίπεδο να γνωρίζει τα από κάτω του επίπεδα και το ακριβώς από πάνω του, χωρίς να υπάρχει η ανάγκη να γνωρίζει τους γείτονές του Απαιτήσεις High-Level Στο High-Level το μοντέλο θα πρέπει να παρέχει διεπαφές στα υπόλοιπα μοντέλα. Δηλαδή σε τυχόν άλλα μοντέλα κατανεμημένων δρομολογητών Απαιτήσεις Module-Level Το Module-Level θα πρέπει να παρέχει πληροφορίες σχετικά με την κεντρική μονάδα επεξεργασίας του (CPU). Πληροφορίες όπως ικανότητα απόδοσης, τύπος επεξεργαστή ρολόι, καθώς και άλλες ειδικές πληροφορίες δυνατότητες που μπορεί να υπάρχουν Απαιτήσεις Execution Environment-Level Το Execution Environment είναι η βάση πάνω στην οποία τα components τρέχουν για να δημιουργήσουν μια υπηρεσία. Το μοντέλο πρέπει να είναι ικανοποιητικά περιληπτικό και να επιτρέπει components από διαφορετικά EE, ακόμη και διαφορετικά module, να επικοινωνούν για να δημιουργήσουν μια υπηρεσία. Ένα EE πρέπει να είναι σε θέση να αναγνωρίζει την διαθεσιμότητα των πόρων καθώς και τους διαθέσιμους κάθε φορά πόρους. Ένα EE πρέπει να γνωρίζει τις διασυνδέσεις των δικών του components, ενώ τα components δεν χρειάζονται αυτή την πληροφορία. 33

34 Απαιτήσεις Component-Level Δεν υπάρχουν πολλές απαιτήσεις στο Component-Level (CL). Κρίνεται ωστόσο σημαντικό το κάθε component να περιγραφεί με κάθε λεπτομέρεια. 3.4 Αρχιτεκτονικός σχεδιασμός Αρχιτεκτονική του κατανεμημένου δρομολογητή Η ιδέα πίσω από την αρχιτεκτονική κατανεμημένων δρομολογητών όπως προτείνεται από τη Hitachi [15] είναι ο διαχωρισμός της βασικής λειτουργίας παράδοσηςπαραλαβής πακέτων από τη λογική υπηρεσιών/ελέγχου που μπορεί να υπάρχει στους κόμβους πρόσβασης προκειμένου να ενθαρρυνθεί η δημιουργία υπηρεσιών με ικανότητες υλοποίησης αυτών. Όπως απεικονίζεται στην εικόνα 1, η αρχιτεκτονική αποτελείται από δύο block, το βασικό (Basic Block) και το εκτεταμένο block (Extended Block). Κάθε λειτουργικό block μπορεί να αποτελείται από πολλές ενότητες. Εικόνα 1: Αρχιτεκτονική Κατανεμημένου Δρομολογητή Το βασικό λειτουργικό block έχει ενότητες επεξεργασίας πακέτων που ταξινομούν τα λαμβανόμενα πακέτα, ανακτούν τους πίνακες δρομολόγησης, επαναδρομολογούν ή τερματίζουν τις ροές πακέτων προς τις εκτεταμένες ενότητες των λειτουργικών block για περαιτέρω επεξεργασία. 34

35 Το εκτεταμένο block λειτουργίας έχει ενότητες υπηρεσιών που διαχειρίζονται την επεξεργασία για λειτουργίες συγκεκριμένων υπηρεσιών και ενότητες ελέγχου και διαχείρισης που επεξεργάζονται τα πρωτόκολλα δρομολόγησης, τις λειτουργίες διαχείρισης των agent κτλ. Αυτές οι ενότητες παρεμβάλλονται και αφαιρούνται όπως απαιτείται για καλύτερη απόδοση ή για παροχή υπηρεσιών από τον κόμβο. Τα δύο block συνδέονται χαλαρά με μια γενική φυσική διεπαφή όπως είναι μια διεπαφή δικτύων Gigabit Ethernet, και επικοινωνούν μεταξύ τους με ανταλλαγή πακέτων που περιλαμβάνουν μηνύματα ελέγχου πέρα από αυτήν την διεπαφή. Το πλεονέκτημα μιας τέτοιας αρχιτεκτονικής είναι ότι οι νέες ενότητες μπορούν να προστεθούν δυναμικά στα εκτεταμένα block όπου αυτές χρειάζονται. Σαν αποτέλεσμα η ευελιξία και η εξελιξιμότητα βελτιώνονται πολύ επειδή οι ενότητες που μπορούν να προστεθούν δημιουργούν μια ομάδα πόρων και είναι σε θέση να φιλοξενήσουν νέα λειτουργικότητα υπό μορφή νέων υπηρεσιών και στοιχείων. Αυτό το χαρακτηριστικό γνώρισμα θα χρησιμοποιηθεί όταν περιγράφουμε την αρχιτεκτονική DSD. Το σχήμα 2 παρουσιάζει την εσωτερική διαμόρφωση του κόμβου. Εικόνα 2: Εσωτερική διαμόρφωση του κόμβου Δομή μοντέλου κόμβων Έχουμε προσεγγίσει τη μοντελοποίηση των πληροφοριών κόμβων που είναι σχετικές με την υλοποίηση, ως μία δενδροειδή δομή τεσσάρων στρωμάτων, η οποία είναι ευθυγραμμισμένη με τη δομή της αρχιτεκτονικής του διανεμημένου δρομολογητή, καθώς η τελευταία είναι ουσιαστικά το περιβάλλον στο οποίο λαμβάνει χώρα η υλοποίηση (Εικόνα 3). Κινούμενοι από τη ρίζα προς τα φύλλα, κάθε επίπεδο συμβολίζει εκείνο το μέρος των πληροφοριών που έχουν συσχετιστεί με ένα συγκεκριμένο στοιχείο της διανεμημένης αρχιτεκτονικής. Επιπρόσθετα, το κάθε στοιχείο περιέχει πληροφορίες που αφορούν τον κόμβο-γονέα στο ανώτερο επίπεδο, καθώς και τους κόμβους-απογόνους στο αμέσως χαμηλότερο επίπεδο. 35

36 Το υψηλό επίπεδο (H.L.) (ρίζα) αντιστοιχεί στον ολοκληρωμένο διανεμημένο δρομολογητή. Όπως εξηγήθηκε παραπάνω, ένας διανεμημένος δρομολογητής αναμένεται στην πραγματικότητα να είναι μια συλλογή από off-the-shelf φυσικές ενότητες συνδεδεμένες μέσω ενός διαδρόμου υψηλής ταχύτητας, και διαχειριζόμενου έτσι ώστε να εμφανίζεται ως ένα φυσικό κουτί με τη λειτουργικότητα ενός συνηθισμένου δρομολογητή. Το είδος των πληροφοριών που παρέχονται από αυτό το επίπεδο είναι αυτό που επιτρέπει σε μία οντότητα που προβάλλει ερωτήματα, να ανακαλύψει την τρέχουσα τοπολογία του διανεμημένου κόμβου του δικτύου. Το επόμενο επίπεδο αναπαριστά το επίπεδο ενοτήτων (M.L.) που σχετίζεται με πληροφορίες για ένα ευρύ φάσμα από πιθανές φυσικές ενότητες. Παραδείγματα ενοτήτων είναι ολόκληρα PCs, ASICs ή ενσωματωμένα συστήματα ειδικών σκοπών όπως διατάξεις επεξεργαστών δικτύου. Το τρίτο επίπεδο είναι το στρώμα εκτέλεσης του περιβάλλοντος (E.E.L.), και πιο συγκεκριμένα τα απαραίτητα προγραμματιστικά περιβάλλοντα στα οποία τα στοιχεία τρέχουν. Αυτά τα προγραμματιστικά περιβάλλοντα φιλοξενούνται από συγκεκριμένες ενότητες. Για παράδειγμα, μία Java Virtual Machine φιλοξενεί στοιχεία υπηρεσίας υλοποιημένα σε Java. Τέλος, το επίπεδο στοιχείου (C.L.) περιέχει πληροφορίες για τα πραγματικά στοιχεία υπηρεσιών που πρόκειται να υλοποιηθούν. Τα στοιχεία είναι συνήθως τμήματα software που τρέχουν στο περιβάλλον εκτέλεσης και που εκτελούν συγκεκριμένες λειτουργίες στα πλαίσια της υπηρεσίας που πραγματοποιούν. Το μοντέλο κόμβων περιγράφεται σε XML και παρέχει δυνατότητες για την ενσωμάτωση καινούριων ενοτήτων καθώς αυτά προστίθενται δυναμικά στην αρχιτεκτονική του δρομολογητή. Σε αυτή τη βάση, όταν μια νέα ενότητα ενσωματώνεται στον διανεμημένο δρομολογητή στέλνει αυτόματα ένα XML αρχείο στον Manager πόρων περιγράφοντας τον εαυτό της. Ο Manager πόρων με τη σειρά του ενημερώνει το μοντέλο κόμβων. Παρόμοιες λειτουργίες πραγματοποιούνται όποτε καινούρια στοιχεία υλοποιούνται ή οι καταστάσεις αλλάζουν. Με αυτό τον τρόπο, το μοντέλο κόμβου παραμένει διαρκώς ενημερωμένο, επιτρέποντας επομένως στον Matchmaking αλγόριθμο να λάβει αποφάσεις που είναι όσο το δυνατόν πιο ακριβείς. Εικόνα 3: Δομή του Μοντέλου Κόμβων 36

37 3.5 Προδιαγραφές του Μοντέλου Κόμβων Σκοπός αυτής της παραγράφου είναι να δώσει μια σε βάθος περιγραφή των διαφόρων χαρακτηριστικών που κάθε επίπεδο του Μοντέλου Κόμβων έχει. Με αυτό τον τρόπο γίνεται πολύ ποιο εύκολη η κατανόηση της αρχιτεκτονικής που παρουσιάζουμε και κατά συνέπεια γίνεται ποιο εύκολη και η κατανόηση του όλου συστήματος της δυναμικής υλοποίησης υπηρεσιών Υψηλό επίπεδο High level Identification: To πεδίο Identification είναι ένας μοναδικός αριθμός του όλου κόμβου. Layers: Το πεδίο Layers έχει μια τιμή που αντιπροσωπεύει τον μέγιστο αριθμό των OSI επιπέδων που ο συγκεκριμένος κόμβος είναι ικανός να υποστηρίξει. Για παράδειγμα 3 σημαίνει ότι ο κόμβος είναι ικανός να επεξεργαστεί μόνο τα τρία πρώτα επίπεδα του OSI πρωτοκόλλου. Interface: Το πεδίο Interface στο High Level δείχνει τη φυσική Global διεπαφή του κόμβου. Όταν λέμε Global εννοούμε ότι αυτή η διεπαφή ενώνει τον κόμβο με εξωτερικά modules ή στο Internet. Το πεδίο είναι complex με τέσσερα χαρακτηριστικά: ID: identification for each interface IP address: The Global IP address of the interface MAC Address: The MAC address of the interface Type: Type defines the type of the connection. For example Gigabit Ethernet. Abilities: Το πεδίο Abilities είναι ένα string πεδίο που δηλώνει τι είναι ικανός ο κόμβος να εκτελέσει. Ένα παράδειγμα Ability μπορεί να είναι είτε το Authentication είτε το Dynamic Service Deployment. Το συγκεκριμένο πεδίο έχει ακόμη και έναν αριθμό ID που μοναδικά δηλώνει το ability. Bus: Το πεδίο Bus στο the High Level χρησιμοποιείται για να δηλώσει τις συνδέσεις μεταξύ των ενοτήτων (modules) του κόμβου. κάθε Module συνδέεται με τουλάχιστον ένα Bus. Με το να καθορίσουμε ποια modules συνδέονται με ποια Buses, είμαστε σε θέση να χαρτογραφήσουμε τις όποιες συνδέσεις των ενοτήτων του Node. Αυτό το πεδίο περιλαμβάνει τα παρακάτω χαρακτηριστικά: Bus ID: an identification field for each Bus Module ID: Multiple Module ID s for each Bus ID Type: Defines the type of connection. For example Gigabit Ethernet connection Επίπεδο Ενοτήτων Module level Identification: Αυτό το πεδίο διατηρεί έναν αριθμό ταυτότητα που μοναδικά αναγνωρίζει ένα Module από τα υπόλοιπα Modules του ιδίου Node. Operating System: Αυτό το πεδίο διατηρεί πληροφορίες σχετικά με το OS του Module. Μπορεί να υπάρχει ένα μόνο OS στο Module. Αυτό το πεδίο είναι complex και έχει δυο χαρακτηριστικάs: Name: The Name of the OS, for example Red Hat Linux. Version: The Version of the OS, for example

38 Resources: Αυτό το πεδίο διατηρεί τους πόρους του Module. Είναι complex και περιέχει ένα type field για να διαχωρίσει τους διαφορετικούς τύπους των πόρων. Για παράδειγμα Threads ή CPU Cycles. Κάθε type filed είναι complex και διατηρεί δυο επιπλέον τιμές: Maximum: Τα Resources που έχει το Module. Available: Τα διαθέσιμα Resources του Module που μπορούν να διατεθούν σε νέα EE s ή σε ήδη υπάρχοντα EE s. Central Processing Unit (CPU): Αυτό το πεδίο είναι complex και παρέχει πληροφορίες σχετικά με τις δυνατότητες της CPU του Module. Μπορεί να υπάρχουν περισσότερες από μια CPU σε ένα Module. Αυτό το πεδίο έχει μια ID που μοναδικά αναγνωρίζει κάθε διαφορετική CPU. Κάθε ID έχει τρία επιπλέον χαρακτηριστικά: Type: Defines the type of the CPU, for example Intel P4. Clock Speed: Defines the clock speed, for example 3.4 GHz. BUS: Defines the Internal Bus of the CPU, for example 133 MHz. Interface: Αυτό το πεδίο είναι complex και διατηρεί πληροφορίες για τα φυσικές διεπαφές κάθε Module. Έχει δυο διαφορετικούς τύπους: External: Only an ID which refers to the interfaces of the Node. It defines which Module has which interface. Internal: Defines interfaces used for internal communication, and has three attributes: o BUS ID: An ID which refers to the BUS of the High Level. Defines that this internal interface is used to communicate over this BUS. o IP Address: The IP address of the interface. o MAC Address: The MAC address of the interface. Abilities: Αυτό το πεδίο δεν διατηρεί κάποια προδιαγραφή σχετική με τις δυνατότητες του Module αλλά διατηρεί ένα ID που δείχνει στο ability του High Level. Plane: Υπάρχουν τρία επίπεδα, το Control Plane, το Forwarding Plane, και το Management Plane. Στον κόμβο ασχολούμαστε μόνο για τα Control και Forwarding Plane. Ένα Module μπορεί να έχει ένα από τα δυο ή και τα δυο. Κάθε Plane μπορεί να φιλοξενήσει πάνω από ένα Execution Environment s. Αυτό το πεδίο διατηρεί πληροφορίες για το ποια Planes το συγκεκριμένο Module μπορεί να διαχειριστεί και επίσης των αριθμό των Execution Environments που ανά πάσα στιγμή τρέχουν στο κάθε Plane Επίπεδο Περιβάλλοντος Εκτέλεσης Execution Environment level Identification: Αυτό το πεδίο κρατά μοναδικές τιμές για το κάθε Execution Environment μέσα σε ένα Module. Συνδυάζοντας το Identification Field του Execution Environment και το Identification Field του Module, έχουμε μια τιμή η οποία είναι μοναδική μέσα στο όλο μοντέλο. Το πεδίο Identification του Execution Environment κρατά μια μοναδική τιμή μέσα σε ένα συγκεκριμένο plane ενός Module. Version: Αυτό το πεδίο κρατά την τιμή της έκδοσης του Execution Environment. Για παράδειγμα θα μπορούσε να είναι ένα Java Virtual Machine version 1.4b. CPU: Αυτό το πεδίο κρατά τον τύπο του επεξεργαστή πάνω στον οποίο τρέχει το συγκεκριμένο Execution Environment. Για παράδειγμα μπορεί να τρέχει πάνω στον IXP 2400 (στα Microengines) ή σε έναν ARM επεξεργαστή. Resources: Αυτό το πεδίο διατηρεί τους πόρους του Execution Environment. Είναι complex και περιέχει ένα type field για να διαχωρίσει τους διαφορετικούς τύπους 38

39 των πόρων. Για παράδειγμα Threads ή CPU Cycles. Κάθε type filed είναι complex και διατηρεί δυο επιπλέον τιμές: Maximum: Τα Resources που έχουν δοθεί στο EE από το OS. Available: Τα διαθέσιμα Resources που μπορεί το συγκεκριμένο EE να διαθέσει. EE Communication: Αυτό το πεδίο διατηρεί πληροφορίες σχετικά με τα ID s των Execution Environments που βρίσκονται σε διαφορετικά Modules. Με αυτό τον τρόπο κάθε στοιχείο (component) που θέλει να επικοινωνήσει με ένα component σε ένα διαφορετικό Module θα είναι σε θέση να επικοινωνεί χρησιμοποιώντας την παραπάνω πληροφορία. Επίσης, το συγκεκριμένο πεδίο μπορεί να αναφέρεται στο ίδιο Module, έχοντας έτσι την πληροφορία για το ποία Execution Environments συνδέονται μεταξύ τους. Internal Grouping: Όπως και το πεδίο BUS στο High Level, το Internal Grouping πεδίο κρατά πληροφορία σχετικά με τις διασυνδέσεις των στοιχείων (Components). Αυτό το complex πεδίο αποτελείται από δυο διαφορετικά πεδία: G_ID: Group ID, που είναι μοναδικό για κάθε group. C_G_ID: Component or Group ID. Μπορεί να είναι είτε ένα Component ID είτε ένα Group ID. Με αυτό τον τρόπο μπορούμε να δημιουργήσουμε πολύπλοκα groups συνδυάζοντας-ομαδοποιώντας ποιο απλά groups μαζί. Abilities: Αυτό το πεδίο δεν διατηρεί κάποια προδιαγραφή σχετική με τις δυνατότητες του Execution Environment level αλλά διατηρεί ένα ID που δείχνει στο ability του High Level Επίπεδο Στοιχείου Component level Identification: Αυτό το πεδίο κρατά μοναδικές τιμές για το κάθε Component μέσα σε ένα Execution Environment. Συνδυάζοντας το Identification Field του Component, το ID του Execution Environment και το Identification Field του Module, έχουμε μια τιμή η οποία είναι μοναδική μέσα στο όλο μοντέλο. Version: Αυτό το πεδίο κρατά την τιμή της έκδοσης του κάθε Component. Για παράδειγμα θα μπορούσαμε να έχουμε έναν Classifier version 1.0. Functionality: Αυτό το πεδίο κρατά πληροφορίες για το τι μπορεί να κάνει το συγκεκριμένο component. Ένα παράδειγμα λειτουργικότητας είναι ο Classifier. Αν αναφερόμαστε στο μοντέλο του ForCES, σαν functionality θα μπορούσαμε να έχουμε ένα LFB. Abilities: Αυτό το πεδίο δεν διατηρεί κάποια προδιαγραφή σχετική με τις δυνατότητες του Component level αλλά διατηρεί ένα ID που δείχνει στο ability του High Level. Attributes: Αυτό το πεδίο κρατά πληροφορίες σχετικές με τις ιδιότητες του Component και είναι complex. Ένα πεδίο Attribute μπορεί να εμφανιστεί περισσότερες από μια φορές στην περιγραφή ενός component και έχει τρία πεδία: ID: Ένα πεδίο ID που είναι μοναδικό για κάθε ιδιότητα που υπάρχει σε ένα Component. Type: Ένα πεδίο Type που ορίζει την τιμή-ιδιότητα. Παράδειγμα Type μπορεί να είναι ένας classifier rule. Value: Το πεδίο Value έχει την πραγματική ιδιότητα όπως αυτή ορίζεται από το πεδίο Type. 39

40 3.6 Συμπεράσματα Η προτεινόμενη αρχιτεκτονική του κατανεμημένου δρομολογητή επιτυγχάνει αύξηση των επιδόσεων λειτουργικότητα και αξιοπιστία. Η αύξηση των επιδόσεων επιτυγχάνετε καθώς μπορούμε να προσθέτουμε καινούργια modules που να χουν όμοιες διεπαφές σε ένα component που καλείτε εκτατό λειτουργικό block. Επίσης νέες υπηρεσίες μπορούν εύκολα να προστεθούν με την ένταξη νέων modules που να χουν την κατάλληλη λειτουργικότητα. Ένα σημαντικό χαρακτηριστικό του μοντέλου είναι και το έξης: η «ανεπάρκεια» σε ένα module δεν θα επηρεάσει τα υπόλοιπα, καθώς λειτουργούν ανεξάρτητα. Η χρησιμότητα και αποτελεσματικότητα της προτεινόμενης αρχιτεκτονικής ελέγχθηκε και επιβεβαιώθηκε κατά τη διάρκεια υλοποίησης του FlexiNET IST προγράμματος. 40

41 ΚΕΦΑΛΑΙΟ 4. Μελέτη, Σχεδιασμός και Υλοποίηση ενός Συστήματος Διαχείρισης Πόρων & Υλοποίησης Στο Κεφάλαιο 4 παρουσιάζεται μια προσέγγιση για ολοκληρωμένο σύστημα διαχείρισης πόρων και υλοποίησης υπηρεσιών. Τα δίκτυα έχουν ζήσει μια αλματώδη ανάπτυξη τα τελευταία χρόνια. Ανάπτυξη που αφορά όχι μόνο το μέγεθος τους αλλά και τη λειτουργικότητά τους. Οι κόμβοι ενός δικτύου μπορούν πλέον να επιτελέσουν και λειτουργίες βασισμένες σε πολιτικές όπως το proxy-caching, το encryption, το tunneling και το firewalling. Στις μέρες μας έχει αρχίσει να εμφανίζετε η δυνατότητα προγραμματισμού στους κόμβους ενός δικτύου, επιτρέποντας έτσι τον πειραματισμό με ποιο πολύπλοκες υπηρεσίες. Η ανάγκη για ποιο γρήγορη υλοποίηση νέων υπηρεσιών στα δίκτυα χρησιμοποιώντας τις ήδη υπάρχουσες πολύπλοκες δυνατότητες θέτει μια νέα, μεγάλη, πρόκληση στα ήδη υπάρχοντα εργαλεία ελέγχου των δικτύων. Η πολυπλοκότητα των υπηρεσιών, ο αριθμός των κόμβων του δικτύου, ο προγραμματισμός τέτοιων κόμβων, και η ταχύτητα απαιτούν μια πρωτοποριακή αντιμετώπιση του αντικειμένου που καλείτε υλοποίηση υπηρεσιών (Service Deployment) Εισαγωγή Στις μέρες μας οι τομείς των δικτύων και της διαχείρισης υπηρεσιών έρχονται σε επαφή με νέες δικτυακές αρχιτεκτονικές, με τεχνολογίες middleware και άλλες προκύπτουσες τεχνολογίες. Τεχνολογίες middleware όπως οι Web services, έχουν ωριμάσει αρκετά και απολαμβάνουν πλέον γενικότερης αποδοχής. Δικτυακές αρχιτεκτονικές και δομές αρχίζουν πλέον να συγκλίνουν με την IP τεχνολογια, δίνοντας έτσι τη δυνατότητα για νέες ολοκληρωμένες και ποιο πολύπλοκες αρχιτεκτονικές. Τέλος, η εμφάνιση νέων φιλόδοξων ερευνητικών δραστηριοτήτων στο τομέα του autonomic computing και των επικοινωνιών βοήθησαν στη δημιουργία νέων προκλήσεων. Η παραπάνω δραστηριότητα συνέπεσε και με το τέλος μιας περιόδου κατά την οποία μεγάλος όγκος τεχνολογίας και τεχνογνωσίας είχε συσσωρευτεί στον τομέα της διαχείρισης των δικτύων και των υπηρεσιών. Η παραπάνω κατάσταση οδήγησε στην ανάπτυξη των CORBA-based και των SNMP-based κατανεμημένων πλατφόρμων ελέγχου. Με βάση τα παραπάνω επιτεύγματα στον χώρο των δικτύων και του έλεγχου των υπηρεσιών άρχισε να γίνεται συζήτηση και να υπάρχει έντονη δραστηριότητα σχετικά με το ποιο θα είναι το παρόν και μέλλον των δυο παραπάνω τομέων. Οι ποιο αξιόλογες μη-κεντρικοποιημένες προσεγγίσεις βασίζονται σε κατανεμημένες αντικειμενοστρεφείς τεχνολογίες όπως η CORBA (Common Object Request Broker Architecture)[16] και Java RMI (Remote Method Invocation) [17]. Με βάση αυτά τα παραδείγματα, η πληροφορία μπορεί να συλλέγει από κάθε προορισμό με τη βοήθεια αιτημάτων σε κατανεμημένα απομακρυσμένα αντικείμενα. Αυτές οι τεχνολογίες επιτρέπουν στις διεργασίες ελέγχου να εκτελεστούν σε απλά service-oriented διεπαφές. Είναι όμως μεγάλος ο αριθμός των πόρων που απαιτούνται για μεγάλους 41

42 αριθμούς αντικειμένων, και οδηγούμαστε έτσι σε μη ικανοποιητική ανάκτηση αντικειμένων. Πέρα από μη-κεντρικοποιημένες προσεγγίσεις που βασίζονται σε κατανεμημένες αντικειμενοστρεφείς τεχνολογίες και πράκτορες (agents), υπάρχουν και προσεγγίσεις που προσφέρουν δυνατότητες ελέγχου πάνω από το Web. Τέτοιες προσεγγίσεις βασίζονται στο Common Information Model (CIM) [18], που περιλαμβάνει ένα σετ από συνήθεις λειτουργίες ελέγχου. Η αρχιτεκτονική του δικτύου κινείται πλέον σε ποίο δίκτυα με έμφαση στις υπηρεσίες που μπορούν να παρέχουν. Έτσι ένας αριθμός από αρχιτεκτονικά χαρακτηριστικά είναι πιθανόν να επηρεάσουν τόσο τις διεργασίες ελέγχου όσο και τη λειτουργικότητα καταδεικνύοντας έτσι συγκεκριμένες επιλογές τεχνολογιών για την υλοποίησή τους. Κατά την γνώμη μας τρεις θα είναι οι βασικές τεχνολογίες-τεχνικές που θα διαδραματίσουν σημαντικό ρόλο στην ανάπτυξη ποιο ισχυρών δικτυακών αρχιτεκτονικών τα επόμενα χρόνια: Federated αρχιτεκτονικές δικτύων. Σε μια προσπάθεια να παρέχουν ακερμάτιστη συνδεσιμότητα που να ικανοποιεί τις απαιτήσεις του χρήστη-πελάτη, οι πάροχοι δικτύου/υπηρεσιών ξεκίνησαν να δημιουργούν ομοσπονδίες δικτύων στα οποία ένας αριθμός λειτουργιών, όπως το AAA (Authentication, Authorization, and Accounting), η επίβλεψη (monitoring) και το SLA (Service-Level Agreement), να μπορέσουν να τις διαχειριστούν με έναν ομογενοποιημένο τρόπο μέσα σε ένα ανομοιογενές περιβάλλον. Δικτυακές αρχιτεκτονικές με σαφή διαχωρισμό των εννοιών. Το ποιο αντιπροσωπευτικό παράδειγμα είναι ο διαχωρισμός του επιπέδου ελέγχου (control plane) από το επίπεδο προώθησης (forwarding plane) [14], επιτρέποντάς τα να εξελιχθούν αυτόνομα. Το συνδετικό στοιχείο μεταξύ των δυο επιπέδων είναι ένα σετ από ανοικτές διεπαφές που αφαιρούν τη λειτουργικότητα και επιτρέπουν την πρόσβαση σε λειτουργίες και πόρους που είναι ανεξάρτητα από τους παρόχους. Κατανεμημένες δικτυακές αρχιτεκτονικές κόμβων. Ανεξάρτητοι δικτυακοί κόμβοι και άλλες συσκευές ομαδοποιούνται για να δημιουργήσουν ποιο πολύπλοκες και επεκτάσιμες κατανεμημένες αρχιτεκτονικές που λειτουργούν σαν ένας ενιαίος κόμβος. Τέτοιες πλειάδες κόμβων παρέχουν τα μέσα για την πρόσθεση των πόρων που απαιτούνται για να επιτύχουμε δυναμική υλοποίηση υπηρεσιών. Με αυτό τον τρόπο επιτυγχάνεται και η συνεχείς ενσωμάτωση νέας λειτουργικότητας στο δίκτυο. Σε ένα τέτοιο πλαίσιο, η διαχείριση έρχεται αντιμέτωπη με έναν αριθμό προκλήσεων που έχουν σαν βάση την ολοένα και αυξανόμενη πολυπλοκότητα και μέγεθος των δικτύων, την ανομοιογένεια των συσκευών και των τεχνολογιών που πρέπει να συνυπάρξουν και τον υψηλό βαθμό ευελιξίας που απαιτείται στις υπηρεσίες. Ο κύριος παρονομαστής είναι η λειτουργία της διαχείρισης που παρέχει υπηρεσίες και στοιχεία όταν απαιτούνται και διαμορφώνει το δίκτυο από άκρη σε άκρη. Αν δεν αντιμετωπίσουμε τις παραπάνω προκλήσεις με έναν ικανοποιητικό και συνάμα ολοκληρωμένο τεχνικά τρόπο, θα είναι δύσκολο να νέες ερευνητικές πρωτοβουλίες, όπως το autonomic networking, να φτάσει σε ένα επιτυχημένο αποτέλεσμα. Αυτό αποτέλεσε και το πρωταρχικό κίνητρο της έρευνας που παρουσιάζεται εδώ. Μιας έρευνας που αγγίζει τα παραπάνω θέματα διερευνώντας πιθανές λύσεις για την υλοποίηση υπηρεσιών και την διαμόρφωση του δικτύου. Όλα αυτά αντιμετωπίζονται μέσα σε μια δικτυακή αρχιτεκτονική που καλείται FlexiNET [1], και συνδυάζει όλα τα παραπάνω αρχιτεκτονικά χαρακτηριστικά. 42

43 4.2. Συζήτηση σχετικής δουλείας Συστήματα πρακτόρων όπως τα ACL[19] και RETSINA[20] διαθέτουν ισχυρές γλώσσες με συμπερασματικές ικανότητες έτσι ώστε οι προδιαγραφές των συμπεριφορών των πρακτόρων να μπορούν να περιγράφουν. Σε αντίθεση με την knowledge-based αναπαράσταση που χρησιμοποιείται στα παραπάνω συστήματα, η λύση που προτείνεται χρησιμοποιεί XML περιγραφή των πρακτόρων σε επίπεδο διαθέσιμων και απαιτούμενων πόρων. Η XML είναι ελαφριά, δίνοντάς μας έτσι τη δυνατότητα μιας αποτελεσματικής και δυναμικής υλοποίησης. Μεγάλη προσπάθεια έχει γίνει στην ανάπτυξη πληροφοριακών συστημάτων για δημοσίευση, συγκέντρωση και υποστήριξη αιτήσεων για τη συλλογή περιγραφέων υπηρεσιών (SNMP [21], LDAP [22], MDS [23], UDDI [24]). Αυτά τα συστήματα διαφέρουν σε πολλές διαστάσεις, όπως στη σύνταξη μιας περιγραφής (MIBs [21], relations[25], LDAP objects [22]), στη γλώσσα αίτησης (query language) (SQL [25], XQuery [26], LDAP query [22]) και στις τεχνικές που χρησιμοποιούν για την δημοσίευση και συγκέντρωση των περιγραφέων υπηρεσιών. Παρόλα αυτά, τα παραπάνω συστήματα έχουν κοινό ότι αλληλεπίδραση μεταξύ του πράκτορα (agent) και του πελάτη (consumer) είναι μη-συμμετρική. Η διαφήμιση της περιγραφής των πόρων του πράκτορα ζητείται από τον πελάτη για να αναγνωρίσει πιθανούς υποψήφιους πριν γίνει η αίτηση για την υπηρεσία. Αυτό οδηγεί σε χαμένη υπολογιστική ισχύ και χαμένο χρόνο. Κατανεμημένα μοντέλα, όπως CORBA [27] ή DCOM [28], χρησιμοποιούνται ευρέος, κυρίως σε επίπεδο εμπορικών εφαρμογών. Το Common Component Architecture που αναπτύχθηκε μέσα στο CCA Forum [29] ορίζει ένα μοντέλο για υψηλών επιδόσεων computing βασισμένο σε ορισμούς διεπαφών (interface definitions). Το XCAT3 [30] είναι ένα κατανεμημένο πλαίσιο που έχει πρόσβαση σε Grid υπηρεσίες, π.χ. OGSI [31], βασισμένο σε μηχανισμούς του CCA. Χρησιμοποιεί XSOAP [32] για την επικοινωνία και μπορεί να χρησιμοποιεί το GRAM [33] των έλεγχο των απομακρυσμένων στοιχείων. Το Vienna Grid Environment (VGE) [34] είναι ένα Δικτυακού τύπου περιβάλλον, που υποστηρίζει υψηλών επιδόσεων υπολογιστικές εφαρμογές. Το VGE υλοποιήθηκε με βάση τεχνολογίες όπως το Grid, τις Web services,την Java και την XML. Το Globus Toolkit 4 [33] είναι ένα περιβάλλον που κυρίως ασχολείται με την ανακάλυψη υπηρεσιών και πόρων σε ένα σαφώς κατανεμημένο περιβάλλον, παρά με την ίδια την υλοποίηση υπηρεσιών. Το μοντέλο μας σαφώς και θέτει το κυρίαρχο θέμα αναφορικά με την δυναμική υλοποίηση υπηρεσιών με έναν ιδιαίτερα σαφή και αποτελεσματικό τρόπο. Όπως θα φανεί και στην πορεία του κεφαλαίου Υπηρεσίες ιστού Web services Τον τελευταίο καιρό οι Υπηρεσίες Ιστού (Web Services) κερδίζουν συνεχώς το ενδιαφέρον τόσο της ακαδημαϊκής κοινότητας όσο και του επιχειρηματικού κόσμου. Οι Υπηρεσίες Ιστού ορίζονται σαν αυτό-περιεχόμενες, αυτό-περιγραφόμενες αρθρωτές εφαρμογές, οι οποίες μπορούν να δημοσιευτούν, να εντοπιστούν και να κληθούν μέσω του Ιστού. Μια Υπηρεσία Ιστού περιγράφει μια συλλογή από λειτουργίες, οι οποίες είναι προσβάσιμες μέσω του διαδικτύου, με έναν προτυποποιημένο τρόπο ανταλλαγής XML μηνυμάτων, καταγράφοντας όλες τις 43

44 απαραίτητες λεπτομέρειες που απαιτούνται για να χρησιμοποιήσει κανείς την Υπηρεσία, όπως είναι τα πρωτόκολλα μηνυμάτων και μεταφοράς δεδομένων. Συγχρόνως, η διασύνδεση αποκρύπτει τις λεπτομέρειες της υλοποίησης, επιτρέποντας έτσι να χρησιμοποιηθεί η Υπηρεσία ανεξαρτήτως από την πλατφόρμα υλικού και λογισμικού στην οποία έχει υλοποιηθεί. Αυτό επιτρέπει τις Υπηρεσίες Ιστού να είναι χαλαρά συνδεδεμένες και να μπορούν να συνδυαστούν, είτε στατικά είτε δυναμικά, δημιουργώντας έτσι νέες Υπηρεσίες Ιστού προστιθέμενης αξίας από άλλες ήδη υπάρχουσες, εφαρμόζοντας κατά τον καλύτερο δυνατό τρόπο τις αρχές της τμηματοποιημένης ανάπτυξης και του Παγκόσμιου Ιστού. The Web services ecosystem, built around organizational service-oriented architectures (SOA), standardized transactional models based on XML supplications and accessible directories based on UDDI is likely to be the most important technology deployment through 2008 Gartner Group, 3/2003 Συνοψίζοντας, θα λέγαμε ότι Υπηρεσία Ιστού είναι ένα λογισμικό ανεξάρτητο πλατφόρμας και υλοποίησης το οποίο μπορεί να: Περιγραφεί χρησιμοποιώντας μια γλώσσα περιγραφής Δημοσιευθεί σε ένα Ευρετήριο Ιστού Ανακαλυφθεί μέσω ενός προτυποποιημένου μηχανισμού, τόσο κατά την φάση της σχεδίασης όσο και κατά την φάση της εκτέλεσης Κληθεί μέσω ενός δηλωμένου API, συνήθως πάνω από το δίκτυο Συνδυαστεί με άλλες Υπηρεσίες Ιστού Ένα σημαντικό στοιχείο είναι ότι μια Υπηρεσία Ιστού δεν είναι απαραίτητο να υπάρχει μόνο στον Web. Ο όρος, δηλαδή, Ιστός χρησιμοποιείται ως ένα βαθμό καταχρηστικά, καθώς μια Υπηρεσία Ιστού μπορεί να υπάρχει οπουδήποτε στο δίκτυο, είτε αυτό είναι εσωτερικό είτε είναι εξωτερικό. Είναι σφάλμα να συνδέει κανείς την έννοια της Υπηρεσίας Ιστού αποκλειστικά και μόνο με το διαδίκτυο. Η ανάπτυξη του Ιστού απλά πρόσφερε στις Υπηρεσίες που πριν ήταν προσβάσιμες μόνο σε τοπικά δίκτυα την δυνατότητα να είναι προσβάσιμες και μέσω Ιστού, άρα αύξησε τις δυνατότητες τους και επομένως την αξία τους. Ένα άλλο εξίσου σημαντικό στοιχείο είναι ότι η υλοποίηση μιας Υπηρεσίας Ιστού, καθώς και η ανάπτυξη της, είναι ανεξάρτητα του προγράμματος το οποίο θα την καλέσει. Η Υπηρεσία Ιστού είναι διαθέσιμη μέσω του δηλωμένου ΑΡΙ και του μηχανισμού κλήσης. Το ελάχιστο το οποίο χρειάζονται τόσο οι Υπηρεσίες Ιστού και οι εφαρμογές που τις καλούν είναι ένα κοινό σύνολο γνωστών και συμφωνημένων προτύπων. 44

45 Εξετάζοντας κανείς την Υπηρεσία Ιστού από μια τεχνική σκοπιά, θα έλεγε ότι πρόκειται για μια ή περισσότερες λειτουργίες οι οποίες είναι προσβάσιμες μέσω δικτύου και περιγράφονται από μια Περιγραφή Υπηρεσίας. Συνεπώς η έννοια των Ιστού δεν είναι μια καινούργια έννοια, καθώς πρόκειται για μια προσπάθεια να αντιμετωπιστεί το θεμελιώδες πρόβλημα των κατανεμημένων συστημάτων: ο εντοπισμός και η πρόσβαση απομακρυσμένων συστημάτων. Η κύρια διαφορά είναι ότι τώρα η βιομηχανία προσπαθεί να προσεγγίσει το πρόβλημα αυτό χρησιμοποιώντας ανοιχτή (open) τεχνολογία όπως η XML και ανοιχτά πρότυπα τα οποία τα διαχειρίζονται οργανισμοί, όπως το W3C Εφαρμογή Ιστού Οι Υπηρεσίες Ιστού επιτρέπουν την συνεργασία μεταξύ επιχειρήσεων με μικρότερο κόστος από ότι παλιότερα. Η χρήση ενός κοινού μοντέλου επικοινωνίας επιτρέπει την ολοκλήρωση μεταξύ των προγραμμάτων σε ένα υψηλό επίπεδο στη στοίβα πρωτοκόλλων, βασιζόμενη κυρίως στη σημασιολογία των μηνυμάτων που αφορούν τις υπηρεσίες και όχι στη σημασιολογία των πρωτοκόλλων του δικτύου. Κατ αυτό τον τρόπο επιτυγχάνεται χαλαρή συνδεσμικότητα μεταξύ των μεθόδων των προγραμμάτων. Η ολοκλήρωση των προγραμμάτων ως Ιστού γίνεται με αυξητικό τρόπο. Δημιουργείται ένα ενοποιημένο προγραμματιστικό περιβάλλον ούτως ώστε η ολοκλήρωση των εφαρμογών, τόσο εντός όσο και εκτός μιας επιχείρησης, να γίνεται με ένα ενοποιημένο τρόπο εκμεταλλευόμενη την κοινή υποδομή. Οι Υπηρεσίες Ιστού μπορούν να χρησιμοποιηθούν από τους οργανισμούς στις τρεις μεγάλες κατηγορίες: Ολοκλήρωση Επιχειρηματικών Εφαρμογών (Enterprise Application Integration- EAI), Επιχείρηση προς Επιχείρηση (Business-to- Business B2B) και Επιχείρηση προς Πελάτη (Business-to-Customer - Β2C). Σε κάθε μια από αυτές τις κατηγορίες οι Υπηρεσίες Ιστού μπορεί να αφορούν από απλές εργασίες, όπως ο έλεγχος μιας πιστωτικής κάρτας, μέχρι πολύπλοκα συστήματα, όπως συστήματα προμηθειών. Μπορούν να κληθούν από προσωπικούς υπολογιστές, από μεγάλα υπολογιστικά συστήματα (Mainframes), φυλλομετρητές Ιστού ή ακόμα και από κινητά τηλέφωνα και φορητές συσκευές. Στον τομέα της Ολοκλήρωσης Επιχειρηματικών Εφαρμογών, οι Υπηρεσίες Ιστού έρχονται να δώσουν λύση στο πρόβλημα συνδυασμού συστημάτων, τα οποία δεν ήταν σχεδιασμένα εξ αρχής να συνεργαστούν μεταξύ τους. Τέτοιου είδους συστήματα είναι αρκετά δύσκολα να αλλάξουν πολύ περισσότερο να συνδυαστούν, καθώς συνήθως καθορίζουν τα δικά τους πρότυπα δεδομένων και ενίοτε τα δικά τους πρότυπα επικοινωνίας, ενώ πολλά από αυτά υπάρχουν σε διάφορες πλατφόρμες. Αξιοποιώντας μια σειρά από τεχνολογίες, τα υπάρχοντα συστήματα παρουσιάζονται ως Υπηρεσίες Ιστού, καθιστώντας τα έτσι προσβάσιμα και από άλλες διαφορετικές πλατφόρμες. Η συνθετότητα αυτών των συστημάτων μπορεί να περιοριστεί με τη βοήθεια των XML πρωτοκόλλων Τεχνολογία υπηρεσιών Ιστού Η διαλειτουργικότητα ανάμεσα στις ετερογενείς πλατφόρμες, και ειδικότερα η ανάγκη να παρουσιαστεί το σύνολο ή το μέρος μιας ιδιαίτερης εφαρμογής σε άλλες εφαρμογές σε διαφορετικές πλατφόρμες ή σε διαφορετικές τεχνολογίες, είναι η κατευθυντήρια δύναμη για την ανάπτυξη μιας αρχιτεκτονικής υπηρεσιών Ιστού. 45

46 Οι υπηρεσίες Ιστού τυποποιούν τα μηνύματα που οι οντότητες σε ένα διανεμημένο σύστημα πρέπει να ανταλλάξουν για να εκτελέσουν τις διάφορες διαδικασίες. Στο χαμηλότερο επίπεδο, αυτή η τυποποίηση αφορά το πρωτόκολλο που χρησιμοποιείται για να μεταφέρει τα μηνύματα (χαρακτηριστικά HTTP), την κωδικοποίηση μηνυμάτων (SOAP), και την περιγραφή διεπαφών (WSDL). Ένας πελάτης αλληλεπιδρά με μια υπηρεσία Ιστού με την αποστολή ενός μηνύματος SOAP και μπορεί στη συνέχεια να λάβει ως απάντηση το μήνυμα ή τα μηνύματα απάντησης. Σε πιο υψηλά επίπεδα, άλλες προδιαγραφές καθορίζουν τις συμβάσεις για την εξασφάλιση των ανταλλαγών μηνυμάτων (π.χ., WS-Security), για τη διαχείριση (π.χ., WSDM), και για τις υψηλότερου επιπέδου λειτουργίες, όπως η ανακάλυψη και η χορογραφία. Η Εικόνα 4 δίνει μια συνοπτική παρουσίαση των παραπάνω τεχνολογιών. Εικόνα 4. Μια αφηρημένη άποψη των διάφορων προδιαγραφών που καθορίζουν την αρχιτεκτονική υπηρεσιών Ιστού Εφαρμογή υπηρεσιών Ιστού Από την πλευρά του πελάτη, μια υπηρεσία Ιστού είναι απλά μια δίκτυο-προσιτή οντότητα που επεξεργάζεται τα μηνύματα SOAP. Για να απλοποιηθεί μια εφαρμογή υπηρεσιών Ιστού χρειάζεται να διακρίνονται τα εξής: το περιβάλλον φιλοξενίας, δηλ., η λογική που χρησιμοποιείται για να λάβει ένα μήνυμα SOAP, να προσδιορίσει και να βάλει σε λειτουργία τον κατάλληλο κώδικα για να χειριστεί το μήνυμα, και ενδεχομένως να παρέχει τις σχετικές λειτουργίες διαχείρισης η εφαρμογή υπηρεσιών Ιστού, δηλ., ο κώδικας που χειρίζεται το μήνυμα Το μήνυμα SOAP μεταφέρεται κυρίως μέσω του HTTP κατά συνέπεια απαιτείται μια «μηχανή HTTP» ή «ο κεντρικός υπολογιστής δικτύου» και μια «μηχανή SOAP» για να επεξεργαστεί τα μηνύματα SOAP. Η εικόνα 5 επεξηγεί τα διάφορα συστατικά. 46

47 Εικόνα 5. Άποψη των υψηλών επιπέδων των λειτουργικών συστατικών της υπηρεσίας Ιστού Αρχιτεκτονική βασισμένη σε XML Αρκετές τεχνικές διαχείρισης δικτύων βασισμένες σε XML έχουν προκύψει πρόσφατα σε μια προσπάθεια να υπερνικηθούν οι περιορισμοί της διαχείρισης SNMP σε διαδικασίες διαμόρφωσης. Δεδομένου ότι τα έγγραφα XML μπορούν να έχουν πολλή υψηλότερου επιπέδου σημασιολογία από το SNMP, είναι καταλληλότερα για τις μαζικές διαδικασίες διαμόρφωσης. Η εξαγωγή των διεπαφών XML για τη διαχείριση δικτύων έχει και άλλα πλεονεκτήματα: Η XML είναι εύκολο να παράγει, να αναλύσει, να επεξεργαστεί, να υποστηρίξει περίπλοκες δομές δεδομένων, και μπορεί επομένως να χειριστεί τις σύνθετες οργανώσεις των πληροφοριών διαχείρισης Τα XML DTDs (Document Type Definitions) και XML Schemas διευκρινίζουν και επικυρώνουν τη δομή των XML εγγράφων ελευθερώνοντας κατά συνέπεια τους υπεύθυνους για την ανάπτυξη των εφαρμογών διαχείρισης δικτύων από τους κουραστικούς στόχους Η XML ακολουθείται από τις πολυάριθμες W3C τεχνολογίες υποστηρίζοντας έτσι μια γρήγορη ανάπτυξη των εφαρμογών διαχείρισης δικτύων (π.χ. η Extensible Stylesheet Transformations (XSLT) που μετασχηματίζει τα έγγραφα XML σε άλλους μορφότυπους XML, και οι XPath/XQuery που χρησιμοποιούνται για την ανακάλυψη των στοιχείων XML που υπόκεινται σε κριτήρια). Τα συστήματα διαχείρισης XML με τις διεπαφές SOAP αποτελούν μια αναδυόμενη αρχιτεκτονική για την WS-based διαχείριση δικτύων. Αυτή η αρχιτεκτονική ενισχύει τα πλεονεκτήματα των XML συστημάτων με σεβασμό στην ικανότητα προγραμματισμού και στην οικονομική αποτελεσματικότητα των διαδικασιών διαχείρισης. Τα μειονεκτήματα των XML-based αρχιτεκτονικών βρίσκονται στο κόστος επεξεργασίας που προέρχεται απ την ανάγνωση και την κατασκευή των μηνυμάτων και των αρχείων XML, τα οποία μπορούν να οδηγήσουν σε μείωση απόδοσης. Τα XML gateways τείνουν να αυξήσουν το χρόνο απόκρισης για τις διαδικασίες διαχείρισης. Αν και αυτό είναι ένα μειονέκτημα της διαχείρισης XML γίνεται λιγότερο σημαντικό όταν χρησιμοποιούνται οι διεπαφές SOAP. Αυτό συμβαίνει επειδή το γεγονός ότι οι XML getaways διαχειρίζονται έγγραφα XML μειώνει το πρόσθετο κόστος που επιβάλλει το SOAP. Το SOAP αποτελεί μια πιο κατάλληλη διεπαφή για τα συστήματα διαχείρισης XML που χειρίζονται ήδη τα 47

48 μηνύματα XML. Αυτό είναι ένα σημαντικό κίνητρο για τη χρησιμοποίηση του SOAP στα συστήματα XML. Αξίζει να σημειωθεί ότι σε κάθε περίπτωση οι διεπαφές SOAP είναι πολύ πιθανό να πολλαπλασιαστούν επειδή το SOAP είναι ένα ανοικτό πρωτόκολλο με μια αυξανόμενη κοινότητα από άτομα που το βελτιώνουν και εταιρίες που το υποστηρίζουν [35] Αρχιτεκτονική FlexiNET Η προτεινόμενη αρχιτεκτονική δυναμικής υλοποίησης υπηρεσιών αναπτύχθηκε στα πλαίσια του προγράμματος. Ο βασικός στόχος του προγράμματος ήταν να καθορίσει και να υλοποιήσει μια δυναμική και επεκτάσιμη αρχιτεκτονική κόμβων που να περιέχει ικανά δικτυακά υλικά (FlexiNET Node Instances) που να προσφέρουν τη δυνατότητα ελέγχου της σύνδεσης περιαγωγής, του switching/routing, και προηγμένες ικανότητες ελέγχου και πρόσβασης στα σημεία σύνδεσης του δικτύου. Με τα παραπάνω να κάνουν χρήση του διαχωρισμού του επιπέδου ελέγχου από το επίπεδο μεταφοράς καθώς και του διαχωρισμού του επιπέδου πληροφοριών από τις εφαρμογές και τις υπηρεσίες. Βασικός στόχος δεν είναι να αντικαταστήσει τις ήδη υπάρχουσες δικτυακές υποδομές αλλά να προσφέρει μια συμπληρωματική αρχιτεκτονική, που να υποστηρίζει αποκέντρωση των υπηρεσιών και διαχωρισμό των δεδομένων της λογικής υπηρεσία και ελέγχου από το καθαρό δίκτυο μεταφοράς. Μια πρωτοτυπία που παρουσιάζεται από την FlexiNET αρχιτεκτονική, και αναπαριστά μια νέα διάσταση στο διαχωρισμό των εννοιών όπως ειπώθηκε πριν, είναι ο διαχωρισμός των δεδομένων που βρίσκονται σε μια δικτυακά ανοιχτή λογική βάση δεδομένων, παίρνοντας εστί τη μορφή αυτού που καλούμε data plane στο FlexiNET. Ένα τέτοιο data plane φιλοξενεί μια ποικιλία δεδομένων από προφίλ χρηστών και υπηρεσιών μέχρι μεγάλη σε όγκο πληροφορία διαμόρφωσης. Αυτό αποτελεί βασική προϋπόθεση για τους παρόχους Internet όπως εξηγείται στο RFC Επιπλέον, τα FlexiNET node instances συνήθως βρίσκονται στις άκρες του δικτύου για να μεταφέρουν πληροφορίες, δυναμική υλοποίηση υπηρεσιών και διεργασίες ελέγχου υπηρεσιών από και προς τα άκρα του δικτύου. Αυτό θα επιτρέψει στα βασικά δίκτυα να παραμείνουν όσο το δυνατόν ποιο απλά και να χρησιμοποιηθούν σαν πόροι του κεντρικού δικτύου που υλοποιούνται και επικοινωνούν με δικτυακές υπηρεσίες και εφαρμογές.[1,36]. Η αρχιτεκτονική FlexiNET (γραμμοσκιασμένη με γκρι στην εικόνα Figure 6) αποτελείται από τέτοιου τύπου node instances και αποθήκες δεδομένων που συνδέονται με τη χρήση ανοιχτών διαύλων επικοινωνίας. Ποιο συγκεκριμένα τα στιγμιότυπα των κόμβων (the node instances) έχουν τη μορφή δυο κόμβων σύνδεσης, τα FUANs και FWANs. Το UMTS Αccess node, που καλείται FlexiNET UMTS Access Node (FUAN), υποστηρίζει λειτουργίες όπως έλεγχο της μεταγωγής/δρομολόγησης (switching/routing), πρόσβαση στις πληροφορίες των εφαρμογών και στη λογική των υπηρεσιών. Συμπληρώνει υπάρχοντες κόμβους σύνδεσης (RNC, BSC) των UMTS δικτύων. Το FlexiNET WLAN Access Node (FWAN) λειτουργεί σαν διασυνδετής για των υπηρεσιών (user authentication, service authorization, service discovery, etc.) και σαν διασυνδετής μεταξύ των WLAN υποδομών και το internet. Το FWAN έχει σαν σκοπό 48

49 να προσφέρει περιαγωγή του χρήστη και της υπηρεσίας μεταξύ διαφορετικών παρόχων χρησιμοποιώντας δυναμική υλοποίηση υπηρεσιών και open interfaces. Οι λειτουργίες του Service programmability θα παρέχονται με την εφαρμογή της κατανεμημένης αρχιτεκτονικής κόμβων που βασίζεται στην αρχιτεκτονική της Hitachi και περιγράφεται στο [15]. Το FlexiNET Data Gateway Node (DGWN) λειτουργεί σαν διασυνδετής μεταξύ του generic Storage Area Network (SAN) και του FlexiNET. Χρησιμοποιείται από άλλα στιγμιότυπα του FlexiNET για να αποκτήσει πρόσβαση στο χρήστη (profile, location, etc.) και στην πληροφορία των εφαρμογών που χρειάζεται για την εκτέλεση μιας υπηρεσίας. Παρέχει έτσι ένα Generic Data Interface που τα υπόλοιπα FlexiNET στοιχεία θα μπορούν να χρησιμοποιήσουν για να έχουν πρόσβαση στα αποθηκευμένα δεδομένα των SAN. Ο Generic Applications Interface Bus χρησιμοποιείται για την υλοποίηση δυναμικών εφαρμογών και την επικοινωνία πληροφοριακών ροών που σχετίζονται με την εκτέλεση εφαρμογών και λογικής υπηρεσιών. Περιλαμβάνει ακόμη ένα πλαίσιο που επιτρέπει τη δήλωση, ανακάλυψη και χρήση υπηρεσιών. Τα DGWN, SAN και το Data Interface αντιπροσωπεύουν τα τμήματα στο επίπεδο πληροφορίας (data plane). Εικόνα 6. Αρχιτεκτονική FlexiNET 4.5. Αρχιτεκτονική DSD (Dynamic Service Deployment) Η αρχιτεκτονική DSD εκτελεί δύο βασικές εργασίες, συγκεκριμένα: (α) την απόφαση για το που θα αναπτύξει τις υπηρεσίες με τη λήψη του αιτήματος υπηρεσίας, και (β) την εκτέλεση της απόφασης ανάπτυξης της υπηρεσίας. 49

50 Η πρώτη εργασία βασίζεται σε έναν αλγόριθμο Matchmaking. Για να τρέξει ο αλγόριθμος Matchmaking, πρώτα χρειάζεται να είναι πλήρως ενήμερος για το περιβάλλον του κόμβου στο οποίο θα γίνει η υλοποίηση. Αυτό περιλαμβάνει τον αριθμό των πόρων, τις δυνατότητες ως ανοιχτές διεπαφές, και τη σύνθεση (λειτουργικά συστήματα, προγραμματιστικά περιβάλλοντα που υποστηρίζονται κτλ) καθεμιάς από τις ενότητες του διανεμημένου περιβάλλοντος. Δεύτερον, πρέπει να είναι σε θέση να κατανοήσει τις απαιτήσεις της υπηρεσίας, όσον αφορά τους πόρους, καθώς και ποια τμήματα του κώδικα απαιτούνται για την ορθή υλοποίησή της. Αυτά τα δύο σύνολα πληροφοριών συγκρίνονται για να καθορίσουμε ποια ενότητα πληρεί τα κριτήρια ανάπτυξης της υπηρεσίας με τον πιο αποδοτικό τρόπο. Αυτή η εργασία σύγκρισης περιέχει όλους τους μηχανισμούς και τις διεπαφές που χρειάζονται για να πραγματοποιήσει ο DSD την υλοποίηση της υπηρεσίας. Αυτό επιτυγχάνεται, επικοινωνώντας με τον Code Server, «κατεβάζοντας», «φορτώνοντας» και «τρέχοντας» τον κώδικα, και τελικά ρυθμίζοντας το τοπικό δικτυακό περιβάλλον σύμφωνα όχι μόνο με τις απαιτήσεις της υπηρεσίας, αλλά και με το προφίλ του χρήστη Προτεινόμενη αρχιτεκτονική DSD Η εικόνα 7 απεικονίζει την προτεινόμενη αρχιτεκτονική DSD, που αποτελείται από τα παρακάτω μέρη: Server υπηρεσιών Ιστού. Αυτό το στοιχείο υποστηρίζει την επικοινωνία για την ανταλλαγή μηνυμάτων ανάμεσα στο DSD και σε όλες εκείνες τις υπηρεσίες που έχουν υλοποιηθεί στις διάφορες ενότητες που βρίσκονται στο εκτεταμένο block του διανεμημένου δρομολογητή. Αυτές οι υπηρεσίες πρέπει επίσης να υλοποιηθούν χρησιμοποιώντας τεχνολογίες υπηρεσιών Ιστού. Το κομμάτι του Server υπηρεσιών Ιστού έχει την πλήρη λειτουργικότητα που απαιτείται ώστε να καταχωρηθεί η υπηρεσία Web σε ένα directory UDDI. Είναι επίσης ικανό να βρίσκει άλλες διεπαφές υπηρεσιών Ιστού Manager DSD. Σε αυτό το στοιχείο έχουν ανατεθεί οι εργασίες συντονισμού μιας σειράς λειτουργιών, που υποστηρίζονται από τον DSD ελεγκτή και σχετίζονται με την υλοποίηση της υπηρεσίας, καθώς και το «κατέβασμα» των προφίλ χρηστών από τον DGWN για τον καθορισμό των υπηρεσιών στις οποίες ένας συγκεκριμένος χρήστης είναι εγγεγραμμένος, έτσι ώστε η υλοποίηση και η ρύθμισή τους, σύμφωνα με το SLA του μπορεί να ξεκινήσει. Σε αυτή τη βάση, ο DSD Manager είναι επίσης υπεύθυνος για τη διαχείριση λειτουργιών που σχετίζονται με τον χρήστη, όπως ο έλεγχος για το αν ο χρήστης διέκοψε τη σύνδεση, αν η υπηρεσία διεκόπη, και αν διεγράφησαν οι προσωπικές ρυθμίσεις του χρήστη. 50

51 Εικόνα 7. Η προτεινόμενη αρχιτεκτονική DSD Ελεγκτής DSD. Αυτό το στοιχείο έχει τα ακόλουθα καθήκοντα: παραλαμβάνει συγκεκριμένα αιτήματα υπηρεσίας από τον DSD Manager, επικοινωνεί με τον DGWN για να «κατεβάσει» τον κώδικα και τις απαιτήσεις της υπηρεσίας, ανακτά τους διαθέσιμους πόρους χρησιμοποιώντας τα δεδομένα που κρατούνται στο μοντέλο κόμβου, εκτελεί τον Matchmaking αλγόριθμο για να εντοπίσει τους πιο κατάλληλους πόρους, και τελικά υλοποιεί την υπηρεσία. Ο ελεγκτής DSD είναι υπεύθυνος για τις υπηρεσίες σε τρία βήματα, συγκεκριμένα, «κατέβασμα», υλοποίηση, ρύθμιση. Manager πόρων. Αυτό το στοιχείο ανακαλύπτει και παρακολουθεί τους πόρους. Με τη βοήθεια της διεπαφής του manager πόρων, συλλέγει πληροφορίες από όλες τις ενότητες του διανεμημένου δρομολογητή, σύμφωνα με τους ορισμούς δεδομένων που έχουν αποτυπωθεί στο μοντέλο κόμβου. Επικοινωνεί επίσης με τον ελεγκτή DSD για να τροφοδοτήσει τον αλγόριθμο Matchmaking με την τρέχουσα κατάσταση του μοντέλου κόμβου. Μοντέλο κόμβων. Αυτό το στοιχείο είναι υπεύθυνο για την αποθήκευση όλων των πληροφοριών για κάθε ενότητα από την οποία αποτελείται ο διανεμημένος δρομολογητής, έτσι ώστε να διατηρείται μία ολοκληρωμένη εικόνα του. Αυτές οι πληροφορίες περιλαμβάνουν τη διαθεσιμότητα και την χρήση των φυσικών πόρων, καθώς και δεδομένα για τις τρέχουσες υπηρεσίες. Το μοντέλο κόμβων είναι ένα ουσιαστικό κομμάτι της προτεινόμενης αρχιτεκτονικής DSD και της λειτουργικότητάς της, καθώς είναι ισοδύναμο με μοντέλα πληροφοριών όπως τα MIBs ή το CIM, αλλά παραμετροποιημένο για τον σκοπό της υλοποίησης της υπηρεσίας [37]. Περισσότερες λεπτομέρειες για τη δομή και τις πληροφορίες που καταγράφονται από το μοντέλο κόμβου θα δοθούν παρακάτω στο κείμενο. Προφίλ χρήστη. Αυτό το στοιχείο είναι μία εγκατάσταση αποθήκευσης δεδομένων, όπου το «κατεβασμένο» προφίλ χρήστη αποθηκεύεται για να παρακολουθούνται οι ενεργοί χρήστες Κώδικας και απαιτήσεις υπηρεσίας. Αυτό το στοιχείο είναι άλλη μία εγκατάσταση αποθήκευσης δεδομένων που είναι υπεύθυνη για την αποθήκευση του «κατεβασμένου» κώδικα και των απαιτήσεών του (αναφορικά με τους φυσικούς πόρους) που περιγράφουν μια υπηρεσία. 51

52 Εκτέλεση των υπηρεσιών και ρυθμίσεις. Τέλος, αυτή η εγκατάσταση αποθήκευσης δεδομένων είναι υπεύθυνη για την αποθήκευση δεδομένων σχετικά με τις τρέχουσες υπηρεσίες και τις ρυθμίσεις τους Δομή μοντέλου κόμβων Έχουμε προσεγγίσει τη μοντελοποίηση των πληροφοριών κόμβων που είναι σχετικές με την υλοποίηση, ως μία δενδροειδή δομή τεσσάρων στρωμάτων, η οποία είναι ευθυγραμμισμένη με τη δομή της αρχιτεκτονικής του διανεμημένου δρομολογητή, καθώς η τελευταία είναι ουσιαστικά το περιβάλλον στο οποίο λαμβάνει χώρα η υλοποίηση (Εικόνα 8). Κινούμενοι από τη ρίζα προς τα φύλλα, κάθε επίπεδο συμβολίζει εκείνο το μέρος των πληροφοριών που έχουν συσχετιστεί με ένα συγκεκριμένο στοιχείο της διανεμημένης αρχιτεκτονικής. Επιπρόσθετα, το κάθε στοιχείο περιέχει πληροφορίες που αφορούν τον κόμβο-γονέα στο ανώτερο επίπεδο, καθώς και τους κόμβους-απογόνους στο αμέσως χαμηλότερο επίπεδο. Το υψηλό επίπεδο (H.L.) (ρίζα) αντιστοιχεί στον ολοκληρωμένο διανεμημένο δρομολογητή. Όπως εξηγήθηκε παραπάνω, ένας διανεμημένος δρομολογητής αναμένεται στην πραγματικότητα να είναι μια συλλογή από off-the-shelf φυσικές ενότητες συνδεδεμένες μέσω ενός διαδρόμου υψηλής ταχύτητας, και διαχειριζόμενου έτσι ώστε να εμφανίζεται ως ένα φυσικό κουτί με τη λειτουργικότητα ενός συνηθισμένου δρομολογητή. Το είδος των πληροφοριών που παρέχονται από αυτό το επίπεδο είναι αυτό που επιτρέπει σε μία οντότητα που προβάλλει ερωτήματα, να ανακαλύψει την τρέχουσα τοπολογία του διανεμημένου κόμβου του δικτύου. Εικόνα 8. Δομή μοντέλου κόμβων Το επόμενο επίπεδο αναπαριστά το επίπεδο ενοτήτων (M.L.) που σχετίζεται με πληροφορίες για ένα ευρύ φάσμα από πιθανές φυσικές ενότητες. Παραδείγματα ενοτήτων είναι ολόκληρα PCs, ASICs ή ενσωματωμένα συστήματα ειδικών σκοπών όπως διατάξεις επεξεργαστών δικτύου. Το τρίτο επίπεδο είναι το στρώμα εκτέλεσης του περιβάλλοντος (E.E.L.), και πιο συγκεκριμένα τα απαραίτητα προγραμματιστικά περιβάλλοντα στα οποία τα στοιχεία τρέχουν. Αυτά τα προγραμματιστικά περιβάλλοντα φιλοξενούνται από συγκεκριμένες 52

53 ενότητες. Για παράδειγμα, μία Java Virtual Machine φιλοξενεί στοιχεία υπηρεσίας υλοποιημένα σε Java. Τέλος, το επίπεδο στοιχείου (C.L.) περιέχει πληροφορίες για τα πραγματικά στοιχεία υπηρεσιών που πρόκειται να υλοποιηθούν. Τα στοιχεία είναι συνήθως τμήματα software που τρέχουν στο περιβάλλον εκτέλεσης και που εκτελούν συγκεκριμένες λειτουργίες στα πλαίσια της υπηρεσίας που πραγματοποιούν. Το μοντέλο κόμβων περιγράφεται σε XML και παρέχει δυνατότητες για την ενσωμάτωση καινούριων ενοτήτων καθώς αυτά προστίθενται δυναμικά στην αρχιτεκτονική του δρομολογητή. Σε αυτή τη βάση, όταν μια νέα ενότητα ενσωματώνεται στον διανεμημένο δρομολογητή στέλνει αυτόματα ένα XML αρχείο στον Manager πόρων περιγράφοντας τον εαυτό της. Ο Manager πόρων με τη σειρά του ενημερώνει το μοντέλο κόμβων. Παρόμοιες λειτουργίες πραγματοποιούνται όποτε καινούρια στοιχεία υλοποιούνται ή οι καταστάσεις αλλάζουν. Με αυτό τον τρόπο, το μοντέλο κόμβου παραμένει διαρκώς ενημερωμένο, επιτρέποντας επομένως στον Matchmaking αλγόριθμο να λάβει αποφάσεις που είναι όσο το δυνατόν πιο ακριβείς 4.6. Matchmaking Σ αυτό το κομμάτι του κεφαλαίου περιγράφουμε τις βασικές διαδικασίες και τα συστατικά της προσέγγισης μας για το Matchmaking και πώς αυτό εκμεταλλεύεται το πρότυπο κόμβων. Το Matchmaking παρέχει μια ισχυρή και σταθερή λύση στη διαχείριση των πόρων σε τέτοια δυναμικά και διανεμημένα περιβάλλοντα. Το Matchmaking είναι ο τρόπος για μια διεργασία να εκφράσει τους περιορισμούς και τις προτιμήσεις σε έναν πόρο και αντίστροφα. Αυτό είναι ιδιαίτερα σημαντικό στα πλαίσια της δυναμικής επέκτασης υπηρεσιών όπου η διαδικασία ανακάλυψης και η επέκταση των νέων υπηρεσιών πρέπει να αυτοματοποιηθούν. Οι βασικές ιδέες του παραδείγματος του Matchmaking είναι διαισθητικές και πολύ απλές. Χρησιμοποιούμε έναν μάλλον απλό αλγόριθμο Matchmaking δεδομένου ότι ο στόχος μας είναι να εξετάσουμε τη λειτουργία της προτεινόμενης αρχιτεκτονικής και όχι την απόδοση του ίδιου του αλγορίθμου. Ο αλγόριθμος που έχουμε επιλέξει να εφαρμόσουμε για να εξυπηρετήσουμε καλύτερα την παραπάνω ανάγκη είναι ο oneat-a-time-with-best-fit. Σύμφωνα μ αυτόν, μόνο μία υπηρεσία κάθε φορά θα υλοποιείται σε κάθε ενότητα χρησιμοποιώντας τον best-fit αλγόριθμο. Best-fit σημαίνει ότι η ενότητα πάνω στην οποία θα υλοποιηθεί η υπηρεσία θα έχει χρησιμοποιήσει το ελάχιστο ποσοστό των εναπομεινάντων πόρων που είχε η ενότητα πριν υλοποιηθεί η υπηρεσία, βασιζόμενοι στη βαθμονόμηση των διαφορετικών πόρων. Για να περιγράψουμε με τον καλύτερο τρόπο τους πόρους του συστήματος μας θα πρέπει να αποφασίσουμε ποια είναι η προτεραιότητα του κάθε πόρου και να την ταξινομήσουμε με βάση έναν παράγοντα πολλαπλασιασμού. Συνεπώς, η λίστα που ακολουθεί δίνει το βαθμό για κάθε πόρο: 53

54 Memory = *6 Disk space = *5 CPU cycles = *4 Bandwidth = *3 Threads = *2 Όπως φαίνεται και στην εικόνα 9, μια ενότητα κρατά όλες τις απαραίτητες πληροφορίες, όσον αφορά τους πόρους, για ολόκληρο το περιβάλλον των διανεμημένων δρομολογητών. Γι αυτό το λόγο σχεδιάστηκε και υλοποιήθηκε το πρότυπο κόμβων. Εικόνα 9: Παρουσίαση του agent στο επίπεδο ενοτήτων Οι agents περιγράφουν τις ικανότητές τους χρησιμοποιώντας XML και παρουσιάζονται αποστέλλοντας μηνύματα στην ενότητα DSD. Αυτά τα μηνύματα περιέχουν τις περιγραφικές πληροφορίες για τον κάθε agent. Οι απαιτήσεις της υπηρεσίας πηγάζουν απ το DGWN σαν XML. Ο Μatchmaker (σαν υπο-στοιχείο του DSD ελεγκτή) τρέχει τον αλγόριθμο Matchmaking και βρίσκει συμβατά ζεύγη όσον αφορά τους απαιτούμενους και τους διαθέσιμους πόρους. Μετά έρχεται η σειρά της DSD ενότητας να υλοποιήσει την υπηρεσία στον agent που ικανοποιεί καλύτερα τις απαιτήσεις της προς υλοποίηση υπηρεσίας. Ο πρωταρχικός στόχος είναι να καθοριστεί ποια ενότητα είναι σε θέση να υλοποιήσει την υπηρεσία. Αυτό το μοντέλο του συστήματος διαχείρισης agent παρουσιάζει ένα πλαίσιο επικοινωνίας στο οποίο η τυποποίηση έχει επιπτώσεις μόνο στον τρόπο με τον οποίο διαμορφώνονται οι πληροφορίες διαχείρισης και μεταφέρονται μέσα στα συστήματα, αφήνοντας σκόπιμα απροσδιόριστες τις πτυχές της εσωτερικής δομής 54

55 τους. Αυτό επιτυγχάνει μια ιδιαίτερα βελτιστοποιημένη εφαρμογή της αρχιτεκτονικής που έχει ήδη σχεδιαστεί. Εικόνα 10: Αίτημα υπηρεσίας Ένα παράδειγμα παρουσίασης agent ενός PC σε επίπεδο ενοτήτων φαίνεται στην εικόνα 9 ενώ ένα παράδειγμα αιτήματος υπηρεσίας, όσο αναφορά τους κύκλους, τα threads και τη μνήμη μιας CPU παρουσιάζεται στην εικόνα 10. Η XML χρησιμοποιείται για να περιγράψει όλες τις πληροφορίες που απαιτούνται Περίπτωση λειτουργίας σε επίπεδο χρήστη : υλοποίηση της ΑΑΑ Proxy υπηρεσίας Έχουμε εφαρμόσει τη λειτουργικότητα DSD για να υλοποιήσουμε δυναμικά την ΑΑΑ Proxy υπηρεσία. Στην εικόνα 11φαίνεται η αρχιτεκτονική ΑΑΑ Proxy. Εικόνα 11: Αρχιτεκτονική AAA Proxy Η ενότητα ΑΑΑ Proxy προωθεί τα πακέτα πιστοποίησης στον FLAS server και ενσωματώνει τα πακέτα ΕΑP [38] σε ΧΜL μηνύματα που περνούν από τις υπηρεσίες 55

56 Ιστού και αντίστροφα για να επικυρώσουν και να εγκρίνουν το χρήστη. Η ΑΑΑ Proxy υπηρεσία υλοποιείται στο FWAN κατά την εκκίνηση του συστήματος. Αποθηκεύεται σε ένα τοπικό κατάλογο και υλοποιείται απ την ενότητα DSD. O κώδικας θα ζητηθεί από το DGWN μέσω των υπηρεσιών Ιστού. Κατά την εκκίνηση, η διαδικασία εκκίνησης ζητά απ την ενότητα DSD να υλοποιήσει την AAA Proxy ενότητα. Η ενότητα DSD ανακτά τον κώδικα της AAA Proxy υπηρεσίας και τον υλοποιεί σε ένα από τα δύο PC βασισμένα στους συγκεκριμένους αλγορίθμους. Επιπλέον, η ενότητα DSD, βασιζόμενη στα προφίλ των χρηστών, θα υλοποιήσει μια ενότητα QoS (quality-of-service) η οποία είναι υπεύθυνη για την παροχή QoS στους συγκεκριμένους χρήστες. Η ενότητα ForCEG [39], η οποία λαμβάνει τις απαιτήσεις των υπηρεσιών Ιστού απ τις ενότητες QoS και AAA Proxy και τις μετατρέπει σε μηνύματα πρωτοκόλλου ForCEG, θα διαχειριστεί την απαιτούμενη διαμόρφωση για τον επεξεργαστή δικτύου [38, 40]. Στην εικόνα 12 παρουσιάζεται η ακολουθία των γεγονότων για την υλοποίηση της AAA Proxy υπηρεσίας. Εικόνα 12: Ανταλλαγή μηνυμάτων κατά την υλοποίηση του AAA Proxy Ο διαχειριστής DSD λαμβάνει μια εντολή υλοποίησης της AAA Proxy υπηρεσίας μέσω της διεπαφής υπηρεσιών Ιστού Ο διαχειριστής DSD καταλαβαίνει ότι η εντολή αυτή έχει δοθεί απ τη διαδικασία αρχικοποίησης και επικοινωνεί με τον FLAS server, μέσω υπηρεσίας Ιστού, για να «κατεβάσει» το προφίλ του χρήστη. Ο ελεγκτής DSD επικοινωνεί με τον DGWN, μέσω υπηρεσίας Ιστού, και κατεβάζει τον κώδικα και τις προδιαγραφές ώστε να υλοποιήσει την υπηρεσία AAA Proxy. Ο ελεγκτής DSD εντοπίζει την ενότητα στην οποία πρέπει να τοποθετηθεί η υπηρεσία AAA Proxy 56

57 Ο ελεγκτής DSD υλοποιεί την υπηρεσία AAA Proxy. Ο ελεγκτής DSD στέλνει μια βεβαίωση λήψης λέγοντας ότι η υπηρεσία AAA Proxy έχει υλοποιηθεί στο διαχειριστή DSD,ο οποίος στέλνει στη συνέχεια τη βεβαίωση στη διαδικασία αρχικοποίησης Πειραματικά αποτελέσματα Η δυναμική υλοποίηση μιας υπηρεσίας (DSD) μπορεί να χωριστεί χρονικά σε 2 μέρη: το χρόνο που απαιτείται για να «κατεβαστεί» η νέα υπηρεσία και το χρόνο που απαιτείται για να εγκατασταθεί. Η υπηρεσία που δοκιμάσαμε για δυναμική υλοποίηση είναι η ΑΑΑ Proxy, που είναι 21 Κb και «κατεβάστηκε» απ το DGWN. Ο πίνακας 6 δείχνει τις μετρήσεις για την υλοποίηση μέσω υπηρεσιών Ιστού. Πίνακας 1: Δυναμική υλοποίηση υπηρεσίας μέσω υπηρεσιών Ιστού Mean (s) Standard deviation (s) Code download Code deployment Code configuration Total Η εικόνα 13 είναι μια γραφική αναπαράσταση των αποτελεσμάτων που προέκυψαν κατά τη διάρκεια των δοκιμών που πραγματοποιήσαμε. Οι όποιες καθυστερήσεις οφείλονται στο γεγονός πως τα συστήματα XML πρέπει σε κάθε περίπτωση να διαβάσουν, να επεξεργαστούν και να κατασκευάσουν έγγραφα XML. Σύμφωνα με τα αποτελέσματα το FWAN έχει τη δυνατότητα να υλοποιήσει 12 υπηρεσίες το λεπτό. Εικόνα 13: Δυναμική υλοποίηση υπηρεσίας Ο αλγόριθμος Matchmaking ολοκληρώνει κάθε διεργασία σε ένα μέσο χρόνο 3 ms (η απόκλιση είναι 2 ms) όπως φαίνεται στην εικόνα

58 Εικόνα 14: Matchmaking Όταν μια υπηρεσία έχει υλοποιηθεί μία φορά δε χρειάζεται να υλοποιηθεί ξανά. Επίσης αν μια ήδη εγκατεστημένη υπηρεσία ζητηθεί να υλοποιηθεί ξανά, ο κώδικας θα έχει ήδη αποθηκευτεί τοπικά. Στην περίπτωση αυτή, ο χρόνος που απαιτείται για την υλοποίηση της υπηρεσίας μειώνεται στα 2.1 ms και το FWAN έχει τη δυνατότητα να υλοποιήσει 28 υπηρεσίες το λεπτό. Ο μέσος χρόνος που χρειάζεται μια υπηρεσία για να υλοποιηθεί, σύμφωνα με την προτεινόμενη αρχιτεκτονική είναι ελαφρώς καλύτερος απ τους χρόνους που παρουσιάζουν τα αποτελέσματα άλλων εργασιών. Για παράδειγμα, ο μέσος χρόνος υλοποίησης μιας νέας υπηρεσίας στο project HAND [41] (Highly Available Dynamic Deployment Architecture) είναι 6.85 s, άρα το HAND έχει τη δυνατότητα να υλοποιήσει 9 υπηρεσίες το λεπτό. Υπάρχουν ακόμη project που είναι σε εξέλιξη, όπως στον κόσμο του Grid [42] ή στο Autonomic Computing [43], αλλά αυτές οι προσπάθειες κινούνται περισσότερο σε θεωρητική βάση κι έτσι δεν υπάρχει άμεσος τρόπος να συγκρίνεις πειραματικά αποτελέσματα. Εικόνα 15: Προσθέτοντας νέες ενότητες Έχουμε κάνει επίσης πειράματα (όπως φαίνεται στην εικόνα 15) για να δούμε πόσο χρόνο χρειάζεται μια νέα ενότητα για να προστεθεί πλήρως στο σύστημά μας, που σημαίνει ουσιαστικά πόσος χρόνος χρειάζεται για να ανανεωθεί το μοντέλο κόμβων με την πρόσθεση όλων των πληροφοριών της νέας ενότητας (ή νέων ενοτήτων) όσον 58

59 αφορά του πόρους της (ή τους πόρους τους), διαθέσιμους ή όχι, και τις υπηρεσίες που μπορούν να διεκπεραιώσουν. Σύμφωνα με τις δοκιμές μας, χρειάζεται ένας μέσος χρόνος 40 ms (με απόκλιση 0.8 ms) για να προστεθεί στο σύστημά μας και να λειτουργεί πλήρως μια νέα ενότητα. Ο μέσος χρόνος για 3 νέες ενότητες είναι 54 ms (με απόκλιση 1.3 ms), ενώ για 10 ενότητες είναι 85 ms (με απόκλιση 1.5 ms). Όταν λέμε για μια νέα ενότητα να λειτουργεί πλήρως εννοούμε ότι το σύστημα είναι σε θέση να δεχτεί την υλοποίηση μιας νέας υπηρεσίας. Λαμβάνοντας λοιπόν υπόψη αυτές τις μετρήσεις, γίνεται σαφές πως ο χρόνος που απαιτείται ώστε μια νέα ενότητα να είναι πλήρως λειτουργική είναι 40 ms, ενώ για 3 νέες ενότητες ο χρόνος είναι 54 ms και για 10 νέες ενότητες 85 ms. Αυτές οι πολύ μικρές χρονικές διαφορές-η διαφορά ανάμεσα σε μία και σε 10 ενότητες είναι μόλις 45 ms-μας επιτρέπουν να πούμε ότι η αρχιτεκτονική διανεμημένων δρομολογητών προσφέρει σημαντικά οφέλη σε σχέση με την απόδοση του συστήματος. 59

60 60

61 ΚΕΦΑΛΑΙΟ 5. Σημασιολογικός Ιστός Στο κεφάλαιο αυτό θα αναφερθούμε στο Σημασιολογικό Ιστό. Θα κάνουμε μια περιγραφή αυτού και εν συνεχεία θα υλοποιήσουμε τον κατανεμημένο δρομολογητή μας κάνοντας χρήση εννοιών και κανόνων του σημασιολογικού ιστού. Κλείνοντας το κεφάλαιο θα παρουσιάσουμε και μια σύγκριση των αποτελεσμάτων που είχαμε με την αρχική υλοποίηση σε σχέση με την semantic web περιγραφή που κάναμε στο κεφάλαιο Εισαγωγή Η έκρηξη της ανάπτυξης του Παγκόσμιου Ιστού (World Wide Web) αποτελεί εδώ και μερικά χρόνια αναμφισβήτητο γεγονός. Χρήστες από όλο τον κόσμο επισκέπτονται ιστοσελίδες, συλλέγουν αλλά και προσφέρουν πληροφορίες και υπηρεσίες κάθε τύπου μέσω του Παγκόσμιου Ιστού. Όπως αναμενόταν, σε μια τόσο ξαφνική και απότομη ανάπτυξη του δικτύου και αύξηση του όγκου των πληροφοριών που μεταδίδονται, τέθηκαν ζητήματα αναζήτησης, διαχωρισμού και επεξεργασίας των επιθυμητών πληροφοριών για τους χρήστες. Στον τομέα της επεξεργασίας και ερμηνείας των επιστρεφόμενων πληροφοριών η αυτόματη μηχανική υποστήριξη είναι περιορισμένη και επομένως τη λειτουργία αυτή πρέπει να επιτελέσει ο άνθρωπος-χρήστης. Αυτό έχει ως επακόλουθο κόστος σε χρόνο και κόπο, δυσχρηστία και περιορισμό του εξεταζόμενου μεγέθους εισερχομένων πληροφοριών στα ανθρώπινα μέτρα. Για να αρθεί αυτός ο περιορισμός, ο Tim Berners-Lee (δημιουργός του WWW), έθεσε το όραμα του Σημασιολογικού ιστού ως εξής: να μπορούν τα περιεχόμενα του WWW να προσπελαύνονται και να ερμηνεύονται από μηχανές. ([44] Μάιος 2001) Το World Wide Web Consortium (W3C) ορίζει το Σημασιολογικό ιστό (Semantic web) ως εξής : the representation of data on the World Wide Web [45], ορθά χωρίς να περιορίζει τον τύπο ή τη χρήση που μπορεί να έχουν τα δεδομένα αυτά. Δύο είναι λοιπόν τα βασικά κίνητρα για το Σημασιολογικό ιστό. Το πρώτο είναι η ενοποίηση των δεδομένων (data integration) και αποτελεί σημαντικό ζήτημα σε όλες τις εφαρμογές τεχνολογιών πληροφορικής (IT applications). Οι τωρινές λύσεις στο πρόβλημα αυτό είναι κυρίως τοπικές, εστιασμένες και εφαρμοσμένες πάνω στο εκάστοτε έργο. Κάθε φορά σχεδιάζεται μια εξειδικευμένη αντιστοίχιση μεταξύ των μοντέλων (schemas) που περιγράφουν τα δεδομένα και των ίδιων των δεδομένων. Εάν μπορούσε να περιγραφεί το νόημα και η χρήση των δεδομένων με έναν τρόπο κατανοητό από τις μηχανές, τότε οι αντιστοιχίσεις αυτές θα μπορούσαν να ολοκληρώνονται αυτόματα. Το δεύτερο κίνητρο, που είναι και το πιο άμεσα αντιληπτό, αποτελεί η παροχή «ευφυέστερης» υποστήριξης των εργασιών των χρηστών. Αν τα προγράμματα των υπολογιστών μπορούσαν να εξάγουν νέα δεδομένα και συμπεράσματα από τις πληροφορίες που παρέχει ο Παγκόσμιος Ιστός, τότε θα υποστήριζαν καλύτερα τη προσπάθεια του χρήστη για αναζήτηση πληροφοριών, επιλογή κατάλληλων πηγών, 61

62 εξατομίκευση με βάση τις ανάγκες του, το συνδυασμό πληροφοριών από πολλαπλές πηγές, κ.ο.κ. Καθώς ο Σημασιολογικός ιστός αναπτύσσεται, εμφανίζονται κάποια πρότυπα, όπως για τη γλώσσα οντολογίας και το μοντέλο δεδομένων που βρίσκεται στο υπόβαθρο. Οι βασικές τεχνολογίες του Σημασιολογικού ιστού αντιστοιχούν σε ένα σύνολο διαβαθμισμένων προδιαγραφών. Τα στοιχεία που χρησιμοποιούνται είναι το Resource Description Framework (RDF), το RDF Schema και η Web Ontology language (OWL). Βασισμένη σε αυτά τα βασικά πρότυπα είναι η SPARQL, μια προτυποποιημένη γλώσσα επερωτήσεων για το RDF η οποία επιτρέπει τη σύνδεση αποκεντροποιημένων συλλογών RDF δεδομένων. Όλες αυτές οι γλώσσες «χτίστηκαν» στα θεμέλια των URIs, XML, και XML namespaces. Οι προσπάθειες αυτές ακολουθούν μια bottom-up διαδικασία προσπαθώντας να δώσουν «ζωή» και χρηστικότητα στα πρότυπα αυτά μέσα από πραγματικές εφαρμογές, σε αντίθεση με την top-down προσέγγιση κατά την οποία αναγνωρισμένες και συγκεκριμένες ανάγκες εφαρμογών οδηγούν στον καθορισμό των προτύπων. Για να μπορέσει να επιτύχει αυτή η διαδικασία, οι προσπάθειες ξεκινούν πρώτα από τα απλά. Τα επόμενα βήματα δείχνουν την κατεύθυνση προς την οποία βαδίζει ο Σημασιολογικός ιστός: 1. παροχή κοινού συντακτικού για τη δημιουργία ισχυρισμών-δηλώσεων (statements) κατανοητών σε μηχανές. 2. δημιουργία κοινών λεξικών. 3. συμφωνία σε μια κοινή γλώσσα περιγραφής λογικής. 4. χρήση της γλώσσας για ανταλλαγή αποδεικτικών (proofs) 5.2. Δομή του Σημασιολογικού Ιστού Τα παραπάνω βήματα αντιστοιχούν στα επίπεδα της δομής του Σημασιολογικού ιστού όπως την πρότεινε ο Tim Berners-Lee στο [46] και φαίνεται στην Εικόνα 16. Εικόνα 16: Τα επίπεδα αρχιτεκτονικής του Semantic Web 62

63 Στα κατώτερα επίπεδα τονίζεται η σημασία ενός κοινού συντακτικού. Τα URIs (Uniform Resource Identifiers) παρέχουν ένα πρότυπο τρόπο αναφοράς σε οντότητες, ενώ το Unicode είναι ένα πρότυπο για την ανταλλαγή συμβόλων. Η XML (extensible Markup Language) είναι μια γλώσσα για τη δόμηση δεδομένων, δηλαδή ένα σύνολο κανόνων και κατευθυντήριων γραμμών για το σχεδιασμό μορφών κειμένου οι οποίες διευκολύνουν τη δόμηση των δεδομένων. Κατ επέκταση το XML Schema παρέχει τη δυνατότητα καθορισμού γραμματικών για δημιουργία «έγκυρων» XML αρχείων. Τα αρχεία αυτά μπορούν να αναφέρονται σε διαφορετικούς χώρους ονομάτων (namespaces) για να διαχωρίζουν μεταξύ δύο ετικετών, που αντιπροσωπεύουν διαφορετικά πράγματα αλλά έχουν το ίδιο όνομα. Οι τεχνολογίες-πρότυπα των δύο αυτών βασικών επιπέδων έχουν γίνει ευρέως αποδεκτά και ο αριθμός των XML αρχείων διαρκώς αυξάνεται με ταχείς ρυθμούς. Το τρίτο κατά σειρά επίπεδο αναφέρεται στο RDF (Resource Description Framework) και μπορεί να θεωρηθεί ως το πρώτο κομμάτι που αναπτύχθηκε εξ αρχής για το Σημασιολογικό ιστό. Σύμφωνα με την πρόταση του W3C [47], το RDF αποτελεί το θεμέλιο για την επεξεργασία μεταδεδομένων. Παρέχει δυνατότητα διαλειτουργικότητας (interoperability) μεταξύ εφαρμογών που ανταλλάσσουν πληροφορία στο Παγκόσμιο Ιστό. Το μοντέλο δεδομένων κάθε αρχείου που αντιπροσωπεύει το RDF είναι αυτό ενός κατευθυνόμενου, ψευδο-γράφου με ετικέτες. Το RDF Schema καθορίζει μια απλή γλώσσα επάνω στο RDF για να συμπεριλάβει τις έννοιες των κλάσεων, is-a σχέσεις μεταξύ κλάσεων και μεταξύ ιδιοτήτων, καθώς και περιορισμούς πεδίου/εμβέλειας για τις ιδιότητες. Το RDF και το RDF Schema είναι κωδικοποιημένα με XML σύνταξη αλλά δεν εφαρμόζουν αναγκαστικά τη δενδρική δομή της XML. Στο επόμενο επίπεδο τοποθετούνται οι Οντολογίες. Σύμφωνα με τον ορισμό που δίνεται στην εργασία [48], μια οντολογία είναι an explicit formalization of a shared understanding of a conceptualization. Αυτός ο υψηλού επιπέδου ορισμός αφήνει πολλά περιθώρια παραπλήσιων και συνάμα διαφορετικών ερμηνειών από την ερευνητική κοινότητα και συνεπώς στις δημιουργούμενες γλώσσες αναπαράστασης οντολογιών. Παρουσιάζουν όμως όλες αυτές οι γλώσσες ομοιότητες καθώς οι περισσότερες περιλαμβάνουν ένα σύνολο εννοιών, μια ιεραρχία σε αυτό, και συσχετίσεις μεταξύ των εννοιών. Μερικές περιέχουν επίσης αξιώματα με κάποια συγκεκριμένη λογική. Η λογική τοποθετείται στο αμέσως επόμενο επίπεδο, αν και συνήθως οι ερευνητές την τοποθετούν στο επίπεδο οντολογίας καθώς οι οντολογίες βασίζονται στη λογική και θα έπρεπε να επιτρέπουν λογικά αξιώματα [49]. Εφαρμόζοντας τη λογική θα μπορούσε να εξαχθεί νέα γνώση από την πληροφορία που δηλώνεται ρητά. Για παράδειγμα, το αξίωμα που καθορίζει ότι η σχέση «συνεργάζεται με» είναι συμμετρική οδηγεί λογικά στο συμπέρασμα ότι εάν μια οντότητα Α συνεργάζεται με μια Β τότε και η Β συνεργάζεται με την Α. Το πλήθος και το είδος των συμπερασμάτων που μπορούν να εξαχθούν εξαρτώνται κυρίως από τη λογική που 63

64 επιλέγεται. Προσεγγίσεις του επιπέδου λογικής του Σημασιολογικού Ιστού και της σχέσης του με την Εξατομίκευση παρουσιάζονται στις [50, 51]. Ενώ είναι ενδιαφέρον να υπάρχουν συστήματα που θα καταλαβαίνουν τις βασικές έννοιες (υποκλάση, αντίστροφο κ.τ.λ.) θα ήταν ακόμη καλύτερο αν μπορούσαμε να δηλώσουμε οποιαδήποτε λογική αρχή και να μπορεί ο υπολογιστής να βγάζει κατάλληλα συμπεράσματα από αυτές τις αρχές. Έστω για παράδειγμα ότι μια εταιρεία αποφασίζει πως όποιος πουλήσει περισσότερα από 100 προϊόντα της θα ανήκει εφεξής στο κλαμπ των Υπερπωλητών της. Ένα «έξυπνο» πρόγραμμα που θα εφαρμόζει τα παραπάνω θα μπορεί να οδηγηθεί στο εξής συμπέρασμα: «Ο Γιώργος έχει πουλήσει 101 αντικείμενα επομένως ο Γιώργος είναι μέλος του κλαμπ Υπερπωλητών της εταιρείας». Στα δύο ανώτερα επίπεδα τοποθετούνται η τεκμηρίωση και η εμπιστοσύνη. Καλύπτουν την ανάγκη για έλεγχο της εγκυρότητας των δηλώσεων (statements) που γίνονται στο Σημασιολογικό ιστό. Οι δημιουργοί δηλώσεων θα πρέπει να μπορούν να παρέχουν τεκμήρια της εγκυρότητας των δηλώσεών τους τα οποία θα είναι ελέγξιμα από κάποια μηχανή. Στο επίπεδο αυτό δεν είναι απαραίτητο ότι η μηχανή του αναγνώστη της δήλωσης θα μπορεί να βρει μόνη της τις απαραίτητες αποδείξεις για την εγκυρότητα η μη της δήλωσης, αλλά απλώς να μπορεί να ελέγξει τις αποδείξεις που παρέχονται από το δημιουργό της δήλωσης. Μόλις λοιπόν καταφέρουμε να φτιάξουμε συστήματα που ακολουθούν τη λογική, θα έχει νόημα να τα χρησιμοποιούμε για διάφορες αποδείξεις (τεκμηρίωση). Άνθρωποι από όλο τον κόσμο θα μπορούν να γράφουν λογικές δηλώσεις και θα εναπόκειται στη μηχανή να ακολουθήσει αυτούς τους σημασιολογικούς «συνδέσμους» για να κατασκευάσει αποδείξεις. Ενώ είναι πολύ δύσκολο να δημιουργηθούν τέτοιες αποδείξεις (μπορεί να χρειαστεί να ακολουθηθούν χιλιάδες σημασιολογικοί σύνδεσμοι), εντούτοις είναι πολύ εύκολο να ελεγχθούν. Με αυτό τον τρόπο αρχίζει να δημιουργείται ένα δίκτυο υπολογιστών πληροφόρησης, όπου κάποιοι απλώς παρέχουν δεδομένα για να χρησιμοποιήσουν άλλοι. Κάποιοι άλλοι «εξυπνότεροι» μπορούν να χρησιμοποιήσουν τα δεδομένα για να δημιουργήσουν κανόνες. Οι «εξυπνότεροι» ακολουθούν όλους αυτούς τους κανόνες και τις δηλώσεις για να εξάγουν συμπεράσματα και μετά να παραθέσουν τα αποτελέσματα πίσω στο δίκτυο ως αποδείξεις ή και ως απλά δεδομένα. Τα επίπεδα της τεκμηρίωσης και της εμπιστοσύνης αρχίζουν ήδη να απασχολούν την ερευνητική κοινότητα και σίγουρα θα την απασχολήσουν πολύ περισσότερο στο μέλλον όπου θα εδραιωθούν και τα κατάλληλα πρότυπα. Θα μπορούσε για παράδειγμα ένας διακομιστής ιστοσελίδων να αναγνωρίζει την προέλευση του προγράμματος (π.χ. Googlebot) που προσπαθεί να διαπεράσει κάποια από αυτές και να του παρουσιάζει τη σελίδα στη μορφή που νομίζει ότι ταιριάζει στα δεδομένα ταυτοποίησης του προγράμματος κερδίζοντας κατά κάποιο τρόπο την «εύνοιά» του. Ενώ όταν θα την προσπελαύνει κάποιος απλός χρήστης θα του παρουσιάζει μια εντελώς διαφορετική μορφή της ιστοσελίδας. Ένα σπουδαίο ερώτημα λοιπόν θα είναι 64

65 το πόσο θα μπορούμε να εμπιστευτούμε τα παρεχόμενα δεδομένα και να τα αξιοποιήσουμε στις εφαρμογές μας. Μια αρχή προς την κατεύθυνση αυτή θα μπορούσε να ήταν η αρχικοποίηση μιας XML υπογραφής συνδυασμένης με ιδιωτικό κλειδί κρυπτογράφησης που θα συνδέονται άμεσα με κάποιο στιγμιότυπο του αντικειμένου foaf:person. Χωρίς να λύνονται όλα τα προβλήματα, θα βελτιωνόταν η λύση για κάθε νέα παρουσιαζόμενη μεταπληροφορία. Tο W3C έχει καθορίσει ανοιχτά πρότυπα για τη σύνταξη μεταδεδομένων το RDF και την OWL (Web Ontology Language) και η υποστήριξη για αυτά τα πρότυπα τόσο από τη βιομηχανία όσο και από την ακαδημαϊκή κοινότητα αυξάνεται ραγδαία. Επιπλέον, ομάδες του επαγγελματικού χώρου συνεχώς δημιουργούν λεξικά μεταδεδομένων (δηλαδή οντολογίες). Ήδη υπάρχουν για παράδειγμα μεγάλες οντολογίες για ιατρική ορολογία, για τα γονίδια, για γεωγραφικά συστήματα πληροφοριών και για νομικά πλαίσια. Αν και οι περισσότερες είναι χειροποίητες, τα συστήματα βελτιώνονται συνεχώς ώστε να μπορούν να τις εξάγουν ημιαυτόματα από μεγάλες ποσότητες κειμένου. Ένα από τα σημαντικότερα ανοιχτά προβλήματα είναι αυτό της αυτόματης μετάφρασης μεταξύ δύο διαφορετικών ορολογιών οι οποίες σχεδιάστηκαν για την ίδια θεματική ενότητα (domain). Για το πρόβλημα αυτό, της αντιστοίχισης οντολογιών (ontology mapping problem), στην εργασία [52] περιγράφεται το GLUE, ένα σύστημα το οποίο επιχειρεί να αντιστοιχίσει κάθε έννοια της μιας οντολογίας στην πιο όμοια έννοια της άλλης οντολογίας χρησιμοποιώντας διάφορες πρακτικές μεθόδους μέτρησης ομοιότητας που βασίζονται είτε στη δομή των οντολογιών είτε στα ίδια τα δεδομένα τους. Για προφανείς λόγους, η απόκτηση μεγάλων ποσοτήτων μεταδεδομένων από το Παγκόσμιο Ιστό θα πρέπει να βασιστεί σε μηχανές, αλλά για αυτή την εργασία δεν αναμένεται η ύπαρξη γενικευμένων λύσεων με ευρεία εφαρμογή. Αντιθέτως, αναμένεται η εφαρμογή πολλών ειδικού σκοπού τεχνικών όπως η αυτόματη εξαγωγή εννοιών από τη φυσική γλώσσα σε περιορισμένες θεματικές ενότητες, η εξαγωγή χρήσιμων και με νόημα όρων που βρίσκονται σε URLs, κ.ο.κ Μεταδεδομένα και Οντολογίες Μεταδεδομένα Τα μεταδεδομένα είναι δομημένα δεδομένα τα οποία περιγράφουν τα χαρακτηριστικά ενός αντικειμένου. Θα μπορούσαν να παρομοιαστούν σε ένα βαθμό με την καταλογοποίηση των στοιχείων μιας βιβλιοθήκης ή ενός μουσείου. Το πρόθεμα «μετα» υποδηλώνει περιγραφή σε κάποιο ανώτερο επίπεδο ή πιο βασικό. Μια εγγραφή μεταδεδομένων αποτελείται από ένα πλήθος προ-ορισμένων στοιχείων που αναπαριστούν συγκεκριμένες ιδιότητες ενός αντικειμένου/πηγής και καθένα στοιχείο μπορεί να λάβει μία ή περισσότερες τιμές. Κάθε σχήμα μεταδεδομένων 65

66 συνήθως έχει ως χαρακτηριστικά έναν περιορισμένο αριθμό στοιχείων, τα ονόματά τους και τη σημασία τους. Συνήθως, η σημασιολογική περιγραφή αναφέρεται στα περιεχόμενα, το χώρο ύπαρξης, τις φυσικές ιδιότητες, τον τύπο (π.χ. κείμενο ή εικόνα, χάρτης ή μοντέλο) και τη μορφή (π.χ. εκτυπωμένο αντίγραφο, ηλεκτρονικό αρχείο). Χαρακτηριστικά στοιχεία μεταδεδομένων που υποστηρίζουν την πρόσβαση σε έγγραφα περιλαμβάνουν τον συγγραφέα, το χρόνο και τόπο που εκδόθηκε καθώς και τις θεματικές ενότητες που καλύπτονται. Εάν το υλικό των πληροφοριών βρίσκεται σε μη ψηφιακή μορφή (π.χ. εκτυπωμένη έκδοση) παρέχονται επιπρόσθετα μεταδεδομένα που βοηθούν στον εντοπισμό του υλικού αυτού, όπως για παράδειγμα τηλέφωνα βιβλιοθηκών. Η κοινότητα που παρέχει τις πληροφορίες μπορεί επίσης να καθορίσει και μια λογική ομαδοποίηση των στοιχείων ή να αφήσει τη διαδικασία αυτή στο εκάστοτε σχήμα μεταδεδομένων. Γι παράδειγμα, το σχήμα Dublin Core [53] μπορεί να παρέχει τον πυρήνα των διαδικασιών με τις οποίες μπορούν να γίνουν προσθήκες νέων στοιχείων. Μερικά δημοφιλή σχήματα μεταδεδομένων είναι τα Dublin Core, AACR2 (Anglo- American Cataloging Rules), GILS (Government Information Locator Service), EAD (Encoded Archives Description), IMS (IMS Global Learning Consortium), AGLS (Australian Government Locator Service). Παρότι το συντακτικό δεν είναι αυστηρά μέρος του σχήματος μεταδεδομένων, τα δεδομένα θα ήταν μη χρησιμοποιήσιμα, εκτός και αν το σχήμα κωδικοποίησης καταλάβαινε τις έννοιες του σχήματος μεταδεδομένων. Η κωδικοποίηση επιτρέπει στα μεταδεδομένα να είναι επεξεργάσιμα από ένα πρόγραμμα. Σημαντικά σχήματα αποτελούν τα HTML (Hyper-Text Markup Language), SGML (Standard Generalised Markup Language), XML (extensible Markup Language), RDF (Resource Description Framework), OWL, MARC (MAchine Readable Cataloging), MIME (Multipurpose Internet Mail Extensions). Τα μεταδεδομένα μπορούν να συνδεθούν με μια πηγή πληροφοριών είτε ενσωματώνοντάς τα μέσα στην ίδια την πηγή με χρήση ειδικών META- ετικετών είτε ως ένα ξεχωριστό έγγραφο που έχει κάποιο σύνδεσμο προς αυτήν είτε να βρίσκονται μέσα σε μια βάση δεδομένων και από εκεί να συνδέονται με την πηγή. Στην τελευταία περίπτωση, οι εγγραφές στη βάση θα μπορούσαν να έχουν δημιουργηθεί με το χέρι είτε να έχουν εξαχθεί από κάποια άλλη πηγή όπως σελίδες του Παγκόσμιου Ιστού. Η πιο απλή μέθοδος βέβαια είναι η πρώτη, δηλαδή οι δημιουργοί των σελίδων να προσθέτουν τα μεταδεδομένα κατά τη δημιουργία της ιστοσελίδας τους. Απ την άλλη, η δημιουργία μεταδεδομένων κατευθείαν σε βάση δεδομένων και η σύνδεσή τους με την πηγή πληροφοριών κερδίζει έδαφος ως μια δραστηριότητα ανεξάρτητη από τη δημιουργία των ίδιων των πηγών. Η εισαγωγή των <META> στοιχείων ως κομμάτι του HTML κώδικα αποτέλεσε μια προσπάθεια ενθάρρυνσης των μηχανών αναζήτησης να εξάγουν και να ταξινομήσουν 66

67 περισσότερο δομημένα δεδομένα, όπως επεξηγήσεις και λέξεις κλειδιά. Όμως οι μηχανές αναζήτησης δεν αξιοποιούν τα δεδομένα αυτά όσο θα έπρεπε παρέχοντας μικρή ή καθόλου υποστήριξη [54]. Το ζήτημα της αξιοποίησης των μεταδεδομένων μοιάζει να βρίσκεται σε αδιέξοδο καθώς όσοι εκδίδουν πληροφορίες δεν επενδύουν στην παροχή μεταδεδομένων εφόσον δεν τα αξιοποιούν οι υπάρχουσες μηχανές αναζήτησης και από την άλλη, οι μηχανές αναζήτησης δεν επιδιώκουν να συλλέξουν μεταδεδομένα εφόσον δεν υπάρχουν αρκετά διαθέσιμα. Επιπλέον, πάντα υπάρχει το ζήτημα της αξιοπιστίας των μεταπληροφοριών που παρέχονται από τους εκδότες οι οποίοι πάντα θα προσπαθούν να αυξήσουν την αξιολόγηση των δεδομένων τους από τις μηχανές αναζήτησης, μεταχειριζόμενοι θεμιτά και αθέμιτα μέσα. Παρά τις δυσκολίες, τα μεταδεδομένα μπορούν αναμφισβήτητα να βοηθήσουν στην εξάλειψη της ανικανότητας των μηχανών αναζήτησης να εντοπίσουν τις καλύτερες πηγές δεδομένων και να παρέχουν καλύτερα αποτελέσματα στους χρήστες τους. Αυτό διαφαίνεται και από τον ακόλουθο ορισμό που δίνεται στο έργο [55] για τα μεταδεδομένα: Τα μεταδεδομένα είναι δεδομένα που σχετίζονται με αντικείμενα προς διευκόλυνση των πιθανών χρηστών τους παρέχοντας εκ των προτέρων πλήρη γνώση της ύπαρξης και των χαρακτηριστικών τους. Οι πηγές πληροφοριών θα πρέπει να σχεδιάζονται έτσι ώστε να μπορούν οι χρήστες και κυρίως οι μηχανές να αποφασίζουν αν τους είναι χρήσιμες. Η χρήση μεταδεδομένων είναι μια συστηματική μέθοδος περιγραφής των πληροφοριών και επομένως βελτίωσης της πρόσβασης σε αυτές. Αν μια πληροφορία αξίζει να δημοσιευτεί στο Παγκόσμιο Ιστό τότε αξίζει και να περιγραφεί από κάποια μεταδεδομένα ώστε να μεγιστοποιηθεί η δυνατότητα εντοπισμού της. Τα μεταδεδομένα αποτελούν τον συνδετικό κρίκο μεταξύ των δημιουργών πληροφοριών και των χρηστών των πληροφοριών αυτών. Εκτός από τη βελτίωση της εύρεσης δεδομένων τα μεταδεδομένα αναπτύσσονται και για άλλους λόγους περιλαμβανομένων της ασφάλειας, της προσωποποίησης των πληροφοριών, της αξιολόγησης του περιεχομένου, τη διαχείριση πνευματικών δικαιωμάτων, τη διατήρηση πολύτιμης γνώσης σε βάθος χρόνου Οντολογίες Με την ανάπτυξη του Παγκόσμιου Ιστού δημιουργήθηκε η ανάγκη για επαναχρησιμοποίηση και διαμοιρασμό της γνώσης. Οι οντολογίες στοχεύουν στην εκπλήρωση αυτής της ανάγκης μετατοπίζοντας το σημείο εστίασης στο σχεδιασμό συστημάτων μακριά από τις τεχνολογίες υλοποίησης αλλά προς λύσεις οι οποίες λειτουργούν τόσο στο επίπεδο της τεχνολογίας όσο και στο επίπεδο της γνώσης. Η λέξη «οντολογία» αποτελεί ένα διαδεδομένο όρο μεταξύ προγραμματιστών αλλά δεν είναι προφανής η σημασία του σε όλους. Όπως αφήνει να διαφανεί ετυμολογικά η ονομασία της, σχετίζεται με τη φύση των όντων και επομένως με καθετί που τα περιγράφει, τα προσδιορίζει και τα διαχωρίζει μεταξύ τους. 67

68 Την τελευταία δεκαετία το ενδιαφέρον για οντολογίες μεταβλήθηκε από αναδυόμενο επιστημονικό θέμα έρευνας σε κυρίαρχο ενδιαφέρον της επιστήμης των υπολογιστών και της ανάπτυξης λογισμικού. Η μεταβολή αυτή οφείλεται κυρίως στην έξαρση της ανάπτυξης του Παγκόσμιου Ιστού και της ανάγκης για μεγαλύτερη συνεργασία και αλληλεπιδραστικότητα μεταξύ υπολογιστικών μηχανών και προγραμμάτων, γεγονός που τονίζεται και στο όραμα του Σημασιολογικού ιστού από τον Tim B. Lee που περιγράφηκε στην παράγραφο 5.1 της παρούσας εργασίας. Τα δύο ακόλουθα παραδείγματα επιχειρούν να περιγράψουν τη χρησιμότητα και επομένως την έννοια των οντολογιών πριν παρουσιαστούν κάποιοι πιο τυπικοί ορισμοί τους. Έστω ότι κάποια στιγμή είναι εφικτό το ταξίδι στο μέλλον και φτάνοντας εκεί ο ταξιδιώτης διαπιστώνει πως πλέον άλλα νοήμονα όντα έχουν κυριαρχήσει στη γη αντί των ανθρώπων, τα οποία μιλάνε μια εντελώς διαφορετική γλώσσα. Θέλοντας να τους δηλώσει τη φιλική του διάθεση και την ανάγκη του για προμήθειες τροφίμων βρίσκεται μπροστά στο πρόβλημα της περιγραφής αυτής της ανάγκης σε κάποιους που πιθανότατα έχουν τελείως διαφορετική αντίληψη του κόσμου. Έστω από την άλλη ότι ένα προηγμένο ρομπότ που βρίσκεται υπό την υπηρεσία ενός ανθρώπου θέλει να βρει την καλύτερη προσφορά διακοπών στο Ντουμπάι. Το ρομπότ γνωρίζει μια διαδικτυακή υπηρεσία που παρέχει καλές τιμές και αποφασίζει να έρθει σε επικοινωνία μαζί της για να ακούσει τις προσφορές της. Το πρόβλημα είναι πως η υπηρεσία αυτή δε μοιάζει με καμία από όσες είχε ξαναδεί το ρομπότ και δεν είναι σίγουρο πως θα καταλάβει το αίτημά του. Τα δύο σενάρια μοιράζονται κάποια κοινά χαρακτηριστικά. Και στις δυο περιπτώσεις, ένας πράκτορας (είτε άνθρωπος είτε μηχανή) προσπαθεί να επικοινωνήσει με έναν άλλο πράκτορα ώστε να εξυπηρετήσει ένα αίτημά του. Το εμπόδιο που πρέπει να ξεπεραστεί είναι το ίδιο και έγκειται στην έλλειψη επικοινωνίας και αμφίδρομης κατανόησης. Δηλαδή στο επίπεδο της επεξεργασίας των μηνυμάτων που στέλνονται και της κατανόησής τους. Στην πρώτη περίπτωση θα μπορούσε απλώς να ζητήσει τρόφιμα αλλά πως θα ήταν βέβαιος ότι η λέξη «τρόφιμα» θα γινόταν κατανοητή; Επιπλέον, η έννοια της τροφής θα ήταν κατανοητή από όντα που πιθανόν να μην έχουν το ίδιο τρόπο λήψης τροφής με εμάς; Με άλλα λόγια, η αποδοτικότητα της επικοινωνίας μεταξύ πρακτόρων απαιτεί μια κοινή ορολογία (ή γλώσσα) και μια κοινή εννοιολογική αντιμετώπιση (ή σημασία) για τα διάφορα αντικείμενα. Αυτό το ρόλο καλείται να παίξει μια οντολογία. Μια οντολογία λοιπόν είναι μια κατανοητή από μηχανές αναπαράσταση της ορολογίας μιας θεματικής περιοχής και των σχέσεων μεταξύ των όρων που ανήκουν στην περιοχή αυτή. Άλλοι ορισμοί του όρου οντολογία και των στοιχείων που την αποτελούν είναι και οι ακόλουθοι: 68

69 I. Μια οντολογία είναι ένα σύνολο εννοιών όπως αντικείμενα, συμβάντα και σχέσεις που καθορίζονται με έναν ορισμένο τρόπο, με στόχο τη δημιουργία ενός κοινά αποδεκτού λεξικού ανταλλαγής πληροφοριών [56]. II. Οντολογία είναι μια κοινή κατανόηση μιας θεματικής περιοχής ενδιαφέροντος [57]. III. Οντολογία είναι ένας τυπικός και ξεκάθαρα σαφής προσδιορισμός μιας εννοιολογικής σύλληψης [48]. Καθώς ο τρίτος ορισμός είναι και αυτός που βρίσκεται συχνότερα στις αναφορές της βιβλιογραφίας, ακολουθεί το αγγλικό πρωτότυπό του ώστε να αναλυθεί λέξη προς λέξη στη συνέχεια. An ontology is a formal, explicit specification of a conceptualization Στον ορισμό αυτό ο όρος conceptualization αναφέρεται σε ένα αφηρημένο μοντέλο κάποιου φαινομένου στον κόσμο. Μια οντολογία είναι ο προσδιορισμός των χαρακτηριστικών (specification) ενός τέτοιου μοντέλου γιατί δεν αποτελεί την τελική μορφή αναπαράστασης που θα ενσωματωθεί σε ένα σύστημα λογισμικού αλλά ένα πιο αφηρημένο μοντέλο που χρησιμοποιείται στα πρώτα στάδια της διαδικασίας ανάπτυξης λογισμικού και διατηρείται ανεξάρτητα από το ίδιο το λογισμικό. Η οντολογία είναι ακόμα, ξεκάθαρα σαφής (explicit) γιατί οι έννοιες που χρησιμοποιούνται και οι περιορισμοί στη χρήση τους ορίζονται ξεκάθαρα και με σαφήνεια αντί να ορίζονται έμμεσα στο λογισμικό. Τέλος, μια οντολογία είναι τυπική (formal) γιατί πρέπει να μπορεί να διαβαστεί από μηχανές. Είναι λοιπόν ένας πολύ καλός ορισμός ως προς την ακρίβεια με την οποία ορίζει μια οντολογία αλλά και παράλληλα κακός ως προς την φιλικότητα προς το χρήστη λόγω της χρήσης δύσκολων στην κατανόηση όρων. Μια εναλλακτική προσέγγιση είναι ο προσδιορισμός μιας οντολογίας μέσω των ερωτήσεων που ακολουθούν. Εάν μπορούν όλες να απαντηθούν καταφατικά τότε το εξεταζόμενο μοντέλο γνώσης μπορεί να θεωρηθεί οντολογία. Αποτελεί μια δηλωτική και ξεκάθαρα σαφής αναπαράσταση μιας θεματικής περιοχής; Είναι αναγνώσιμη από μηχανές; Τυγχάνει ευρείας αποδοχής, δηλαδή την έχουν κρίνει, αναθεωρήσει και καταλήξει στους όρους και τις σχέσεις τους που θα πρέπει να περιέχει αρκετοί άνθρωποι που ασχολούνται με το αντικείμενο; Μπορεί να χρησιμοποιηθεί για να λύσει περισσότερα του ενός προβλήματα στη θεματική περιοχή; Θα χρησιμοποιηθεί σε πολλαπλές εφαρμογές; Είναι σταθερή (αλλάζοντας ελάχιστα με την πάροδο του χρόνου) και χρησιμοποιείται ήδη για αξιόλογο χρονικό διάστημα; Θα μπορούσε κάποιος να χρησιμοποιεί ήδη κάτι που να πληροί τα παραπάνω κριτήρια αλλά να χρησιμοποιεί άλλο όνομα για να το περιγράψει, όπως μοντέλο εννοιών θεματικής περιοχής ή σχήμα εφαρμογής. Σε αυτή τη περίπτωση έχει χρησιμοποιήσει ήδη πρακτικές ανάπτυξης λογισμικού για την αξιοποίηση ωφέλιμων 69

70 χαρακτηριστικών των οντολογιών κάτω από την κάλυψη ενός διαφορετικού ονόματος. Όταν λοιπόν συμφωνεί κάποιος στη χρήση μιας οντολογίας, αποδέχεται τα περιεχόμενά της και δεσμεύεται να χρησιμοποιήσει την ορολογία της και να διατηρήσει τις σχέσεις που περιέχει. Για να είναι αποδοτική και αξιόπιστη η επικοινωνία μεταξύ δύο πρακτόρων θα πρέπει και οι δύο να έχουν συμφωνήσει στη χρήση της ίδιας οντολογίας για τη θεματική περιοχή που τους ενδιαφέρει. Με άλλα λόγια, εάν οι πράκτορες δεν μοιράζονται μια κοινή κατανόηση της θεματικής ενότητας τότε σίγουρα θα υπάρξουν παρεξηγήσεις. Τέτοιου είδους παρεξηγήσεις οφείλονται σε οντολογικές ασυμφωνίες (ontological mismatches), οι οποίες είναι ιδιαίτερα δύσκολο να εντοπιστούν όταν οι πράκτορες χρησιμοποιούν παραπλήσιες αλλά όχι ίδιες οντολογίες. Ο εντοπισμός και η επιδιόρθωση τέτοιων ασυμφωνιών είναι ένα δύσκολο πρόβλημα, ανοικτό στην παγκόσμια ερευνητική κοινότητα. Το κίνητρο για την ανάπτυξη, εφαρμογή και διάδοση οντολογιών είναι η καταγραφή γνώσης με έναν ξεκάθαρο και διακριτό τρόπο, δυνατό για επεξεργασία και ανάγνωση τόσο από ανθρώπους όσο και από μηχανές, απελευθερωμένης από τις λεπτομέρειες χιλιάδων γραμμών κώδικα συστήματος. Επιπλέον, οι τεχνολογίες που χρησιμοποιούνται για την κατασκευή υπολογιστικών συστημάτων αλλάζουν συχνά, σε αντίθεση με την αναπαράσταση μιας θεματικής ενότητας με τη μορφή μιας οντολογίας η οποία είναι αρκετά πιο ανεπηρέαστη στις τεχνολογικές εξελίξεις και πιο ελεύθερη από περιορισμούς υλοποίησης των διάφορων εφαρμογών. Συνεπώς, η χρήση οντολογίας αποσκοπεί στη διαχρονικότητα των πληροφοριών, την ανεξαρτησία των δεδομένων από την εκάστοτε υλοποίηση και την επαναχρησιμοποίησή της σε πολλαπλές ξεχωριστές εφαρμογές. Επιπρόσθετα, παρέχει μια κοινή ονοματολογία όρων για τους ανθρώπους που αναπτύσσουν ένα σύστημα βοηθώντας στην αποφυγή παρεξηγήσεων μεταξύ των μελών της ομάδας ανάπτυξης. Τέλος, είναι εξίσου σημαντικά τα οφέλη από την προώθηση της οντολογίας από τους παρόχους κάποιας υπηρεσίας στους πελάτες τους, ώστε να τους βοηθήσει στην προσπάθεια αναγνώρισης και κατανόησης τυχόν διαφορών μεταξύ της δικιάς τους άποψης για κάποια θεματική ενότητα και της άποψης των παρόχων. Απαραίτητο βήμα για κάποιον που σχεδιάζει να χρησιμοποιήσει μια οντολογία σε κάποια εφαρμογή είναι πρώτα ο έλεγχος μεταξύ των υπαρχόντων οντολογιών στο Παγκόσμιο Ιστό, εάν κάποια από αυτές καλύπτει τις απαιτήσεις του. Εάν βρεθεί η κατάλληλη τότε αποφεύγεται ο κόπος σχεδιασμού μιας οντολογίας από την αρχή και επιπλέον, ίσως να είναι επιτεύξιμο κάποιο όφελος από την ανταλλαγή γνώσεων μεταξύ των διάφορων εφαρμογών που ήδη χρησιμοποιούν την οντολογία αυτή και της νέας υπό ανάπτυξη εφαρμογής. Ο βαθμός επαναχρησιμοποίησης μιας οντολογίας εξαρτάται και από το πόσο γενικευμένη είναι αυτή. Όσο πιο γενική είναι μια έννοια που περιγράφεται τόσο πιο 70

71 πιθανή είναι η επαναχρησιμοποίησή της και για διαφορετικές εφαρμογές. Καθώς η γενικοί όροι συνήθως τοποθετούνται ψηλά στα επίπεδα της ιεραρχικής κληρονομικότητας, οι συλλογές που περιγράφουν τέτοιες έννοιες είναι γνωστές ως άνω οντολογίες (upper ontologies). Μερικές από τις πιο γνωστές είναι οι CYC και OpenCYC, Sumo, Wordnet, με την τελευταία να είναι περισσότερο χρήσιμη στην κατασκευή οντολογιών παρά ως οντολογία για απευθείας χρήση σε κάποια εφαρμογή 5.4. Μοντέλα και Πρότυπα Με βάση τη δομή του Σημασιολογικού ιστού που παρουσιάστηκε σε προηγούμενη παράγραφο, ακολουθεί μια αναλυτικότερη περιγραφή των URIs, XML, RDF και OWL που δεν αποσκοπεί όμως στην πλήρη καταγραφή των τεχνικών στοιχείων τους η οποία μπορεί και θα έπρεπε να εξετάζεται απευθείας από τις επίσημες πηγές τους καθώς ο τομέας διαρκώς εξελίσσεται. Αντί αυτού, γίνεται μια επισκόπηση των γενικών χαρακτηριστικών τους και του ρόλου τον οποίο καλούνται να παίξουν στην εξέλιξη των διαφόρων επιπέδων του Σημασιολογικού ιστού. Uniform Resource Identifier (URI) Για να είναι εφικτή η συζήτηση και επικοινωνία σχετικά με κάποιο θέμα χρειάζεται πρώτα να προσδιοριστεί με βάση κάποιο αναγνωριστικό ώστε τα μέρη που επικοινωνούν να γνωρίζουν σε τι αναφέρονται. Αυτό μπορεί να γίνει είτε με έμμεσο τρόπο π.χ.: «Το παιχνίδι που παίζεται με 11 παίκτες σε κάθε μια από τις 2 ομάδες και πρωτοεμφανίστηκε στην Αγγλία» είτε με πιο άμεσο: «Ποδόσφαιρο». Για το διαχωρισμό μεταξύ αντικειμένων στο Παγκόσμιο Ιστό χρησιμοποιούνται επίσης κάποια αναγνωριστικά (identifiers). Επειδή χρησιμοποιείται ένα ενιαίο σύστημα (uniform system) αναγνωριστικών και κάθε αντικείμενο που προσδιορίζεται θεωρείται ως μια πηγή (resource), ονομάζονται τα αναγνωριστικά αυτά Uniform Resource Identifiers (URIs [58]). Ένα URI μπορεί να ανατεθεί σε οτιδήποτε και οτιδήποτε έχει κάποιο URI μπορεί να θεωρηθεί πως είναι κομμάτι του Παγκόσμιου Ιστού. Τα αναγνωριστικά αυτά λοιπόν είναι τα θεμέλια του Παγκόσμιου Ιστού και είναι το λιγότερο πιθανό τμήμα του ιστού που μπορεί να αλλάξει στο μέλλον αν ο Παγκόσμιος Ιστός θέλει να διατηρήσει τη συνοχή του. Η πιο γνωστή μορφή ενός URI είναι το URL (Uniform Resource Locator). Ένα URL αντιστοιχεί σε μια διεύθυνση κάποιας ιστοσελίδας στο Παγκόσμιο Ιστό όπως π.χ. και «λέει» στον εκάστοτε υπολογιστή που μπορεί να βρει μια συγκεκριμένη πηγή πληροφοριών (στο συγκεκριμένο παράδειγμα για το Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών). Σε αντίθεση με τις περισσότερες άλλες μορφές των URIs, ένα URL παρέχει κάποιο αναγνωριστικό και παράλληλα καθορίζει την τοποθεσία εύρεσης της πηγής. Το mid: URI από την άλλη προσδιορίζει ένα μήνυμα ηλεκτρονικού ταχυδρομείου αλλά δεν μπορεί να παρέχει εντοπισμό ενός αντιγράφου αυτού του μηνύματος. 71

72 Καθώς ο Παγκόσμιος Ιστός είναι πολύ μεγάλος για να ελέγχεται από οποιονδήποτε οργανισμό, τα URIs είναι αποκεντρικοποιημένα. Κανένα πρόσωπο ή οργανισμός δεν ελέγχει ποιος τα δημιουργεί ή πως μπορούν να χρησιμοποιηθούν. Ενώ μερικά σχήματα URI (όπως το εξαρτώνται από κεντρικοποιημένα συστήματα (όπως το DNS), άλλα σχήματα (όπως το freenet:) είναι εντελώς αποκεντρικοποιημένα. Αυτό έχει ως αποτέλεσμα να μην απαιτείται κάποια άδεια για τη δημιουργία νέων URIs ακόμα και για πράγματα που δεν ανήκουν στο δημιουργό των URIs που τα προσδιορίζουν. Ενώ αυτή η ευελιξία αποτελεί το σημαντικότερο στοιχείο των URIs, ταυτόχρονα επιφέρει κάποια προβλήματα. Επειδή οποιοσδήποτε μπορεί να δημιουργήσει ένα URI, αναπόφευκτα θα υπάρξουν πολλαπλά URIs για το ίδιο αντικείμενο. Ακόμα χειρότερα, δεν θα υπάρχει τρόπος να διαπιστωθεί εάν δύο διαφορετικά URIs αναφέρονται στην ίδια πηγή. Επομένως, δε θα είναι ποτέ εφικτό να δηλωθεί με απόλυτη σιγουριά και ακρίβεια τι σημαίνει κάθε URI, αλλά αυτό είναι ένα ρίσκο που χρειάζεται να παρθεί για τη δημιουργία κάτι τόσο τεράστιου όπως ο Σημασιολογικός ιστός. Μια συνηθισμένη πρακτική για τη δημιουργία URIs είναι ξεκινώντας με τη χρήση μιας ιστοσελίδας. Η σελίδα περιγράφει το αντικείμενο προς προσδιορισμό και επεξηγεί ότι το URL της σελίδας αποτελεί το URI γι αυτό το αντικείμενο. Είναι σημαντικό να σημειωθεί πως ένα URI δεν είναι ένα σύνολο οδηγιών που κατευθύνουν τον υπολογιστή του χρήστη στο να βρει ένα συγκεκριμένο αρχείο στο Παγκόσμιο Ιστό (αν και θα μπορούσε επίσης να το κάνει). Είναι ένα όνομα για μια πηγή-αντικείμενο. Αυτή η πηγή θα μπορούσε να είναι ή να μην είναι προσβάσιμη από το δίκτυο και το URI θα μπορούσε είτε να παρέχει είτε να μην παρέχει ένα τρόπο να αποκτήσει ο υπολογιστής του χρήστη περισσότερες πληροφορίες γι αυτή τη πηγή. Ένα URL είναι ένα είδος URI που όντως παρέχει ένα τρόπο για την απόκτηση πληροφοριών για μια πηγή ή πιθανόν να επιστρέφει την ίδια την πηγή. Είναι επίσης γεγονός ότι η δυνατότητα να γίνονται δηλώσεις για URIs είναι ένα σημαντικό μέρος του Σημασιολογικού ιστού. Αλλά σε καμία περίπτωση δε θα πρέπει να θεωρήσει δεδομένο κανείς ότι ένα URI παρέχει οτιδήποτε περισσότερο από ένα αναγνωριστικό για μια πηγή XML Η XML (extensible Markup Language) είναι μια γλώσσα βασισμένη σε κείμενο, που τείνει να γίνει πρότυπο για την ανταλλαγή δεδομένων στο δίκτυο [59]. Επιτρέπει στον καθένα να σχεδιάσει τη δικιά του μορφή εγγράφου και στη συνέχεια να δημιουργήσει ένα έγγραφο που θα συμμορφώνεται με αυτήν. Οι μορφές αυτές μπορεί να περιέχουν κάποια σημείωση (markup) για να εμπλουτίσουν το νόημα του περιεχομένου του εγγράφου. Οι σημειώσεις αυτές είναι αναγνώσιμες από μηχανές (machinereadable), δηλαδή μπορούν να διαβαστούν και να γίνουν κατανοητές από κατάλληλα προγράμματα. Με αυτό τον τρόπο τα έγγραφα αυξάνουν τις δυνατότητες αξιοποίησής τους. 72

73 Όπως στην HTML (HyperText Markup Language), τα δεδομένα προσδιορίζονται με τη χρήση ετικετών (αναγνωριστικά που περιέχονται μεταξύ δύο <..>). Συνολικά, οι ετικέτες σημείωσης είναι γνωστές ως markup. Σε αντίθεση όμως με την HTML, η XML χρησιμοποιεί τις ετικέτες όχι για να καθορίσει πως να εμφανίζονται τα δεδομένα στην οθόνη αλλά για να τα προσδιορίσει. Ενώ για παράδειγμα με τις ετικέτες <b> και </b> η HTML δηλώνει πως το περιεχόμενο μεταξύ των δυο ετικετών θα πρέπει να εμφανιστεί έντονο, μια XML ετικέτα λειτουργεί ως μια ονομασία πεδίου στο αντίστοιχο πρόγραμμα τοποθετώντας μια ταμπέλα σε ένα κομμάτι δεδομένων που το προσδιορίζει π.χ. <message> </message>. Καθώς ο προσδιορισμός των δεδομένων παρέχει μια ιδέα για τη σημασία τους (πώς να τα μεταφράσει, να τα αντιληφθεί και τι να τα κάνει κανείς), η XML θα μπορούσε να περιγραφτεί ως ένας μηχανισμός για τον προσδιορισμό της εννοιολογικής σημασίας (semantics) των δεδομένων. Εάν το περιεχόμενο των εγγράφων ήταν σε απλή μορφή κειμένου τότε για τους υπολογιστές δε θα είχε κανένα ιδιαίτερο ενδιαφέρον ως προς την αντιμετώπισή του. Έστω η φράση George bought a dog. Για έναν υπολογιστή η φράση αυτή αποτελεί απλώς ένα κείμενο που το αντιμετωπίζει σαν σύνολο. Αν όμως του δίναμε το ίδιο κείμενο εμπλουτισμένο με δομή XML σημείωσης π.χ. <sentence> <person>george</person>bought a <animal>dog</animal>. </sentence> τότε θα μπορούσε να συμπεράνει ότι το George bought a dog είναι μια sentence αλλά όχι τι είδους φράση είναι. Όμοια, θα γνώριζε πως ο George είναι person (οτιδήποτε και αν σημαίνει αυτό) και ότι το dog είναι ένα animal. Όπως κατά την κατασκευή μιας βάσης δεδομένων μπορούμε να χρησιμοποιήσουμε ότι ονόματα θεωρούμε ταιριαστά για τα διάφορα πεδία έτσι και στην XML μπορούμε να χρησιμοποιήσουμε οποιαδήποτε XML ετικέτα δίνει νόημα στην εκάστοτε εφαρμογή. Ως αποτέλεσμα, αν πολλαπλές εφαρμογές χρειάζεται να προσπελάσουν τα ίδια XML δεδομένα, θα πρέπει να έχουν συμφωνηθεί από πριν τα ονόματα των ετικετών που θα χρησιμοποιηθούν. Ακολουθεί ένα παράδειγμα XML δεδομένων που θα μπορούσε να χρησιμοποιηθεί για μια εφαρμογή αποστολής μηνυμάτων. <message> <to>you@youraddress.com</to> <from>me@myaddress.com</from> <subject>xml Example</subject> <text> This message provides an example of XML </text> </message> 73

74 Οι ετικέτες που υπάρχουν καθορίζουν το μήνυμα ως σύνολο, τον παραλήπτη, τον αποστολέα, το θέμα και το περιεχόμενο του μηνύματος. Όπως και στην HTML κάθε ετικέτα έχει και την αντίστοιχή της ετικέτα κλεισίματος (π.χ. <to>, </to>) και τα στοιχεία μεταξύ των δυο αυτών ετικετών καθορίζουν ένα στοιχείο των XML δεδομένων. Το περιεχόμενο της ετικέτας <to> περιέχεται εξ ολοκλήρου στην <message> </message> ετικέτα και αυτή η δυνατότητα μιας ετικέτας να περιέχει άλλες επιτρέπει στην XML να αναπαριστά ιεραρχικές δομές δεδομένων. Όπως και στην HTML, οι χαρακτήρες κενού αγνοούνται (εκτός από τις ετικέτες που περιέχουν αυτούσιο κείμενο) και επομένως τα δεδομένα μπορούν να μορφοποιηθούν κατάλληλα για μεγαλύτερη αναγνωσιμότητα χωρίς να παύουν να είναι εύκολα επεξεργάσιμα από ένα πρόγραμμα. Βέβαια, αντίθετα με την HTML, η XML επιτρέπει εύκολη αναζήτηση ανάμεσα σε ένα σύνολο από δεδομένα π.χ. για μηνύματα που περιέχουν τη λέξη Example (ένα από αυτά θα ήταν και ο κώδικας που προηγήθηκε), καθώς οι XML ετικέτες προσδιορίζουν το περιεχόμενο των δεδομένων παρά τον τρόπο αναπαράστασής τους. Ετικέτες και Ιδιότητες Οι ετικέτες μπορούν επίσης να έχουν κάποιες ιδιότητες, δηλαδή επιπρόσθετη πληροφορία που περιέχεται ως τμήμα της ίδιας της ετικέτας ανάμεσα από τα <> της ετικέτας. Το ακόλουθο παράδειγμα έχει ως ιδιότητες της ετικέτας <message> τα πεδία to, from, subject. <message to= from= subject= XML Example > <text>this message provides an example of XML </text> </message> Όπως και στην HTML, το όνομα της ιδιότητας ακολουθείται από το = και την τιμή της ιδιότητας και οι πολλαπλές ιδιότητες χωρίζονται μεταξύ τους με κενά. Τα, μεταξύ των ιδιοτήτων όμως δεν είναι αποδεκτά στην XML. Καθώς υπάρχει αυτή η δυνατότητα σχεδιασμού μιας δομής, όπως το προηγούμενο <message>, εξίσου καλά χρησιμοποιώντας είτε ετικέτες είτε ιδιότητες, χρειάζεται αρκετή σκέψη ώστε να διαπιστωθεί ποιος σχεδιασμός είναι καταλληλότερος για τους εκάστοτε στόχους του δημιουργού. Σχόλια σε XML έγγραφα Τα σχόλια στα XML έγγραφα είναι ακριβώς ίδια με αυτά της HTML και φαίνονται με έντονα στο ακόλουθο παράδειγμα: <message> <to>you@youraddress.com</to> <from>me@myaddress.com</from> <subject>xml Example</subject> 74

75 <!-- This is a comment --> <text> This message provides an example of XML </text> </message> Τα στοιχεία προλόγου στα XML έγγραφα Κάθε έγγραφο XML αρχίζει με κάποια στοιχεία προλόγου. Η ελάχιστη πληροφορία που θα έπρεπε να περιέχεται στον πρόλογο ενός XML εγγράφου είναι μια δήλωση που ξεκαθαρίζει ότι το έγγραφο είναι τηςμορφής XML, π.χ.: <?xml version= 1.0?> Επιπρόσθετες πληροφορίες που θα μπορούσαν επίσης να περιέχονται είναι και οι: <?xml version= 1.0 encoding= ISO standalone= yes?>. Μια XML δήλωση είναι ίδια κατ αντιστοιχία με την επικεφαλίδα <html> της HTML με τη διαφορά ότι χρησιμοποιεί τα <??> και μπορεί να περιλαμβάνει τις ακόλουθες ιδιότητες: Έκδοση (version) : Καθορίζει την έκδοση της XML markup γλώσσας που χρησιμοποιείται στα δεδομένα. Κωδικοποίηση (encoding) : Καθορίζει το σύνολο χαρακτήρων που χρησιμοποιούνται για να αναπαραστήσουν τα δεδομένα. Το ISO είναι το σύνολο των δυτικοευρωπαϊκών και αγγλικών χαρακτήρων. Η προεπιλεγμένη τιμή, αν δεν καθορίζεται ρητά άλλη, είναι η UTF-8. Αυτονομία (standalone) : Πληροφορεί εάν το έγγραφο αναφέρει κάποια εξωτερική οντότητα ή ένα εξωτερικό προσδιορισμό τύπου δεδομένων (DTD) για το έγγραφο. Εάν δεν υπάρχουν αναφορές προς εξωτερικές πηγές τότε η κατάλληλη τιμή για την ιδιότητα αυτή είναι yes. Στα στοιχεία προλόγου μπορούν επίσης να συμπεριλαμβάνονται ορισμοί οντοτήτων (αντικείμενα που εισάγονται στο σημείο που γίνεται αναφορά σε αυτά μέσα στο έγγραφο) και προσδιορισμοί που καθορίζουν ποιες ετικέτες είναι έγκυρες ώστε να υπάρχουν στο έγγραφο. Και τα δύο αυτά στοιχεία υπάρχουν σε ένα Document Type Definition (DTD) το οποίο μπορεί να υπάρχει κατευθείαν στον πρόλογο είτε ως αναφορά σε κάποιο εξωτερικό αρχείο προσδιορισμού. Οτιδήποτε ακολουθεί του προλόγου αποτελεί το κυρίως περιεχόμενο (content) του XML εγγράφου. Χρησιμότητα της XML 75

76 H XML έχει γίνει ευρύτατα αποδεκτή και μερικοί από τους λόγους που συντελούν σε αυτό είναι οι ακόλουθοι: Απλό κείμενο Καθώς η XML δεν είναι σε μορφή δυαδικών αρχείων αλλά σε απλό κείμενο, είναι δυνατή η επεξεργασία των XML αρχείων είτε με έναν απλό επεξεργαστή κειμένου είτε με κάποιο σύνθετο, οπτικό περιβάλλον ανάπτυξης. Καθίσταται ευκολότερη η αποσφαλμάτωση των προγραμμάτων και επιπλέον μπορεί να χρησιμοποιηθεί για την αποθήκευση δεδομένων τόσο για μικρά αρχεία όσο και για εταιρικές αποθήκες δεδομένων. Αναγνώριση δεδομένων Η XML περιγράφει τα ίδια τα δεδομένα και όχι το πώς θα εμφανιστούν. Καθώς οι XML ετικέτες προσδιορίζουν την πληροφορία και χωρίζουν τα δεδομένα σε τμήματα, ένα πρόγραμμα αποστολής μπορεί να τα επεξεργαστεί, ένα πρόγραμμα αναζήτησης μπορεί να αναζητήσει μηνύματα προς συγκεκριμένους παραλήπτες και ένας κατάλογος διευθύνσεων μπορεί να εξάγει τη διεύθυνση από το υπόλοιπο μήνυμα. Με άλλα λόγια, επειδή τα ξεχωριστά τμήματα πληροφορίας έχουν προσδιοριστεί μπορούν να χρησιμοποιηθούν με διαφορετικούς τρόπους από διαφορετικές εφαρμογές. Στυλ παρουσίασης Εάν η παρουσίαση είναι σημαντική, τότε το πρότυπο σχήμα για την εφαρμογή κάποιου στυλ, το XSL [60], επιτρέπει τη διαχείριση της εμφάνισης των δεδομένων. Τα ίδια πιθανόν να μπορούσαν να γίνουν και με απλό HTML κώδικα αλλά τότε δε θα υπήρχε η δυνατότητα για επεξεργασία των δεδομένων όπως περιγράφτηκε στην Αναγνώριση δεδομένων νωρίτερα. Επιπλέον, καθώς η XML είναι ανεξάρτητη από οποιοδήποτε στυλ παρουσίασης των δεδομένων, θα μπορούσε να χρησιμοποιηθεί ένα διαφορετικό σχήμα εφαρμογής στυλ ώστε να εξαχθούν τα δεδομένα σε μορφή postscript, TEX, PDF ή κάποια μελλοντική μορφή. Αυτή η ευελιξία εξασφαλίζει πως τα δεδομένα που γράφονται σήμερα θα μπορούν να χρησιμοποιηθούν και σε μελλοντικά συστήματα. Συνδεσιμότητα Χάρη στην HTML, η δυνατότητα καθορισμού συνδέσμων μεταξύ εγγράφων έγινε αναγκαιότητα. Με την XML υπάρχει επίσης η δυνατότητα να οριστούν αμφίδρομοι σύνδεσμοι, σύνδεσμοι πολλαπλών στόχων, σύνδεσμοι «επέκτασης» (όπου με ένα click σε κάποιο σύνδεσμο οδηγεί στην εμφάνιση της πληροφορίας-στόχου ανάμεσα από τις υπάρχουσες γραμμές inline, επεκτείνοντας το αρχικό έγγραφο) και σύνδεσμοι μεταξύ δυο εγγράφων που ορίζονται σε ένα τρίτο. Επαναχρησιμοποίηση οντοτήτων Ένα άλλο χαρακτηριστικό των XML εγγράφων είναι ότι μπορούν να δημιουργηθούν από ξεχωριστές οντότητες. Αυτό πραγματοποιείται και με την HTML αλλά μόνο 76

77 παρέχοντας σύνδεσμο προς άλλα έγγραφα. Αντίθετα λοιπόν με την HTML, η XML οντότητες μπορούν να συμπεριληφθούν εντός των γραμμών (inline) ενός εγγράφου. Τα συμπεριλαμβανόμενα τμήματα δείχνουν ως ένα οποιοδήποτε τμήμα του εγγράφου και είναι δυνατή η αναζήτηση μέσα σε όλο το εύρος του εγγράφου ή και το κατέβασμά του ως ένα αντικείμενο. Αυτό επιτρέπει την ανάπτυξη και επέκταση των εγγράφων χωρίς την ανάγκη των συνδέσμων. Επίσης, είναι δυνατή η σύνδεση ενός τμήματος με κάποια πηγή ώστε μια αλλαγή σε αυτή να αντανακλάται οπουδήποτε χρησιμοποιείται αυτό το τμήμα και παρ όλα αυτά το έγγραφο που αποτελείται από όλα αυτά τα τμήματα να εμφανίζεται ως ενιαίο. Εύκολη προσπέλαση και επεξεργασία Όπως σημειώθηκε νωρίτερα, η τυπική και συμπαγής τοποθέτηση ετικετών καθιστά ευκολότερη τη δημιουργία ενός προγράμματος για την επεξεργασία XML δεδομένων. Για παράδειγμα, στην HTML μια <dt> ετικέτα μπορεί να περιορίζεται από την </dt> ή μια άλλη <dt> ετικέτα ή μια <dd> ή </dl> ετικέτα. Αυτό οδηγεί σε αρκετά πολύπλοκα προγράμματα για την αντιμετώπιση όλων των περιπτώσεων. Από την άλλη, στην XML, μια <dt> ετικέτα πρέπει πάντα να έχει και μια αντίστοιχη </dt> ετικέτα κλεισίματος ώστε να πληροί μια από τις βασικές προϋποθέσεις ορθής μορφοποίησης που πρέπει να έχουν όλα τα XML έγγραφα. Ιεραρχική δομή Τα XML έγγραφα ωφελούνται από την ιεραρχική δομή τους καθώς τέτοιου είδους δομές είναι γενικώς γρηγορότερες να προσπελαστούν. Μπορεί το πρόγραμμα ή ο χρήστης που αναζητά μια πληροφορία να επιλέξει κατευθείαν το κομμάτι που τον ενδιαφέρει σαν να διέτρεχε ένα πίνακα περιεχομένων. Επιπλέον, τα έγγραφα αυτά είναι ευκολότερο να τροποποιήσουν τη σειρά αποθήκευσης τω ν δεδομένων καθώς η διαφορετικές πληροφορίες βρίσκονται σε ξεχωριστά, ανεξάρτητα τμήματα του εγγράφου. Εφαρμογές της XML Μερικοί τρόποι χρησιμοποίησης της XML είναι: Η Επεξεργασία Δεδομένων (Data Processing), όπου η XML κωδικοποιεί τα δεδομένα που θα επεξεργαστεί κάποιο πρόγραμμα. Ο προγραμματισμός προσανατολισμένος στα έγγραφα (Document-driven programming), όπου τα XML έγγραφα περιέχουν διεπαφές και εφαρμογές από υπάρχουσες οντότητες. Η Αρχειοθέτηση (Archiving), που αποτελεί τη βάση για τον προγραμματισμό βασισμένο σε έγγραφα, όπου η αρχική έκδοση ενός εγγράφου που τροποποιήθηκε, αρχειοθετείται ώστε να μπορεί να χρησιμοποιηθεί αργότερα. Η Σύνδεση (Binding), όπου το DTD ή το σχήμα που καθορίζει τη δομή δεδομένων ενός XML εγγράφου χρησιμοποιούνται για την αυτόματη δημιουργία σημαντικού μέρους της εφαρμογής που τελικά θα επεξεργαστεί τα δεδομένα. 77

78 Επεξεργασία δεδομένων Η XML αποτελεί τη πιο διαδεδομένη επιλογή για αναπαράσταση δεδομένων στο Παγκόσμιο Ιστό. Με μεγάλη επιτυχία μπορεί να χρησιμοποιηθεί σε συνδυασμό με δικτυακά προγράμματα πλατφόρμας Java που αποστέλλουν και λαμβάνουν πληροφορίες. Για παράδειγμα, μια εφαρμογή πελάτη/εξυπηρετητή θα μπορούσε να μεταδίδει δεδομένα της μορφής XML μεταξύ του πελάτη και του εξυπηρετητή. Η XML θα μπορούσε ίσως να είναι και η απάντηση για την ανταλλαγή δεδομένων σε κάθε μορφή συναλλαγής εφόσον οι δύο πλευρές συμφωνούν στη σήμανση που θα χρησιμοποιηθεί. Για παράδειγμα, θα έπρεπε ένα πρόγραμμα διαχείρισης να περιμένει να δει ετικέτες όπως <FIRST>, <LAST> ή τις <FIRSTNAME>, <LASTNAME>; Η ανάγκη για κοινά πρότυπα θα οδηγήσει σε πολλές προσπάθειες προτυποποίησης στο μέλλον αλλά στο ενδιάμεσο θα είναι πολύ απαραίτητοι κάποιοι μηχανισμοί που θα ερμηνεύουν τις ετικέτες ενός XML εγγράφου. Παραδείγματα τέτοιων μηχανισμών αποτελούν το RDF, που καθορίζει μετα-ετικέτες και η XSL, που επιτρέπει τη μετάφραση κάποιων XML ετικετών σε άλλες XML ετικέτες. Προγραμματισμός προσανατολισμένος στα έγγραφα Η νεότερη προσέγγιση στη χρήση XML είναι η κατασκευή ενός εγγράφου που θα περιγράφει πως θα έπρεπε να δείχνει μια σελίδα μιας εφαρμογής. Το έγγραφο, αντί απλώς να παρουσιάζονται τα περιεχόμενά του όπως είναι, αποτελείται από αναφορές προς στοιχεία διεπαφών χρήστη και στοιχεία επιχειρηματικής λογικής που συνδυάζονται για να δημιουργήσουν μια εφαρμογή δυναμικά εκείνη τη στιγμή (on the fly). Θα μπορούσαν να χρησιμοποιηθούν για παράδειγμα τα Java BeansTM για τις διεπαφές και τα Enterprise Java BeansTM για την επιχειρηματική λογική ώστε να αναπτυχθούν εφαρμογές που θα τα συνδυάζουν. Αρχειοθέτηση Είναι πολύ σημαντικό στον προγραμματισμό να κατασκευάζονται επαναχρησιμοποιήσιμα, σπονδυλωτά αυτόνομα στοιχεία κώδικα. Ιδανικά, θα ήταν επιθυμητό να μπορεί κανείς να επιλέξει όσα τον ενδιαφέρουν, να τα διαμορφώσει κατάλληλα και να τα συνδέσει μεταξύ τους για τη δημιουργία μια εφαρμογής, με τον ελάχιστο επιπλέον κώδικα και μεταγλώττιση. Ο βασικός μηχανισμός για την αποθήκευση πληροφοριών ονομάζεται αρχειοθέτηση (archiving). Ένα στοιχείο αρχειοθετείται γράφοντάς το σε κάποιο χώρο και σε μια μορφή που να μπορεί να χρησιμοποιηθεί αργότερα. Αυτό στη συνέχεια θα μπορεί να διαβαστεί και να ξαναπάρει υπόσταση χρησιμοποιώντας τις αποθηκευμένες παραμέτρους που το περιγράφουν. Για παράδειγμα, για ένα στοιχείο που περιέγραφε έναν πίνακα οι παράμετροι θα μπορούσαν να είναι το πλήθος των γραμμών και το πλήθος των στηλών που πρέπει να σχεδιαστούν. Αρχειοθετημένα στοιχεία μπορούν να «κυκλοφορήσουν» στο Παγκόσμιο Ιστό και να χρησιμοποιηθούν με διάφορους τρόπους. Όταν όμως τα ανεξάρτητα στοιχεία αρχειοθετούνται σε δυαδική μορφή υπάρχουν κάποιοι περιορισμοί στο είδος των αλλαγών που μπορούν να γίνουν στις κλάσεις τους 78

79 εάν απαιτείται η διατήρηση της συμβατότητας με προηγούμενα αποθηκευμένες εκδόσεις. Εάν ήταν δυνατή η τροποποίηση της αρχειοθετημένης έκδοσης ώστε να αντανακλά την αλλαγή το πρόβλημα θα λυνόταν. Αυτό όμως είναι ιδιαίτερα δύσκολο όταν πρέπει να εφαρμοστεί σε ένα αρχείο με δυαδική αναπαράσταση των περιεχομένων του. Αυτό το πρόβλημα οδήγησε στην προσπάθεια χρήσης της XML για αρχειοθέτηση, καθώς εάν οι παράμετροι ενός αντικειμένου αποθηκεύονταν σε μορφή κειμένου με χρήση της XML, τότε όλα όσα αυτό περιλαμβάνει θα μπορούσαν εύκολα να αλλαχτούν ακόμα και με την συνηθισμένη, απλή τακτική της «εύρεσης και αντικατάστασης». Η μορφή της XML που βασίζεται σε κείμενο θα μπορούσε να διευκολύνει και τη μεταφορά αντικειμένων μεταξύ εφαρμογών γραμμένων σε διαφορετικές γλώσσες. Για όλους τους παραπάνω λόγους, η αρχειοθέτηση με χρήση XML αναπτύσσεται και διαδίδεται με γρήγορους ρυθμούς και θα διαδραματίσει σημαντικό ρόλο στο κοντινό μέλλον. Σύνδεση Μόλις καθοριστεί η δομή των XML δεδομένων με τη βοήθεια είτε ενός DTD είτε ενός από τα πρότυπα σχήματα, ένα μεγάλο μέρος της επεξεργασίας που πρέπει να γίνει έχει ήδη καθοριστεί. Για παράδειγμα, εάν το σχήμα καθορίζει πως τα δεδομένα κειμένου σε ένα <date> στοιχείο πρέπει να ακολουθούν μια από τις αναγνωρισμένες μορφές ημερομηνίας (date), τότε μια πλευρά των κριτηρίων εγκυρότητας των δεδομένων έχει καθοριστεί και απομένει να γραφεί ο αντίστοιχος κώδικας. Αν και ένα DTD δεν μπορεί να περιγράψει τόσο λεπτομερειακά τα δεδομένα, παρέχει μια γραμματική που καθορίζει ποιες δομές δεδομένων μπορούν να εμφανίζονται και με ποια σειρά στο XML έγγραφο. Αυτός ο καθορισμός επιτρέπει τη συγγραφή κώδικα στο ανώτερο επίπεδο που να επεξεργάζεται τα στοιχεία των δεδομένων. Αλλά όταν η δομή των δεδομένων και ίσως και η μορφή τους έχουν καθοριστεί πλήρως, τότε ο κώδικας που χρειάζεται για την επεξεργασία τους θα μπορούσε ευκολότερα να εξαχθεί ακόμα και αυτόματα. Αυτή η διαδικασία αντιστοιχίζεται στον όρο σύνδεση (binding), δηλαδή η δημιουργία κλάσεων που αναγνωρίζουν και επεξεργάζονται τα διαφορετικά στοιχεία δεδομένων αξιοποιώντας τις προδιαγραφές που ορίζουν αυτά τα στοιχεία. Σταδιακά η χρήση των προδιαγραφών των δεδομένων οδηγεί στην παραγωγή τμημάτων κώδικα σημαντικού μεγέθους, επιτρέποντας στον προγραμματιστή να επικεντρώσει τις προσπάθειές του στο κομμάτι του προγραμματισμού που είναι διαφορετικό στην εκάστοτε εφαρμογή που αναπτύσσει. Εισαγωγή RDF Το Resource Description Framework (RDF [61]) είναι ένα Πλαίσιο Περιγραφής Πόρων, μια γλώσσα δηλαδή για την αναπαράσταση των πληροφοριών σχετικά με πηγές στο Παγκόσμιο Ιστό. Είναι ιδιαιτέρως σχεδιασμένο για την αναπαράσταση μεταδεδομένων σχετικά με πηγές του διαδικτύου, όπως ο τίτλος, ο δημιουργός μιας 79

80 ιστοσελίδας, τα πνευματικά δικαιώματα ενός εγγράφου στο Παγκόσμιο Ιστό κ.ά. Παράλληλα όμως, γενικεύοντας τον όρο «πηγή στο Παγκόσμιο Ιστό», το RDF μπορεί επίσης να χρησιμοποιηθεί για να αναπαραστήσει πληροφορίες σχετικά με πράγματα που προσδιορίζονται στο Παγκόσμιο Ιστό ακόμα και όταν δεν μπορούν «κατεβούν» άμεσα από αυτόν. Για παράδειγμα, πληροφορίες σχετικά με τα αντικείμενα που πουλάει ένα on-line κατάστημα (τιμές, προδιαγραφές, διαθεσιμότητα) ή η περιγραφή των προτιμήσεων ενός χρήστη ώστε να χρησιμοποιηθούν στην παροχή των κατάλληλων και χρήσιμων γι αυτόν πληροφοριών. Το RDF σχεδιάστηκε κυρίως για καταστάσεις στις οποίες οι πληροφορίες χρειάζεται να είναι επεξεργάσιμες από εφαρμογές παρά απλώς να παρουσιαστούν σε ανθρώπους. Παρέχει ένα κοινό πλαίσιο για την αναπαράσταση αυτών των πληροφοριών ώστε να είναι εφικτή η ανταλλαγή τους μεταξύ διαφορετικών εφαρμογών χωρίς παρερμηνείες και απώλεια ακρίβειας. Η δυνατότητα αυτή καθιστά τις πληροφορίες διαθέσιμες και σε άλλες εφαρμογές, διαφορετικές από αυτές για τις οποίες είχαν αρχικά κατασκευαστεί. Επιπλέον, καθώς είναι ένα κοινό πλαίσιο δίνεται η ευχέρεια στους δημιουργούς εφαρμογών να αξιοποιήσουν τη διαθεσιμότητα κοινών εργαλείων διαπέρασης και επεξεργασίας πληροφοριών κωδικοποιημένων σε RDF. Το RDF βασίζεται στην ιδέα του προσδιορισμού των αντικειμένων στο Παγκόσμιο Ιστό με χρήση ειδικών αναγνωριστικών, των URIs που αναφέρθηκαν σε προηγούμενη παράγραφο, και η περιγραφή των πηγών πληροφοριών με χρήση απλών ιδιοτήτων και τιμών τους. Αυτό επιτρέπει στο RDF να αναπαριστά απλές δηλώσεις σχετικά με τις πηγές ως ένα γράφο από κορυφές και ακμές που αντιπροσωπεύουν τις ίδιες τις πηγές, τις ιδιότητες που τις χαρακτηρίζουν και τις τιμές αυτών των ιδιοτήτων. Εικόνα 17: RDF γράφος που περιγράφει το Χρήστο Χρυσούλα 80

81 Η εικόνα 17 του γράφου καταδεικνύει τη χρήση των URIs από το RDF για να προσδιοριστούν: άτομα. Για παράδειγμα ο Χρήστος Χρυσούλας προσδιορίζεται από το σύνδεσμο /Phd/contact#me. διάφορα πράγματα. Όπως η έννοια άνθρωπος που προσδιορίζεται από το σύνδεσμο /contact#person ιδιότητες για αυτά τα πράγματα, όπως η διεύθυνση ηλεκτρονικού ταχυδρομείου που προσδιορίζεται από το σύνδεσμο /contact#mailbox τιμές για αυτές τις ιδιότητες, όπως η ως τιμή της ιδιότητας διεύθυνση ηλεκτρονικού ταχυδρομείου. Επιπλέον, το RDF χρησιμοποιεί τμήματα απλού κειμένου, όπως το «Χρήστος Χρυσούλας», και τιμές από άλλους τύπους δεδομένων όπως οι ακέραιοι και οι ημερομηνίες, για να δώσει τιμές στις ιδιότητες. Για την καταγραφή και ανταλλαγή αυτών των γράφων, το RDF παρέχει ένα συντακτικό βασισμένο στην XML που ονομάζεται RDF/XML. Ένα παράδειγμα που περιγράφει τον παραπάνω γράφο και περιέχει τόσο URIs όσο και ιδιότητες με τις αντίστοιχες τιμές τους δίνεται στον ακόλουθο κώδικα. <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:contact=" <contact:person rdf:about=" "> <contact:fullname>χρήστος Χρυσούλας</contact:fullName> <contact:mailbox <contact:personaltitle>υποψήφιος Διδάκτορας</contact:personalTitle> </contact:person> </rdf:rdf> Όπως η HTML, αυτός ο RDF/XML κώδικας είναι επεξεργάσιμος από μηχανές και με τη χρησιμοποίηση των URIs μπορεί να συνδέσει κομμάτια πληροφοριών από ολόκληρο το Παγκόσμιο Ιστό. Όμως, σε αντίθεση με το συμβατικό υπερκείμενο, τα RDF URIs μπορούν να αναφερθούν σε οποιοδήποτε αντικείμενο που μπορεί να προσδιοριστεί, συμπεριλαμβανομένων και αντικειμένων που δεν μπορούν να επιστραφούν άμεσα μέσω του διαδικτύου (όπως για παράδειγμα ο άνθρωπος Χρήστος Χρυσούλας). Ως συνέπεια, επιπρόσθετα από την περιγραφή αντικειμένων όπως οι ιστοσελίδες, το RDF μπορεί επίσης να περιγράψει αυτοκίνητα, επιχειρήσεις, ανθρώπους, νέα κ.ο.κ. Ακόμα, οι ίδιες οι RDF ιδιότητες έχουν URIs έτσι ώστε να προσδιορίζονται με ακρίβεια οι σχέσεις που υπάρχουν μεταξύ των συνδεδεμένων αντικειμένων. 81

82 Το RDF μοντέλο Το RDF μοντέλο χρησιμοποιεί τα URIs για να κάνει δηλώσεις σχετικά με πόρους και βασίζεται στην ύπαρξη ενός subject, ενός predicate και ενός object ως συστατικά στοιχεία της κάθε μιας. Στο RDF μοντέλο οι δηλώσεις αναπαρίστανται με τη χρήση κόμβων (nodes) και κατευθυνόμενων ακμών (arcs) για το σχηματισμό γράφου. Συγκεκριμένα, για τα subject και object χρησιμοποιούνται κόμβοι ενώ για το predicate χρησιμοποιείται ακμή με κατεύθυνση από το subject προς το object. Οι RDF δηλώσεις είναι παρόμοιες με ένα πλήθος άλλων μορφών καταγραφής πληροφοριών όπως εισαγωγές σε μια απλή εγγραφή ή κατάλογο που περιγράφουν την πηγή σε ένα σύστημα επεξεργασίας δεδομένων γραμμές σε μια απλή σχεσιακή βάση δεδομένων απλοί ισχυρισμοί σε τυπική λογική. Η πληροφορία σε κάθε μία από τις παραπάνω μορφές μπορεί να περιγραφεί με RDF δηλώσεις, επιτρέποντας στο RDF να χρησιμοποιείται για την ενσωμάτωση δεδομένων από πολλές πηγές OWL Το RDF Schema παρέχει βασικές δυνατότητες για την περιγραφή RDF λεξικών αλλά επιπρόσθετες δυνατότητες είναι εφικτές και μπορούν να αποδειχθούν πολύ χρήσιμες. Αυτές οι δυνατότητες μπορούν να προσφερθούν μέσω άλλων γλωσσών που βασίζονται στο RDF. Άλλα πλουσιότερα σε δυνατότητες σχήματα περιλαμβάνουν και τα ακόλουθα στοιχεία : Περιορισμούς στο πλήθος στοιχείων ενός συνόλου (cardinality constraints), για παράδειγμα ότι ένας Άνθρωπος έχει ακριβώς ένα βιολογικό πατέρα. Προσδιορισμός πως κάποια ιδιότητα, όπως η ex:hasancestor, είναι μεταβατική, για παράδειγμα εάν ο Α ex:hasancestor Β και ο Β ex:hasancestor C τότε ο Α ex:hasancestor C. Καθορισμός πως μια συγκεκριμένη ιδιότητα αποτελεί μοναδικό αναγνωριστικό (κλειδί) για αντικείμενα μιας συγκεκριμένης κλάσης. Καθορισμός πως δύο διαφορετικές κλάσεις (που έχουν δηλαδή διαφορετικό URIref) στην πραγματικότητα αναπαριστούν την ίδια κλάση. Καθορισμός πως δύο διαφορετικά στιγμιότυπα (που έχουν δηλαδή διαφορετικό URIref) στην πραγματικότητα αναπαριστούν το ίδιο αντικείμενο. Καθορισμός περιορισμών στο εύρος ή το πλήθος τιμών μιας ιδιότητας σε εξάρτηση από την κλάση στην οποία ανήκει ο πόρος στον οποίο αναφέρεται η ιδιότητα. Για παράδειγμα να είναι δυνατό να ειπωθεί πως για μια ομάδα 82

83 ποδοσφαίρου η ιδιότητα ex:hasplayers έχει 11 τιμές ενώ για ομάδα καλαθοσφαίρισης έχει μόνο 5. Η δυνατότητα να περιγράφονται νέες κλάσεις με συνδυασμό (ενώσεις ή τομές) άλλων κλάσεων ή ότι δύο κλάσεις είναι πλήρως διαχωρισμένες (δηλαδή κανένα στιγμιότυπο της μιας δεν μπορεί να ανήκει και στην άλλη). Οι παραπάνω, αλλά και άλλες πρόσθετες δυνατότητες αποτελούν τον αντικειμενικό στόχο γλωσσών όπως οι DAML+OIL και OWL. Και οι δυο αυτές βασίζονται στο RDF και στο RDF Schema και παρέχουν τις παραπάνω δυνατότητες. Ο σκοπός αυτών των γλωσσών είναι να παρέχουν επιπρόσθετη σημασιολογική πληροφορία που θα είναι επεξεργάσιμη από μηχανές, δηλαδή να καταστήσουν τις μηχανικές αναπαραστάσεις των διαφόρων πόρων όσο γίνεται πιο κοντινές στα πραγματικά αντικείμενα που επιδιώκουν να περιγράψουν. Παρά το ότι χρήσιμες εφαρμογές που χρησιμοποιούν απλώς το RDF έχουν ήδη αναπτυχθεί, η δημιουργία τέτοιων γλωσσών διαδραματίζει ένα πολύ σημαντικό ρόλο στην εξέλιξη του οράματος του Σημασιολογικού ιστού. Η Web Ontology Language (OWL [62]) συγκεκριμένα, αποτελεί μια αναθεώρηση της DAML+OIL [63] που ενσωματώνει χρήσιμες πληροφορίες από το σχεδιασμό και την εφαρμογή της DAML+OIL. Καθώς αποτελεί μέρος του σημασιολογικού ιστού δε θα μπορούσε παρά να στοχεύει στη χρήση και επεξεργασία των πληροφοριών από εφαρμογές παρά στις περιπτώσεις όπου το περιεχόμενο χρειάζεται απλώς να παρουσιαστεί σε ανθρώπους-χρήστες. Μπορεί να χρησιμοποιηθεί για να αναπαραστήσει τη σημασία των όρων που συναντώνται σε λεξικά και των σχέσεων μεταξύ τους. Αυτή η αναπαράσταση των όρων και των σχέσεων που τους διέπουν και τους συνδέουν ονομάζεται οντολογία. Καθώς ο σημασιολογικός ιστός χτίζεται στην ικανότητα της XML να ορίζει εξειδικευμένες ετικέτες και στην ευέλικτη προσέγγιση του RDF για την αναπαράσταση δεδομένων, το επόμενο επίπεδο πιο πάνω από το RDF απαιτούσε μια γλώσσα οντολογιών που θα μπορεί με τυπικό τρόπο να περιγράφει τη σημασία της ορολογίας που χρησιμοποιείται σε έγγραφα του διαδικτύου. Εάν οι μηχανές απαιτείται να εκτελούν χρήσιμες ορθολογικές εργασίες πάνω σε αυτά τα κείμενα, τότε η γλώσσα θα πρέπει να επεκτείνεται πέρα από τις απλές σημασιολογικές δυνατότητες του RDF Schema. Τη λειτουργία αυτή στοχεύει να εκπληρώσει η OWL καθώς : Η XML παρέχει ένα συντακτικό για δημιουργία δομημένων εγγράφων αλλά δεν εισάγει σημασιολογικούς περιορισμούς στη σημασία αυτών των εγγράφων. Το XML Schema είναι μια γλώσσα για τον προσδιορισμό/περιορισμό της δομής των XML εγγράφων και επιπλέον επεκτείνει την XML με τη χρήση των τύπων δεδομένων. 83

84 Το RDF είναι ένα μοντέλο δεδομένων για πόρους και σχέσεις μεταξύ τους παρέχοντας μια απλή σημασιολογία και μπορεί να αναπαρασταθεί με χρήση XML σύνταξης, της RDF/XML. Το RDF Schema είναι ένα λεξικό για την περιγραφή ιδιοτήτων και κλάσεων RDF πόρων, που εισάγει κάποια σημασιολογία σχετικά με την ιεραρχία τέτοιων ιδιοτήτων και κλάσεων. Η OWL προσθέτει περισσότερο λεξικό για την περιγραφή ιδιοτήτων και κλάσεων, όπως συμμετρικότητα και ισότητα ως χαρακτηριστικά των ιδιοτήτων, απαριθμημένες κλάσεις καθώς και τα στοιχεία που απαριθμήθηκαν στην αρχή της υποενότητας. Η OWL παρέχει τρεις υπογλώσσες αυξανόμενης εκφραστικότητας σχεδιασμένες για χρήση από συγκεκριμένες κοινότητες απλών χρηστών και ατόμων που υλοποιούν εφαρμογές. Η OWL Lite υποστηρίζει τους χρήστες που κυρίως χρειάζονται μια ιεραρχική κατηγοριοποίηση απλών περιορισμών. Για παράδειγμα, παρά το ότι υποστηρίζει cardinality constraints, επιτρέπει μόνο τις τιμές 0 ή 1 για την cardinality. Έτσι είναι απλούστερη η κατασκευή ενός εργαλείου που θα στηρίζεται στην OWL Lite από τις άλλες πιο εκφραστικές υπογλώσσες και επιπλέον η OWL Lite παρέχει τη δυνατότητα μιας γρήγορη μετάβασης από θησαυρούς λέξεων και άλλες ταξινομήσεις. Τέλος, η OWL Lite έχει μικρότερη πολυπλοκότητα στην τυπική έκφραση από την OWL DL. Η OWL DL υποστηρίζει αυτούς τους χρήστες που επιθυμούν τη μέγιστη δυνατότητα έκφρασης ενώ παράλληλα θα διατηρείται η υπολογιστική πληρότητα - computational completeness (όλοι οι υπολογισμοί είναι εγγυημένο ότι είναι πραγματοποιήσιμοι) και η λήψη απόφασης - decidability (όλοι οι υπολογισμοί ολοκληρώνονται σε πεπερασμένο χρόνο). Η OWL DL περιλαμβάνει όλες τις γλωσσικές κατασκευές της OWL αλλά μπορούν να χρησιμοποιηθούν μόνο κάτω από συγκεκριμένους περιορισμούς (για παράδειγμα, ενώ μια κλάση μπορεί να είναι υποκλάση πολλών κλάσεων, η κλάση δεν μπορεί να είναι στιγμιότυπο μιας άλλης κλάσης). Η OWL DL πήρε το όνομά της λόγω της αντιστοιχίας της και της υποστήριξής της στη δουλειά που έχει γίνει με τη λογική περιγραφών (description logics), ένα πεδίο έρευνας όπου ερευνάται η λογική που σχηματίζει τα τυπικά θεμέλια της OWL. Η OWL Full προορίζεται για χρήστες που θέλουν το μέγιστο της εκφραστικότητας και της συντακτικής ελευθερίας του RDF χωρίς εγγυήσεις για τους υπολογισμούς. Για παράδειγμα, σε αυτήν μια κλάση μπορεί να αντιμετωπίζεται παράλληλα σαν μια συλλογή από στοιχεία αλλά και ως ένα στοιχείο η ίδια. Η OWL Full επιτρέπει σε μια οντολογία να επεκτείνει τη σημασία ενός προ-ορισμένου (RDF ή OWL) λεξικού. Είναι μάλλον απίθανο 84

85 να υπάρξει κάποιο λογισμικό εξαγωγής συμπερασμάτων που να μπορέσει να υποστηρίξει πλήρη αιτίαση για κάθε χαρακτηριστικό της OWL Full. Κάθε μια από αυτές τις υπογλώσσες είναι μια επέκταση της αμέσως απλούστερης προηγούμενής της, τόσο στο τι μπορεί νόμιμα να εκφραστεί όσο και στο τι μπορεί έγκυρα να προκύψει ως συμπέρασμα. Οι ακόλουθες σχέσεις ισχύουν ενώ οι αντίστροφές τους όχι. Κάθε νόμιμη OWL Lite οντολογία είναι μια νόμιμη OWL DL οντολογία. Κάθε νόμιμη OWL DL οντολογία είναι μια νόμιμη OWL Full οντολογία. Κάθε έγκυρο OWL Lite συμπέρασμα είναι ένα έγκυρο OWL DL συμπέρασμα. Κάθε έγκυρο OWL DL συμπέρασμα είναι ένα έγκυρο OWL Full συμπέρασμα. Όσοι αναπτύσσουν οντολογίες υιοθετώντας την OWL πρέπει να διαλέγουν την κατάλληλη υπογλώσσα σύμφωνα με τις ανάγκες τους. Η επιλογή μεταξύ OWL Lite και OWL DL εξαρτάται από το βαθμό στον οποίο χρειάζονται τις εκφραστικότερες δομές περιορισμών που παρέχει η OWL DL. Προγράμματα που επιχειρούν να εξάγουν συμπεράσματα χρησιμοποιώντας την OWL Lite έχουν σαφώς μικρότερη υπολογιστική πολυπλοκότητα να αντιμετωπίσουν από το αν χρησιμοποιούσαν την OWL DL, παρ ότι και η OWL DL είναι decidable. Η επιλογή μεταξύ OWL DL και OWL Full εξαρτάται κυρίως από το βαθμό στον οποίο οι χρήστες χρειάζονται τις δυνατότητες μοντέλου μεταδεδομένων ενός RDF Schema (για παράδειγμα να ορίζουν κλάσεις κλάσεων). Βέβαια, η χρήση της OWL Full μπορεί να οδηγήσει σε απρόβλεπτα αποτελέσματα όπως η μη αποφασισιμότητα. Τέλος, οι χρήστες που μεταβαίνουν από RDF σε OWL DL ή OWL Lite θα πρέπει να εξασφαλίσουν πως το αρχικό RDF έγγραφο συμμορφώνεται προς τους περιορισμούς που εισάγουν αυτές οι υπογλώσσες Εργαλεία Παρότι η χρήση οντολογιών στοχεύει στην αποθήκευση δεδομένων με ανεξαρτησία από την χρησιμοποιούμενη τεχνολογία αυτό δεν είναι πραγματικά εφικτό. Το πρόβλημα έγκειται στο γεγονός ότι για να είναι αναγνώσιμη από μηχανή μια οντολογία θα πρέπει να έχει καθοριστεί το πώς αυτή θα αναπαρίσταται στη μηχανή και να επιλεγεί μια τεχνολογία που θα υποστηρίζει αυτή την αναπαράσταση. Όμως, το επιχείρημα υπέρ των οντολογιών ως προς την τεχνολογική ουδετερότητα συνεχίζει να ισχύει σε κάποιο βαθμό γιατί η οντολογική αναπαράσταση και οι σχετιζόμενες με αυτήν τεχνολογίες παραμένουν εντελώς διαχωρισμένες και ανεξάρτητες από τις τεχνολογίες που χρησιμοποιούνται για την τελική υλοποίηση μιας εφαρμογής. Επομένως, υπάρχει μια πληθώρα τεχνολογιών και εργαλείων τόσο για τη δημιουργία και διαχείριση των οντολογιών όσο και για την αξιοποίησή τους σε εφαρμογές στο 85

86 Σημασιολογικό ιστό και τα πιο σημαντικά από αυτά παρουσιάζονται επιγραμματικά στη συνέχεια. Κατασκευή Οντολογιών Ένας καλός επεξεργαστής οντολογιών μπορεί να συμβάλει στην εξοικονόμηση σημαντικού χρόνου κατά την ανάπτυξη οντολογιών, βοηθώντας τους μηχανικούς οντολογιών να επικεντρώσουν τις προσπάθειές τους στα σημασιολογικά χωρίς να ανησυχούν για την συντακτική οργάνωση. Καθώς τα διαθέσιμα εργαλεία διαρκώς αυξάνουν στη συνέχεια θα αναφερθούν μόνο τα πιο διαδεδομένα που σχετίζονται με την τεχνολογία του Σημασιολογικού ιστού για συνεργατική ή και ανεξάρτητη ανάπτυξη οντολογιών. Μια πιο αναλυτική περιγραφή περισσότερων εργαλείων, έως το 2004, παρουσιάζεται στην έρευνα [64]. Το εργαλείο Protege [65] παρέχει ένα αυτόνομο περιβάλλον ανάπτυξης οντολογιών. Χαρακτηρίζεται από το ανεξάρτητο ως προς τη γραμματική συντακτικού περιβάλλον διεπαφής με το χρήστη και την εσωτερική δομή που επιτρέπει την εύκολη ενσωμάτωσή του σε εφαρμογές. Είναι βολικό για ανεξάρτητη ανάπτυξη οντολογιών και χρησιμοποιείται από μεγάλη κοινότητα χρηστών. Το εργαλείο SWOOP [66] αξιοποιεί τόσο το Protege όσο και το Ontolingua [67] (ένα περιβάλλον για την επεξεργασία, δημοσίευση και διαμοιρασμό οντολογιών ανεπτυγμένων πριν από την εμφάνιση του Σημασιολογικού ιστού) και παρέχει μια βασισμένη στο διαδίκτυο διεπαφή χρήστη για την φυλλομέτρηση, επεξεργασία, αποσφαλμάτωση [68,69] και δημοσίευση οντολογιών. Αποθήκες Οντολογιών Παρότι ο Παγκόσμιος Ιστός βελτιώνει την πιθανότητα εντοπισμού μιας κεντρικοποιημένης οντολογίας, είναι δύσκολο να δημιουργηθεί μια παγκόσμια και καθολική οντολογία για όλα, εξαιτίας της πολυπλοκότητας που εισάγεται στην αποθήκευσή της η οποία απαιτεί τεράστιο χώρο. Ως συνέπεια, σχηματίζονται κατανεμημένες οντολογίες από διάφορες πηγές με αυξανόμενο ρυθμό. Για την επαναχρησιμοποίηση υπαρχόντων οντολογιών υπάρχει μεγάλη ανάγκη από διαδικτυακά εργαλεία για την φυλλομέτρηση, αναζήτηση και πλοήγηση μεταξύ των κατανεμημένων οντολογιών. Μερικές μόνο διαδεδομένες αποθήκες για τη δημοσίευση και αναζήτηση οντολογιών στο Παγκόσμιο Ιστό, καθώς και κάποια από τα χαρακτηριστικά τους είναι οι ακόλουθες. Η Βιβλιοθήκη Οντολογιών DAML [70] ταξινομεί οντολογίες που υποβάλλονται από χρήστες και παρέχει υπηρεσίες φυλλομέτρησης και αναζήτησης. Οργανώνει τις οντολογίες με βάση το URI τους, πληροφορίες από τα σχόλια των χρηστών που τις υποβάλλουν (λέξεις κλειδιά, ημερομηνία υποβολής, κατηγοριοποίηση με βάση το Open Directory Project [ODP - 71]), τον ορισμό της εκάστοτε κλάσης/ιδιότητας ή το χρησιμοποιούμενο χώρο ονομάτων. Το SchemaWeb [72] παρέχει παραπλήσιες υπηρεσίες με την DAML βιβλιοθήκη οντολογιών αλλά με καλύτερη διεπαφή χρήστη/μηχανής (τόσο HTML όσο και web service δυνατότητα διεπαφής). Συγκεκριμένα, προσθέτει υπηρεσίες για ανθρώπους 86

87 (παρέχει δυνατότητα αναζήτησης με χρήση κειμένου για όλες τις ταξινομημένες οντολογίες καθώς και μια διεπαφή για αναζήτηση με καθορισμό τύπου-υπόδειγμα τριπλέτας) και μηχανές-πράκτορες (αναζητά την «επίσημη» οντολογία ενός δοσμένου χώρου ονομάτων ή την πηγή μιας καθορισμένης μορφής τριπλετών που αναζητά ο χρήστης). Επιπλέον, παρέχει τη δυνατότητα πλοήγησης σε RDF γράφους μέσω RDFS ιδιοτήτων (όπως subclassof, subpropertyof, domain, range) και δημοσιεύει RSS (Really Simple Syndication) πληροφορίες για κάθε νέα οντολογία που υποβάλλεται. Το Ontaria [73] του W3C αποθηκεύει RDF έγγραφα (συμπεριλαμβανομένων οντολογιών) και παρέχει υπηρεσίες πλοήγησης και αναζήτησης στο σύνολό τους. Επιτρέπει την προσπέλαση ενός RDF εγγράφου ως μια λίστα τριπλετών, μια λίστα χρησιμοποιούμενων ιδιοτήτων ή μια λίστα κλάσεων και επιπλέον επιτρέπει την πλοήγηση σε συνδέσεις μεταξύ RDF εγγράφων. Το SemanticWeb Search [74] παρέχει μια αντικειμενοστραφή θεώρηση του Σημασιολογικού ιστού, ταξινομώντας στιγμιότυπα γνωστών κλάσεων συμπεριλαμβανομένων των rdfs:class, rdf:property, foaf:person και rss.item. Το Swoogle [75, 76] έχει ταξινομήσει εκατομμύρια έγγραφα του Σημασιολογικού ιστού (συμπεριλαμβάνοντας χιλιάδες οντολογίες). Επιτρέπει στους χρήστες να αναζητούν οντολογίες θέτοντας περιορισμούς στα μεταδεδομένα των εγγράφων όπως το URL του εγγράφου, καθορισμένες κλάσεις/ιδιότητες, χρησιμοποιούμενους χώρους ονομάτων και μορφή RDF κωδικοποίησης. Επιπλέον, παρέχει αναλυτικά μεταδεδομένα σχετικά με οντολογίες και κλάσεις/ιδιότητες με αντικειμενοστραφή τρόπο. Έχει ένα λεξικό οντολογιών που επιτρέπει στους χρήστες να πλοηγηθούν στην ορολογία που χρησιμοποιείται από έγγραφα του Σημασιολογικού ιστού (πάνω από 4,5M URLs εντοπισμένα), και ακόμα να πλοηγηθούν στο Σημασιολογικό ιστό ακολουθώντας συνδέσμους μεταξύ κλάσεων/ ιδιοτήτων, χώρων ονομάτων και RDF εγγράφων. Τέλος, έχει ενσωματώσει έναν αυτόματο τρόπο ανακάλυψης νέων εγγράφων του Σημασιολογικού ιστού και ανανεώνει τα στατιστικά χρήσης των οντολογιών στο Σημασιολογικό ιστό σχεδόν σε καθημερινή βάση. Επεξεργαστές γλώσσας Οντολογιών Μια δομή οντολογίας παρέχει περιγραφικές σημασιολογικές έννοιες και οι ενεργητικές της έννοιες εξάγονται μέσω έμμεσων συμπερασμάτων. Επομένως, αποδοτικά εργαλεία, όπως οι σαρωτές (parsers), ελεγκτές εγκυρότητας (validators), και μηχανές εξαγωγής συμπερασμάτων (inference engines), απαιτούνται για να επιτευχθεί ο αντικειμενικός στόχος της ύπαρξης συμπερασματικότητας (inferenceability). Ένας αναλυτικός οδηγός εργαλείων για την επεξεργασία γλωσσών οντολογιών του Σημασιολογικού ιστού που συγκρίνει την υποστήριξη που παρέχουν στις υπάρχουσες σημασιολογικές δομές βρίσκεται στην ιστοσελίδα [77] και κάποια από αυτά παρουσιάζονται στη συνέχεια. Το OWLJessKB [78] είναι ο απόγονος του DAMLJessKB, και βασίζεται στην μηχανή εξαγωγής συμπερασμάτων Jess Rete και στη βιβλιοθήκη της Jena. 87

88 Ο Java Theorem Prover (JTP) [79] αναπτύχθηκε στο πανεπιστήμιο του Stanford και υποστηρίζει τόσο forward όσο και backward chaining inference χρησιμοποιώντας RDF/RDFS και OWL σημασιολογικές έννοιες. Στην πρώτη περίπτωση, για κάθε νέα RDF τριπλέτα που εισάγεται στο σύστημα αποθήκευσης τριπλετών πραγματοποιείται μια εξαγωγή συμπερασμάτων ώστε να προκύψουν και νέες τριπλέτες και να αποθηκευτούν με τη σειρά τους, με κόστος την ανάγκη για μεγάλο αποθηκευτικό χώρο και το μεγάλο χρόνο που απαιτείται για την παραγωγή και τελικά εισαγωγή των τριπλετών. Όταν ο χρήστης θέσει κάποια επερώτηση σχετική με κάποια τριπλέτα, λαμβάνει τα αποτελέσματα γρήγορα και αρκετά εκτεταμένα ώστε να συμπεριλαμβάνουν και τις σχετιζόμενες με αυτήν. Στη δεύτερη περίπτωση, το σύστημα περιμένει μέχρι να χρησιμοποιήσει ο χρήστης μέσω ενός επερωτήματος μια τριπλέτα και μόνον τότε ξεκινά τη διαδικασία για την εξαγωγή συμπερασμάτων από αυτήν με αποτέλεσμα την εξοικονόμηση χώρου αλλά την αύξηση του χρόνου αναμονής απάντησης στο ερώτημα. Η Jena [80] αναπτύχθηκε στα HP Labs του Bristol και αποτελεί ένα αρκετά δημοφιλές έργο ανοικτού κώδικα (open-source). Παρέχει σχεδόν πλήρη υποστήριξη για την εξαγωγή συμπερασμάτων ως προς το RDFS. Επίσης, υποστηρίζει εξαγωγή συμπερασμάτων για την OWL Lite καιεπιτρέπει στους χρήστες να δημιουργήσουν εξειδικευμένες μηχανές κανόνων. Η F-OWL [81] αναπτύχθηκε στο πανεπιστήμιο του Maryland (UMBC) και αποτελεί μια μηχανή εξαγωγής συμπερασμάτων που βασίζεται στη γλώσσα Flora-2 και XSB. Παρέχει υποστήριξη κυρίως για OWL Lite καθώς και μερικά στοιχεία μόνο των OWL DL και OWL FULL. Η FaCT++ [82] αναπτύχθηκε στο πανεπιστήμιο του Manchester, αποτελεί απόγονο του συστήματος εξαγωγής συμπερασμάτων FaCT και παρέχει πλήρη υποστήριξη για OWL Lite καθώς και OWL DL. Ο RacerPro [83] στηρίζεται στη λογική περιγραφής (description logic) και παρέχει σχεδόν πλήρη υποστήριξη για OWL DL οντολογίες μέσω κανόνων που καθορίζονται ρητά από το χρήστη. Ο Pellet [84] αναπτύχθηκε στο πανεπιστήμιο του Maryland και υποστηρίζει πλήρως την OWL DL. Έχει ενσωματωθεί ως μηχανή εξαγωγής συμπερασμάτων για τον SWOOP επεξεργαστή οντολογιών και παρέχει σε βάθος ανάλυση συνέπειας των οντολογιών. Το TRIPLE [85] αποτελεί μια μηχανή εξαγωγής συμπερασμάτων (αλλά και γλώσσα) βασισμένη στη Horn Logic που χρησιμοποιεί πολλά χαρακτηριστικά από την F-logic. Αντίθετα όμως με την F-logic, δεν έχει προκαθορισμένα σημασιολογικά χαρακτηριστικά για κλάσεις και αντικείμενα. Μπορεί να χρησιμοποιηθεί μεταφράζοντας την OWL DL σε μια γλώσσα (που έχει το ίδιο όνομα TRIPLE) την οποία μπορεί να χειριστεί. Επεκτάσεις που εισάγει η DL και δεν μπορούν να αντιμετωπιστούν από τη Horn Logic μπορούν να υποστηριχτούν με την ενσωμάτωση 88

89 άλλων μηχανών εξαγωγής συμπερασμάτων όπως η FaCT++, για τη δημιουργία υβριδικών συστημάτων. Το SweetRules [86] είναι μια εργαλειοθήκη κανόνων για τη γλώσσα RuleML. Η RuleML είναι μια γλώσσα υψηλής εκφραστικότητας που παρέχει επιπρόσθετες ενσωματωμένες σημασιολογικές έννοιες στην OWL, συμπεριλαμβανομένης της διαχείρισης αντικρουόμενων συμπερασμάτων με σειρά προτεραιότητας. Επιπλέον, το SweetRules παρέχει σημασιολογικές έννοιες διατηρώντας τη δυνατότητα μετάφρασης μεταξύ διάφορων άλλων γλωσσών εισαγωγής κανόνων και οντολογιών (έμμεσα αξιώματα). Το RAP [87] αποτελεί ένα πακέτο λογισμικού για τη σάρωση, αναζήτηση, διαχείριση και παραγωγή RDF μοντέλων. Υποστηρίζει εξαγωγή συμπερασμάτων για RDFS καθώς και για κάποιους κανόνες της OWL. Το Sesame [88] είναι ένα λογισμικό ανοικτού κώδικα που παρέχει ένα RDF πλαίσιο με υποστήριξη του RDFS για εξαγωγή συμπερασμάτων και διεξαγωγή επερωτήσεων. Επιπλέον, παρέχει υποστήριξη για OWL Lite. Αναπτύχθηκε αρχικά ως ένα πρωτότυπο για το έργο On-To-Knowledge της Ευρωπαϊκή Ένωσης και κατόπιν επεκτείνεται και συντηρείται από την εταιρεία Aduna σε συνεργασία με το NLnet Foundation, προγραμματιστές από το Ontotext και έναν αριθμό άλλων εθελοντών Σημασιολογική Αναζήτηση Μηχανές αναζήτησης στο Παγκόσμιο Ιστό όπως το Google καθιστούν «εξυπνότερους» τους χρήστες παρέχοντας πρόσβαση σε παγκόσμια δεδομένα οποτεδήποτε χρειαστούν να μάθουν κάτι σχετικά με ένα θέμα, να συγκρίνουν απόψεις και άλλα. Η προσπάθεια του W3C για το Σημασιολογικό ιστό στοχεύει να καταστήσει τέτοιου είδους πληροφορία προσβάσιμη από προγράμματα υπολογιστών (π.χ. πράκτορες διαδικτύου)κωδικοποιώντας την και ενσωματώνοντάς την στο Παγκόσμιο Ιστό με τέτοια μορφή ώστε να γίνεται «κατανοητή» από μηχανές. Γλώσσες για τον Σημασιολογικό Ιστό όπως η OWL και το RDF (που περιγράφτηκαν στο κεφάλαιο 5) χρησιμοποιούνται για την κωδικοποίηση γνώσης και την κατασκευή νέων επιπέδων υπηρεσιών, εργαλείων και εφαρμογών που θα υποστηρίζουν την σημασιολογική διαλειτουργικότητα σε κατανεμημένα συστήματα. Καθώς το μέγεθος της κωδικοποιημένης μέσω rdf πληροφορίας στο Παγκόσμιο Ιστό αυξάνεται, τα αντίστοιχα προγράμματα-πράκτορες θα χρειάζονται ειδικές μηχανές αναζήτησης που θα τους βοηθούν να βρουν τη σχετική και αξιόπιστη γνώση που απαιτείται για την ολοκλήρωση της εργασίας τους. Η αναζήτηση και η διαπέραση στο Σημασιολογικό Ιστό [89, 90] διαφέρει από αυτήν στο συμβατικό ιστό για ένα πλήθος από λόγους που περιγράφονται και στις [91, 92]. Κατ αρχάς, το περιεχόμενο του Σημασιολογικού Ιστού δημοσιεύεται από μηχανές για μηχανές, όπως εργαλεία, διαδικτυακές υπηρεσίες, πράκτορες, πληροφοριακά συστήματα κ.ο.κ. Παρότι σημασιολογικές αναφορές και στοιχεία μορφοποίησης μπορούν να βοηθήσουν χρήστες να βρουν χρήσιμα και κατανοητά έγγραφα, θα 89

90 πρέπει να υπάρχει ένα ενδιάμεσο επίπεδο μεταξύ του χρήστη και των μηχανών αναζήτησης του Σημασιολογικού Ιστού. Δεύτερον, η γνώση που κωδικοποιείται μέσω γλωσσών του Σημασιολογικού ιστού όπως το RDF διαφέρει τόσο από το ιδιαίτερα αδόμητο ελεύθερο κείμενο των περισσότερων σημερινών ιστοσελίδων όσο και από την αυστηρά δομημένη πληροφορία των βάσεων δεδομένων. Τέτοιου είδους ημιδομημένη πληροφορία απαιτεί χρήση ενός συνδυασμού τεχνικών για αποτελεσματική ανάκτηση και ταξινόμηση πληροφοριών. Το RDF και η OWL καλύπτουν θέματα πέρα από αυτά για τα οποία χρησιμοποιείται η απλή XML, επιτρέποντας στους χρήστες να ορίζουν όρους (για παράδειγμα κλάσεις και ιδιότητες), να εκφράζουν σχέσεις μεταξύ τους και να εισάγουν περιορισμούς και αξιώματα που ισχύουν για τα καλώς μορφοποιημένα δεδομένα. Τρίτον, ένα έγγραφο του Σημασιολογικού ιστού μπορεί να αποτελείται από γεγονότα, κλάσεις, και ορισμούς ιδιοτήτων, λογικών περιορισμών και μεταδεδομένων. Η πλήρης κατανόηση του περιεχομένου του απαιτεί λοιπόν αρκετή εργασία. Οι προγραμματιστές πρέπει να αντιμετωπίσουν το σχεδιαστικό ζήτημα του πότε και σε πόσο βάθος πρέπει οι μηχανές αναζήτησης να εξάγουν συμπεράσματα. Αυτή η εργασία εξαγωγής συμπερασμάτων παράγει επιπλέον δεδομένα, περιορισμούς και μεταδεδομένα που επίσης χρειάζεται να ταξινομηθούν, πιθανότατα μαζί με την αντίστοιχη δικαιολόγηση ή την προέλευσή τους. Οι συμβατικές μηχανές αναζήτησης δεν επιχειρούν να κατανοήσουν το περιεχόμενο λόγω της δυσκολίας του έργου και της έρευνας που απαιτεί στην κατανόηση κειμένου. Τέλος, η δομή γράφου που σχηματίζεται από μια συλλογή εγγράφων του Σημασιολογικού ιστού διαφέρει σημαντικά από τη δομή που προκύπτει από μια συλλογή HTML αρχείων. Αυτή η διαφορά επηρεάζει τόσο την ανάπτυξη αποδοτικών στρατηγικών για τον αυτόματο εντοπισμό εγγράφων του Σημασιολογικού ιστού όσο και την επιλογή κατάλληλων μετρικών για τον καθορισμό της σπουδαιότητάς τους. Παρόλα αυτά οι μηχανές αναζήτησης τόσο στο απλό όσο και στο Σημασιολογικό Παγκόσμιο Ιστό περιλαμβάνουν το ίδιο σύνολο εργασιών (στο ανώτερο επίπεδο): ανακάλυψη και συγκέντρωση εγγράφων, επεξεργασία επερωτήσεων από χρήστες και πράκτορες, ταξινόμηση κατά σπουδαιότητα των αποτελεσμάτων, τοποθέτηση στην προσωρινή μνήμη και αρχειοθέτηση εγγράφων, παροχή διεπαφών επικοινωνίας χρηστών και διεπαφών για χρήση από προγράμματα. Όσον αφορά το στάδιο της διαπέρασης του Σημασιολογικού Ιστού, σύμφωνα με την [93], είναι κατά βάση ίδιο με τη διαπέραση του HTML περιεχομένου του διαδικτύου είναι απλώς θέμα επιλογής ενός ή περισσοτέρων σημείων εκκίνησης, ανάκτησης μιας πηγής περιεχομένου και επιλογής κάποιου ή κάποιων από τους περιεχόμενους σε αυτήν δείκτες προς άλλες πηγές. Η διαφορά-κλειδί μεταξύ της συλλογής HTML και RDF δεδομένων είναι ότι το RDF έχει ένα καλά καθορισμένο μηχανισμό συνένωσης πολλαπλών RDF μοντέλων. Οποιοσδήποτε αριθμός RDF μοντέλων μπορεί να συνενωθεί για την παραγωγή ενός και μόνο ενιαίου συγκεντρωτικού μοντέλου. Επομένως, αντί της κατασκευής μιας βάσης δεδομένων από λέξεις κλειδιά και 90

91 συνδέσμους προς τοποθεσίες όπου βρίσκονται, σχετικές με τα κλειδιά, HTML σελίδες, ένας RDF crawler μπορεί να κατασκευάσει ένα ενιαίο μοντέλο όλων των δεδομένων του Σημασιολογικού ιστού που βρίσκει. Κατόπιν, το μοντέλο αυτό αποτελεί μια πιθανότατα πλούσια πηγή στοιχείων για την απάντηση επερωτήσεων. Διαφορετικά τμήματα πληροφορίας, αποθηκευμένα σε ξεχωριστά έγγραφα, μπορούν να συνενωθούν για να σχηματίσουν την απάντηση σε μια επερώτηση που ίσως δε θα μπορούσε να απαντηθεί αν εξετάζαμε ξεχωριστά κάθε έγγραφο. Στην [89] δίνεται ένα παράδειγμα συνένωσης στοιχείων από μια βάση δεδομένων για CD, μια μουσική εγκυκλοπαίδεια, ένα περιοδικό γεωγραφίας και μια βάση μετεωρολογικών δεδομένων για την απάντηση της συνδυαστικής επερώτησης: «Ποια είναι η τρέχουσα θερμοκρασία στην πόλη όπου γεννήθηκε ο δημιουργός του μουσικού άλμπουμ Appalachian Journey ;». Ένας διαχωρισμός των σημασιολογικών μηχανών αναζήτησης με βάση το περιβάλλον διεπαφής χρήστη που παρέχουν επιχειρείται στην [94]: 1. Μηχανές αναζήτησης βασισμένες σε φόρμες, οι οποίες παρέχουν κατάλληλες φόρμες στο χρήστη για να επιλέξει οντολογίες, κλάσεις, ιδιότητες και τιμές. 2. Μηχανές αναζήτησης που χρησιμοποιούν γλώσσες επερωτήσεων βασισμένες στο RDF, οι οποίες παρέχουν κατάλληλα εκλεπτυσμένες γλώσσες επερωτήσεων στο χρήστη για να υποστηρίξουν την αναζήτηση. 3. Μηχανές αναζήτησης με λέξεις κλειδιά βασισμένες στη σημασιολογία, οι οποίες βελτιώνουν την απόδοση των παραδοσιακών μηχανών αναζήτησης με κλειδιά λαμβάνοντας υπόψη τα διαθέσιμα σημασιολογικά δεδομένα. 4. Εργαλεία ερωταπαντήσεων, τα οποία εκμεταλλεύονται το σημασιολογικό περιεχόμενο για να απαντούν ερωτήσεις που τίθενται σε φυσική γλώσσα. Στην πρώτη κατηγορία ανήκει και η μηχανή αναζήτησης SHOE [95], που παρείχε κατάλληλες φόρμες στους χρήστες για τις ερωτήσεις τους. Τέτοιου είδους φόρμες όμως είναι κατάλληλες μόνο για τους χρήστες που είναι εξοικειωμένοι με τις χρησιμοποιούμενες οντολογίες και γνωσιακές βάσεις. Οι απλοί χρήστες δυσκολεύονται να κατανοήσουν τις φόρμες καθώς και να σχηματίσουν κατάλληλα τις ερωτήσεις που θα τους οδηγήσουν στα στοιχεία που αναζητούν. Παράδειγμα για τη δεύτερη κατηγορία αποτελεί η μηχανή αναζήτησης Corese [96] καθώς και η μηχανή του portal του SemanticWeb.org. Τέτοιου είδους μηχανές αναζήτησης παρέχουν συνήθως μια εκλεπτυσμένη γλώσσα επερωτήσεων για να υποστηρίξουν την αναζήτηση σε σημασιολογικά δεδομένα. Όμως, για να μπορούν οι χρήστες να θέτουν ερωτήματα σε αυτές θα πρέπει να είναι αρκετά εξοικειωμένοι τόσο με την παρεχόμενη γλώσσα επερωτήσεων όσο και με την υπάρχουσα χρησιμοποιούμενη δομή οντολογίας Η μηχανή αναζήτησης που στηρίζεται στο TAP πλαίσιο [89], η μηχανή που παρουσιάζεται στην [97] καθώς και η μηχανή του Swoogle [75] αποτελούν παραδείγματα μηχανών αναζήτησης με λέξεις κλειδιά που βασίζονται στη σημασιολογία. Η διαδικασία αναζήτησης σε αυτού του είδους της μηχανές 91

92 αποτελείται συνήθως από δύο βήματα: Εντοπισμό ενός ταιριαστού στιγμιότυπου με τη λέξη κλειδί και ανάκτηση των στιγμιότυπων που είναι αρκετά κοντά σε σχέση με το στιγμιότυπο που βρέθηκε στο προηγούμενο βήμα. Συχνά, οι μηχανές αυτές παρέχουν αναλυτικά μέσα για την υποστήριξη της ομαδοποίησης των αποτελεσμάτων της αναζήτησης. Η μηχανές AquaLog [98] και ORAKEL [99] αποτελούν παραδείγματα της τέταρτης κατηγορίας μηχανών αναζήτησης. Κάνουν χρήση των τεχνικών επεξεργασίας της φυσικής γλώσσας για να μετατρέψουν τις επερωτήσεις φυσικής γλώσσας σε οντολογικές τριπλέτες (π.χ. η AquaLog) ή σε συγκεκριμένες γλώσσες επερωτήσεων (π.χ. η ORAKEL). Ενώ αυτές οι μηχανές μοιάζουν ιδανικές για τους απλούς χρήστες, η απόδοσή τους στην αναζήτηση εξαρτάται σε πολύ μεγάλο βαθμό από την απόδοση των τεχνικών επεξεργασίας φυσικής γλώσσας που χρησιμοποιούνται SweetRules [86] είναι μια εργαλειοθήκη κανόνων για τη γλώσσα RuleML Ποια τα μειονεκτήματα της υπάρχουσας αρχιτεκτονικής του μοντέλου κόμβων; Η αρχιτεκτονική του μοντέλου κόμβων βασίζεται σε μια XML περιγραφή των διάφορων ενοτήτων (modules) που αποτελούν τον κατανεμημένο δρομολογητή. Πρόκειται μάλλον για μια στατική περιγραφή των διαφορετικών χαρακτηριστικών της κάθε ενότητας και πρέπει να είναι κοινή σε όλους τους κόμβους. Για να μπορέσουμε να συγκεντρώσουμε και να χρησιμοποιήσουμε αύτη την πληροφορία, γίνεται μια περιοδική ενημέρωση του κεντρικού server του συστήματος στέλνοντας την XML περιγραφή κάθε ενότητας. Εκεί θα πρέπει το XML αρχείο στατικά να διαβαστεί, γνωρίζοντας εκ των προτέρων την δομή του. Όλες οι διεργασίες γίνονται με τη χρήση web services χωρίς να περιέχουν σημασιολογική πληροφορία. Όλα τα παραπάνω φυσιολογικά οδηγούν σε συμφόρηση του δικτύου, που καταλήγει σε έναν μη υποφερτό χρόνο για την επεξεργασία του XML αρχείου. Παρόλα αυτά το βασικό πρόβλημα είναι ότι το σύστημα βασίζεται σε αυτή τη στατική περιγραφή. Η XML παρέχει μια περιγραφή χωρίς γνώση των εννοιών και των πόρων και της σχέσης μεταξύ τους. Γνώση που θα μπορούσε να οδηγήσει σε κοινή κατανοητή από τους υπολογιστές άποψη του χώρου. Πέρα από αυτό, το παλιό μοντέλο χρησιμοποίει web services γα να ανακαλύψει και να συνθέσει υπηρεσίες χρησιμοποιώντας σαφώς ορισμένα μοντέλα. Οι εφαρμογές μπορούν να αναζητούν υπηρεσίες χρησιμοποιώντας ένα κοινό, επεκτάσιμο επικοινωνιακό μοντέλο, όπως το SOAP. Εντούτοις, η έλλειψη σημασιολογικής περιγραφής, εύκολα κατανοητής από τις μηχανές κάνει αναγκαία την ανθρώπινη παρέμβαση για να αυτοματοποιήσει την ανακάλυψη και δημιουργία υπηρεσιών σε πραγματικά ανοικτά συστήματα. Αυτή η παρέμβαση πραγματικά παρακωλύει την χρήση τους σε πολύπλοκα προγραμματιστικά πεδία. 92

93 5.8. Η ανάγκη για μια Οντολογία ενότητας (Module Ontology) Οι δυνατότητες διαφορετικών ενοτήτων εκφράζονται καλύτερα χρησιμοποιώντας μια οντολογία, με βάση την οποία τα προφίλ των υπηρεσιών συγκρίνονται. Όταν μια υπηρεσία (υπηρεσία αποθήκευσης) χρειάζεται μια συσκευή κάποια πληροφορία σχετική με τη συσκευή που βρίσκεται ο αποθηκευτικός χώρος απαιτείται. Για παράδειγμα η ακριβής τοποθεσία του σκληρού δίσκου θα ήταν πολύ χρήσιμη για τον καθορισμό της καταλληλότητας της διαθέσιμης υπηρεσίας αποθήκευσης. Τέτοια πληροφορία σχετική με τη συσκευή θα μπορούσε να περιλαμβάνεται μαζί με την περιγραφή της υποστηριζόμενης υπηρεσίας, αλλά έχοντας διαφορετικές οντολογίες για την περιγραφή συσκευών και υπηρεσιών παρέχει ευχρηστία αναγνωσιμότητα και επαναχρησιμοποίηση, και έτσι υπερέχουν σχεδιαστικά. Σε συγκεκριμένες περιπτώσεις σύνθεσης υπηρεσιών που ενότητες υλικού (hardware devices) εμπλέκονται, κρίνεται απαραίτητο να αναλύσουμε τις δυνατότητες των διαθέσιμων συσκευών έτσι ώστε να καθορίσουμε μια πλατφόρμα, όπου η σύνθεση και η οργάνωση των υπηρεσιών θα λάβει χώρα. Η επιλογή της πλατφόρμας θα γίνει με βάση παράγοντες όπως οι πόροι, η συγγένεια της συσκευής με τις ανεξάρτητές υπηρεσίες και άλλα. Σε τέτοιες περιπτώσεις η οντολογία υλικού είναι ιδιαιτέρως χρήσιμη για την περιγραφή των ικανοτήτων των συσκευών που είναι διαθέσιμες στο δίκτυο. Η FIPA-Device[100] οντολογία μπορεί να χρησιμοποιηθεί από πράκτορες όταν επικοινωνούν για συσκευές. Οι πράκτορες ανταλλάσουν τα προφίλ των συσκευών μεταξύ τους και τα συγκρίνουν με την FIPA-Device[5] οντολογία. Τα προφίλ είναι χρήσιμα για παράδειγμα στην περίπτωση που επιπλέον μνήμη απαιτείται από μια διεργασία και ο πράκτορας Α1 μπορεί να ζητήσει από τον πράκτορα Α2 αν η συσκευή Δ έχει τη δυνατότητα να αναλάβει κάποιο από το έργο του Α Μια βασισμένη σε οντολογίες αρχιτεκτονική Η εικόνα 18 παρουσιάζει κάποιες βασικές έννοιες της προτεινόμενης οντολογίας. Η προτεινόμενη οντολογία βασίζεται στην FIPA-Device οντολογία. Χρησιμοποιήσαμε το Protégé 3.2 [101] για το σχεδιασμό της FIPA-Device οντολογία μας και σκοπός μας ήταν να την διατηρήσουμε όσο το δυνατόν ποιο γενική ώστε να καλύπτει μια ευρεία περιοχή από εκδοχές. Οι πληροφορίες που σχετίζονται με μια συσκευή λογικά χωρίζονται σε δυο μεγάλες κατηγορίες όπως και περιγράφεται από τη FIPA. Ο διαχωρισμός γίνεται με βάση την πληροφορία που παρέχουν δηλαδή την περιγραφή υλικού και την περιγραφή λογισμικού. Στις δυο παραπάνω κατηγορίες προσθέσαμε και δυο σημαντικές έννοιες τα Resources (πόροι) και Services (υπηρεσίες). Το Hardware Descriprion περιέχει τις πληροφορίες για τους υλικούς πόρους της συσκευής. Πληροφορίες όπως η CPU, τρόπος σύνδεσης στο δίκτυο, μνήμη, 93

94 τροφοδοσία, και πληροφορία σχετική με τη διεπαφή του χρήστη. Οι πληροφορίες για την τροφοδοσία και το επίπεδο αυτής είναι σημαντική όταν χρειάζεται να καθορίσουμε την ικανότητα των πόρων της συσκευής. Το Connection Description έχει μια QoS κλάση που συσχετίζεται μαζί του με την ιδιότητα αντικειμένου has_qos για μια ποιο εύκολη αναπαράσταση. Εικόνα 18: Προτεινόμενη Οντολογία Το Software Description περιέχει τις πληροφορίες σχετικά με το λειτουργικό σύστημα της συσκευής. Το Software Description επίσης περιέχει πληροφορίες σχετικές και με την πλατφόρμα του πράκτορα. Ο πράκτορας μπορεί να είναι ένα PC ή ένας επεξεργαστής δικτύου (Network Processor), όπως και συμβαίνει στην περίπτωση σου Κατανεμημένου Δρομολογητή. Με τις Resources προσπαθήσαμε να παρέχουμε ένα υψηλότερο επίπεδο γενικότητας στην περιγραφή μια συσκευής. Ποιο γενικές έννοιες μπορούν να περιγραφούν σαν πόροι, και φυσικά το ταίριασμα αυτών και των βασικών χαρακτηριστικών επίσης παρέχεται. Όπως μπορούμε να δούμε τα Resources συνδέονται με την Memory με την ιδιότητα αντικειμένου needs_memory. Με αυτό τον τρόπο ένας λιγότερο έμπειρος μηχανικός μπορεί πετύχει το ταίριασμα της υπηρεσίας με τις δυνατότητες της συσκευής σε υψηλό επίπεδο, ενώ το απόλυτο ταίριασμα με τους φυσικούς πόρους επιτυγχάνεται αυτόματα. 94

95 Εικόνα 19: Αναπαράσταση στιγμιότυπου Στην Εικόνα 19 μια γραφική αναπαράσταση ενός στιγμιότυπου του Memory με όλες τις συσχετιζόμενες ιδιότητες αντικειμένου. Ο κώδικας σε OWL του συγκεκριμένου στιγμιότυπου παρουσιάζεται στην παρακάτω Εικόνα 20. Η οντολογία έχει σαν σκοπό να παρέχει ένα γενικό πλαίσιο για να είναι δυνατή η περιγραφή κάθε πιθανής συσκευής. Για να μπορέσει κάποιος να περιγράψει με μεγαλύτερη λεπτομέρεια, η ιδέα των κλάσεων μπορεί να χρησιμοποιηθεί. Μια δομή από υπο-κλάσεις μπορεί να κατασκευαστεί έτσι ώστε να μπορούν με εύκολο και αποτελεσματικό τρόπο να κατηγοριοποιηθούν όλες οι συσκευές. Για παράδειγμα μπορεί να υπάρχει μια QoS υπο-κλάση που να προέρχεται από την κλάση Device και τα δομικά της στοιχεία να είναι επιπλέον ιδιότητες (όπως ένα κανόνας ταξινόμησης) έτσι ώστε να μπορεί με αποτελεσματικότητα να περιγράψει την υπηρεσία QoS. Στην περίπτωση που μια συσκευή δεν μπορεί να ταιριάξει με κάποια από τις υπάρχουσες κατηγορίες ή δεν είναι ξεκάθαρο σε ποια κατηγορία ανήκει θα μπορεί να χαρακτηριστεί σαν ένα στιγμιότυπο της κλάσης Device και έτσι να αποφευχθεί η χρήση της ιεραρχικής ταξινόμησης. 95

96 Εικόνα 20: Ο OWL κώδικας του στιγμιότυπου Memory. 96

97 ΚΕΦΑΛΑΙΟ 6. Προτεινόμενη αρχιτεκτονική για δίκτυα σημασιολογικού Grid (Semantic Grid) Η τεχνολογία Grid είναι μια ταχέως αναπτυσσόμενη κατηγορία δικτύων που υποστηρίζει το διαμοιρασμό υπολογιστικών πόρων μεταξύ χρηστών. Πρόκειται για δίκτυα που συνήθως παρέχουν υπηρεσίες εκτέλεσης υπολογιστικών διεργασιών και αποθήκευσης δεδομένων. Η τεχνολογία Grid προϋποθέτει την ύπαρξη ενός δικτύου που κάποιοι από τους κόμβους του διαθέτουν υπολογιστικούς πόρους, ενώ κάποιοι χρήστες ζητούν πρόσβαση σε αυτούς. Για τον ομαλό διαμοιρασμό των υπολογιστικών πόρων στους χρήστες του Grid δικτύου απαιτούνται αρχιτεκτονικές οι οποίες να γνωρίζουν ανά πάσα στιγμή την διαθεσιμότητα των πόρων και να δρομολογούν εκεί τις διεργασίες των χρηστών με στόχο την εκτέλεση τους. Η ύπαρξη πολλών χρηστών και κατά συνέπεια πολλών διεργασιών που μπορεί να διαθέτουν και ένα χρονικό όριο εκτέλεσης, καθιστά την διαδικασία ακόμα πιο πολύπλοκη, ενώ για το λόγο αυτό έχουν προταθεί αρκετές αρχιτεκτονικές που η καθεμιά συμπεριφέρεται διαφορετικά υπό συγκεκριμένες συνθήκες. Ξεκινώντας την περιγραφή της τεχνολογίας Grid, μπορούμε να έχουμε υπόψη μας έναν αρκετά απλό αλλά ταυτόχρονα περιεκτικό ορισμό. Πρόκειται για μια τεχνολογία που παρέχει υπηρεσίες διαμοιρασμού υπολογιστικής ισχύος καθώς και αποθηκευτικού χώρου στο Διαδίκτυο, κάτι ανάλογο δηλαδή με το Web, όπου παρέχονται υπηρεσίες διαμοιρασμού πληροφορίας. Στην περίπτωση του Grid μπορούμε να πούμε πως ο στόχος είναι να θεωρηθεί το Διαδίκτυο σαν ένας τεράστιος ενιαίος υπολογιστικός πόρος. Στη συνέχεια του κεφαλαίου θα αναφερθούμε συνοπτικά στα κατανεμημένα συστήματα σαν ένα γενικότερο πλαίσιο της τεχνολογίας που θα συζητήσουμε ενώ θα προχωρήσουμε και σε μια γενική περιγραφή της 6.1. Κατανεμημένα συστήματα Στην ενότητα αυτή περιγράφεται με συνοπτικό τρόπο η έννοια των κατανεμημένων συστημάτων αφού μπορούμε να θεωρήσουμε ότι αποτελούν το γενικότερο πλαίσιο στο οποίο εντάσσεται και η τεχνολογία Grid που μελετούμε. Ορίζουμε σαν κατανεμημένο σύστημα - σύμφωνα με το [102] - ένα σύνολο από αυτόνομους υπολογιστές οι οποίοι συνδέονται μέσω ενός δικτύου, με λογισμικό τέτοιο ώστε να παράγει ολοκληρωμένες υπολογιστικές υπηρεσίες. Το λογισμικό ενός κατανεμημένου συστήματος επιτρέπει στις υπολογιστικές μονάδες να συντονίσουν τις δραστηριότητες τους και να διαμοιράσουν τους πόρους του συστήματος. Οι χρήστες ενός καλά σχεδιασμένου κατανεμημένου συστήματος θα πρέπει να το αντιλαμβάνονται σαν μια απλή, ολοκληρωμένη υπηρεσία, έστω και αν αυτή υλοποιείται από -πολλές υπολογιστικές μονάδες. Η εξέλιξη των κατανεμημένων συστημάτων, ακολούθησε την ανάπτυξη των υψηλής ταχύτητας τοπικών δικτύων υπολογιστών στην αρχή της δεκαετίας του '70. Πιο πρόσφατα, η διαθεσιμότητα των υψηλής απόδοσης προσωπικών υπoλόγιστων, σταθμών εργασίας και εξυπηρετητών, είχε σαν αποτέλεσμα μια μετατόπιση προς τα 97

98 κατανεμημένα συστήματα και απομάκρυνση από τα κεντρικοποιημένα συστήματα πολλών χρηστών. Η πορεία προς αυτή την κατεύθυνση επιταχύνθηκε με την ανάπτυξη λογισμικού κατανεμημένων συστημάτων, σχεδιασμένου έτσι ώστε να υποστηρίζει τις ανάγκες εξέλιξης των κατανεμημένων εφαρμογών Περιγραφή της τεχνολογίας/υπηρεσίας Grid Η τεχνολογία Grid αποτελεί ένα σαφές παράδειγμα της κατεύθυνσης που ακολουθείται στον τομέα των δικτύων υπολογιστών και του κατανεμημένου υπολογισμού. Η βασική ιδέα πίσω από την τεχνολογία Grid και τις υπηρεσίες που παρέχει, είναι η ενοποίηση υπολογιστικών πόρων και η συνολική -θεώρηση τους από τους χρήστες. Στην συνέχεια της ενότητας θα επιμείνουμε στην περιγραφή της βασικής ιδέας που μόλις αναφερθήκαμε, ενώ θα περιγράψουμε και κάποια από τα κύρια χαρακτηριστικά του Grid, που το καθιστούν ενδιαφέρον πεδίο έρευνας και ανάπτυξης εφαρμογών. Τέλος "θα δώσουμε και μια περιγραφή της συνολικής αρχιτεκτονικής που χρησιμοποιείται για την επίτευξη των παραπάνω στόχων και χαρακτηριστικών Οι στόχοι της τεχνολογίας Grid Όπως έχει ήδη αναφερθεί παραπάνω, στόχος της τεχνολογίας Grid είναι η ενοποίηση υπολογιστικών πόρων - υπολογιστική ισχύς, αποθηκευτικός χώρος - και η ενιαία αντιμετώπιση τους από τους χρήστες. Όπως αναφέρεται και στο [103], αυτό που μας ενδιαφέρει και επιθυμούμε είναι η συνολική θεώρηση υπολογιστικών πόρων που μπορεί να κατανέμονται γεωγραφικά σε έναν μεγάλο αριθμό υπολογιστικών τομέων (domains), για την επίλυση μεγάλης κλίμακας προβλημάτων και διεργασιών που συνήθως άπτονται τομέων της επιστήμης ή της μηχανικής, αλλά ακόμα και εμπορικών εφαρμογών. Οι πόροι που επιθυμούμε να διαμοιράσουμε μπορεί να ανήκουν σε διαφορετικούς οργανισμούς, σε πανεπιστήμια κ.α. Κάτι τέτοιο απαιτεί την θέσπιση κάποιων "κανόνων" με την έννοια των πρωτοκόλλων ή αλγορίθμων που θα αναλάβουν να ικανοποιήσουν -εκτελέσουν τις διάφορες αιτήσεις - διεργασίες. Η έγκυρη εκτέλεση των διεργασιών των χρηστών του περιβάλλοντος Grid είναι το ζητούμενο και ο απώτερος στόχος. Παρόλα αυτά υπάρχουν πολλοί επιμέρους στόχοι που θα πρέπει να επιτευχθούν προκειμένου να φτάσουμε στο επιθυμητό αποτέλεσμα. Ένας από αυτούς είναι και το Quality of Service ή QoS όπως συνοπτικά αναφέρεται και που κρύβει πίσω του αρκετές παραμέτρους. Με τον όρο QoS στα πλαίσια του Grid αναφερόμαστε στην αποτελεσματική διαχείριση των πόρων του συστήματος με αποτέλεσμα την έγκαιρη περάτωση των διεργασιών που υποβάλλονται από τους χρήστες. Πιο αναλυτικά γι' αυτό θα μιλήσουμε σε επόμενη παράγραφο που θα αναφερθούμε στην αρχιτεκτονική της τεχνολογίας Grid Κύρια χαρακτηριστικά Προκειμένου να επιτευχθούν οι παραπάνω στόχοι, είναι απαραίτητο να πληρούνται κάποια χαρακτηριστικά τα οποία - όπως αναφέρεται και στο [104] - αποτελούν και τις θεμελιώδεις ιδέες πίσω από την τεχνολογία και τις υπηρεσίες που παρέχει το Grid. 98

99 Το πρώτο και κύριο χαρακτηριστικό του Grid είναι ο διαμοιρασμός των πόρων. Η χρήση της τεχνολογίας αυτής από κάποιον χρήστη, σημαίνει αρχικά ότι μπορεί να έχει πρόσβαση σε απομακρυσμένους πόρους. Αυτό συνεπάγεται την δυνατότητα εκτέλεσης διεργασιών που δεν θα ήταν δυνατόν να γίνουν με τη χρήση του δικού του υπολογιστικού συστήματος επειδή ενδεχομένως απαιτούν την εκτέλεση πολλών πολύπλοκων και χρονοβόρων υπολογισμών. Για την εκτέλεση τέτοιων διεργασιών δεν απαιτείται μόνο κάποια ανταλλαγή αρχείων ή δεδομένων, αλλά πρόσβαση σε απομακρυσμένο λογισμικό, υλικό και δεδομένα. Ένα δεύτερο χαρακτηριστικό του Grid, που ουσιαστικά συμπληρώνει το χαρακτηριστικό της προηγούμενης παραγράφου είναι και ο αποδοτικός διαμοιρασμός των πόρων του συστήματος. Σε αυτό το σημείο πρέπει να αναφέρουμε πως ο αποδοτικός διαμοιρασμός των πόρων είναι το χαρακτηριστικό εκείνο που συγκεντρώνει το περισσότερο ενδιαφέρον όσον αφορά στη μελέτη και την έρευνα πάνω στο Grid. Ανεξάρτητα από το πόσο μεγάλο είναι το ποσοστό των υπολογιστικών πόρων που είναι διαθέσιμοι, πρέπει να είμαστε σε θέση να τους διαχειριστούμε αποδοτικά. Όταν αυξάνει ο αριθμός των χρηστών του Grid αυξάνει ανάλογα και ο αριθμός των εργασιών που πρέπει να εκτελεστούν. Μη αποδοτική διαχείριση των πόρων του συστήματος θα οδηγούσε σε μεγάλες ουρές και πιθανόν σε μη έγκαιρη εκτέλεση των εργασιών. Προκειμένου να αυξηθεί η απόδοση του συστήματος, χρησιμοποιούνται αλγόριθμοι διαχείρισης των πόρων του συστήματος ή αλγόριθμοι χρονοπρογραμματισμού των διεργασιών. Κάθε τέτοιος αλγόριθμος δίνει έμφαση σε κάποιο συγκεκριμένο χαρακτηριστικό της οντότητας σύστημα - διεργασίες. Κάτι τέτοιο σημαίνει ότι ίσως υπολείπεται σε απόδοση αναφορικά με κάποιο άλλο χαρακτηριστικό. Έτσι ανάλογα με τον τομέα που θέλουμε να αποδίδει καλύτερα η συνολική αρχιτεκτονική του Grid, επιλέγουμε και τον πιο κατάλληλο για την περίπτωση αλγόριθμο. Ένα ακόμα χαρακτηριστικό που διέπει την τεχνολογία Grid είναι οι υψηλές ταχύτητες σύνδεσης μεταξύ των διάφορων κόμβων του δικτύου. Η "φιλοσοφία" της τεχνολογίας που εξετάζουμε, προϋποθέτει την μεταφορά μεγάλων ποσοτήτων δεδομένων από τους χρήστες στους δεσμευόμενους πόρους, κάτι που καθιστά απαραίτητες τις υψηλές ταχύτητες. Μια δεκαετία πριν, θα ήταν άτοπο να μιλάμε για τέτοιες υπηρεσίες αφού δεν θα ήταν δυνατό να σταλεί μεγάλη ποσότητα δεδομένων, ή - ακόμα και να το επιχειρούσαμε - ο λιγότερος χρόνος εκτέλεσης μιας διεργασίας σε έναν απομακρυσμένο υπολογιστή, θα αντισταθμίζονταν από τον μεγάλο χρόνο μεταφοράς των δεδομένων Η βασική αρχιτεκτονική της τεχνολογίας Grid Όπως έχει ήδη γίνει κατανοητό μέσα από τις προηγούμενες παραγράφους, το βασικό αρχιτεκτονικό σχήμα του Grid αναφέρεται σε ένα δίκτυο υπολογιστών. Κάθε κόμβος του δικτύου μπορεί να είναι ένας χρήστης ή ένας υπολογιστής, οι πόροι του οποίου διατίθενται για διαμοιρασμό στους χρήστες, ή και τα δύο παραπάνω (βλ. Εικόνα 21). Κάθε χρήστης του Grid έχει το δικαίωμα να ζητήσει την εκτέλεση κάποιας διεργασίας, κάτι το οποίο προϋποθέτει την δέσμευση πόρων σε κάποιον απομακρυσμένο υπολογιστή. Σε αυτό το σημείο πρέπει να -θυμίσουμε ότι με τον όρο 99

100 Εικόνα 21: Ένα τυπικό Grid δίκτυο. διεργασία και δέσμευση πόρων, μπορεί να εννοείται και η απλή αποθήκευση δεδομένων. Επιπλέον πρέπει να έχουμε υπόψη μας ότι κάθε διεργασία προς εκτέλεση έχει κάποια επιμέρους χαρακτηριστικά. Αυτά μπορεί να είναι η υπολογιστική της πολυπλοκότητα, ένα deadline, χρονικό διάστημα δηλαδή μέσα στο οποίο θα πρέπει να έχει ξεκινήσει η εκτέλεση της ή που θα πρέπει να έχει ολοκληρωθεί (ανάλογα με τη σύμβαση που έχουμε κάνει), ή η ποσότητα των δεδομένων που θα μεταφερθούν ή θα αποθηκευτούν. Μετά την αίτηση του χρήστη γίνεται χρήση κάποιου scheduling αλγόριθμου ο οποίος αφού λάβει υπόψη του κάποιες παραμέτρους, αποφασίζει για το πότε και πού θα δεσμεύσει τους απαραίτητους υπολογιστικούς πόρους για την εκτέλεση της διεργασίας. Κατόπιν με χρήση ενός αλγόριθμου δρομολόγησης (routing αλγόριθμος), αποφασίζεται και εκείνο το μονοπάτι του δικτύου που θα ακολουθηθεί για τη μεταφορά των δεδομένων. Τέλος ο χρήστης λαμβάνει κάποιο μήνυμα που τον ενημερώνει για την κατάληξη των δεδομένων που απέστειλε, ή λαμβάνει πίσω τα αποτελέσματα των υπολογισμών που απαιτούνταν για την ολοκλήρωση της εργασίας. Στην προηγούμενη παράγραφο μιλήσαμε για παραμέτρους που λαμβάνονται υπόψη από τον scheduling αλγόριθμο. Τέτοιες παράμετροι μπορεί να είναι ο φόρτος εργασίας που υπάρχει στους κόμβους - υπολογιστές, των πλήθος των διαφορετικών διεργασιών που έχουν προγραμματιστεί να εκτελεστούν σε κάποιο συγκεκριμένο υπολογιστή, ή υπολογιστική πολυπλοκότητα των διεργασιών, ο χρόνος που απαιτείται για την εκτέλεση της σε συνάρτηση με την υπολογιστική ισχύ κάποιου υπολογιστή, το deadline που μια εργασία μπορεί να έχει ως χαρακτηριστικό και άλλα. Παρόμοιες παράμετροι μπορεί να υπεισέρχονται και στον υπολογισμό του μονοπατιού από τον routing αλγόριθμο. Τέτοιες παράμετροι μπορεί να είναι η κίνηση που υπάρχει σε συγκεκριμένες ακμές (links) του δικτύου ή η συντομότερη διαδρομή από ένα χρήστη σε έναν υπολογιστή. 100

101 Το πλήθος των διαφορετικών παραμέτρων είναι αυτό που οδηγεί σε μια ποικιλία αλγόριθμων scheduling και routing. Όπως αναφέρθηκε και πιο πάνω, διαφορετικοί αλγόριθμοι έχουν διαφορετική συμπεριφορά σε σχέση με τις παραμέτρους που αναφέρθηκαν Προτεινόμενο Σύστημα Ανοιχτά συστήματα, όπως τα Grid, έχουν τη δυνατότητα να αλλάζουν δυναμικά και έτσι δεν είναι εύκολο να γνωρίσουμε τους πόρους τους εκ τον προτέρων. Επίσης η κατάσταση τους αλλάζει στο χρόνο και είναι ιδιαιτέρως ανομοιογενή [105]. Αυτό δίνει τη δυνατότητα σε συστήματα, όπως τα Multi-Agent να χρησιμοποιηθούν, καθώς υποστηρίζουν χαρακτηριστικές λειτουργίες όπως negotiation και cooperation. Οι οντότητες σε Grid περιβάλλοντα δεν θα λειτουργούν σαν απλοί δέκτες περιγραφών διεργασιών, αλλά θα πρέπει να συνεργάζονται με το χρήστη και τις υπόλοιπες οντότητες για να επιτύχουν το στόχο τους. Για αυτό υπάρχει μια ανάγκη για πράκτορες που θα λειτουργούν σαν σκεπτόμενοι βοηθοί, γνωρίζοντας τόσο το Grid περιβάλλον όσο και τις απαιτήσεις του χρήστη. Πράκτορες που θα είναι σε θέση να διαπραγματευτούν με άλλους πράκτορες, να ορίσουν συμβόλαια, και να συνθέσουν υπηρεσίες, πετυχαίνοντας έτσι τους στόχους του χρήστη. Ο σημασιολογικός ιστός προσφέρει μια εννοιολογική προοπτική για τον τρόπο με τον οποίο μπορούμε να δούμε την κατανεμημένη γνώση, με όρους όπως δημιουργία, κατανάλωση, διαμοίραση, και έλεγχος. Έννοιες μπορούν να καθοριστούν με τη βοήθεια εκτατών, ανοιχτών οντολογιών που έχουν δημοσιευτεί χρησιμοποιώντας συνηθισμένα πρωτόκολλα. Τα στιγμιότυπα και οι ιδιότητες των οντολογιών βρίσκονται διάσπαρτες σε διάφορες τοποθεσίες στο δίκτυο. Το σημασιολογικό Grid είναι η τελευταία επέκταση του σημασιολογικού ιστού. Αναπτύχθηκε για την όσο το δυνατών αποτελεσματικότερη διαμοίραση πόρων και υπηρεσιών που βασίζονται σε γνώση και πληροφορία κατανοητή από τα μηχανήματα. Σε αντίθεση τα συστήματα πολύ- πρακτόρων παρέχουν μεθοδολογίες για κατανάλωση, επεξεργασία, δημιουργία και διαμοίραση τόσο της πληροφορίας όσο και της γνώσης μέσα σε κατανεμημένα συστήματα. Επιπλέον, η δημιουργία και ο έλεγχος ετερογενών κοινοτήτων πρακτόρων απαιτούν πολύπλοκο χειρισμό δεδομένων. Η κατανόηση των οποίων θα είναι δύσκολη χωρίς να χουν σημασιολογική δομή. Κρίνεται λοιπόν σημαντικό να δώσουμε στους πράκτορες χαρακτηριστικά των Web services για να υλοποιήσουμε το όραμα του Σημασιολογικού ιστού, και εν συνεχεία το σημασιολογικό Grid. Εικόνα 22: Αρχιτεκτονική προτεινόμενου συστήματος. Το προτεινόμενο σύστημα αποτελείται από 4 PCs. Τα βασικά χαρακτηριστικά τους είναι τα παρακάτω: 101

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου

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

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

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

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

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

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

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

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

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

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

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

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS) Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS) Ελένη Καλδούδη Τμήμα Ιατρικής Δημοκρίτειο Πανεπιστήμιο Θράκης 2003 θέματα το χθές, το σήμερα και το αύριο για τα PACS απαιτήσεις από

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ- ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ Marie-Aurélie

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

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

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

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

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

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

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

Σχεδιασµός Ανάπτυξη Οντολογίας

Σχεδιασµός Ανάπτυξη Οντολογίας Σχεδιασµός Ανάπτυξη Οντολογίας ΈλεναΜάντζαρη, Γλωσσολόγος, Ms.C. ΙΑΤΡΟΛΕΞΗ: Ανάπτυξη Υποδοµής Γλωσσικής Τεχνολογίας για το Βιοϊατρικό Τοµέα Τι είναι η οντολογία; Μιαοντολογίαείναιέναλεξικόόρωνπου διατυπώνονται

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΑ 3 και 9 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΕΣ Δεδομένα αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της δηλαδή.

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

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

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

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

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 5-2-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

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

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

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

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

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 10-2-2017 Η αρχή: Το όραμα του Σημασιολογικού Ιστού Tim Berners-Lee, James Hendler and Ora Lassila, The Semantic

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

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Το Oracle Analytics Cloud αποτελεί ένα ολοκληρωμένο σύνολο δυνατοτήτων που περιλαμβάνει έτοιμο περιεχόμενο, εξειδικευμένα

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

University of Macedonia Master in Information Systems. Networking Technologies professors: A. Economides A. Pobortsis AGREEMENT AND ACCOUNTING

University of Macedonia Master in Information Systems. Networking Technologies professors: A. Economides A. Pobortsis AGREEMENT AND ACCOUNTING University of Macedonia Master in Information Systems professors: A. Economides A. Pobortsis SERVICE LEVEL AGREEMENT (SLA) NEGOTIATING,, MEASURINGM AND ACCOUNTING Simeonidis Efstathios MIS18/05 January

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

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

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

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

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

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

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

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

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

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address>

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address> ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟ ΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΗΜΟΚΡΑΤΙΑΣ Οδηγίες

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

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Λίνα Μπουντούρη - Μανόλης Γεργατσούλης Ιόνιο Πανεπιστήμιο 15ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών Διαδίκτυο και Επίπεδα ετερογένειας δεδομένων

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

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

Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα: Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα: οφέλη για επιχειρήσεις και καταναλωτές Μιχάλης Σαλαμπάσης αναπληρωτής καθηγητής Τμήμα Πληροφορικής Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης Εναλλακτικός

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

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

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

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

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

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

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

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

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

Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών

Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών Υπολογιστικό Κέντρο Βιβλιοθηκών ΕΚΠΑ http://www.lib.uoa.gr Εισαγωγή Και στις ΒΥΠ του ΕΚΠΑ, οι ανάγκες για υλοποίηση υπηρεσιών

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

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

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

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

Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση

Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση Νίκος Λούτας (nlout@uom.gr) http://nikosloutas.com Υποψήφιος Διδάκτορας, Εργαστήριο Πληροφοριακών Συστημάτων,

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

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

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

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

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο της

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

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

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

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

Ενιαία Αναζήτηση σε ψηφιακό πολιτιστικό περιεχόμενο

Ενιαία Αναζήτηση σε ψηφιακό πολιτιστικό περιεχόμενο Εθνικό Κέντρο Τεκμηρίωσης Ενιαία Αναζήτηση σε ψηφιακό πολιτιστικό περιεχόμενο Χάρη Γεωργιάδης, Ph.D. Senior Software Engineer EKT hgeorgiadis@ekt.gr Πιστοποίηση, διασφάλιση & ευρεία διάθεση έγκριτου ελληνικού

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών 1 ίκτυα μικρά και μεγάλα Ένα δίκτυο υπολογιστών (computer network) είναι ένας συνδυασμός συστημάτων (δηλαδή, υπολογιστών),

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΕΠΙΛΥΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΔΟΣΗΣ ΣΕ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ ΜΕ ΣΥΣΚΕΥΕΣ ΔΙΑΚΡΙΤΩΝ ΤΙΜΩΝ ΙΣΧΥΟΣ ΜΕ ΤΗ ΧΡΗΣΗ

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

Context-aware και mhealth

Context-aware και mhealth ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΛΙΚΩΝ Context-aware και mhealth ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Του Κουβαρά

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

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

* Enterprise Resource Planning ** Customer Relationship Management

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

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

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language)

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language) SGML (Standard Generalized Markup Language) Γλώσσα για την περιγραφή της δομης και του περιεχομένου ηλεκτρονικών κειμένων Πλήρης Σύνθετη Δύσκολη στην εκμάθηση και την χρήση HTML (HyperText Markup Language)

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

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

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

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

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

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Σχεδίαση και Αρχιτεκτονική Δικτύων Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 19 Διάρθρωση

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

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android Πτυχιακή Εργασία Φοιτητής:

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

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

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

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

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

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

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

Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό. Νικόλαος Μήτρου Καθηγητής, ΕΜΠ

Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό. Νικόλαος Μήτρου Καθηγητής, ΕΜΠ Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό Νικόλαος Μήτρου (mitrou@softlab.ntua.gr) Καθηγητής, ΕΜΠ ΗΜΕΡΙΔΑ Η ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ ΤΟΥ ΜΗΧΑΝΙΚΟΥ 8 Ιουλίου 2008 Περιεχόμενα Ο ρόλος

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

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

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

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

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

ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ Ηλίας Κωνσταντίνου Λεμεσός,

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

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική»

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

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

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

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών Φορολογική Βιβλιοθήκη Θανάσης Φώτης Προγραμματιστής Εφαρμογών Το έργο Η φορολογική βιβλιοθήκη πρόκειται για ένα έργο που φιλοδοξεί να αποτελέσει σημαντικό βοήθημα για τον επαγγελματία λογιστή και όχι μόνο.

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

Έξυπνα ενεργειακά δίκτυα

Έξυπνα ενεργειακά δίκτυα Ανώτατο Εκπαιδευτικό Ίδρυµα Πειραιά Τεχνολογικού Τοµέα Τµήµα Ηλεκτρονικών Μηχανικών Τ.Ε. Πτυχιακή Εργασία Φοιτητής: Θάνος Ανδρέας ΑΜ: 42132 Φοιτητής: Τερζής Αλέξιος ΑΜ: 42564 Επιβλέπων Καθηγητής Απόστολος

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

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Σημασιολογική Συσταδοποίηση Αντικειμένων Με Χρήση Οντολογικών Περιγραφών.

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

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός του κεφαλαίου είναι η εισαγωγή της έννοιας της διάταξης λογισμικού, ως αρχιτεκτονικής δόμησης των υπολογιστικών πόρων και της ανάθεσης σε αυτούς συστατικών

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

υπηρεσιες προστιθέμενης αξίας Υπηρεσίες προστιθέμενης αξίας

υπηρεσιες προστιθέμενης αξίας Υπηρεσίες προστιθέμενης αξίας υπηρεσιες προστιθέμενης αξίας Η σημασία των υπηρεσιών προστιθέμενης αξίας η ανταγωνιστικότητα της οικονομίας, εφευρετική, να καινοτομεί περισσότερο και να αντιδρά καλύτερα στις ανάγκες και τις προτιμήσεις

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

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

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

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

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

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

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

Web 論 文. Performance Evaluation and Renewal of Department s Official Web Site. Akira TAKAHASHI and Kenji KAMIMURA

Web 論 文. Performance Evaluation and Renewal of Department s Official Web Site. Akira TAKAHASHI and Kenji KAMIMURA 長 岡 工 業 高 等 専 門 学 校 研 究 紀 要 第 49 巻 (2013) 論 文 Web Department of Electronic Control Engineering, Nagaoka National College of Technology Performance Evaluation and Renewal of Department s Official Web Site

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

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Ευθύμιος Ταμπούρης tambouris@uom.gr Επιστημονική Επιχειρηματική Χρήση των Η/Υ Η επιστημονική κοινότητα ασχολείται με τη λύση πολύπλοκων μαθηματικών προβλημάτων

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

Network Address Translation (NAT)

Network Address Translation (NAT) HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο 2016-2017 Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Network Address Translation (NAT) Network Layer Private IP Addresses Πρόβλημα: o χώρος των ΙΡ διευθύνσεων

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

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 11: Αρχιτεκτονική Cloud

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 11: Αρχιτεκτονική Cloud Εισαγωγή στα Πληροφοριακά Συστήματα Ενότητα 11: Κωνσταντίνος Ταραμπάνης Τμήμα Οργάνωσης & Διοίκησης Επιχειρήσεων ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κωνσταντίνος Ταραμπάνης Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

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

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637 8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637 Υλοποιηση νεων τεχνολογιων (Web GIS, Application Servers) για τη δυναμικη προσβαση μεσω διαδικτυου στη βαση δεδομενων του Ελληνικου Εθνικου Κεντρου Ωκεανογραφικων

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

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

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

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

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

«Ώθηση» Ανταγωνιστικότητας σε Call Center. Ολοκληρώνοντας open source & καινοτομικά Ελληνικά προϊόντα λογισμικού

«Ώθηση» Ανταγωνιστικότητας σε Call Center. Ολοκληρώνοντας open source & καινοτομικά Ελληνικά προϊόντα λογισμικού «Ώθηση» Ανταγωνιστικότητας σε Call Center Ολοκληρώνοντας open source & καινοτομικά Ελληνικά προϊόντα λογισμικού Case Study: Ώθηση Α.Ε. Open source και Ελληνικό καινοτομικό λογισμικό στις υπηρεσίες one-stop-shop

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

υπηρεσίες / services ΜΕΛΕΤΗ - ΣΧΕΔΙΑΣΜΟΣ PLANNING - DESIGN ΕΜΠΟΡΙΚΗ ΜΕΛΕΤΗ COMMERCIAL PLANNING ΕΠΙΠΛΩΣΗ - ΕΞΟΠΛΙΣΜΟΣ FURNISHING - EQUIPMENT

υπηρεσίες / services ΜΕΛΕΤΗ - ΣΧΕΔΙΑΣΜΟΣ PLANNING - DESIGN ΕΜΠΟΡΙΚΗ ΜΕΛΕΤΗ COMMERCIAL PLANNING ΕΠΙΠΛΩΣΗ - ΕΞΟΠΛΙΣΜΟΣ FURNISHING - EQUIPMENT Αρχιτεκτονικές και διακοσμητικές μελέτες, με λειτουργικό και σύγχρονο σχέδιασμό, βασισμένες στην μοναδικότητα του πελάτη. ΕΜΠΟΡΙΚΗ ΜΕΛΕΤΗ Ανάλυση των χαρακτηριστικών των προϊόντων και ένταξη του τρόπου

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

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

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

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

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής oard Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Πρόγραµµα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή ιατριβή Τίτλος ιατριβής Masters Thesis Title Ονοµατεπώνυµο Φοιτητή Πατρώνυµο Ανάπτυξη διαδικτυακής

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

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) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

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

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

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

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

Διαδίκτυο των Αντικειμένων - IoT.

Διαδίκτυο των Αντικειμένων - IoT. Διαδίκτυο των Αντικειμένων - IoT sdima@ece.upatras.gr ΑΠΟΚΤΗΣΗ ΑΚΑΔΗΜΑΪΚΗΣ ΔΙΔΑΚΤΙΚΗΣ ΕΜΠΕΙΡΙΑΣ ΣΕ ΝΕΟΥΣ ΕΠΙΣΤΗΜΟΝΕΣ ΚΑΤΟΧΟΥΣ ΔΙΔΑΚΤΟΡΙΚΟΥ ΣΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ (ΦΚ/MIS) Ε.655/ 5001184. sdima@ece.upatras.gr

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

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού Κεφάλαιο 6 ο Διαχείριση στοιχείων λογισμικού Διδακτικοί στόχοι Να περιγραφούν οι κύριοι τύποι λογισμικού Να εξεταστεί το λογισμικό συστήματος και τα λειτουργικά συστήματα Να αναλυθούν οι πιο σημαντικές

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

Οι Δρόμοι της Ψηφιακής Διατήρησης και της Ψηφιακής Αρχαιολογίας

Οι Δρόμοι της Ψηφιακής Διατήρησης και της Ψηφιακής Αρχαιολογίας Εργαστήριο Ψηφιακών Βιβλιοθηκών και Ηλεκτρονικής Δημοσίευσης Τμήμα Αρχειονομίας Βιβλιοθηκονομίας Ιόνιο Πανεπιστήμιο Οι Δρόμοι της Ψηφιακής Διατήρησης και της Ψηφιακής Αρχαιολογίας Σαράντος Καπιδάκης sarantos@ionio.gr

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

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

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

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

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

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

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

Bring Your Own Device (BYOD) Legal Challenges of the new Business Trend MINA ZOULOVITS LAWYER, PARNTER FILOTHEIDIS & PARTNERS LAW FIRM

Bring Your Own Device (BYOD) Legal Challenges of the new Business Trend MINA ZOULOVITS LAWYER, PARNTER FILOTHEIDIS & PARTNERS LAW FIRM Bring Your Own Device (BYOD) Legal Challenges of the new Business Trend MINA ZOULOVITS LAWYER, PARNTER FILOTHEIDIS & PARTNERS LAW FIRM minazoulovits@phrlaw.gr What is BYOD? Information Commissioner's Office

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

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

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

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

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

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

«Εμπειρία ανάπτυξης συστημάτων βιβλιοθηκών Συνεργασίες με βιβλιοθήκες ββ Εξέλιξη ξη ΑΒΕΚΤ»

«Εμπειρία ανάπτυξης συστημάτων βιβλιοθηκών Συνεργασίες με βιβλιοθήκες ββ Εξέλιξη ξη ΑΒΕΚΤ» «Εμπειρία ανάπτυξης συστημάτων βιβλιοθηκών Συνεργασίες με βιβλιοθήκες ββ Εξέλιξη ξη ΑΒΕΚΤ» o Πρόγραμμα Αυτοματισμού Βιβλιοθηκών ΕΚΤ (ΑΒΕΚΤ) Ανάπτυξη του Λογισμικού Πορεία εξέλιξης Στόχοι Συστήματος Χαρακτηριστικά

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

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

Μεταδεδομένα στο Ψηφιακό περιβάλλον Μεταδεδομένα στο Ψηφιακό περιβάλλον Μονάδα Αριστείας Ανοικτού Λογισμικού - Χαροκόπειο Πανεπιστήμιο Ψηφιακό Τεκμήριο Οτιδήποτε υπάρχει σε ηλεκτρονική μορφή και μπορεί να προσπελαστεί μέσω υπολογιστή Μεταδεδομένα

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

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

Η Διαλειτουργικότητα στην Υπηρεσία του Πολίτη

Η Διαλειτουργικότητα στην Υπηρεσία του Πολίτη Η Διαλειτουργικότητα στην Υπηρεσία του Πολίτη Μαρίκα Λάμπρου Διευθύνουσα Σύμβουλος SingularLogic Integrator ICT Forum Περιεχόμενα Ορισμός Διαλειτουργικότητας Στόχοι Διαλειτουργικότητας Πρότυπο Ηλεκτρονικό

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

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

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

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

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

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

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

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

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