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

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

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

Transcript

1 Διπλωματική Εργασία Αμφίδρομη επικοινωνία μεταξύ μίας Διαδικτυακής Πύλης Πανεπιστημίου και μίας εφαρμογής διαχείρισης γραμματείας με χρήση Web Services Επιβλέπων Καθηγητής: Πρωτόγερος Νικόλαος Θεσσαλονίκη, Ιούλιος 2008

2 Πίνακας Περιεχομένων 1. Εισαγωγή Επισκόπηση των Web Services Τι είναι τα Web Services Ιστορία Υπολογιστικών Συστημάτων Μονολιθικά Συστήματα Συστήματα Πελάτη-Εξυπηρετητή Συστήματα Πολλαπλών Επιπέδων Διαδίκτυο & Web Services Service-Oriented Αρχιτεκτονική Η Τεχνολογία των Web Services Πρωτόκολλα Επικοινωνίας Πρωτόκολλο SOAP Πρωτόκολλο WSDL Πρωτόκολλο UDDI Πλεονεκτήματα των Web Services Επαναχρησιμοποίηση Ανεξαρτησία Φιλοξενίας Σύνθεση και Ενσωμάτωση Υπηρεσιών Επεκτασιμότητα και Διαθεσιμότητα Διατήρηση Χρήσης Legacy Εφαρμογών Ανεξαρτησία από τον Παροχέα Μεθοδολογία Συγχρονισμού Δεδομένων...34 Σελίδα 2 από 120

3 3.1 Το Πρόβλημα Συγχρονισμού Δεδομένων Προτεινόμενη Λύση με Χρήση Web Services Εφαρμογή Γραμματείας Διαδικτυακή Πύλη Κανόνες Λειτουργίας Συστήματος Πλατφόρμες Ανάπτυξης J2EE Συστατικά Στοιχεία J2EE Εφαρμογών Πλεονεκτήματα της J2EE J2EE & Web Services JAX-RPC Apache Axis Εκπαιδευτική Πλατφόρμα Moodle Πλατφόρμα Ανάπτυξης PowerBuilder Υλοποίηση Συστήματος Web Service Συγχρονισμού Δεδομένων Σημεία Συγχρονισμού Εφαρμογών Αντιστοίχηση Δεδομένων Εφαρμογών Υλοποίηση Web Service Εφαρμογή Γραμματείας Πανεπιστημίου Καθορισμός Λειτουργιών Εφαρμογής Σχεδιασμός & Υλοποίηση Βάσης Δεδομένων Ανάπτυξη Διεπαφής Χρήστη...74 Σελίδα 3 από 120

4 5.2.4 Δημιουργία Εκτυπωτικών Αναφορών Συγχρονισμός Δεδομένων μέσω Web Service Λειτουργία Πλατφόρμας Moodle Η Βιβλιοθήκη NuSOAP Συγχρονισμός Δεδομένων μέσω Web Service Συμπεράσματα Υλοποίησης Πλεονεκτήματα Χρήσης Web Services Προβλήματα Χρήσης Web Services Ασφάλεια Web Services Παράρτημα Ι: Σενάριο Χρήσης Συστήματος Γραμματεία - Καταχώρηση Στοιχείων Χρηστών Γραμματεία - Καταχώρηση Στοιχείων Μαθημάτων Φοιτητές - Δήλωση Μαθημάτων Καθηγητές Ορισμός Μορφής Μαθήματος Φοιτητές & Καθηγητές - Υποβολή & Βαθμολόγηση Εργασιών Γραμματεία - Έκδοση Αναλυτικής Βαθμολογίας Παράρτημα ΙΙ: Οδηγός Εγκατάστασης Συστήματος Εγκατάσταση Apache HTTP Server Εγκατάσταση PHP Εγκατάσταση MySQL Εγκατάσταση Moodle Εγκατάσταση Εφαρμογής Γραμματείας Εγκατάσταση Apache Axis Σελίδα 4 από 120

5 8.7 Εγκατάσταση Web Service Εγκατάσταση JDBC Drivers Βιβλιογραφία Χρήσιμοι Σύνδεσμοι Σελίδα 5 από 120

6 Συντομογραφίες API CGI CORBA DCOM DOM FTP HTML HTTP IIS J2SE J2EE JAF JAX-RPC JAXB JAXM JAXP JAXR JDBC MOODLE ODBC PHP Application Programming Interface Common Gateway Interface Common Object Request Broker Architecture Distributed Component Object Model Document Object Model File Transfer Protocol Hypertext Markup Language Hypertext Transfer Protocol Internet Information Services Java 2 Standard Edition Java 2 Enterprise Edition JavaBeans Activation Framework Java API for XML-Based RPC Java Architecture for XML Binding Java API for XML Messaging Java API for XML Processing Java API for XML Registries Java DataBase Connectivity Modular Object-Oriented Dynamic Learning Environment Open DataBase Connectivity PHP: Hypertext Preprocessor Σελίδα 6 από 120

7 RDBMS RMI RPC SAAJ SAX SMTP SOA SOAP UDDI URI W3C WSDD WSDL XML XSLT Relational DataBase Management System Remote Method Invocation Remote Procedure Call SOAP with Attachments API for Java Simple API for XML Simple Mail Transfer Protocol Service-Oriented Architecture Simple Object Access Protocol Universal Description, Discovery and Integration Uniform Resource Identifier World Wide Web Consortium Web Services Deployment Descriptor Web Services Description Language extensible Markup Language extensible Stylesheet Language Transformations Σελίδα 7 από 120

8 1. Εισαγωγή Στους περισσότερους οργανισμούς και επιχειρήσεις σήμερα, οι εφαρμογές λογισμικού μπορούν να ομαδοποιηθούν σε δύο μεγάλες κατηγορίες: Εφαρμογές front office, με τη βοήθεια των οποίων γίνεται η αλληλεπίδραση με τους εξωτερικούς χρήστες και το ευρύ κοινό Εφαρμογές back office, που είναι προσανατολισμένες στη διαχείριση του εσωτερικού επιχειρησιακού πυρήνα των οργανισμών και επιχειρήσεων Εδώ και χρόνια, οι ομάδες ανάπτυξης Πληροφοριακών Συστημάτων αντιμετωπίζουν ένα πολύ σημαντικό πρόβλημα: Πως να τροποποιήσουν, αναβαθμίσουν και να συνδέσουν μεταξύ τους τις παραπάνω ετερογενείς κατηγορίες εφαρμογών με όσο το δυνατόν πιο ευέλικτο και αποδοτικό τρόπο, έτσι ώστε να ικανοποιήσουν τις σύγχρονες απαιτήσεις των επιχειρήσεων ή οργανισμών. Οι συγκεκριμένες back office εφαρμογές, βασίζονται σε πολλές περιπτώσεις σε παλαιότερες ή ακόμα και παρωχημένες τεχνολογίες, είναι ευρέως γνωστές και με τον όρο legacy. Ως legacy application ορίζεται οποιαδήποτε εφαρμογή χρησιμοποιεί μία βάση δεδομένων και περιέχει στοιχεία και πληροφορίες που θέλουμε να χρησιμοποιηθούν για προβολή και επεξεργασία σε ένα άλλο πληροφοριακό σύστημα. Η πλατφόρμα λειτουργίας, η γλώσσα κατασκευής και η βάση δεδομένων που χρησιμοποιεί το σύστημα μπορεί να είναι οποιουδήποτε τύπου, τεχνολογίας και κατασκευαστή. Οι legacy εφαρμογές μπορεί να εξυπηρετούν άριστα τους χρήστες τους και να ανταποκρίνονται επαρκώς στις εργασίες για τις οποίες προορίζονται. Συνήθως όμως παρουσιάζουν προβλήματα όταν πρέπει να επικοινωνήσουν και να διαμοιραστούν πληροφορίες με άλλα νεότερα και πιο σύγχρονα πληροφοριακά συστήματα, μέσω του Διαδικτύου ή έστω μέσω κάποιου εσωτερικού εταιρικού δικτύου. Συνηθέστερες αιτίες των δυσκολιών αυτών είναι η παλαιότερη πλατφόρμα λειτουργίας τους ή η ξεπερασμένη γλώσσα προγραμματισμού στην οποία αναπτύχθηκαν. Η ιδανικότερη λύση θα ήταν η αυτόματη μετατροπή της σύνταξης, των αναφορών σε βιβλιοθήκες και των κλάσεων που Σελίδα 8 από 120

9 χρησιμοποιεί ο πηγαίος κώδικας της εφαρμογής σε μία σύγχρονη γλώσσα προγραμματισμού, χωρίς καμία επιπλέον προγραμματιστική εργασία. Αυτή η λύση όμως δεν είναι εφικτή γιατί κάθε γλώσσα χρησιμοποιεί συγκεκριμένες βιβλιοθήκες και τρέχει σε δεδομένο περιβάλλον, με αποτέλεσμα να μην είναι εφικτή η ακριβής και χωρίς σφάλματα μετάφραση του κώδικα. Αυτό που συνήθως συμβαίνει σε αυτές τις περιπτώσεις, είναι η ολική αντικατάσταση της παλαιάς εφαρμογής με μία νεότερη, γεγονός που επιφέρει την επιβάρυνση του κόστους αγοράς, υλοποίησης, μεταφοράς δεδομένων και εκμάθησης. Εναλλακτική λύση είναι η μερική μετατροπή του συστήματος με μεθοδολογίες που συνήθως αντιμετωπίζουν προσωρινά το πρόβλημα μέχρι η ολική αντικατάσταση του συστήματος να είναι αναπόφευκτη. Δεν είναι λίγες οι περιπτώσεις επιχειρήσεων και οργανισμών που αναγκάσθηκαν να αντικαταστήσουν τα πληροφοριακά τους συστήματα πολλές φορές προκειμένου να πετύχουν ένα πλήρως ενοποιημένο περιβάλλον εφαρμογών. Οι υπηρεσίες ιστού (web services) αποτελούν μία πολλά υποσχόμενη τεχνολογία που επιδιώκει να προσφέρει λύσεις, μεταξύ άλλων, στην επικοινωνία και αλληλεπίδραση των προαναφερθέντων διαφορετικών και ετερογενών front-office και back-office συστημάτων. Το κόστος υλοποίησης μάλιστα του ενιαίου πληροφοριακού συστήματος που αναπτύσσεται είναι πολύ μικρό, καθώς δεν προϋποθέτει την κατάργηση των legacy εφαρμογών, αλλά αντίθετα επιτυγχάνει την πλήρη ενσωμάτωσή τους, τη διατήρηση της υπάρχουσας πλατφόρμας λειτουργίας και της γλώσσας κατασκευής τους. Τα web services αποτελούν τμήματα επιχειρησιακών εφαρμογών που βασίζονται σε ανοιχτά πρότυπα του Διαδικτύου και μπορούν μεταξύ άλλων να περιγράφουν και να δημοσιοποιούν τη λειτουργικότητά τους, να εντοπίζουν και να αλληλεπιδρούν δυναμικά με άλλα web services. Με αυτόν τον τρόπο, παρέχουν τη δυνατότητα σε οργανισμούς να επικοινωνούν μεταξύ τους και να διασυνδέονται επιτυχώς μέσω Διαδικτύου για την πραγματοποίηση διάφορων συναλλαγών, χωρίς να υφίστανται περιορισμοί σχετικά με τις εφαρμογές που χρησιμοποιούνται ή τη γλώσσα στην οποία αναπτύχθηκαν τα συγκεκριμένα web services. Σελίδα 9 από 120

10 Το μεγαλύτερο πλεονέκτημα των web services είναι η διαλειτουργικότητα που προσφέρουν. Οι παραδοσιακές προσεγγίσεις επικοινωνίας δύο διαφορετικών εφαρμογών είχαν ως βασική προϋπόθεση την εκ των προτέρων συμφωνία στους μηχανισμούς ανταλλαγής δεδομένων, στις πλατφόρμες λειτουργικών συστημάτων και λογισμικού κ.λπ. Σήμερα, το κλειδί για την ανάπτυξη ευέλικτων και οικονομικών μηχανισμών διασύνδεσης, είναι η μετατροπή των συνεκτικών δεσμών των συγκεκριμένων συστημάτων (tightly coupled applications) σε κατανεμημένα συστήματα χωρίς συνεκτική σύνδεση (loosely coupled applications), με το διαχωρισμό της επιχειρησιακής λογικής (business logic) από το επίπεδο των δεδομένων (data layer). Τα web services, χρησιμοποιώντας τις τεχνολογίες Java & XML που θα παρουσιαστούν αναλυτικά στις επόμενες ενότητες, έχουν τη δυνατότητα να επιτύχουν τον συγκεκριμένο στόχο [1]. Τα web services χρησιμοποιούν τα πρότυπα WSDL [2] (για την περιγραφή της λειτουργικότητάς τους), UDDI [3] (για τη δημοσιοποίηση και τον εντοπισμό τους) και SOAP [4] (για την επικοινωνία και ανταλλαγή δεδομένων). Τα τελευταία χρόνια τα web services έχουν εξελιχθεί στην κυρίαρχη τεχνολογία για την επικοινωνία μεταξύ των πληροφοριακών συστημάτων, παρέχοντας μεθόδους για την επέκταση της λειτουργικότητας και των υπηρεσιών που παρέχουν. Αντικείμενο της παρούσας εργασίας είναι η αξιοποίηση των web services, για την επιτυχή διασύνδεση και ολοκλήρωση (integration) ετερογενών εφαρμογών και συστημάτων. Συγκεκριμένα, θα επιχειρηθεί η αξιολόγηση της χρησιμότητας και αποδοτικότητάς τους, μέσω της υλοποίησης ενός αρκετά διαδεδομένου παραδείγματος διασύνδεσης μίας back office εφαρμογής της γραμματείας Πανεπιστημίου, με την αντίστοιχη front office Διαδικτυακή Πύλη του. Παράλληλα με την υλοποίηση της προαναφερθείσας εφαρμογής, στόχος είναι η παρουσίαση των τεχνολογιών και πρωτοκόλλων που χρησιμοποιούνται για την κατασκευή των web services, του τρόπου λειτουργίας και της λογικής ανάπτυξής τους, καθώς και της παρουσίασης των δυνατοτήτων και πλεονεκτημάτων που παρέχουν. Σελίδα 10 από 120

11 2. Επισκόπηση των Web Services Η πιο σημαντική απόδειξη της απήχησης των web services, είναι ότι χρησιμοποιούνται πλέον από κάθε εταιρία λογισμικού ή υλικού για την επίτευξη διαλειτουργικότητας μεταξύ εφαρμογών. Τα web services επιτρέπουν την επικοινωνία μεταξύ συστημάτων, χρησιμοποιώντας διαδεδομένες τεχνολογίες Διαδικτύου. Συστήματα που επικοινωνούν με άλλα συστήματα χρησιμοποιούν πρωτόκολλα επικοινωνίας και σχήματα δεδομένων που είναι κατανοητά και από τις δύο πλευρές. Οι προγραμματιστές χρησιμοποιούσαν μέχρι πρότινος τεχνολογίες όπως CORBA [5], RMI [6] ή DCOM [7]. Το κύριο πρόβλημα με τις συγκεκριμένες τεχνολογίες επικοινωνίας είναι ότι δεν υποστηρίζονται από κάθε πλατφόρμα λογισμικού. Κατά συνέπεια, οι προγραμματιστές είναι υποχρεωμένοι σε πολλές περιπτώσεις να χρησιμοποιούν ενδιάμεσες εφαρμογές λογισμικού, γνωστές και ως gateways, για να μετατρέπουν ένα μη υποστηριζόμενο πρωτόκολλο επικοινωνίας και μεταφοράς δεδομένων, σε κάποιο που να είναι συμβατό με την τελική πλατφόρμα-στόχο. Το γεγονός μάλιστα, ότι οι συγκεκριμένες τεχνολογίες στηρίζονται στη συνεκτική σύνδεση του καταναλωτή της υπηρεσίας με την ίδια την υπηρεσία, απαιτεί την ύπαρξη ομογενούς υποδομής που συχνά προκαλεί αστάθεια στη συνολική αρχιτεκτονική. Εάν η εφαρμογή αλλάξει στη μία πλευρά, δημιουργείται πρόβλημα στην άλλη πλευρά. Για παράδειγμα, εάν αλλάξει το περιβάλλον ανάπτυξης της εφαρμογής του διακομιστή, δημιουργείται συνήθως πρόβλημα στην εφαρμογή πελάτη (client application). Έτσι, ενώ υπάρχει ένα αρκετά μεγάλο σύνολο από παρεχόμενες υπηρεσίες στο Διαδίκτυο, για να καταστεί δυνατή η αξιοποίησή τους, χρειάζεται να μελετηθεί ο τρόπος με τον οποίο θα κληθούν, να εξασφαλιστεί ότι χρησιμοποιείται το ίδιο πρωτόκολλο επικοινωνίας και γενικά να προσαρμοστεί όλο το σύστημα, έτσι ώστε να γίνει συμβατό με αυτό του παροχέα της υπηρεσίας. Η ταχεία εξάπλωση του Διαδικτύου ώθησε πολλές εταιρείες στην υιοθέτηση πρωτοκόλλων όπως του HTTP και της XML. Τα τελευταία χρόνια μάλιστα έγινε αντιληπτό, πως τα Σελίδα 11 από 120

12 συστήματα που επικοινωνούν μεταξύ τους μέσω Διαδικτύου, θα μπορούσαν να αξιοποιήσουν τις συγκεκριμένες τεχνολογίες. Τα web services χρησιμοποιούν τις τεχνολογίες Διαδικτύου για την επίτευξη διαλειτουργικότητας μεταξύ συστημάτων. Σελίδα 12 από 120

13 2.1 Τι είναι τα Web Services Το πλεονέκτημα των web services έναντι παλαιότερων τεχνολογιών, όπως της CORBA, είναι ότι αναπτύσσονται πάνω σε υπάρχουσες υποδομές του Διαδικτύου, δεν απαιτούν συνεκτική σύνδεση και υποστηρίζονται σχεδόν από όλους τους παροχείς πληροφοριακών συστημάτων και εφαρμογών σήμερα. Αποτέλεσμα των ευρέως διαδεδομένων τεχνολογιών που χρησιμοποιούν, είναι ότι τα web services δεν εξαρτώνται από την πλατφόρμα στην οποία υλοποιούνται (platform independent). Αυτό πρακτικά σημαίνει ότι ανεξάρτητα από το αν ένα web service υλοποιήθηκε με τη βοήθεια του J2EE [8] ή του.net [9], η εφαρμογή πελάτη το καλεί και το χρησιμοποιεί με τον ίδιο ακριβώς τρόπο (Εικόνα 2.1). Εικόνα 2.1 Κλήση ενός web service Η ανεξαρτησία από τις πλατφόρμες υλοποίησης άλλωστε είναι εμφανής και στο ίδιο το Διαδίκτυο. Ένας δικτυακός τόπος χρησιμοποιεί HTTP & HTML για τη μεταφορά των δεδομένων του σε έναν φυλλομετρητή ιστού (web browser) και αυτή είναι και η μόνη απαίτηση που υπάρχει από τον συγκεκριμένο τόπο. Για την ανάπτυξη ενός δικτυακού τόπου μπορούν να χρησιμοποιηθούν διάφορες γλώσσες και πλατφόρμες, αλλά δεν έχουν καμία διαφοροποίηση στο τελικό αποτέλεσμα, αφού τα δεδομένα μεταφέρονται στον φυλλομετρητή με τη βοήθεια του HTTP και της HTML. Οι ίδιες ακριβώς αρχές διέπουν και τα web services. Αυτός είναι άλλωστε ο βασικός λόγος που εξελίσσονται στις μέρες μας στην πιο διαδεδομένη τεχνολογία διαλειτουργικότητας μεταξύ εφαρμογών λογισμικού. Συγκεκριμένα, τα web services είναι εφαρμογές που «εκθέτουν» τις δυνατότητές τους στο Διαδίκτυο, χρησιμοποιώντας το πρωτόκολλο HTTP για την επικοινωνία, και τη γλώσσα XML για την ανταλλαγή των μηνυμάτων. Σελίδα 13 από 120

14 Τα web services συνήθως δεν είναι μία ολοκληρωμένη και αυτόνομη εφαρμογή, αλλά αποτελούν λειτουργικό τμήμα μίας ευρύτερης εφαρμογής που αποσκοπεί στην επίτευξη αλληλεπίδρασης μεταξύ ετερογενών συστημάτων λογισμικού. Οι προγραμματιστές ενσωματώνουν τα web services στις εφαρμογές τους καλώντας τα κατάλληλα APIs, όπως ακριβώς καλούν τις τοπικές υπηρεσίες. Η διαφορά έγκειται στο γεγονός ότι η κλήση είναι δυνατό να δρομολογηθεί, μέσω του Διαδικτύου, προς μια υπηρεσία που βρίσκεται σε ένα απομακρυσμένο σύστημα. Εικόνα 2.2 Σύστημα χωρίς συνεκτική σύνδεση με χρήση web services Οι υπηρεσίες που προσφέρουν τα web services δεν είναι συνεκτικά συνδεδεμένες. Αυτό πρακτικά σημαίνει ότι μπορεί να τροποποιηθεί οποιαδήποτε πλευρά της σύνδεσης και η εφαρμογή να συνεχίσει να λειτουργεί. Η Εικόνα 2.2 παρουσιάζει ένα υποθετικό σενάριο που αναδεικνύει τη σημασία και τα πλεονεκτήματα των συστημάτων χωρίς συνεκτική σύνδεση. Ας υποτεθεί ότι ένα web service φιλοξενείται σε λειτουργικό σύστημα Windows XP και υποστηρίζεται από βάση δεδομένων Oracle. Η υπηρεσία προφέρεται και υπάρχουν πελάτες που τη χρησιμοποιούν μέσω διάφορων clients που έχουν αναπτυχθεί. Αν για κάποιο λόγο αποφασιστεί η αλλαγή του λειτουργικού συστήματος του εξυπηρετητή σε Unix και μεταφορά της βάσης δεδομένων από Oracle σε MySQL, οι πελάτες του web service Σελίδα 14 από 120

15 δεν θα αντιληφθούν την αλλαγή. Επιπλέον, δεν θα χρειαστεί καμία τροποποίηση στις εφαρμογές πελατών, οι οποίες θα εξακολουθούν να επικοινωνούν με το web service με τον ίδιο ακριβώς τρόπο όπως και παλαιότερα. Στη συνέχεια παρατίθεται ο ορισμός που δόθηκε στα web services από τον οργανισμό W3C [10]: Υπηρεσία Ιστού (Web Service) είναι μία εφαρμογή λογισμικού που προσδιορίζεται από κάποιο URI, και χρησιμοποιεί τη γλώσσα XML για να περιγράψει πλήρως τις μεθόδους και τη λειτουργικότητά του. Η συγκεκριμένη περιγραφή χρησιμοποιείται από άλλες εφαρμογές λογισμικού για να επιτευχθεί η διαδραστικότητα με την υπηρεσία ιστού (web service). Η επικοινωνία μεταξύ των συστημάτων γίνεται με την αποστολή και λήψη μηνυμάτων σε μορφή XML μέσω πρωτοκόλλων Διαδικτύου. Σελίδα 15 από 120

16 2.2 Ιστορία Υπολογιστικών Συστημάτων Πριν αναλυθούν όμως τα web services με περισσότερες λεπτομέρειες θα επιχειρηθεί μία σύντομη αναδρομή, για να γίνει κατανοητή η ιστορία των υπολογιστικών συστημάτων και ο τρόπος εξέλιξής τους. Τα τελευταία χρόνια, το υλικό (hardware) των υπολογιστικών συστημάτων γίνεται όλο και πιο ισχυρό, γεγονός που ωθεί στη δημιουργία πιο πολύπλοκου λογισμικού για την αξιοποίηση αυτής της ισχύος. Το πιο σημαντικό γεγονός πάντως της εξέλιξης του υλικού, υπήρξε κατά κοινή ομολογία η ανακάλυψη των υπολογιστικών δικτύων. Στο παρελθόν, οι εφαρμογές περιορίζονταν στην εκτέλεσή τους σε έναν ή σε λίγους υπολογιστές. Με την ανάπτυξη των δικτύων όμως, ένας τεράστιος όγκος υπολογιστικής ισχύος είναι πλέον διαθέσιμος στο Διαδίκτυο, έτοιμος να αξιοποιηθεί από σύνθετες και πολύπλοκες εφαρμογές. Παραδοσιακά, η κύρια τεχνική για τη διαχείριση της προγραμματιστικής πολυπλοκότητας, ήταν η δημιουργία σπονδυλωτών (modular) εφαρμογών. Οι συναρτήσεις (functions), τα αντικείμενα (objects) και οι υπηρεσίες (services) μεταξύ άλλων, επέτρεψαν την ανάπτυξη τμημάτων επαναχρησιμοποιήσιμου κώδικα, του οποίου η συμπεριφορά ή και τα δεδομένα αποκρύπτονται πλέον σε συνεχώς αυξανόμενο ρυθμό από τον τελικό χρήστη. Ένας εξίσου σημαντικός παράγοντας που υποβοήθησε στην αναζήτηση νέων τεχνολογικών κατευθύνσεων ανάπτυξης εφαρμογών, υπήρξε η αλματώδης διάδοση πληροφοριών μέσω Διαδικτύου και η επακόλουθη έναρξη παροχής ηλεκτρονικών υπηρεσιών από διάφορες επιχειρήσεις. Αποτέλεσμα της συγκεκριμένης κατεύθυνσης, ήταν η μετεξέλιξη των μικρών σε εύρος εφαρμογών λογισμικού, στα πολύπλοκα επιχειρησιακά υπολογιστικά συστήματα της εποχής μας. Ιστορικά, η φυσική εξέλιξη των συστημάτων αυτών είναι άρρηκτα συνδεδεμένη με τη χρήση των δικτύων. Στην Εικόνα 2.3 διαφαίνεται το πώς η εξέλιξη της ταχύτητας και της διαθεσιμότητας των δικτύων τις τελευταίες δεκαετίες, άλλαξε αντίστοιχα και την κατεύθυνση ανάπτυξης των εφαρμογών. Σήμερα, μέσω των υπολογιστικών δικτύων είναι πλέον ικανή η σύνδεση πολλών κατανεμημένων και ετερογενών υπολογιστικών πόρων για Σελίδα 16 από 120

17 τη δημιουργία μίας εφαρμογής. Εικόνα 2.3 Η εξέλιξη στην ανάπτυξη υπολογιστικών συστημάτων Η ανάπτυξη των υπολογιστικών δικτύων, προώθησε την αντίστοιχη εξάπλωση και καθιέρωση των αρχιτεκτονικών πελάτη-εξυπηρετητή (client-server) αρχικά και πολλαπλών επιπέδων (n-tier) στη συνέχεια, για την υλοποίηση εφαρμογών. Πλέον, το Διαδίκτυο παρέχει τη δυνατότητα σύνδεσης εκατομμυρίων υπολογιστών, δημιουργώντας έναν απίστευτο όγκο υπολογιστικών πόρων. Σήμερα, τα web services έχουν τη δυνατότητα να αξιοποιήσουν στο έπακρο την εξέλιξη αυτή Μονολιθικά Συστήματα Από το 1950 περίπου, έως τη δεκαετία του 1980, οι εφαρμογές υλοποιούνταν κυρίως σε κλειστά, μονολιθικά συστήματα, χρησιμοποιώντας γλώσσες όπως η Cobol & η Fortran. Οι διαδικαστικές (procedural) μέθοδοι των συγκεκριμένων γλωσσών λειτουργούσαν με την προϋπόθεση πως όλα τα τμήματα των εφαρμογών εκτελούνται στον ίδιο υπολογιστή και οι εφαρμογές έχουν άμεση (τοπική) πρόσβαση στα απαραίτητα δεδομένα. Οι σχεδιαστές και οι προγραμματιστές εφαρμογών αντιλήφθηκαν γρήγορα πως η τμηματοποίηση και ο διαχωρισμός των υπολογιστικών συστημάτων και των αντίστοιχων Σελίδα 17 από 120

18 εφαρμογών ήταν απαραίτητες προϋποθέσεις για την καλύτερη αντιμετώπιση της ολοένα και αυξανόμενης πολυπλοκότητας του λογισμικού, αλλά και για την αποδοτικότερη διαχείριση των αλλαγών στις εφαρμογές. Για αυτό το λόγο προχώρησαν στην ανάπτυξη δομημένων προγραμμάτων (structured programs) και βιβλιοθηκών (shared libraries) ως μία πρώτη προσπάθεια διαχωρισμού των υπολογιστικών συστημάτων σε περισσότερα του ενός τμήματα. Τα διακριτά αυτά τμήματα βέβαια εξακολουθούσαν να έχουν πολλές αλληλεξαρτήσεις και η διαχείριση τυχόν αλλαγών στον κώδικα εξακολουθούσε να παρουσιάζει πολλές και σε μερικές περιπτώσεις ανυπέρβλητες δυσκολίες Συστήματα Πελάτη-Εξυπηρετητή Στη δεκαετία του 1980 τα συστήματα πελάτη-εξυπηρετητή (client-server) αποτέλεσαν ένα τεχνολογικό άλμα για την επίτευξη του στόχου διάσπασης και τμηματοποίησης των υπολογιστικών συστημάτων. Όπως απεικονίζεται και στην Εικόνα 2.4, το μοντέλο πελάτηεξυπηρετητή διαχώρισε τη λογική της εφαρμογής που επεξεργάζεται τα δεδομένα (application logic) από τα ίδια τα δεδομένα. Εικόνα 2.4 Το μοντέλο πελάτη-εξυπηρετητή Ο διαχωρισμός αυτός ήταν λογικός και φυσικός. Η εφαρμογή πελάτη ανακτούσε τα απαραίτητα δεδομένα από έναν εξυπηρετητή με τη βοήθεια δικτυακής σύνδεσης, γεγονός που προσέδωσε μεγαλύτερη ευελιξία, καθώς τα δεδομένα αποθηκεύονταν σε έναν απομακρυσμένο εξυπηρετητή βάσης δεδομένων. Επιπλέον, οι σχεσιακές βάσεις Σελίδα 18 από 120

19 δεδομένων «απάλλαξαν» την εφαρμογή πελάτη από την ανάγκη γνώσης του τρόπου φυσικής αποθήκευσης των δεδομένων. Παρόλα αυτά, τα προβλήματα δεν εξαφανίστηκαν πλήρως, καθώς στην εφαρμογή πελάτη εξακολουθούσε να συνυπάρχει η λογική του προγράμματος που επεξεργάζεται τα δεδομένα και ο τρόπος που γίνεται η παρουσίασή τους (presentation logic). Κατά συνέπεια, ήταν απαραίτητος ο διαχωρισμός της λογικής παρουσίασης της εφαρμογής από την αντίστοιχη επιχειρησιακή λογική της εφαρμογής, κάτι που επιχείρησε να πραγματοποιήσει η αρχιτεκτονική πολλαπλών επιπέδων (n-tier) Συστήματα Πολλαπλών Επιπέδων Η ανάπτυξη εφαρμογών πολλαπλών επιπέδων (N-tier), η οποία ξεκίνησε στις αρχές της δεκαετίας του 1990, μείωσε τις αλληλεξαρτήσεις μεταξύ του πελάτη και της επιχειρησιακής λογικής (business logic) της εφαρμογής. Όπως απεικονίζεται και στην Εικόνα 2.5, το συγκεκριμένο μοντέλο εφάρμοσε την ιδέα δημιουργία ενός επιπέδου επιχειρησιακής λογικής που ήταν υπεύθυνο για την πρόσβαση στα δεδομένα και την παροχή της απαραίτητης επιχειρησιακής λογικής στην εφαρμογή πελάτη. Αυτό το επιπλέον επίπεδο επεξεργασίας έδωσε επίσης τη δυνατότητα ταυτόχρονης πρόσβασης στην επιχειρησιακή λογική των συστημάτων σε περισσότερους του ενός πελάτες. Οι εφαρμογές πελάτη είχαν πλέον τη δυνατότητα επικοινωνίας με το επίπεδο επιχειρησιακής λογικής, χρησιμοποιώντας λιγότερο συνεκτικά πρωτόκολλα, όπως για παράδειγμα το DCOM. Η CORBA ήταν και παραμένει η τεχνολογία εκείνη που επέτρεψε την ανοιχτή και ευέλικτη επικοινωνία με το επίπεδο επιχειρησιακής λογικής του συστήματος. Το μειονέκτημα της CORBA όμως ήταν ότι δεν επέτρεπε την εύκολη επικοινωνία των εφαρμογών πελάτη με το επίπεδο της εφαρμογής που επεξεργάζεται τα δεδομένα, αφού δεν ήταν ιδιαίτερα φιλική ως τεχνολογία απέναντι στα firewalls. Φυσική απόρροια του συγκεκριμένου γεγονότος ήταν τελικά η αδυναμία της CORBA να αναδειχθεί ως το κυρίαρχο πρότυπο διαλειτουργικότητας για την ανάπτυξη συστημάτων πολλαπλών επιπέδων. Σελίδα 19 από 120

20 Εικόνα 2.5 Το μοντέλο πολλαπλών επιπέδων Διαδίκτυο & Web Services Ο ερχομός του Διαδικτύου έδωσε ώθηση στην ανάπτυξη συστημάτων πολλαπλών επιπέδων. Οι τεχνολογίες του Διαδικτύου δημιούργησαν τις κατάλληλες προϋποθέσεις για τη δημιουργία αυτόνομων υπηρεσιών (services), οι οποίες δε συναντούν προβλήματα αποκλεισμού από τα firewalls. Οι υπηρεσίες αποτελούν διακριτά τμήματα εφαρμογών που υποστηρίζουν μία συγκεκριμένη λειτουργία. Οι εφαρμογές πελάτη επικοινωνούν με τις υπηρεσίες αυτές χρησιμοποιώντας αντίστοιχες ανοιχτές τεχνολογίες Διαδικτύου. Τα συστήματα πλέον αποτελούν σύνθεση πολλών υπηρεσιών, ενώ οι υπηρεσίες αυτές δεν είναι απαραίτητο να γνωρίζουν τα συστήματα τα οποία τις περιλαμβάνουν. Τα τελευταία χρόνια το Διαδίκτυο εξελίχθηκε και ωρίμασε σε μεγάλο βαθμό. Αρχικά, ξεκίνησε ως ένας τρόπος δημοσίευσης κειμένων και άρθρων και είχε ουσιαστικά στατικό χαρακτήρα. Με την πάροδο του χρόνου προστέθηκαν και δυναμικά στοιχεία στον HTML κώδικα, μέσω χρήσης της τεχνολογίας CGI. Τελικά, ο ερχομός της dot-com εποχής στα Σελίδα 20 από 120

21 τέλη της δεκαετίας του 1990, επέφερε μία τεράστια έκρηξη στη δημιουργία εφαρμογών Διαδικτύου και στην ανάπτυξη των σύγχρονων εξυπηρετητών εφαρμογών (application servers) που βασίζονται σε τεχνολογίες, όπως οι J2EE και.net. Σελίδα 21 από 120

22 2.3 Service-Oriented Αρχιτεκτονική Όπως αναφέρθηκε σε προηγούμενη ενότητα, τα web services δημιουργούν ένα κατανεμημένο και διαλειτουργικό περιβάλλον χωρίς συνεκτική σύνδεση. Πολλές από τις έννοιες των web services προέρχονται από τη λεγόμενη υπηρεσιοκεντρική αρχιτεκτονική (service-oriented architecture - SOA). Η SOA ορίζει οντότητες όπως υπηρεσίες, καταχωρητές (registries) ή συμβόλαια (contracts) για να ελαχιστοποιήσει τους συνεκτικούς δεσμούς των συστημάτων και να μεγιστοποιήσει τις πιθανότητες επαναχρησιμοποίησης των εφαρμογών. Η SOA είναι μία εξελιγμένη αρχιτεκτονική λογισμικού που περιέχει νέα και μοναδικά χαρακτηριστικά σε σχέση με προηγούμενες προσεγγίσεις συστημάτων. Είναι πολύ σημαντική η κατανόηση των εννοιών και της προσέγγισης που διέπει τη SOA, για να έχουν οι σχεδιαστές αλλά και οι προγραμματιστές εφαρμογών την ικανότητα να αξιοποιήσουν τις δυνατότητες που παρέχει το περιβάλλον των web services. Εικόνα 2.6 Η service-oriented αρχιτεκτονική Το πιο σημαντικό χαρακτηριστικό της SOA είναι ο διαχωρισμός που επιτυγχάνεται μεταξύ της υλοποίησης των υπηρεσιών και των αντίστοιχων διεπαφών τους (interfaces). Με άλλα Σελίδα 22 από 120

23 λόγια, η SOA διαχωρίζει το «τι» από το «πως». Οι καταναλωτές (consumers) αντιλαμβάνονται μία υπηρεσία ως ένα καταληκτικό σημείο (endpoint) που υποστηρίζει μία συγκεκριμένη δομή ερωτήματος ή κλήσης. Οι καταναλωτές δεν ενδιαφέρονται για το πώς υλοποιούνται και εκτελούνται οι υπηρεσίες, παρά μόνο για τις λειτουργίες που προσφέρονται, και ακολουθούν μία κοινή σύμβαση στην αλληλεπίδραση μεταξύ των δύο μερών. Ο τρόπος με τον οποίο υλοποιείται μία υπηρεσία από τον αντίστοιχο παροχέα (provider) δεν είναι εμφανής και δεν ενδιαφέρει τον καταναλωτή. Η πλήρης SOA αρχιτεκτονική και οι πιθανές δίοδοι αλληλεπίδρασης που υποστηρίζει απεικονίζονται στην Εικόνα 2.6. Ο υποψήφιος καταναλωτής απευθύνεται σε έναν καταχωρητή για να ανακαλύψει παροχείς που ανταποκρίνονται στα κριτήρια που ο ίδιος έχει θέσει. Αν ο καταχωρητής περιέχει την επιθυμητή υπηρεσία, επιστρέφει στον καταναλωτή το «συμβόλαιο» -για να μπορεί να γίνει κατανοητός ο τρόπος κλήσης της υπηρεσίας- και την αντίστοιχη διεύθυνσή της. Στη συνέχεια, ο καταναλωτής καλεί την υπηρεσία μέσω δικτύου και λαμβάνει το αποτέλεσμα εκτέλεσης της επιθυμητής λειτουργίας. Το σύνολο αυτών των βημάτων αναπαρίσταται στο διάγραμμα που παρουσιάζει η Εικόνα 2.7. Εικόνα 2.7 Κλήση μία υπηρεσίας με χρήση της SOA Σελίδα 23 από 120

24 Η SOA υλοποιείται και από άλλες συναφείς τεχνολογίες, η δημοφιλία της πάντως τα τελευταία χρόνια οφείλεται σε πολύ μεγάλο βαθμό στην εξάπλωση των web services. Η βιομηχανία πληροφορικής χρησιμοποιεί τον όρο υπηρεσία εδώ και δύο περίπου δεκαετίες για να περιγράψει διάφορες πλατφόρμες. Μερικά από τα χαρακτηριστικά της SOA υποστηρίζονται με καλύτερο τρόπο σε μερικές τεχνολογίες από ότι σε κάποιες άλλες. Για παράδειγμα, οι τεχνολογίες CORBA & Jini [11] παρέχουν μικρότερες δυνατότητες διαλειτουργικότητας από ότι τα web services, ενώ η Jini υπερέχει σε άλλα χαρακτηριστικά, όπως η ανακάλυψη υπηρεσιών (αν και αυτό αμφισβητείται από πολλούς). Τα web services στις μέρες μας επαναπροσδιορίζουν την αντιμετώπιση που έχουν οι οργανισμοί και επιχειρήσεις απέναντι στην SOA. Παρόλο που η υλοποίηση και αξιοποίηση επαναχρησιμοποιήσιμων και μη συνεκτικών εφαρμογών αποτελούσε στόχο τους εδώ και πολλά χρόνια, τα web services δείχνουν να έχουν τη δυνατότητα και το κατάλληλο τεχνολογικό υπόβαθρο για να κάνουν πραγματικότητα αυτούς τους στόχους και τις επιδιώξεις. Σελίδα 24 από 120

25 2.4 Η Τεχνολογία των Web Services Η στοιβάδα που απεικονίζεται στην Εικόνα 2.8, αναλύει την τεχνολογία των web services σε ένα μοντέλο πολλών επιπέδων. Στο κατώτερο μέρος της, περιέχονται οι βασικές τεχνολογίες που επιτρέπουν τη μεταφορά δεδομένων μεταξύ των υπολογιστών και των δικτύων που τους συνδέουν. Κάθε επίπεδο αναπτύσσεται πάνω στα χαμηλότερα επίπεδα της στοιβάδας προσθέτοντας χαρακτηριστικά και δυνατότητες υψηλότερου επιπέδου. Τα υψηλοτέρα επίπεδα της στοιβάδας δεν σημαίνει απαραίτητα ότι εξαρτώνται από τα αντίστοιχα χαμηλότερα, απλά παρουσιάζονται με τον συγκεκριμένο τρόπο για να γίνει κατανοητή η ύπαρξη υψηλότερου επιπέδου επεξεργασίας δεδομένων. Εικόνα 2.8 Η τεχνολογική στοιβάδα των web services Πρωτόκολλα Επικοινωνίας Η βασική λειτουργία του κατώτερου επιπέδου είναι η μεταφορά δεδομένων από έναν υπολογιστή σε έναν άλλο. Τα web services χρησιμοποιούν πολλά πρωτόκολλα μεταφοράς δεδομένων από υπηρεσία σε υπηρεσία, με κυριότερα τα πρωτόκολλα HTTP, SMTP και FTP. Το πιο δημοφιλές είναι χωρίς αμφιβολία το HTTP που αποτελεί άλλωστε το πρωτόκολλο μεταφοράς δεδομένων και του Διαδικτύου. Το HTTP συνήθως δεν ελέγχεται από τα Σελίδα 25 από 120

26 firewalls και για αυτό το λόγο έχει επικρατήσει στα συστήματα διαλειτουργικότητας. Στο πρωτόκολλο HTTP, κάθε ανταλλαγή δεδομένων μεταξύ πελάτη και εξυπηρετητή (συνήθως αίτηση πελάτη και αντίστοιχη απάντηση εξυπηρετητή), είναι ανεξάρτητη (connectionless και stateless) και δεν είναι μέρος μίας συνολικότερης μορφής συγχρονισμένης επικοινωνίας Πρωτόκολλο SOAP Το επίπεδο ανταλλαγής μηνυμάτων των web services περιγράφει τη μορφή και τη σύνταξη των δεδομένων που μεταφέρονται δικτυακά από υπηρεσία σε υπηρεσία και βασίζεται στη χρήση της XML. Τα δεδομένα στην XML είναι ιεραρχημένα σε δενδροειδή μορφή. Η XML δε διαχωρίζει την περιγραφή των δεδομένων από τα ίδια τα δεδομένα, αλλά τα αρχεία της είναι αυτόνομα και περιέχουν όλη την απαραίτητη πληροφορία που χρειάζεται ένα σύστημα που τα χρησιμοποιεί (self-describing). Η XML περιλαμβάνει ειδικά δομημένες ετικέτες (tags) που χαρακτηρίζουν τα δεδομένα, δίνοντας τους συγκεκριμένο όνομα και προσδιορίζοντας τη θέση τους μέσα στο δένδρο του αρχείου. Το πρωτόκολλο SOAP (Simple Object Access Protocol) προσδιορίζει τον τρόπο με τον οποίο συντάσσονται και διαβάζονται τα μηνύματα ανταλλαγής δεδομένων μεταξύ πελάτη και εξυπηρετητή ενός web service. Τα μηνύματα αυτά αποτελούν ουσιαστικά XML έγγραφα που έχουν μία συγκεκριμένη μορφή, έτσι ώστε να γίνεται αντιληπτή και από τα δύο μέρη επικοινωνίας μίας υπηρεσίας. Ένα μήνυμα SOAP αποτελείται από τρία μέρη: τον φάκελο (envelope), την επικεφαλίδα (header) και το σώμα (body). Ο φάκελος είναι το στοιχείο που βρίσκεται στην κορυφή του XML μηνύματος για να υποδεικνύει ότι πρόκειται για SOAP μήνυμα και περιλαμβάνει οδηγίες που βοηθούν στην επεξεργασία του κυρίως μηνύματος. Η επικεφαλίδα περιλαμβάνει πληροφορίες και γενικές κατευθύνσεις για την υπηρεσία της εφαρμογής και χρησιμοποιείται συνήθως από τον εξυπηρετητή και όχι από την ίδια την υπηρεσία. Για παράδειγμα, αν μία εφαρμογή χρειάζεται πληροφορίες για την ταυτοποίηση χρηστών ή για τη διαχείριση των συναλλαγών, θα τα αναζητήσει στην επικεφαλίδα του μηνύματος. Ένα SOAP μήνυμα μπορεί να περάσει από πολλά ενδιάμεσα σημεία μεταξύ Σελίδα 26 από 120

27 του καταναλωτή και του παροχέα της σχετικής υπηρεσίας. Καθένα σημείο διαβάζει την επικεφαλίδα και χρησιμοποιεί τις πληροφορίες για τη δρομολόγηση (routing), καταγραφή (logging) και άλλες ανάλογες λειτουργίες του συστήματος. Το σώμα του μηνύματος περιλαμβάνει τα δεδομένα της εφαρμογής. Τα web services υποστηρίζουν πολλαπλά πρότυπα ανταλλαγής μηνυμάτων. Ένα SOAP μήνυμα μπορεί να σταλεί σε μορφή εγγράφου (document-oriented) ή σε RPC μορφή. Στην πρώτη περίπτωση, η ανταλλαγή μηνυμάτων μεταξύ πελάτη και εξυπηρετητή γίνεται με τη βοήθεια XML εγγράφων (XML documents). Στην ανταλλαγή μηνυμάτων σε RPC μορφή, τα δεδομένα μεταφέρονται ως παράμετροι (arguments) και χρησιμοποιούνται για την κλήση απομακρυσμένων συναρτήσεων των υπηρεσιών. Tο πρωτόκολλο SOAP υποστηρίζει τη μονόδρομη μετάδοση μηνυμάτων από τον αποστολέα στον παραλήπτη, αλλά συνήθως τα μηνύματα συνδυάζονται για να υλοποιήσουν ένα μοντέλο ερώτησης/απάντησης για τη μεταξύ τους αλληλεπίδραση και επικοινωνία Πρωτόκολλο WSDL Η περιγραφή ενός web service προσδιορίζει τρία σημεία σχετικά με την παρεχόμενη υπηρεσία: Τις λειτουργίες που υποστηρίζει το web service Τα μηνύματα που μπορεί να δεχθεί το web service Το πρωτόκολλο που πρέπει να χρησιμοποιήσει ο καταναλωτής για να προσπελάσει το web service Τα web services χρησιμοποιούν το πρωτόκολλο WSDL (Web Services Description Language) για να περιγράψουν τις υπηρεσίες που παρέχουν. Συγκεκριμένα, ένα WSDL έγγραφο περιέχει, μεταξύ άλλων, τις λειτουργίες που προσφέρει και τη μορφή των μηνυμάτων που μπορεί να επεξεργαστεί ένα web service, τα πρωτόκολλα που υποστηρίζει, τη διεύθυνση που είναι διαθέσιμο και τον τρόπο με τον οποίο μπορεί να προσπελαστεί και να αξιοποιηθεί από μία εφαρμογή πελάτη. Το πρωτόκολλο WSDL ορίζει μια υπηρεσία ως μια συλλογή από καταληκτικά σημεία Σελίδα 27 από 120

28 (endpoints) σε συγκεκριμένες διευθύνσεις δικτύου, τα οποία δέχονται μηνύματα δομημένα με βάση τις προδιαγραφές που ορίζονται στο έγγραφο WSDL. Το WSDL χρησιμοποιεί τον όρο θύρα (port) για να αναφερθεί στο καταληκτικό σημείο ενός μηνύματος και περιγράφει το web service ως μία συλλογή τέτοιων θυρών που παρέχουν αντίστοιχες υπηρεσίες. Ο καταναλωτής ενός web service έχει τη δυνατότητα να χρησιμοποιήσει την περιγραφή που περιέχεται σε ένα WSDL με δύο τρόπους: Κατά τη διάρκεια της υλοποίησης, ο κώδικας του καταναλωτή λαμβάνει υπόψη την WSDL περιγραφή για να προσπελάσει τις λειτουργίες που προσφέρει το web service (early binding) Κατά τη διάρκεια της εκτέλεσης, ο καταναλωτής διαβάζει δυναμικά την WSDL περιγραφή του web service για να αξιοποιήσει τις παρεχόμενες υπηρεσίες (late binding) Πρωτόκολλο UDDI Τα web services υποστηρίζουν την έννοια της δυναμικής ανακάλυψης υπηρεσιών. Ο καταναλωτής μίας υπηρεσίας μπορεί να χρησιμοποιήσει έναν καταχωρητή υπηρεσιών για να βρει τις υπηρεσίες που τον ενδιαφέρουν να χρησιμοποιήσει. Το πρωτόκολλο UDDI (Universal Description, Discovery and Integration) επιτρέπει σε μία εφαρμογή πελάτη να ανακαλύψει και να εντοπίσει την περιγραφή ενός web service. Οι UDDI καταχωρητές είναι από μόνοι τους web services που δημοσιοποιούν ένα σύνολο από καλώς ορισμένα SOAP μηνύματα. Ο παροχέας και ο καταναλωτής ενός web service χρησιμοποιούν τα πρωτόκολλα SOAP και HTTP για να δημοσιοποιήσουν και να ανακαλέσουν αντίστοιχα από τον καταχωρητή, κατάλληλες πληροφορίες σχετικές με την υπηρεσία. Συγκεκριμένα, το πρωτόκολλο UDDI υποστηρίζει δύο απόλυτα διακριτές λειτουργίες: Ο παροχέας μίας υπηρεσίας χρησιμοποιεί έναν καταχωρητή UDDI για να δημοσιοποιήσει πληροφορίες για το web service που υποστηρίζει Ο καταναλωτής μίας υπηρεσίας αποστέλλει μηνύματα SOAP μέσω HTTP σε έναν καταχωρητή UDDI για να λάβει λίστα από τα web services του καταχωρητή Σελίδα 28 από 120

29 που ανταποκρίνονται στα κριτήρια που έχει θέσει. Εικόνα 2.9 Η χρήση των πρωτοκόλλων των web services Η Εικόνα 2.9 ανακεφαλαιώνει τα όσα παρουσιάστηκαν στην παρούσα ενότητα, αναπαριστώντας τον τρόπο λειτουργίας των πρωτόκολλων που υποστηρίζουν τα web services και το πώς αυτά μπορούν να αξιοποιηθούν από τον παροχέα και τον καταναλωτή μίας υπηρεσίας για την επίτευξη της επικοινωνίας και αλληλεπίδρασής τους. Σελίδα 29 από 120

30 2.5 Πλεονεκτήματα των Web Services Κάθε νέα ιδέα στην πληροφορική που υιοθετείται από τις εταιρείες πληροφορικής πρέπει να έχει συγκεκριμένα και διακριτά οφέλη έναντι υφιστάμενων λύσεων για να επιβιώσει και να καθιερωθεί. Στις ενότητες που προηγήθηκαν, έγινε μία αναλυτική αναφορά στην εξέλιξη των web services και στην τεχνολογία στην οποία στηρίζονται. Μερικά από τα πλεονεκτήματα αναφέρθηκαν επιγραμματικά, ενώ άλλα υπονοήθηκαν. Οι παράγραφοι που ακολουθούν παρουσιάζουν διεξοδικά τα οφέλη που προσφέρει η χρήση των web services Επαναχρησιμοποίηση Η δυνατότητα δημιουργίας επαναχρησιμοποιήσιμων (reusable) legacy εφαρμογών, βάσεων δεδομένων ή αντικειμένων (objects) ειδικότερα είχε παραγνωριστεί αρκετά τα πρώτα χρόνια εξέλιξης των web services. Τελευταία όμως έχει γίνει ευρέως αντιληπτό ότι τα web services έχουν τη δυνατότητα να παίξουν σημαντικό ρόλο στη βελτίωση της επαναχρησιμοποίησης εφαρμογών λογισμικού στις διάφορες επιχειρήσεις και οργανισμούς. Τα web services μπορούν να περικλείσουν legacy εφαρμογές, βάσεις δεδομένων ή και αντικείμενα και να τα κάνουν διαθέσιμα ως επαναχρησιμοποιήσιμες υπηρεσίες. Στην αύξηση της πιθανότητας επιτυχούς επαναχρησιμοποίησης πόρων μέσω web services συντελούν πολλοί παράγοντες, με κυριότερους τη διαλειτουργικότητα (interoperability) και την αρθρωτή αρχιτεκτονική (modularity) που τα χαρακτηρίζει. Η διαλειτουργικότητα στα web services παρέχει ανεξαρτησία τόσο στην πλατφόρμα ανάπτυξης όσο και στο hardware. Οποιαδήποτε εφαρμογή συμβαδίζει µε την τεχνολογία των web services μπορεί πολύ εύκολα να αξιοποιήσει τις υποστηριζόμενες υπηρεσίες. Η διαλειτουργικότητα βοηθά την επαναχρησιμοποίηση εφαρμογών ή πόρων. Για παράδειγμα, αν δεν είναι εύκολη η προσπέλαση και η χρήση μίας εφαρμογής, είναι αρκετά πιθανό η συγκεκριμένη εφαρμογή να μην επαναχρησιμοποιηθεί. Τα web services βασίζονται σε ανοιχτά, διαλειτουργικά και διαδεδομένα πρότυπα που αυξάνουν τις πιθανότητες επαναχρησιμοποίησης, μέσω της δημιουργίας ενός εύρωστου συστήματος Σελίδα 30 από 120

31 προσφοράς υπηρεσιών. Στον προγραμματισμό σήμερα και ειδικά στη δημιουργία και υποστήριξη διάφορων λειτουργιών παρέχονται πλέον δύο επιλογές: Δίνεται η δυνατότητα ανάπτυξης της λειτουργικότητας ως μέρος μίας συγκεκριμένης εφαρμογής που τη χρειάζεται ή ως ξεχωριστή υπηρεσία για τη μετέπειτα ενσωμάτωσή της σε διάφορες εφαρμογές αρθρωτής αρχιτεκτονικής. Μία λειτουργία που αναπτύσσεται ως ανεξάρτητη οντότητα είναι σύνηθες να έχει περισσότερη χρησιμότητα, αλλά και διάρκεια ζωής Ανεξαρτησία Φιλοξενίας Ένα περιβάλλον παροχής υπηρεσιών επιτυγχάνει την ανεξαρτησία από την τοποθεσία στην οποία φιλοξενείται, γιατί αυτή απλά δηλώνεται σε έναν καταχωρητή. Έτσι, ένας καταναλωτής ανακαλύπτει και επικοινωνεί με ένα web service χωρίς να τον ενδιαφέρει το που αυτό βρίσκεται. Για αυτό το λόγο, ένας οργανισμός έχει την ευελιξία να μεταφέρει τις υποστηριζόμενες υπηρεσίες σε διάφορα μηχανήματα ή ακόμα και σε έναν εξωτερικό παροχέα. Επιπλέον, είναι δυνατό να μεταφερθεί κώδικας από μία πλατφόρμα σε μία άλλη. Αυτό είναι άλλωστε ένα από τα βασικότερα πλεονεκτήματα της SOA που απαιτεί απλά τη συμβατότητα του παροχέα ενός web service με το δημοσιευμένο WSDL έγγραφο, χωρίς να παίζει ρόλο ο τρόπος με τον οποίο υλοποιείται η υπηρεσία. Για αυτό άλλωστε, αν απαιτηθεί η μεταφορά μίας υπηρεσίας από μία J2EE σε μία.net πλατφόρμα, δε θα χρειαστεί καμία περαιτέρω αλλαγή στους καταναλωτές του web service Σύνθεση και Ενσωμάτωση Υπηρεσιών Σήμερα, με τη βοήθεια της SOA, οι προγραμματιστές χτίζουν νέες εφαρμογές χρησιμοποιώντας και όσες από τις υπάρχουσες και διαθέσιμες υπηρεσίες τους θεωρούν χρήσιμες για τις συγκεκριμένες εφαρμογές. Οι υπηρεσίες είναι ανεξάρτητες από τις εφαρμογές στις οποίες περιέχονται και κατά συνέπεια είναι δυνατόν να αποτελέσουν τμήματα πολλών διαφορετικών εφαρμογών. Για αυτό άλλωστε σήμερα, προωθείται η ανάπτυξη αρθρωτών και ανεξάρτητων τμημάτων Σελίδα 31 από 120

32 στο σχεδιασμό εφαρμογών, για να αυξηθεί η πιθανότητα περαιτέρω χρήσης των τμημάτων αυτών και σε άλλες μελλοντικές εφαρμογές. Ένα από τα πρακτικά προβλήματα που προκύπτουν στις περιπτώσεις αυτές, είναι ο εντοπισμός των υλοποιημένων λειτουργιών και του επαναχρησιμοποιήσιμου λογισμικού μίας επιχείρησης ή οργανισμού. Λύση στο πρόβλημα δίνουν οι καταχωρητές των web services που παρέχουν τη δυνατότητα αποθήκευσης των περιγραφών όλων των διαθέσιμων υπηρεσιών Επεκτασιμότητα και Διαθεσιμότητα Ένα σύστημα είναι επεκτάσιμο, αν το κόστος προσθήκης περισσότερης υπολογιστικής ή προγραμματιστικής ισχύος είναι μικρότερο από το όφελος που αποκομίζεται από την επιπρόσθετη ισχύ. Επειδή ο καταναλωτής ενός web service γνωρίζει μόνο την περιγραφή της υπηρεσίας και όχι την υλοποίησή της, οποιαδήποτε αλλαγή στην υλοποίηση γίνεται με μικρό κόστος στην πλευρά του παροχέα, χωρίς να απαιτούνται περαιτέρω τροποποιήσεις στον υπόλοιπο μηχανισμό του συστήματος. Συνέπεια του συγκεκριμένου γεγονότος, είναι η πλήρης υποστήριξη που παρέχουν τα web services στην επεκτασιμότητα των σύγχρονων πληροφοριακών συστημάτων. Επιπλέον, οι κλήσεις που δέχονται τα web services μπορούν να δρομολογηθούν για εκτέλεση σε πολλαπλά endpoints, λειτουργία που ενισχύει και τη διαθεσιμότητα των πληροφοριακών συστημάτων. Συγκεκριμένα, ένας κατανεμητής αιτημάτων του παροχέα, μπορεί να προωθεί τις κλήσεις σε πολλαπλές οντότητες (instances) παροχής των υποστηριζόμενων υπηρεσιών, ανάλογα με τον φόρτο του συστήματος τη δεδομένη χρονική στιγμή, χωρίς να είναι αναγκαία η γνώση των ιδιαίτερων χαρακτηριστικών του εκάστοτε καταναλωτή που χρησιμοποιεί την υπηρεσία Διατήρηση Χρήσης Legacy Εφαρμογών Τα web services συμβάλλουν στη διατήρηση και στην επένδυση στις legacy εφαρμογές, γιατί προσδιορίζουν μόνο τις μεθόδους επικοινωνίας και όχι συγκεκριμένους και περιοριστικούς τρόπους υλοποίησης. Όπως έχει προαναφερθεί, τα web services έχουν τη δυνατότητα να περικλείσουν legacy εφαρμογές και να διαθέσουν τις λειτουργίες τους ως Σελίδα 32 από 120

33 υπηρεσίες. Αυτή η μέθοδος ανάπτυξης των web services επιτρέπει σε οργανισμούς να τροποποιούν ή να αντικαθιστούν τις legacy εφαρμογές τους, χωρίς να είναι υποχρεωμένοι να αλλάζουν τον τρόπο με τον οποίο οι καταναλωτές επικοινωνούν με τα web services Ανεξαρτησία από τον Παροχέα Όσο η πλατφόρμα που χρησιμοποιείται από τον παροχέα για την ανάπτυξη υπηρεσιών υποστηρίζει τα πρότυπα των web services, τόσο οι καταναλωτές των υποστηριζόμενων υπηρεσιών δε χρειάζεται να ενδιαφέρονται για τον μηχανισμό υλοποίησής τους. Τα web services επιτρέπουν σε οργανισμούς και επιχειρήσεις να αποφασίζουν ελεύθερα για την πλατφόρμα που θα χρησιμοποιήσουν για την αξιοποίηση των υπηρεσιών, χωρίς δεσμεύσεις και περιορισμούς από τον εκάστοτε παροχέα. Με άλλα λόγια, τα web services αντιπροσωπεύουν μία ουσιαστική μετακίνηση του κέντρου βάρους και της στόχευσης των συστημάτων, από τον παροχέα υλικού και λογισμικού στον αντίστοιχο καταναλωτή των υπηρεσιών. Σελίδα 33 από 120

34 3. Μεθοδολογία Συγχρονισμού Δεδομένων Ο βασικός στόχος της παρούσας εργασίας είναι η παρουσίαση μεθόδου για τον συγχρονισμό των δεδομένων δυο ετερογενών εφαρμογών με χρήση των web services. Ο συγχρονισμός δεδομένων αποτελεί ένα πολύ διαδεδομένο πρόβλημα στα σύγχρονα πληροφοριακά συστήματα, λόγω του γεγονότος ότι αποτελούνται πλέον από πληθώρα ετερογενών μεταξύ τους και αρθρωτών τμημάτων. Οι παραδοσιακές μέθοδοι που ακολουθούνταν έως πρόσφατα, στηρίζονταν κυρίως στον απευθείας συγχρονισμό μεταξύ των βάσεων δεδομένων των εφαρμογών. Απαραίτητη προϋπόθεση για να καταστεί εφικτή η συνέπεια των δεδομένων ήταν η ομοιογένεια των συγκεκριμένων βάσεων. Με άλλα λόγια, το σχήμα των βάσεων έπρεπε να είναι το ίδιο, ενώ οι εφαρμογές έπρεπε να υποστηρίζονται και από το ίδιο σύστημα διαχείρισης βάσεων δεδομένων (RDBMS). Ουσιαστικά, επιτυγχανόταν η διατήρηση ενός δεύτερου όμοιου αντιγράφου των δεδομένων σε μία άλλη εφαρμογή για καταγραφή ή απλά για λόγους ασφάλειας δεδομένων. Οι απαιτήσεις όμως των σύγχρονων πληροφοριακών συστημάτων είναι πολύ μεγαλύτερες στον συγκεκριμένο τομέα, αφού πλέον τα συστήματα αποτελούνται από πλήθος ετερογενών τμημάτων και υπηρεσιών που υποστηρίζονται από ανομοιογενείς πλατφόρμες λογισμικού και βάσεις δεδομένων και είναι δυνατόν να εκτελούνται σε πληθώρα λειτουργικών συστημάτων. Οι κύριοι στόχοι της τεχνολογίας λογισμικού για την κάλυψη των σύγχρονων αυτών απαιτήσεων είναι μεταξύ άλλων: Ο διαμοιρασμός και η άμεση διάθεση των δεδομένων σε όλα τα τμήματα του πληροφοριακού συστήματος Ο περιοδικός ή άμεσος συγχρονισμός των δεδομένων χωρίς καμία παρέμβαση των χρηστών Η υποστήριξη πολλαπλών πλατφόρμων διαχείρισης βάσεων δεδομένων χωρίς απώλειες στην τελική απόδοση του συστήματος Σελίδα 34 από 120

35 Η ενοποίηση και αντιστοίχηση των δεδομένων του συστήματος Κυρίαρχο ρόλο στην επίτευξη των παραπάνω στόχων παίζει στις μέρες μας η τεχνολογία των web services, εξαιτίας της ευελιξίας και της πλήρους υποστήριξης που προσφέρει για την ανάπτυξη υπηρεσιών σε ετερογενή περιβάλλοντα. Κατά συνέπεια, έχουν αναπτυχθεί σήμερα διάφορες μεθοδολογίες που βασίζονται στα web services και έχουν ως στόχο τον συγχρονισμό δεδομένων [12], ενώ διατίθενται ακόμα και εργαλεία που ενσωματώνουν λειτουργίες συγχρονισμού δεδομένων ή ακόμα και αρχείων [13]. Ενδεικτικό της εκτεταμένης χρήσης των web services για την επίλυση τέτοιου είδους προβλημάτων, αποτελεί και η πλήρης υποστήριξη υπηρεσιών συγχρονισμού δεδομένων και αρχείων που προσφέρει και η πλατφόρμα.net [14]. Βασικό αντικείμενο της παρούσας εργασίας, αποτελεί η αξιοποίηση της τεχνολογίας των web services, μέσα από τη χρήση της γλώσσας Java και των πλατφόρμων που αυτή παρέχει, για την επιτυχή διασύνδεση και ολοκλήρωση των ετερογενών εφαρμογών ενός σύγχρονου πληροφοριακού συστήματος. Συγκεκριμένα, στις ενότητες που ακολουθούν, θα αναλυθεί διεξοδικά η μεθοδολογία που ακολουθήθηκε για τη διασύνδεση μίας back office εφαρμογής της γραμματείας ενός Πανεπιστημιακού Τμήματος με την αντίστοιχη front office Διαδικτυακή Πύλη του. Σελίδα 35 από 120

36 3.1 Το Πρόβλημα Συγχρονισμού Δεδομένων Ας υποτεθεί ότι η γραμματεία ενός Πανεπιστημιακού Τμήματος χρησιμοποιεί μία εφαρμογή διαχείρισης για την καταγραφή και ενημέρωση όλων των πληροφοριών που σχετίζονται με τους φοιτητές, τους καθηγητές και τα μαθήματα του Τμήματος. Η εφαρμογή έχει δημιουργηθεί με κάποιο εργαλείο γρήγορης ανάπτυξης λογισμικού και είναι της μορφής πελάτη-εξυπηρετητή (client-server). Τα δεδομένα βρίσκονται σε ένα σύστημα διαχείρισης βάσεων δεδομένων. Επίσης, παρέχεται η δυνατότητα ταυτόχρονης πρόσβασης στην εφαρμογή σε περισσότερους του ενός χρήστες. Οι πληροφορίες που διαχειρίζεται η γραμματεία, παρέχονται στους φοιτητές με τον παραδοσιακό τρόπο, δηλαδή μέσω της φυσικής παρουσίας του φοιτητή στη γραμματεία, τη συμπλήρωση αίτησης με ταυτόχρονη επίδειξη της φοιτητικής του ταυτότητας, για να είναι δυνατή στη συνέχεια η εκτύπωση και παραλαβή των ζητούμενων πληροφοριών (δήλωση μαθημάτων έτους, αναλυτική βαθμολογία κ.λπ.). Αντίστοιχα, η επικοινωνία των καθηγητών με τη γραμματεία γίνεται συνήθως τηλεφωνικά ή μέσω αποστολής , για την ανάθεση ενός μαθήματος σε κάποιον καθηγητή, την παράδοση της βαθμολογίας, την υποβολή εργασιών κ.λπ. Για τη βελτιστοποίηση του τρόπου ενημέρωσης καθηγητών και φοιτητών, την παράκαμψη της απαίτησης φυσικής παρουσίας στη Γραμματεία, την αυτοματοποίηση των διαδικασιών πληροφόρησης και την ταχύτερη ενημέρωση όλων των εμπλεκόμενων στο σενάριο του συστήματος, αποφασίστηκε να εγκατασταθεί μια Διαδικτυακή εφαρμογή η οποία θα δίνει τη δυνατότητα πρόσβασης στις πληροφορίες μαθημάτων μέσω του Διαδικτύου και με τη βοήθεια ενός απλού φυλλομετρητή ιστού (web browser). Η Διαδικτυακή Πύλη (Portal) που θα διαθέσει το Τμήμα προς τους φοιτητές και καθηγητές του, έχει σκοπό την παροχή πρόσβασης στο πληροφοριακό υλικό, στις εργασίες, καθώς και στη γενικότερη διεξαγωγή των μαθημάτων. Η Διαδικτυακή Πύλη ενός Τμήματος προσφέρει συνήθως πρόσβαση σε ένα πλήθος πληροφοριών, πάνω σε καθορισμένες θεματικές ενότητες. Η Πύλη είναι κάτι παραπάνω από ένα σύνολο απλών ιστοσελίδων, επειδή περιλαμβάνει τη δική της βάση δεδομένων, Σελίδα 36 από 120

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

38 3.2 Προτεινόμενη Λύση με Χρήση Web Services Η τεχνολογία των web services βρίσκει άμεση εφαρμογή σε τέτοιου είδους προβλήματα και προσφέρει ένα πλήρως ενοποιημένο περιβάλλον πληροφοριακών συστημάτων µε εύκολο, γρήγορο και αξιόπιστο τρόπο. Σημαντικό πλεονέκτημα επίσης, είναι το χαμηλό κόστος υλοποίησης του ενιαίου και επεκτάσιμου πλαισίου εφαρμογών. Συγκεκριμένα, τα web services δεν προϋποθέτουν την κατάργηση των υπαρχόντων συστημάτων, αλλά βοηθούν στην ενσωμάτωσή τους, διατηρώντας τις διαφορετικές πλατφόρμες λειτουργίας τους, καθώς και τις γλώσσες προγραμματισμού που χρησιμοποιήθηκαν για την ανάπτυξή τους. Με βάση το υποθετικό σενάριο που αναλύθηκε παραπάνω, θα επιδειχθεί στη συνέχεια ο τρόπος με τον οποίο μπορεί να εφαρμοστεί η τεχνολογία των web services, προκειμένου να λυθεί το πρόβλημα συγχρονισμού δεδομένων, διατηρώντας και αξιοποιώντας ταυτόχρονα την υποδομή και τα υπάρχοντα πληροφοριακά συστήματα. Εικόνα 3.1 Διασύνδεση εφαρμογών με χρήση web services Η λύση που υιοθετήθηκε και απεικονίζεται στην Εικόνα 3.1, περιλαμβάνει την ανάπτυξη και εγκατάσταση ενός web service σε κάποιον εξυπηρετητή του Πανεπιστημιακού Τμήματος, για να καταστεί δυνατή η διασύνδεση και η αποστολή XML μηνυμάτων με δεδομένα πραγματικού χρόνου ανάμεσα στη legacy εφαρμογή της γραμματείας και τη Σελίδα 38 από 120

39 Διαδικτυακή Πύλη. Συγκεκριμένα, ένα τμήμα των υποστηριζόμενων μεθόδων του web service αφορά στην ενημέρωση της Πύλης με βάση τις κινήσεις της γραμματείας, ενώ το υπόλοιπο τμήμα αφορά στις κινήσεις που πραγματοποιούνται από τους χρήστες της Πύλης (φοιτητές ή καθηγητές) και την αντίστοιχη ενημέρωση της legacy εφαρμογής. Στο σημείο αυτό πρέπει να τονιστεί ότι η επιλογή των δύο εφαρμογών του πρωτότυπου συστήματος της εργασίας, έγινε με γνώμονα την πλήρη μεταξύ τους ετερογένεια, για να καταστεί ακόμα πιο εμφανής η χρησιμότητα των web services. Για αυτό άλλωστε και όπως θα διαφανεί και στις επόμενες ενότητες, οι δύο εφαρμογές υποστηρίζονται από διαφορετικές βάσεις δεδομένων και η ανάπτυξη τους έγινε με εντελώς διαφορετικές γλώσσες προγραμματισμού. Η συγκεκριμένη εργασία έχει ως στόχο να επιτύχει τα παρακάτω: Τον διαμοιρασμό και συγχρονισμό δεδομένων που είναι δυνατόν να επιτευχθεί ανάμεσα στις δύο ετερογενείς εφαρμογές με τη χρήση των web services Την εξάλειψη του προβλήματος ασυνέπειας των δεδομένων των εφαρμογών Την εξασφάλιση εγκυρότητας των δεδομένων Την εξαγωγή συμπερασμάτων από την ολοκλήρωση (integration) του συστήματος και την καταγραφή των πλεονεκτημάτων που προσφέρουν τα web services Τον εντοπισμό τυχόν προβλημάτων που προκύπτουν κατά την ανάπτυξη και εκτέλεση των web services Τέλος, ξεχωριστό ενδιαφέρον παρουσιάζει ο εντοπισμός και η επίλυση ζητημάτων ασφάλειας και ελέγχου πρόσβασης, λαμβάνοντας υπόψη την εκτεταμένη χρήση του Διαδικτύου από το υλοποιημένο σύστημα Για την καλύτερη κατανόηση της χρησιμότητας των web services κρίνεται πρώτα σκόπιμη η ανάλυση, στις ενότητες που ακολουθούν, του τυπικού σεναρίου χρήσης του υλοποιημένου συστήματος. Σελίδα 39 από 120

40 3.3 Εφαρμογή Γραμματείας Για την παρουσίαση του τρόπου λειτουργίας των web services κρίθηκε αναγκαία η ανάπτυξη στα πλαίσια της εργασίας ενός πρότυπου legacy system που διαχειρίζεται τα στοιχεία των φοιτητών και καθηγητών, την επιλογή μαθημάτων, τη βαθμολογία και γενικότερα όλες τις πληροφορίες που απαιτούνται για την ηλεκτρονική διαχείριση της γραμματείας ενός Πανεπιστημιακού Τμήματος. Οι τυπικές λειτουργίες της εφαρμογής συνοψίζονται στα παρακάτω: Εισαγωγή / ενημέρωση / διαγραφή κατηγορίας μαθήματος Εισαγωγή / ενημέρωση / διαγραφή μαθήματος Εισαγωγή / ενημέρωση / διαγραφή καθηγητή Εισαγωγή / ενημέρωση / διαγραφή φοιτητή Εισαγωγή / διαγραφή του διδάσκοντα καθηγητή σε μάθημα Εισαγωγή / διαγραφή φοιτητή σε μάθημα Προβολή δηλωθέντων μαθημάτων ανά φοιτητή Προβολή βαθμολογίας εργασιών και εξετάσεων, εκτύπωση αναλυτικής Σελίδα 40 από 120

41 3.4 Διαδικτυακή Πύλη Από την πλευρά της Διαδικτυακής Πύλης, χρησιμοποιήθηκε η εκπαιδευτική πλατφόρμα Moodle [15] που αποτελεί μια πολύ διαδεδομένη Διαδικτυακή εφαρμογή ανοιχτού κώδικα και χρησιμοποιείται, μεταξύ άλλων, για την προβολή και διαχείριση των παρουσιάσεων, εργασιών, ανακοινώσεων, βαθμολογιών και γενικότερα όλων των πληροφοριών που αφορούν τους καθηγητές και φοιτητές του Τμήματος. Το Moodle αποτελεί λογισμικό ανοιχτού κώδικα και παρέχει μεγάλη ελευθερία διαμόρφωσης και παραμετροποίησης των λειτουργιών του. Στόχος της εγκατάστασης και ενεργοποίησης του Moodle, είναι η παροχή των ακόλουθων δυνατοτήτων στους καθηγητές: Ενημέρωση στοιχείων μαθήματος Ενημέρωση στοιχείων καθηγητή Καθορισμός μορφής μαθήματος (εργασίες, βάρη βαθμολογίας εργασιών και εξετάσεων κ.λπ.) Αποστολή εξεταστέας ύλης, παρουσιάσεων κ.λπ. Πρόσβαση στις υποβαλλόμενες από τους φοιτητές εργασίες Καταχώρηση βαθμολογίας εργασιών και γραπτών εξετάσεων Αντίστοιχα, παρέχονται οι παρακάτω λειτουργίες στους φοιτητές: Ενημέρωση στοιχείων φοιτητή Δήλωση μαθήματος, ακύρωση εγγραφής Πρόσβαση στο υλικό του δηλωθέντος μαθήματος (Παρουσιάσεις, εργασίες κλπ.) Υποβολή εργασίας Προβολή βαθμολογίας Σελίδα 41 από 120

42 3.5 Κανόνες Λειτουργίας Συστήματος Τα σενάρια χρήσης (use cases) είναι ένας βασικός τρόπος αναπαράστασης του τρόπου με τον οποίο ένα πληροφοριακό σύστημα αλληλεπιδρά με το πραγματικό περιβάλλον. Ένα σενάριο χρήσης περιγράφει τις δραστηριότητες που λαμβάνουν χώρα από τους χρήστες και γενικότερα απεικονίζει το πώς οι χρήστες εκτελούν μια διαδικασία, χωρίς να επικεντρώνει στους εσωτερικούς και χαμηλού επιπέδου μηχανισμούς λειτουργίας του συστήματος. Τα σενάρια χρήσης είναι λογικά μοντέλα που περιγράφουν το πεδίο των δραστηριοτήτων ενός περιβάλλοντος χωρίς να προτείνουν τον τρόπο με τον οποίο οι συγκεκριμένες δραστηριότητες θα πραγματοποιηθούν. Στη προκειμένη περίπτωση, οι χρήστες του πληροφοριακού συστήματος είναι φυσικά πρόσωπα (υπάλληλος γραμματείας, καθηγητές, φοιτητές) που χρησιμοποιούν τις δύο εφαρμογές του συστήματος. Από τη διερεύνηση του υπάρχοντος συστήματος προκύπτει ότι δημιουργούνται απαιτήσεις και λειτουργίες που είναι απαραίτητο να υλοποιηθούν με τη βοήθεια των web services προκειμένου να ενοποιηθούν οι δύο ετερογενείς εφαρμογές. Ταυτόχρονα, οι απαιτήσεις διαμορφώνονται με βάση παραδοχές που σκοπό έχουν να επιτύχουν την ενιαία λειτουργία του συστήματος και την ουσιαστική αλληλεπίδραση των εφαρμογών. Οι κανόνες λειτουργίας που ακολουθήθηκαν και βάσει των οποίων υλοποιήθηκε το web service, συνοψίζονται στα εξής: Η εισαγωγή κατηγορίας μαθημάτων και κάθε μαθήματος πραγματοποιείται από τον χρήστη της εφαρμογή γραμματείας, ανάλογα με το εκάστοτε πρόγραμμα σπουδών της τρέχουσας ακαδημαϊκής χρονιάς Οι νέοι φοιτητές και καθηγητές πραγματοποιούν την αρχική εγγραφή στη γραμματεία και ταυτόχρονα αποκτούν λογαριασμό πρόσβασης στην Πύλη, επιλέγουν όνομα χρήστη (username) και λαμβάνουν έναν συγκεκριμένο κωδικό πρόσβασης (default password) Με τη δήλωση των στοιχείων ενός μαθήματος και την επιλογή διδάσκοντα Σελίδα 42 από 120

43 καθηγητή για την τρέχουσα ακαδημαϊκή χρονιά από τη γραμματεία, το μάθημα γίνεται αυτόματα διαθέσιμο και στην Πύλη Η διαμόρφωση του μαθήματος (εργασίες, βάρη βαθμολογίας) πραγματοποιείται από τον καθηγητή μέσω της Πύλης Η δήλωση μαθημάτων από το φοιτητή σε κάθε εξάμηνο πραγματοποιείται μέσω της Πύλης Η διακίνηση υλικού μαθήματος, εκφώνηση και υποβολή εργασιών κλπ. πραγματοποιείται μέσω της Πύλης Η καταχώρηση της βαθμολογίας από τον καθηγητή πραγματοποιείται μέσω της Πύλης Η εφαρμογή γραμματείας ενημερώνεται αυτόματα για τους δηλωθέντες φοιτητές κάθε μαθήματος και τη βαθμολογία τους Οποτεδήποτε συμβαίνει ενημέρωση στοιχείων των κατηγοριών, μαθημάτων, φοιτητών ή καθηγητών σε κάποια από τις εφαρμογές, ενημερώνεται αυτόματα και η άλλη εφαρμογή Η εισαγωγή και διαγραφή κατηγοριών, μαθημάτων, φοιτητών και καθηγητών στην Πύλη μπορεί να γίνει μόνο από τον διαχειριστή της Πύλης, καθώς οι καθηγητές και φοιτητές δεν έχουν τέτοιο δικαίωμα πρόσβασης. Θεωρείται πάντως, ότι οι συγκεκριμένες ενέργειες του διαχειριστή δε λαμβάνονται υπόψη στο συγχρονισμό των εφαρμογών, παρά μόνο οι αντίστοιχες της γραμματείας Στο τέλος κάθε έτους ο διαχειριστής προβαίνει στη διαγραφή κάθε μαθήματος από τη Διαδικτυακή πύλη, για να μπορεί αυτή να συγχρονιστεί εκ νέου με τη γραμματεία κατά το επόμενο ακαδημαϊκό έτος Η υλοποίηση και οι παραμετροποιήσεις που απαιτήθηκαν για την επίτευξη της επικοινωνίας και συγχρονισμού του συνολικού συστήματος παρουσιάζονται στην ενότητες που ακολουθούν. Ένα ολοκληρωμένο σενάριο χρήσης του υλοποιημένου συστήματος περιλαμβάνεται στο Παράρτημα Ι: Σενάριο Χρήσης Συστήματος. Σελίδα 43 από 120

44 4. Πλατφόρμες Ανάπτυξης Τα web services είναι ανεξάρτητα πλατφόρμας (platform independent). Αυτό πρακτικά σημαίνει ότι ένα web service μπορεί να αναπτυχθεί με τη βοήθεια μεγάλου αριθμού γλωσσών προγραμματισμού και είναι ικανό να εκτελεστεί σε πολλές πλατφόρμες λειτουργικών συστημάτων. Η γλώσσα Java και η πλατφόρμα J2EE παρέχουν την απαραίτητη λειτουργικότητα για την υλοποίηση και την εκτέλεση web services [16]. Τα πλεονεκτήματα που προσφέρει η χρήση της γλώσσας Java και της πλατφόρμας J2EE, είναι η ανεξαρτησία από τον παροχέα, αλλά και η φορητότητα (portability) των εφαρμογών. Οι εφαρμογές που αναπτύσσονται μπορούν να εκτελεστούν σε πληθώρα εξυπηρετητών που είναι συμβατοί με την J2EE πλατφόρμα. Η χρήση της Java δηλαδή για την ανάπτυξη web services, παρέχει το επιπλέον πλεονέκτημα της ανεξαρτησία από τον παροχέα, πέρα από την έμφυτη ανεξαρτησία πλατφόρμας που προσφέρει η τεχνολογία των web services, όπως άλλωστε αναλύθηκε στην ενότητα 2.1. Η πλατφόρμα J2EE είναι ιδανική για την ανάπτυξη web services. Τα web services παρέχουν διαλειτουργικότητα και η Java και η J2EE προσφέρουν την απαραίτητη φορητότητα. Ο συνδυασμός των δύο αυτών τεχνολογιών προσφέρει μεγαλύτερη ευελιξία, η οποία βελτιώνει την ικανότητα οργανισμών και επιχειρήσεων να ανταποκρίνονται έγκαιρα και με το μικρότερο δυνατό κόστος στην αναβάθμιση ή στην αντικατάσταση των συστημάτων τους. Στην ιστορία της βιομηχανίας λογισμικού δεν υπήρχε άλλοτε τόσος ανταγωνισμός, αλλά και επένδυση για μία συγκεκριμένη τεχνολογία διαλειτουργικότητας, όπως συμβαίνει σήμερα γύρω από τα web services. Είναι βέβαια δύσκολο να προβλέψει κανείς το πόσο επιτυχείς θα είναι αυτές οι προσπάθειες και που τελικά θα καταλήξουν. Σε κάθε περίπτωση πάντως, είναι εμφανές πως τα web services πρόκειται να έχουν σημαντικότατη επίδραση στο άμεσο μέλλον της πληροφορικής και των υπολογιστών. Σελίδα 44 από 120

45 4.1 J2EE Στη σημερινή εποχή της ταχείας ανάπτυξης του ηλεκτρονικού εμπορίου ειδικά και της πληροφοριακής τεχνολογίας γενικότερα, οι εφαρμογές πρέπει να σχεδιάζονται και να αναπτύσσονται με περισσότερη ταχύτητα, οικονομία και να χρησιμοποιούν λιγότερους πόρους. Για να επιτύχει τους παραπάνω στόχους, η πλατφόρμα J2EE παρέχει μια προσέγγιση βασισμένη σε συστατικά στοιχεία (components) για το σχεδιασμό, την ανάπτυξη και τη διανομή επιχειρησιακών εφαρμογών. Η πλατφόρμα J2EE προσφέρει ένα κατανεμημένο μοντέλο εφαρμογών πολλών επιπέδων που περιέχει μεταξύ άλλων, επαναχρησιμοποιήσιμους πόρους, μοντέλο ασφάλειας και ελέγχου συναλλαγών και υποστήριξη των web services. Η λειτουργία του μοντέλου επιτυγχάνεται μέσω ανταλλαγής ενοποιημένων δεδομένων και με τη βοήθεια προτύπων και πρωτοκόλλων που βασίζονται στην XML Συστατικά Στοιχεία J2EE Εφαρμογών Η λογική μίας J2EE εφαρμογής χωρίζεται σε επίπεδα λειτουργίας, ενώ τα διάφορα τμήματα που συνθέτουν μια J2EE εφαρμογή μπορούν να εγκαθίστανται σε διαφορετικούς υπολογιστές, ανάλογα με το επίπεδο στο οποίο ανήκουν. Η Εικόνα 4.1 απεικονίζει δύο J2EE εφαρμογές πολλαπλών επιπέδων που περιλαμβάνουν: Επίπεδο πελάτη (Client tier) Επίπεδο ιστού (Web tier) Επιχειρησιακό επίπεδο (Business tier) Επίπεδο πληροφοριακού συστήματος (Enterprise Information System tier) Σελίδα 45 από 120

46 Εικόνα 4.1 J2EE εφαρμογές πολλαπλών επιπέδων Οι J2EE εφαρμογές αποτελούνται συνήθως από πολλά συστατικά στοιχεία. Κάθε στοιχείο είναι μια αυτόνομη μονάδα λογισμικού που έχει τη δυνατότητα να επικοινωνεί με τα υπόλοιπα στοιχεία της εφαρμογής. Η πλατφόρμα J2EE υποστηρίζει τα παρακάτω συστατικά στοιχεία: Εφαρμογές & applets, τα οποία εκτελούνται στον υπολογιστή του πελάτη Java Servlets & Java Server Pages (JSPs), τα οποία είναι στοιχεία ιστού και εκτελούνται στον εξυπηρετητή J2EE Enterprise Java Beans (EJBs), τα οποία είναι επιχειρησιακά στοιχεία και εκτελούνται στον εξυπηρετητή J2EE Πλεονεκτήματα της J2EE Η γρήγορη υιοθέτηση της τεχνολογίας J2EE οφείλεται στην πληθώρα πλεονεκτημάτων που παρέχει, τα κυριότερα εκ των οποίων είναι τα ακόλουθα: Αξιοπιστία: Το μοντέλο J2EE είναι αξιόπιστο διότι αν μια εφαρμογή σταματήσει Σελίδα 46 από 120

47 να λειτουργεί το συνολικό σύστημα δεν πρόκειται να καταρρεύσει Φορητότητα: Άλλο ένα πλεονέκτημα της J2EE είναι ότι οι προγραμματιστές υλοποιούν εφαρμογές ανεξάρτητες από το υλικό του υπολογιστή και την πλατφόρμα του λειτουργικού συστήματος Επαναχρησιμοποίηση:: Η πλατφόρμα J2EE έδωσε τη δυνατότητα μιας πιο εξελιγμένης διαδικασίας ανάπτυξης, συμπεριλαμβανομένης και της επαναχρησιμοποίησης των διάφορων συστατικών στοιχείων σε πολλαπλές εφαρμογές Κλιμάκωση: Η πλατφόρμα J2EE σχεδιάστηκε για να μεγιστοποιεί την κλιμάκωση (scalability) του περιβάλλοντος στο οποίο εκτελείται ένα στοιχείο Διασύνδεση με Βάση Δεδομένων: Η υποστήριξη σύνδεσης με βάσεις δεδομένων επιτρέπει στις J2EE εφαρμογές να αποθηκεύουν, αναζητούν και να ανακτούν, ανά πάσα στιγμή, τα επιθυμητά για αυτές δεδομένα Υποστήριξη web services: Όπως θα αναλυθεί στην ενότητα που ακολουθεί, η πλατφόρμα J2EE παρέχει εκτεταμένη υποστήριξη της τεχνολογίας των web services J2EE & Web Services Όπως έχει ήδη αναφερθεί, τα web services χρησιμοποιούν ανοιχτά πρότυπα και πρωτόκολλα μεταφοράς που βασίζονται στην XML για την ανταλλαγή δεδομένων με τους αντίστοιχους καταναλωτές. Η πλατφόρμα J2EE παρέχει τα κατάλληλα APIs και εργαλεία με τα οποία είναι εύκολο κανείς να σχεδιάσει, να αναπτύξει και να διανείμει web services. Επιπλέον, η πλατφόρμα J2EE δίνει τη δυνατότητα ανάπτυξης καταναλωτών διάφορων web services, τα οποία δεν είναι απαραίτητο να έχουν αναπτυχθεί και να φιλοξενούνται σε J2EE πλατφόρμες. Για να υλοποιηθούν τα web services και οι αντίστοιχοι καταναλωτές με τη βοήθεια των J2EE APIs, χρειάζεται απλά να δίνονται κατάλληλοι παράμετροι στις κλήσεις των υποστηριζόμενων μεθόδων και να γίνεται στη συνέχεια η αντίστοιχη επεξεργασία των Σελίδα 47 από 120

48 δεδομένων που επιστρέφονται. Δεν απαιτείται προγραμματισμός χαμηλού επιπέδου γιατί η πλατφόρμα J2EE εκτελεί όλες τις διεργασίες επεξεργασίας, μετάφρασης και αποστολής δεδομένων μέσω XML πρωτοκόλλων μεταφοράς. H Εικόνα 4.2 απεικονίζει τον τρόπο με τον οποίο συνδυάζονται οι τεχνολογίες της Java και των web services για να δημιουργήσουν ένα ενιαίο μοντέλο λειτουργίας. Εικόνα 4.2 Το τεχνολογικό μοντέλο των Java Web Services Τα πιο διαδεδομένα XML APIs που παρέχονται από την J2EE πλατφόρμα είναι τα ακόλουθα: JAXP (Java API for XML Processing): Παρέχει λειτουργίες για τη δημιουργία, προσπέλαση, τον έλεγχο εγκυρότητας και τη μετατροπή XML εγγράφων μέσα από τη Java. Υποστηρίζει τα διαδεδομένα XML πρότυπα, όπως DOM, SAX, XSLT, & XML Schemas JAX-RPC (Java API for XML-Based Remote Procedure Call): Υποστηρίζει την ανάπτυξη web services που δίνουν τη δυνατότητα κλήσεων διαδικασιών από απόσταση (RPC) μέσω SOAP. Το JAX-RPC μπορεί επίσης να Σελίδα 48 από 120

49 χρησιμοποιηθεί για την υλοποίηση αντίστοιχων καταναλωτών των συγκεκριμένων web services JAXM (Java API for XML Messaging): Παρέχει υποστήριξη μεταφοράς μηνυμάτων στις Java εφαρμογές, με τη βοήθεια αποστολής και λήψης XML εγγράφων (XML documents) SAAJ (SOAP with Attachments API for Java): Παρέχει υποστήριξη μεταφοράς μηνυμάτων που περιέχουν συνημμένα έγγραφα. Αρχικά ήταν μέρος του JAXM, αλλά πλέον αποτελεί ξεχωριστό API γιατί χρησιμοποιείται και από άλλα JAX APIs JAXR (Java API for XML Registries): Παρέχει υποστήριξη πρόσβασης και τροποποίησης εγγραφών σε UDDI καταχωρητές web services JAXB (Java Architecture for XML Binding): Επιτρέπει σε ένα XML Schema να μετασχηματιστεί σε ισοδύναμες Java κλάσεις. Οι κλάσεις που δημιουργούνται χειρίζονται στη συνέχεια τις λεπτομέρειες προσπέλασης των XML αρχείων, λαμβάνοντας υπόψη όλους τους περιορισμούς του συγκεκριμένου σχήματος Σελίδα 49 από 120

50 4.2 JAX-RPC Το JAX-RPC [17] χρησιμοποιείται για την υλοποίηση web services που υποστηρίζουν την κληση απομακρυσμένων διαδικασιών μέσω του SOAP. Το JAX-RPC επιτρέπει στους καταναλωτές να καλούν web services μέσα από ετερογενή περιβάλλοντα και πλατφόρμες. Κατά αντίστοιχο τρόπο, τα web services που είναι υλοποιημένα με τη βοήθεια του JAX- RPC είναι δυνατόν να κληθούν από ετερογενείς καταναλωτές. Το JAX-RPC βασίζεται στα πρωτόκολλα SOAP και WSDL για την επίτευξη της συγκεκριμένης διαλειτουργικότητας. Εικόνα 4.3 Το μοντέλο λειτουργίας του JAX-RPC Το JAX-RPC προσφέρει ένα απλό μοντέλο υλοποίησης των web services endpoints και καταναλωτών που βασίζεται στο αντίστοιχο μοντέλο της απομακρυσμένης κλήσης διαδικασιών (RPC). Στη πλειοψηφία των περιπτώσεων χρήσης του JAX-RPC, δεν είναι αναγκαία η ενασχόληση με την πολυπλοκότητα των διεργασιών που συμβαίνουν σε χαμηλό επίπεδο κατά τη διάρκεια κλήσης μίας απομακρυσμένης μεθόδου (π.χ. επικοινωνία μέσω HTTP, ανταλλαγή SOAP μηνυμάτων, επεξεργασία μηνυμάτων κ.λπ.) Αποκρύπτοντας τους συγκεκριμένους μηχανισμούς από τον προγραμματιστή, το JAX- RPC απλοποιεί σημαντικά την υλοποίηση των web services. Σελίδα 50 από 120

51 Το JAX-RPC επιτρέπει την υλοποίηση ενός web service χρησιμοποιώντας Java Servlets ή EJBs και εκτελείται σε αντίστοιχο web ή EJB container. Το web service περιγράφεται με τη βοήθεια ενός WSDL εγγράφου. Αυτό το έγγραφο μπορεί να δημοσιοποιηθεί σε έναν δημόσιο ή και ιδιωτικό καταχωρητή, αν και δεν είναι πάντα απαραίτητο. Ο καταναλωτής χρησιμοποιεί το συγκεκριμένο WSDL για να αξιοποιήσει τις λειτουργίες που προσφέρει το web service. Το συνολικό μοντέλο λειτουργίας του JAX-RPC απεικονίζεται σχηματικά στην Εικόνα 4.3. Σελίδα 51 από 120

52 4.3 Apache Axis Υπάρχουν σήμερα πολλοί J2EE εξυπηρετητές εφαρμογών που υλοποιούν το JAX-RPC API. Για τις ανάγκες ανάπτυξης της παρούσας εργασίας επελέγη το δημοφιλές Apache Axis [18] που αποτελεί τη μετεξέλιξη του Apache SOAP. Το Axis είναι μία συμμετοχική στην ανάπτυξη πλατφόρμα ανοιχτού κώδικα (open source) που προσφέρεται από το Apache Group ως ελεύθερο λογισμικό. Το Axis αποτελεί πλατφόρμα που υλοποιεί το JAX- RPC μοντέλο ανταλλαγής SOAP μηνυμάτων. Το Axis είναι η τρίτη γενιά του Apache SOAP, το οποίο ξεκίνησε από την IBM με την ονομασία SOAP4J. Το Axis παρέχει σήμερα μία σειρά από ελκυστικά χαρακτηριστικά: Ταχύτητα: Το Axis χρησιμοποιεί το SAX για την προσπέλαση των XML μηνυμάτων, επιτυγχάνοντας σημαντικά μεγάλη ταχύτητα στην επεξεργασία των δεδομένων Ευελιξία: Η αρχιτεκτονική του Axis επιτρέπει στον προγραμματιστή να αναπτύξει και να προσθέσει στην πλατφόρμα πληθώρα επεκτάσεων που μπορούν να προσφέρουν πρόσθετη λειτουργικότητα στην πλατφόρμα του Axis Σταθερότητα: Το Axis ορίζει μία συλλογή δημοσιευμένων διεπαφών της πλατφόρμας που αλλάζουν σε όχι τόσο τακτά διαστήματα σε σχέση με το υπόλοιπο Axis, διασφαλίζοντας έτσι την απρόσκοπτη χρήση του από τους προγραμματιστές των web services Υποστήριξη WSDL: Το Axis υποστηρίζει το πρωτόκολλο WSDL που επιτρέπει την εύκολη δημιουργία καταναλωτών για την προσπέλαση απομακρυσμένων υπηρεσιών Μεταφορά μηνυμάτων: Το Axis περικλείει έναν εξελιγμένο μηχανισμό ανταλλαγής SOAP μηνυμάτων μέσω διάφορων πρωτοκόλλων (HTTP, SMTP ή FTP), αποκρύπτοντας ταυτόχρονα τη συγκεκριμένη πολυπλοκότητα από το χρήστη της πλατφόρμας Σελίδα 52 από 120

53 Το Apache Axis εγκαθίσταται και λειτουργεί πάνω σε οποιοδήποτε J2EE εξυπηρετητή εφαρμογών ή έστω servlet container. Στην παρούσα εργασία χρησιμοποιήθηκε ο Apache Tomcat [19] για τρεις κυρίως λόγους: Αποτελεί το προτεινόμενο από το Apache Axis σύστημα Είναι με διαφορά ο πιο δημοφιλής servlet container σήμερα Βοηθά στην επίτευξη της μέγιστης δυνατής συμβατότητας, καθώς και τα δύο συστήματα προέρχονται από το Apache Group Σελίδα 53 από 120

54 4.4 Εκπαιδευτική Πλατφόρμα Moodle Η λέξη Moodle ήταν στην αρχή το ακρωνύμιο του Modular Object-Oriented Dynamic Learning Environment που σημαίνει Αρθρωτό Αντικειμενοστραφές Δυναμικό Περιβάλλον Μάθησης και είναι πολύ χρήσιμο εργαλείο για τους προγραμματιστές και τους θεωρητικούς της εκπαίδευσης. Στην πράξη το Moodle αποτελεί ένα σύστημα διαχείρισης μαθημάτων (course management system - CMS), ένα λογισμικό πακέτο δηλαδή που σχεδιάστηκε για να βοηθάει τους εκπαιδευτές να δημιουργούν με εύκολο τρόπο, ποιοτικά online μαθήματα. Τέτοια συστήματα e-learning αποκαλούνται μερικές φορές Συστήματα Διαχείρισης Μάθησης (Learning Management Systems - LMS) ή Εικονικά Περιβάλλοντα Μάθησης (Virtual Learning Environments - VLE). Εικόνα 4.4 Η εκπαιδευτική πλατφόρμα Moodle Το Moodle είναι μία πλατφόρμα υπό συνεχή ανάπτυξη, σχεδιασμένη για να υποστηρίζει το εκπαιδευτικό πλαίσιο της ευρύτερης κοινότητας λογισμικού ανοιχτού κώδικα. Το Moodle μάλιστα παρέχεται και το ίδιο ως λογισμικό ανοιχτού κώδικα. Αυτό πρακτικά σημαίνει ότι Σελίδα 54 από 120

55 μπορεί να χρησιμοποιηθεί ελεύθερα αλλά και να διαφοροποιηθεί, αρκεί να χρησιμοποιείται η ίδια αρχική άδεια πνευματικών δικαιωμάτων του Moodle για όλα τα παραγόμενα αποτελέσματα. Το Moodle αποτελεί Διαδικτυακή εφαρμογή και μπορεί να εγκατασταθεί σε οποιονδήποτε υπολογιστή έχει εγκατεστημένο έναν web server (πχ Apache, IIS) και υποστηρίζει τη γλώσσα PHP [20] που είναι η γλώσσα υλοποίησης της πλατφόρμας. Το Moodle χρησιμοποιεί ένα σύστημα διαχείρισης βάσεων δεδομένων (πχ MySQL), μπορεί να λειτουργήσει σε διαφορετικά λειτουργικά συστήματα, καθώς και σε διάφορες εκδόσεις του Linux. Μερικά γενικά χαρακτηριστικά του Moodle που ενδιαφέρουν πρωτίστως έναν εκπαιδευτικό είναι τα εξής: Προωθεί την παιδαγωγική μέθοδο social constructionist pedagogy που περιλαμβάνει συνεργασία, μάθηση βασιζόμενη σε δραστηριότητες, κριτική επιστροφή κ.λπ. Είναι κατάλληλο για τάξεις 100% online, αλλά και για συμπλήρωση της πρόσωπο με πρόσωπο μάθησης Καταγράφει τους χρήστες που έχουν δικαίωμα πρόσβασης σε κάθε μάθημα, διαχωρίζει ρόλους καθηγητών και φοιτητών και δίνει κατάλληλα δικαιώματα σε κάθε ρόλο Επιτρέπει την ενσωμάτωση περιγραφών, προγράμματος διδασκαλίας και υλικού κάθε μαθήματος, υποστηρίζει την αναγγελία εργασιών από τους καθηγητές και την αντίστοιχη υποβολή τους από τους φοιτητές, καθώς και την ανάρτηση ανακοινώσεων, βαθμολογιών κ.λπ. Τα μαθήματα μπορούν να κατηγοριοποιηθούν και να ευρεθούν, το Moodle μάλιστα μπορεί να υποστηρίξει πληθώρα ταυτόχρονων μαθημάτων Είναι μία μικρού βάρους, αποτελεσματική, απλής τεχνολογίας πλατφόρμα που εκτελείται σε έναν φυλλομετρητή ιστού Σελίδα 55 από 120

56 Οι περισσότερες περιοχές εισαγωγής κειμένου (πηγές, μηνύματα σε forum, εισαγωγές σε ημερολόγια κ.λπ.) μπορούν να τύχουν επεξεργασίας με τη βοήθεια ενός ικανού, ενσωματωμένου επεξεργαστή κειμένου HTML Αντίστοιχα, μερικά επιπρόσθετα χαρακτηριστικά του Moodle που ενδιαφέρουν το διαχειριστή του συστήματος είναι τα ακόλουθα: Εκτελείται, χωρίς να απαιτείται καμία μετατροπή, σε περιβάλλοντα Unix, Linux, Windows, Mac OS X, Netware και κάθε άλλο σύστημα που υποστηρίζει PHP (περιλαμβάνονται σχεδόν όλοι οι πάροχοι φιλοξενίας ιστοσελίδων) Είναι σχεδιασμένο με αρθρωτή αρχιτεκτονική επιτρέποντας σε μεγάλο βαθμό την ευελιξία της προσθήκης, αλλά και αφαίρεσης λειτουργικότητας σε διάφορα επίπεδα Αναβαθμίζεται πολύ εύκολα από μια έκδοση στην επόμενη, περιέχει μάλιστα ένα εσωτερικό σύστημα με το οποίο μπορεί να αναβαθμίζει τις βάσεις δεδομένων του και να τις επιδιορθώνει όποτε είναι απαραίτητο Περιλαμβάνει περιεκτική τεκμηρίωση βάσης δεδομένων που υποστηρίζει πολλά από τα διαδεδομένα RDBMS Έχει δοθεί έμφαση στην ασφάλεια, καθώς οι φόρμες ελέγχονται, οι πληροφορίες επικυρώνονται, τα cookies είναι κωδικοποιημένα κ.λπ. Σελίδα 56 από 120

57 4.5 Πλατφόρμα Ανάπτυξης PowerBuilder Για την υλοποίηση της πρότυπης εφαρμογής της γραμματείας υπήρχαν πολλές επιλογές, τόσο ως προς τη βάση δεδομένων, όσο και ως προς τη διεπαφή του χρήστη. Τελικά, για τη δημιουργία της διεπαφής επιλέχθηκε το λογισμικό PowerBuilder 10 [21] της Sybase που ανήκει στην κατηγορία των εργαλείων άμεσης ανάπτυξης εφαρμογών (Rapid Application Development Tools). Ο λόγος που προτιμήθηκε το εν λόγω λογισμικό είναι κυρίως η ευκολία που παρέχει στην ανάπτυξη αυτόνομων (stand alone) εφαρμογών σε μικρό χρονικό διάστημα, ενώ παράλληλα υποστηρίζει την κλήση web services μέσα από τον κώδικα με αρκετά εύκολο τρόπο. Εικόνα 4.5 Η πλατφόρμα ανάπτυξης PowerBuilder Σελίδα 57 από 120

58 Ο PowerBuilder (Εικόνα 4.5) είναι ένα σύστημα ανάπτυξης εφαρμογών που περιλαμβάνει εργαλεία για τη σχεδίαση της διεπαφής χρήστη (user interface), τη δημιουργία αναφορών και εκτυπωτικών, καθώς και την πρόσβαση στο περιεχόμενο βάσεων δεδομένων. Τα εργαλεία παρέχονται σε ένα ενοποιημένο περιβάλλον ανάπτυξης το οποίο αποτελεί και τη διεπαφή ανάμεσα στον προγραμματιστή και τις δυνατότητες του συστήματος. Το βασικότερο χαρακτηριστικό του είναι το αντικείμενο DataWindow, το οποίο χρησιμοποιείται για δημιουργία, προβολή και επεξεργασία των δεδομένων της βάσης. Το αντικείμενο αυτό παρέχει στον προγραμματιστή έναν μεγάλο αριθμό εργαλείων για την οριοθέτηση και τον έλεγχο της διεπαφής του τελικού προϊόντος. Ουσιαστικά, το DataWindow, δίδει την ευχέρεια στον προγραμματιστή να εργαστεί σε διαφορετικές βάσεις δεδομένων χωρίς να χρειάζεται να αλλάξει τον κώδικά του. Μέσω αυτού, προσφέρεται ένας γραφικός τρόπος δημιουργίας ερωτημάτων στη βάση δεδομένων (Εικόνα 4.6). Εικόνα 4.6 Το DataWindow του PowerBuilder Ο PowerBuilder επίσης περιλαμβάνει μία γλώσσα προγραμματισμού, την PowerScript, η οποία χρησιμοποιείται για τον καθορισμό της συμπεριφοράς μίας εφαρμογής με βάση τις Σελίδα 58 από 120

59 κινήσεις του χρήστη (π.χ. δεξί κλικ, κλείσιμο ενός παραθύρου κ.λπ.). Η γλώσσα PowerScript υποστηρίζει όλες τις ιδιότητες του αντικειμενοστραφούς προγραμματισμού, όπως είναι ο πολυμορφισμός και η κληρονομικότητα, χωρίς βέβαια να είναι υποχρεωτική η χρήση τους. Ένα επίσης σημαντικό χαρακτηριστικό του PowerBuilder, που σχετίζεται άμεσα με το περιεχόμενο της παρούσας εργασίας, είναι η δυνατότητα κλήσης web services με ιδιαίτερα απλό και εύχρηστο τρόπο. Τα πρότυπα υπηρεσιών διαδικτύου που υποστηρίζονται είναι τα ακόλουθα: SOAP WSDL HTTP ή HTTPS Με βάση τα συγκεκριμένα πρότυπα, η παραγόμενη εφαρμογή μπορεί να δρα ως καταναλωτής ενός web service που είναι προσπελάσιμο μέσω του Διαδικτύου. Επομένως, μια συλλογή συναρτήσεων ή μεθόδων που έχουν δημοσιευτεί κάπου απομακρυσμένα, μπορούν να κληθούν με τη χρήση των SOAP και WSDL και να ενσωματωθούν στην εφαρμογή, η οποία στη συνέχεια, έχει τη δυνατότητα να επεξεργαστεί τα επιστρεφόμενα δεδομένα. Σελίδα 59 από 120

60 5. Υλοποίηση Συστήματος Η υλοποίηση του συστήματος, όπως διαφάνηκε και από τις ενότητες που προηγήθηκαν, έχει ως βασικό στόχο την ανάδειξη των πλεονεκτημάτων των web services για την ενοποίηση και ενσωμάτωση ετερογενών πληροφοριακών συστημάτων. Στο παράδειγμα της τρέχουσας εργασίας η αξιοποίηση της τεχνολογίας των web services επιφέρει απτά αποτελέσματα στο τρόπο λειτουργίας της γραμματείας ενός Πανεπιστημιακού Τμήματος, μειώνει δραστικά τις χρονοβόρες ανάγκες φυσικής επικοινωνίας της με τους καθηγητές και φοιτητές του Τμήματος και βελτιστοποιεί ουσιαστικά την εκπαιδευτική διαδικασία. Για να καταστεί δυνατή η πλήρης υλοποίηση του συστήματος στα πλαίσια της εργασίας και με βάση τις απαιτήσεις του ολοκληρωμένου σεναρίου χρήσης της ενότητας 3.5, απαιτήθηκαν μία σειρά από βήματα υλοποίησης τα οποία συνοψίζονται στα εξής: Χρήση του περιβάλλοντος PowerBuilder για την ανάπτυξη της legacy εφαρμογής που επιτρέπει την ηλεκτρονική διαχείριση της γραμματείας ενός Πανεπιστημιακού Τμήματος. Η εφαρμογή υποστηρίζεται από κατάλληλη βάση αποθήκευσης δεδομένων Εγκατάσταση και παραμετροποίηση της Διαδικτυακής εκπαιδευτικής πλατφόρμας Moodle για την παροχή της εξ αποστάσεως πρόσβασης στους καθηγητές και φοιτητές του Τμήματος Ανάλυση των απαιτήσεων συγχρονισμού και αποτύπωση όλων των δυνατών σεναρίων ανταλλαγής δεδομένων για την παράλληλη και ομαλή λειτουργία των δύο εφαρμογών. Υλοποίηση του web service σε γλώσσα Java και ενσωμάτωση όλης της λειτουργικότητας συγχρονισμού του συστήματος. Εκτέλεση (deployment) του web service στην πλατφόρμα του Apache Axis Αξιοποίηση των δυνατοτήτων που παρέχει η πλατφόρμα ανάπτυξης PowerBuilder για την ενσωμάτωση στη legacy εφαρμογή λειτουργιών καταναλωτή του web service Σελίδα 60 από 120

61 Επιλογή και παραμετροποίηση κατάλληλης βιβλιοθήκης που παρέχει λειτουργίες διασύνδεσης της γλώσσας PHP, που είναι η γλώσσα υλοποίησης του Moodle, με το υλοποιημένο web service. Τροποποίηση συγκεκριμένων σημείων κώδικα της πλατφόρμας Moodle, έτσι ώστε να συμπεριλάβει τη βιβλιοθήκη για να καταστεί δυνατή η επικοινωνία με το web service και από την πλευρά της Διαδικτυακής Πύλης του Πανεπιστημίου Στις ενότητες που ακολουθούν παρουσιάζονται αναλυτικά όλα τα επιμέρους βήματα υλοποίησης που απαιτήθηκαν έως την πλήρη ολοκλήρωση του συστήματος. Επιπρόσθετα, ο αναλυτικός οδηγός εγκατάστασης και θέσης σε λειτουργία του συστήματος παρατίθεται στο Παράρτημα ΙΙ: Οδηγός Εγκατάστασης Συστήματος. Σελίδα 61 από 120

62 5.1 Web Service Συγχρονισμού Δεδομένων Για να καταστεί δυνατή η βέλτιστη υλοποίηση του web service, η οποία θα επέφερε και το επιθυμητό αποτέλεσμα του συγχρονισμού και της ταυτόχρονης και ομαλής λειτουργίας των δύο εφαρμογών, ήταν απαραίτητη η εξασφάλιση κάποιων βασικών προϋποθέσεων που έπρεπε να ληφθούν υπόψη στο σχεδιασμό του web service, όπως: Η καταγραφή των ενεργειών κάθε εφαρμογής, οι οποίες προκαλούν μεταβολές στα δεδομένα και πρέπει να γνωστοποιηθούν στην έταιρη εφαρμογή του συστήματος Η καταγραφή των δεδομένων που τροποποιούνται κατά την πραγματοποίηση των συγκεκριμένων ενεργειών σε κάθε εφαρμογή, για την αντίστοιχη ενημέρωση των αντίστοιχων δεδομένων της άλλης εφαρμογής, έτσι ώστε να είναι εφικτός ο συνεχής και άμεσος συγχρονισμός του συνόλου των στοιχείων του συστήματος Στη συνέχεια, κατέστη δυνατή η υλοποίηση του web service με βάση τους περιορισμούς και τις απαιτήσεις που εξήχθησαν από την αναλυτική καταγραφή της συμπεριφοράς του συστήματος Σημεία Συγχρονισμού Εφαρμογών Η καταγραφή των ενεργειών που επηρεάζουν την παράλληλη και συγχρονισμένη λειτουργία του συστήματος, κινήθηκε στη βάση του σεναρίου χρήσης, όπως αυτό καθορίστηκε με λεπτομέρεια στην ενότητα 3.5. Αρχικά, από την ανάλυση της legacy εφαρμογής διαπιστώθηκε ότι οι ακόλουθες ενέργειες χρήζουν γνωστοποίησης στη Διαδικτυακή Πύλη: Εισαγωγή / ενημέρωση / διαγραφή κατηγορίας μαθήματος Εισαγωγή / ενημέρωση / διαγραφή μαθήματος Εισαγωγή / ενημέρωση / διαγραφή καθηγητή Εισαγωγή / ενημέρωση / διαγραφή φοιτητή Σελίδα 62 από 120

63 Εισαγωγή / διαγραφή του διδάσκοντα καθηγητή σε μάθημα Αντίστοιχα, συγκεκριμένες ενέργειες στη Διαδικτυακή Πύλη επηρεάζουν και πρέπει να γνωστοποιούνται στην εφαρμογή της γραμματείας: Ενημέρωση στοιχείων καθηγητή Ενημέρωση στοιχείων φοιτητή Ενημέρωση στοιχείων μαθήματος από τον καθηγητή του Δήλωση ενός μαθήματος από τον φοιτητή, ακύρωση της εγγραφής Καθορισμός μορφής μαθήματος (εργασίες, βάρη βαθμολογίας εργασιών και εξετάσεων κ.λπ.) από τον καθηγητή Υποβολή εργασίας από τον φοιτητή Καταχώρηση βαθμολογίας εργασιών και γραπτών εξετάσεων από τον καθηγητή ενός μαθήματος Αντιστοίχηση Δεδομένων Εφαρμογών Μία από τις πιο βασικές παραμέτρους για την επίτευξη της ενοποιημένης λειτουργίας του συστήματος, αποτελούσε η ενδελεχής εξέταση της συμπεριφοράς των δύο εφαρμογών και η πλήρης χαρτογράφηση των τροποποιήσεων που συντελούνται στα δεδομένα των εφαρμογών, κατά την εκτέλεση των ενεργειών που παρουσιάστηκαν στην προηγούμενη ενότητα. Το σύνολο των μεταβολών αυτών κωδικοποιήθηκε σε ένα XML αρχείο ρυθμίσεων με όνομα mapping.xml, το οποίο περιέχει πληροφορίες για τον συγχρονισμό των δύο εφαρμογών και περιγράφει τους ακολουθούμενους επιχειρησιακούς κανόνες. Το web service χρησιμοποιεί το συγκεκριμένο αρχείο για να αντλεί πληροφορίες σχετικά με τους πίνακες των βάσεων δεδομένων και τα αντίστοιχα πεδία που πρέπει να συγχρονιστούν κατά την εκτέλεση μίας ενέργειας. Το αρχείο χωρίζεται σε τρία διακριτά τμήματα που καθορίζονται από αντίστοιχες ετικέτες (tags) της γλώσσας XML: Σελίδα 63 από 120

64 databases, που περιέχουν τις ετικέτες database με στοιχεία για τις βάσεις δεδομένων των δύο εφαρμογών tables, που περιέχουν τις ετικέτες table με στοιχεία για τους πίνακες των βάσεων που συμμετέχουν στη διαδικασία του συγχρονισμού mappings, που περιέχουν τις ετικέτες mapping με στοιχεία για τις αντιστοιχήσεις των πεδίων των δύο βάσεων δεδομένων Η κάθε ετικέτα database, όπως φαίνεται άλλωστε και από το σχετικό απόσπασμα του XML αρχείου που παρουσιάζεται παρακάτω, περιέχει όλες τις πληροφορίες που είναι απαραίτητες από το web service για να προσπελάσει τις βάσεις δεδομένων που υποστηρίζουν τις δύο εφαρμογές. Συγκεκριμένα, περιέχεται το όνομα της βάσης (attribute dbname), ο JDBC driver που χρησιμοποιείται για την επικοινωνία μεταξύ του κώδικα του Java web service και της βάσης (driver), η διεύθυνση στην οποία είναι εγκατεστημένη και λειτουργεί η βάση (url), το όνομα (username) και ο κωδικός πρόσβασης (password). <database dbname="university" driver="com.microsoft.jdbc.sqlserver.sqlserverdriver" url="jdbc:microsoft:sqlserver://localhost:1433;databasename=university" username="sa" password="" /> <database dbname="moodle" driver="com.mysql.jdbc.driver" url="jdbc:mysql://localhost/moodle" username="root" password="root" /> Η κάθε ετικέτα table, περιέχει το όνομα του πίνακα (tablename) και τη βάση δεδομένων στην οποία ανήκει (dbname). Επιπλέον, με τη βοήθεια της ετικέτας primarykey αναπαρίστανται και τα πρωτεύοντα κλειδιά του πίνακα. Όπως φαίνεται και στο τμήμα του XML αρχείου που ακολουθεί, για την αποθήκευση των κλειδιών χρησιμοποιήθηκε μία ξεχωριστή XML ετικέτα και όχι ένα XML attribute -όπως συνέβη στην περίπτωση των tablename & dbname-, για να καλύψει και τις περιπτώσεις ύπαρξης περισσότερων του ενός κλειδιών σε κάποιους από τους πίνακες των βάσεων. <table tablename="uni_course" dbname="university"> <primarykey>course_id</primarykey> </table> <table tablename="mdl_course" dbname="moodle"> <primarykey>id</primarykey> </table> Σελίδα 64 από 120

65 Κατά αναλογία, η κάθε ετικέτα mapping περικλείει το σύνολο των πληροφοριών που απαιτούνται για το συγχρονισμό των δεδομένων, μετά από την πραγματοποίηση κάποιας εκ των καταγραφόμενων ενεργειών της ενότητας Το παράδειγμα XML κώδικα που ακολουθεί, καλύπτει τις ενέργειες: «Εισαγωγή / ενημέρωση / διαγραφή μαθήματος», στην εφαρμογή γραμματείας «Ενημέρωση στοιχείων μαθήματος από τον καθηγητή του», στη Διαδικτυακή Πύλη Συγκεκριμένα, το attribute mappingname της ετικέτας mapping περιλαμβάνει το όνομα της ενέργειας, ενώ τα δύο επόμενα attributes περιέχουν τους πίνακες που απαιτείται να συγχρονιστούν, διαχωρίζοντας μάλιστα τον πίνακα από τον οποίο θα προέλθουν τα δεδομένα (srctable), από αυτόν για τον οποίο προορίζονται (desttable). Κάθε ετικέτα mapping περικλείει επίσης μία σειρά από ετικέτες με όνομα field που ουσιαστικά περιγράφουν τις ακριβείς αντιστοιχήσεις πεδίων των συγκεκριμένων πινάκων (attributes srcfield & destfield), με σαφή αναφορά στον τύπο δεδομένων κάθε αντιστοίχησης (attribute type). <mapping mappingname="mapunicourse" srctable="uni_course" desttable="mdl_course"> <field srcfield=" course _id" destfield="id" type="int" /> <field srcfield="category_id" destfield="category" type="int" /> <field srcfield="fullname" destfield="fullname" type="string" /> <field srcfield="shortname" destfield="shortname" type="string" /> <field srcfield="summary" destfield="summary" type="string" /> <field srcfield="metacourse" destfield="metacourse" type="int" /> </mapping> <mapping mappingname="mapmdlcourse" srctable="mdl_course" desttable="uni_course"> <field srcfield="id" destfield="course_id" type="int" /> <field srcfield="category" destfield="category_id" type="int" /> <field srcfield="fullname" destfield="fullname" type="string" /> <field srcfield="shortname" destfield="shortname" type="string" /> <field srcfield="summary" destfield="summary" type="string" /> <field srcfield="metacourse" destfield="metacourse" type="int" /> </mapping> Η λύση της χρήσης του αρχείου ρυθμίσεων XML που υιοθετήθηκε και παρουσιάζεται, παρέχει πολλά και ουσιαστικά πλεονεκτήματα, καθώς μεταξύ άλλων: Σελίδα 65 από 120

66 Μεταφέρει το σύνολο των αντιστοιχήσεων δεδομένων των δύο εφαρμογών έξω από τον κώδικα του web service, το οποίο απλά χρησιμοποιεί τα κατάλληλα Java APIs για την προσπέλαση και φόρτωση του XML αρχείου Οποτεδήποτε χρειαστεί μία αλλαγή στα στοιχεία των βάσεων δεδομένων των εφαρμογών, στις υφιστάμενες αντιστοιχήσεις δεδομένων ή μία προσθήκη νέας ενέργειας, αρκεί η αποθήκευση των στοιχείων στο συγκεκριμένο αρχείο και δεν απαιτείται καμία αλλαγή στον κώδικα του web service Από τη στιγμή που δεν διαφοροποιείται το web service, δεν είναι αναγκαία, στις παραπάνω περιπτώσεις τροποποιήσεων, η μεταγλώττισή του (compilation) και η εκ νέου εκτέλεσή του (deployment) στην πλατφόρμα Apache Axis Υλοποίηση Web Service Η υλοποίηση του web service και η θέση σε πλήρη λειτουργία του συγχρονισμένου συστήματος αποτέλεσε το πιο ουσιαστικό βήμα της όλης διαδικασίας. Ο κώδικας περίκλεισε όλη την επιχειρησιακή λογική των ενοτήτων και με όσο το δυνατόν πιο αποδοτικό και βέλτιστο τρόπο. Το web service συγχρονισμού δεδομένων του συστήματος αναπτύχθηκε με τη βοήθεια της γλώσσας Java και αποτελείται κυρίως από τα εξής αρχεία: MySaxHandler.java, το οποίο περιέχει όλο τον απαραίτητο κώδικα για την προσπέλαση του XML αρχείου παραμέτρων Synchronise.java, το οποίο περιέχει τον κύριο κώδικα συγχρονισμού των δεδομένων του συστήματος Η κλάση MySaxHandler χρησιμοποιείται για την προσπέλαση του αρχείου mapping.xml. Συγκεκριμένα, αξιοποιεί τον Sax parser που περιέχεται στο JAXP API της πλατφόρμας J2EE. Ο Sax parser επιλέχθηκε ως η βέλτιστη λύση, γιατί είναι απαραίτητη η σειριακή προσπέλαση του συγκεκριμένου XML αρχείου και η φόρτωση του συνόλου των παραμέτρων που περιέχει. Είναι γνωστό άλλωστε, ότι σε ανάλογες περιστάσεις, ο Sax parser προσφέρει ταχύτερη προσπέλαση από έναν DOM parser. Σελίδα 66 από 120

67 Για την αποθήκευση του συνόλου των παραμέτρων από την κλάση MySaxHandler, χρησιμοποιήθηκαν, για όλες τις XML ετικέτες, αντικείμενα της Java τύπου Vector ή Ηαshtable. Ο βασικός λόγος επιλογής των αντικειμένων Ηαshtable, ήταν η ανάγκη ορθής αποθήκευσης των ετικετών εκείνων για τις οποίες δεν είναι εκ των προτέρων γνωστό το ακριβές τους πλήθος, όπως για παράδειγμα των primarykey (υπάρχει η πιθανότητα ύπαρξης πολλαπλών κλειδιών σε έναν πίνακα) ή field (δεν είναι σταθερός ο αριθμός των πεδίων που συγχρονίζονται σε κάθε ενέργεια της ενότητας 5.1.1). Η κλάση Synchronise περιέχει τον κύριο επιχειρησιακό κώδικα του web service και είναι ουσιαστικά η κλάση που δημοσιοποιείται από την πλατφόρμα Apache Axis, έτσι ώστε να γίνει διαθέσιμη η πλήρης λειτουργικότητά του. Χρησιμοποιεί καταρχήν την κλάση MySaxHandler για να φορτώσει το σύνολο των παραμέτρων του αρχείου mapping.xml. Εκτελεί επίσης όλους τους απαραίτητους ελέγχους, για να εξασφαλιστεί ότι είναι δυνατή η σύνδεση με τις βάσεις δεδομένων. Στην αντίθετη περίπτωση, επιστρέφεται μήνυμα λάθους στους καταναλωτές του web service και ο συγχρονισμός ακυρώνεται. Η κλάση Synchronise προσφέρει τη μέθοδο syncdbs() προς τους καταναλωτές του web service, που στην προκειμένη περίπτωση είναι η εφαρμογή γραμματείας και η Διαδικτυακή Πύλη, για την εξασφάλιση του συγχρονισμού των δεδομένων του συστήματος. Η μέθοδος syncdbs() ορίζεται ως εξής: public boolean syncdbs(string mappingname, String action, int primarykeyvalue) Η syncdbs() περιέχει τρία ορίσματα τα οποία είναι αρκετά για την πραγματοποίηση μίας ενέργειας και την ολοκλήρωση του συγχρονισμού των δεδομένων: mappingname, που αποτελεί το όνομα της ενέργειας συγχρονισμού action, που καθορίζει την αλλαγή που πρόκειται να επιτελεστεί στη βάση δεδομένων της εφαρμογής που θα δεχθεί τα νέα δεδομένα (εισαγωγή, ενημέρωση ή διαγραφή εγγραφής - insert, update ή delete) primarykeyvalue, που προσδιορίζει την τιμή του πρωτεύοντος κλειδιού του πίνακα από τον οποίο θα προέλθουν τα δεδομένα συγχρονισμού Σελίδα 67 από 120

68 Ας εξεταστεί το υποθετικό σενάριο κατά το οποίο ένα μάθημα έχει δημιουργηθεί από τη γραμματεία, έχει οριστεί υπεύθυνος καθηγητής και το μάθημα έχει γίνει διαθέσιμο αυτόματα και στο Moodle. Έστω ότι ο καθηγητής εισέρχεται στο Moodle και ανανεώνει την περιγραφή του μαθήματος. Τότε καλείται αυτόματα από το Moodle -το οποίο όπως έχει ήδη ειπωθεί έχει τροποποιηθεί για να αποτελεί καταναλωτή του web service- η ακόλουθη εντολή: syncdbs( mapmdlcourse, update, 20) Η κλήση διεκπεραιώνεται από το Apache Axis, το οποίο φιλοξενεί άλλωστε το web service. Συγκεκριμένα, εκτελείται η syncdbs(), η οποία διαβάζει και φορτώνει, με τη βοήθεια της κλάσης MySaxHandler, το αρχείο mapping.xml. Από τα αποσπάσματα του XML αρχείου που είχαν περιληφθεί στην ενότητα και ειδικά από την ετικέτα mapping, διαφαίνεται πως στην ενέργεια mapmdlcourse, ο mdl_course αποτελεί τον πίνακα προέλευσης και ο uni_course τον πίνακα προορισμού των δεδομένων. Από τις ετικέτες table των δύο αυτών πινάκων, είναι επίσης διαθέσιμη η πληροφορία πως τα πρωτεύοντα κλειδιά των πινάκων είναι τα πεδία id και course_id αντίστοιχα. Χρησιμοποιώντας τα δύο εναπομείναντα ορίσματα, η syncdbs() έχει διαθέσιμη όλη την πληροφορία που απαιτείται για να προχωρήσει στο συγχρονισμό των δεδομένων. Με δεδομένο ότι έχει ζητηθεί η ανανέωση μίας εγγραφής (τιμή update του ορίσματος action), γίνεται ένα ερώτημα στον πίνακα mdl_course και ανακτώνται μερικά από τα πεδία της εγγραφής με τιμή id ίση με 20. Συγκεκριμένα, ζητείται η τιμή όσων πεδίων περιλαμβάνονται στις ετικέτες field της ενέργειας mapmdlcourse. Οι επιστρεφόμενες τιμές χρησιμοποιούνται για την ανανέωση της αντίστοιχης εγγραφής του πίνακα uni_course με τιμή course_id ίση με 20. Με την ολοκλήρωση της συγκεκριμένης διαδικασίας δηλαδή, οι αλλαγές στην περιγραφή του μαθήματος γίνονται άμεσα διαθέσιμες και στη legacy εφαρμογή της γραμματείας. Η syncdbs() μεριμνά για όλες τις πιθανές περιπτώσεις αποτυχίας του συγχρονισμού δεδομένων. Σε κάθε τέτοια περίπτωση, ο συγχρονισμός ακυρώνεται και τα νέα δεδομένα δεν αποθηκεύονται τελικά σε καμία από τις δύο εφαρμογές. Με αυτόν τον τρόπο Σελίδα 68 από 120

69 επιτυγχάνεται η διατήρηση της συνέπειας του συστήματος και αποφεύγεται η ύπαρξη δεδομένων που διαφέρουν στις δύο εφαρμογές. Ενδεικτικές περιπτώσεις αποτυχιών, κατά την εκτέλεση της syncdbs(), που ακυρώνουν τον συγχρονισμό του συστήματος είναι οι ακόλουθοι: Αποτυχία σύνδεσης με κάποια από τις δύο βάσεις για ανάκτηση ή αποστολή δεδομένων Ύπαρξη λανθασμένου ονόματος ενέργειας συγχρονισμού (όρισμα mappingname) ή ονόματος αλλαγής της βάσης (όρισμα action) Αδυναμία εύρεσης εγγραφής με τη συγκεκριμένη τιμή κυρίως κλειδιού (όρισμα primarykeyvalue) στη βάση της εφαρμογής από την οποία θα προέλθουν τα δεδομένα Όπως έχει προαναφερθεί, η Synchronise είναι ουσιαστικά η κλάση η οποία δημοσιοποιείται από την πλατφόρμα Apache Axis. Για να είναι δυνατή η δήλωση των κλάσεων και των αντίστοιχων μεθόδων που ενσωματώνει και δημοσιοποιεί ένα web service, το Apache Axis χρησιμοποιεί δομημένα έγγραφα τύπου WSDD (Web Service Deployment Descriptor). Στο παράδειγμα της παρούσας εργασίας, το έγγραφο WSDD έχει την ακόλουθη μορφή. <deployment xmlns=" xmlns:java=" <service name="syncservice" provider="java:rpc"> <parameter name="classname" value="thesis.webservice.synchronise"/> <parameter name="allowedmethods" value="*"/> </service> </deployment> Στο συγκεκριμένο αρχείο δηλώνεται το όνομα του web service (SyncService), το οποίο στη συνέχεια ενσωματώνεται στο WSDL έγγραφο που παράγεται αυτόματα από το Apache Axis, η πλήρης διαδρομή της υπό δημοσίευσης κλάσης (thesis.webservice.synchronise) και οι μέθοδοι της κλάσης που διατίθενται μέσω του web service (*). Αναλυτικές οδηγίες για τη διαδικασία που ακολουθείται για τη δημοσιοποίηση της Σελίδα 69 από 120

70 λειτουργικότητας και την εκτέλεση του web service στην πλατφόρμα του Apache Axis, περιέχονται στο Παράρτημα ΙΙ: Οδηγός Εγκατάστασης Συστήματος. Τέλος, μετά τη δημοσιοποίηση του web service συγχρονισμού δεδομένων, το ακόλουθο WSDL έγγραφο γίνεται διαθέσιμο στη διεύθυνση εγκατάστασης του Apache Axis, για να περιγράψει με δομημένο τρόπο τη διαθέσιμη λειτουργικότητα (όνομα service, διαθέσιμες μέθοδοι, ορίσματα κάθε μεθόδου, διεύθυνση παροχέα κ.λπ.). <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions targetnamespace=" xmlns:apachesoap=" xmlns:impl=" xmlns:intf=" xmlns:soapenc=" xmlns:wsdl=" xmlns:wsdlsoap=" xmlns:xsd=" <!-- WSDL created by Apache Axis version: 1.3 Built on Oct 05, 2005 (05:23:37 EDT) --> <wsdl:message name="syncdbsresponse"> <wsdl:part name="syncdbsreturn" type="xsd:boolean" /> </wsdl:message> <wsdl:message name="syncdbsrequest"> <wsdl:part name="in0" type="xsd:string" /> <wsdl:part name="in1" type="xsd:string" /> <wsdl:part name="in2" type="xsd:int" /> </wsdl:message> <wsdl:porttype name="synchronise"> <wsdl:operation name="syncdbs" parameterorder="in0 in1 in2"> <wsdl:input message="impl:syncdbsrequest" name="syncdbsrequest" /> <wsdl:output message="impl:syncdbsresponse" name="syncdbsresponse" /> </wsdl:operation> </wsdl:porttype> <wsdl:binding name="syncservicesoapbinding" type="impl:synchronise"> <wsdlsoap:binding style="rpc" transport=" /> <wsdl:operation name="syncdbs"> <wsdlsoap:operation soapaction="" /> <wsdl:input name="syncdbsrequest"> <wsdlsoap:body encodingstyle=" namespace=" use="encoded" /> Σελίδα 70 από 120

71 </wsdl:input> <wsdl:output name="syncdbsresponse"> <wsdlsoap:body encodingstyle= namespace=" use="encoded" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="synchroniseservice"> <wsdl:port binding="impl:syncservicesoapbinding" name="syncservice"> <wsdlsoap:address location=" /> </wsdl:port> </wsdl:service> </wsdl:definitions> Σελίδα 71 από 120

72 5.2 Εφαρμογή Γραμματείας Πανεπιστημίου Η legacy εφαρμογή που αναπτύχθηκε με χρήση του PowerBuilder, αποτελεί μια πρότυπη εφαρμογή γραμματειακής υποστήριξης. Κατά τον σχεδιασμό της καθορίστηκαν αρχικά οι λειτουργίες τις οποίες θα έπρεπε να υποστηρίζει, ανεξάρτητα από την ύπαρξη της εφαρμογής του Moodle. Στη συνέχεια ορίστηκε το μοντέλο δεδομένων (το σχήμα της βάσης δεδομένων), το οποίο και υλοποιήθηκε με χρήση του Microsoft SQL Server 8.0 [22]. Ακολούθως, σχεδιάστηκε η διεπαφή χρήστη, οι διάφορες φόρμες εισαγωγής δεδομένων, καθώς και ορισμένες ενδεικτικές αναφορές. Μετά την υλοποίηση του offline μέρους της εφαρμογής, αναπτύχθηκε το κομμάτι επικοινωνίας της με το web service συγχρονισμού δεδομένων, με βάση τις απαιτήσεις της παρούσας εργασίας Καθορισμός Λειτουργιών Εφαρμογής Οι βασικές απαιτήσεις μίας εφαρμογής γραμματειακής υποστήριξης προϋποθέτουν ορισμένες βασικές οντότητες και λειτουργίες, οι οποίες συνοψίζονται στα ακόλουθα: Διαχείριση στοιχείων φοιτητών: Όνομα, επίθετο, , στοιχεία επικοινωνίας, όνομα Σχολής / Τμήματος, έτος εγγραφής Διαχείριση στοιχείων καθηγητών: Όνομα, επίθετο, , στοιχεία επικοινωνίας, όνομα Σχολής / Τμήματος, έτος εγγραφής Διαχείριση στοιχείων κατηγορίας μαθημάτων Διαχείριση στοιχείων μαθημάτων: Όνομα μαθήματος, συντομογραφία, εξάμηνο, περιγραφή Διαχείριση αντιστοίχησης φοιτητών σε μαθήματα: Έτος, εξάμηνο παρακολούθησης, βαθμολογία μαθήματος Διαχείριση αντιστοίχησης καθηγητών σε μαθήματα: Έτος, εξάμηνο διδασκαλίας μαθήματος Διαχείριση προαπαιτουμένων μαθημάτων (μαθήματα αλυσίδα) Σελίδα 72 από 120

73 Εκτός από τις παραπάνω βασικές απαιτήσεις, προστέθηκαν ορισμένες ακόμα, εξαιτίας της ανάγκης επικοινωνίας και συγχρονισμού με την εφαρμογή του Moodle. Συγκεκριμένα, η εφαρμογή του Moodle υποστηρίζει την ανάθεση εργασιών από τους καθηγητές και τη μετέπειτα υποβολή τους από τους φοιτητές. Με σκοπό τον πλήρη συγχρονισμό με την εφαρμογή του Moodle και την προβολή των πληροφοριών αυτών και από τη legacy εφαρμογή της γραμματείας, κρίθηκε σκόπιμη η προσθήκη των επιπλέον λειτουργιών: Προβολή εργασιών που αναρτώνται από τους καθηγητές: Τίτλος εργασίας, μάθημα, περιγραφή Προβολή εργασιών που υποβάλλονται από τους φοιτητές: Βαθμολόγηση από τον καθηγητή Σχεδιασμός & Υλοποίηση Βάσης Δεδομένων Για την υποστήριξη των λειτουργιών που προαναφέρθηκαν, δημιουργήθηκε ένα κατάλληλο σχήμα βάσης δεδομένων. Για λόγους διευκόλυνσης, το σχήμα προσαρμόστηκε στο ήδη υπάρχον σχήμα της βάσης του Moodle, έτσι ώστε να είναι απλούστερη η αντιστοίχηση των δεδομένων και η επίδειξη των πλεονεκτημάτων από τη χρήση των web services. Οι οντότητες (πίνακες) της βάσης δεδομένων, είναι οι ακόλουθοι: Μάθημα: uni_course Κατηγορία Μαθήματος: uni_course_category Προαπαιτούμενα Μαθήματα: uni_course_meta Χρήστες: uni_user Μαθήματα / Καθηγητές: uni_teacher_course Μαθήματα / Φοιτητές: uni_student_course Εργασίες: uni_assignment Υποβολή Εργασιών: uni_assignment_submit Το σύνολο των οντοτήτων και των συσχετίσεων διαφαίνεται στην Εικόνα 5.1. Σελίδα 73 από 120

74 Εικόνα 5.1 Σχήμα Βάσης Δεδομένων εφαρμογής γραμματείας Ανάπτυξη Διεπαφής Χρήστη Σε αντιστοιχία με το παραπάνω μοντέλο δεδομένων, οι φόρμες διαχείρισης των στοιχείων της εφαρμογής (Εικόνα 5.2 & Εικόνα 5.3) ορίζονται αντίστοιχα ως εξής: Χρήστες Μαθήματα Μαθήματα / Φοιτητές Σελίδα 74 από 120

75 Μαθήματα / Καθηγητές Προαπαιτούμενα μαθήματα Κατηγορίες μαθημάτων (Ορίζεται ως βοηθητικό στοιχείο επειδή είναι ένας look up πίνακας) Εικόνα 5.2 Φόρμες διαχείρισης δεδομένων εφαρμογής Εικόνα 5.3 Φόρμες διαχείρισης βοηθητικών στοιχείων εφαρμογής Οι λειτουργίες της ενημέρωσης, προβολής, εισαγωγής και διαγραφής δεδομένων σε ένα πίνακα, υποστηρίζονται μέσα από κατάλληλες φόρμες διαχείρισης, μία για κάθε πίνακα της βάσης δεδομένων. Για την υποστήριξη αυτών των λειτουργιών, υλοποιήθηκε στην εφαρμογή μία σειρά από κουμπιά, κοινά για όλες τις φόρμες διαχείρισης (Εικόνα 5.4). Εικόνα 5.4 Διαθέσιμες επιλογές διαχείρισης δεδομένων Για παράδειγμα η διαχείριση των χρηστών γίνεται από τη φόρμα που απεικονίζεται στην Εικόνα 5.5. Σελίδα 75 από 120

76 Εικόνα 5.5 Φόρμα διαχείρισης χρηστών Η στήλη που βρίσκεται αριστερά της φόρμας, βοηθά την πλοήγηση στις λειτουργίες της εφαρμογής και συγκεκριμένα στην εύρεση δεδομένων άλλου πίνακα τα οποία σχετίζονται με τον τρέχοντα χρήστη. Για παράδειγμα, αν τροποποιείται μία εγγραφή του χρήστη Α και επιλεγεί το κουμπί «Μαθήματα», τότε αυτομάτως η εφαρμογή μεταφέρεται στη φόρμα «Μαθήματα» έχοντας ανακτήσει όμως μόνο τις εγγραφές που αφορούν τον συγκεκριμένο χρήστη Δημιουργία Εκτυπωτικών Αναφορών Πέρα από την υλοποίηση των διεπαφών επεξεργασίας του συνόλου των δεδομένων, η πρότυπη εφαρμογή της γραμματείας περιλαμβάνει και δυο ενδεικτικές εκτυπωτικές αναφορές. Οι αναφορές αυτές είναι διαθέσιμες μέσω του μενού «Εκτυπώσεις» όπως δείχνει η Εικόνα 5.6. Σελίδα 76 από 120

77 Εικόνα 5.6 Εκτυπωτικές αναφορές Για παράδειγμα, η πρώτη αναφορά περιλαμβάνει τη δήλωση των μαθημάτων ενός φοιτητή και την αντίστοιχη βαθμολογία τους. Μετά την επιλογή του φοιτητή στο παράθυρο που εμφανίζεται (Εικόνα 5.7), εξάγεται η αναφορά που παρουσιάζεται στην Εικόνα 5.8. Εικόνα 5.7 Επιλογή φοιτητή Εικόνα 5.8 Αναφορά δηλωθέντων μαθημάτων φοιτητή Συγχρονισμός Δεδομένων μέσω Web Service Για την κατανάλωση web services μέσω του PowerBuilder, υπάρχουν εγκατεστημένα Σελίδα 77 από 120

78 αντικείμενα που υποστηρίζουν λειτουργίες SOAP και WSDL. Τα web services μπορούν να εντοπιστούν είτε μέσω αναζήτησης σε καταχωρητές UDDI, είτε απευθείας εάν είναι γνωστή η διεύθυνσή τους. Για να είναι σε θέση η εφαρμογή γραμματείας να λειτουργεί ως καταναλωτής ενός web service, δημιουργήθηκε αρχικά ένα web service proxy, με τη χρήση κατάλληλου wizard, στο οποίο δηλώθηκε η διεύθυνση του WSDL αρχείου (Εικόνα 5.9). Εικόνα 5.9 Δήλωση της τοποθεσίας του WSDL εγγράφου του web service Μετά την ολοκλήρωση της διαδικασίας, δημιουργήθηκε στον κώδικα της εφαρμογής ένα αντικείμενο με το όνομα του web service (SyncService). Για την κλήση του web service μέσα από οποιοδήποτε σημείο της εφαρμογής, υλοποιήθηκε η διαδικασία f_sync(), η οποία δέχεται ως ορίσματα το όνομα της ενέργειας συγχρονισμού, το είδος της ενέργειας (εισαγωγή, ενημέρωση ή διαγραφή) και την τιμή του πρωτεύοντος κλειδιού της έγγραφης που επηρεάστηκε. Ουσιαστικά, πρόκειται για τα ορίσματα που δέχεται και η μέθοδος syncdbs() του web service, που είναι υπεύθυνη για τον συγχρονισμό των δύο εφαρμογών. Με τη χρήση της f_sync() αποφεύγεται η επανάληψη του κώδικα κλήσης του web service από πολλά σημεία της εφαρμογής, ενώ ταυτόχρονα ενοποιείται ο έλεγχος κρίσιμων Σελίδα 78 από 120

79 λαθών, όπως η έλλειψη επικοινωνίας μεταξύ της legacy εφαρμογής και του Apache Axis που φιλοξενεί το web service. Τελευταίο βήμα αποτελεί η κλήση της διαδικασίας f_sync() από το επιθυμητό σημείο. Επιλέχθηκε η κλήση της μέσα από τη διαδικασία f_commit_rollback(), η οποία εκτελείται μετά από κάθε ενέργεια του χρήστη που απαιτεί συγχρονισμό δεδομένων του συστήματος. Η f_commit_rollback() εξασφαλίζει ότι η οποιαδήποτε αλλαγή στη βάση δεδομένων της legacy εφαρμογής δεν θα πραγματοποιηθεί, αν πρώτα δεν εκτελεστεί ο κώδικας επικοινωνίας της εφαρμογής με το web service. Σε περίπτωση σφάλματος, εμφανίζεται μήνυμα λάθους στον χρήστη και η ροή του κώδικα διακόπτεται χωρίς να επιτρέπεται τελικά η μεταβολή των δεδομένων στη legacy εφαρμογή. Στο σημείο αυτό αξίζει να σημειωθεί, ότι η αντιμετώπιση των σφαλμάτων επικοινωνίας θα μπορούσε να είναι διαφορετική, ώστε να επιτρέπεται η συνέχιση της λειτουργίας της εφαρμογής της γραμματείας ανεξάρτητα από την επικοινωνία με το web service και το συγχρονισμό με τη Διαδικτυακή Πύλη. Μία ενδεχόμενη λύση στις περιπτώσεις αδυναμίας επικοινωνίας, θα ήταν η καταγραφή όλων των κινήσεων της γραμματείας σε ένα αρχείο (log file) και η πραγματοποίηση του συνόλου των εκκρεμών συναλλαγών μετά την αποκατάσταση της επικοινωνίας με το web service. Ωστόσο, η αντιμετώπιση τέτοιου είδους προβλημάτων εναπόκειται στη βελτιστοποίηση ενός ολοκληρωμένου πληροφοριακού συστήματος και όχι ενός πρότυπου, όπως αυτό που περιγράφεται στα πλαίσια της παρούσας εργασίας. Σελίδα 79 από 120

80 5.3 Λειτουργία Πλατφόρμας Moodle Όπως έχει ήδη αναφερθεί στην ενότητα 4.4, το Moodle αποτελεί Διαδικτυακή εφαρμογή, η οποία είναι υλοποιημένη σε γλώσσα PHP. Για την εγκατάσταση και λειτουργία του Moodle στα πλαίσια της εργασίας, επιλέχθηκε ο Apache HTTP Server [23] ως εξυπηρετητής Διαδικτύου και η MySQL [24] ως βάση δεδομένων της Διαδικτυακής Πύλης. Μετά τον σχεδιασμό και ανάπτυξη του web service συγχρονισμού δεδομένων και την επίτευξη της επικοινωνίας του με τη legacy εφαρμογή, απέμενε η ενσωμάτωση αντίστοιχων λειτουργιών καταναλωτή του web service και στην πλατφόρμα Moodle, για την τελική ολοκλήρωση του συστήματος. Με δεδομένο ότι το Moodle αποτελεί εφαρμογή ανοιχτού κώδικα, είναι δυνατή η προσθήκη νέων λειτουργιών, αλλά και η παραμετροποίηση όσων ήδη παρέχονται από την πλατφόρμα Η Βιβλιοθήκη NuSOAP Για την επικοινωνία της Διαδικτυακής Πύλης με το web service, ήταν αναγκαία η χρήση κατάλληλων εργαλείων υλοποιημένων σε γλώσσα PHP που είναι άλλωστε η γλώσσα υλοποίησης του Moodle-, τα οποία να επιτυγχάνουν την ανταλλαγή κατάλληλων XML μηνυμάτων της εφαρμογής με το web service. Μετά από λεπτομερή αναζήτηση και δοκιμή στα υπάρχοντα εργαλεία, επιλέχθηκε τελικά η χρήση του NuSOAP [25]. Το NuSOAP περιλαμβάνει μία ομάδα PHP κλάσεων που επιτρέπουν τη δημιουργία, αλλά και την κατανάλωση web services. Δεν απαιτεί την ενσωμάτωση κάποιων ιδιαίτερων PHP επεκτάσεων, οπότε είναι δυνατή η απευθείας ενσωμάτωσή του στον κώδικα μίας εφαρμογής όπως του Moodle. Υποστηρίζει τα πρωτόκολλα SOAP & WSDL, καθώς και την επικοινωνία με RPC web services. Το τελευταίο μάλιστα αποτέλεσε και το βασικό κριτήριο επιλογής του NuSOAP, αφού ήταν συμβατό με το web service συγχρονισμού δεδομένων, που όπως αναλύθηκε στην ενότητα 5.1, βασίστηκε στο JAX-RPC API της πλατφόρμας J2EE. Σελίδα 80 από 120

81 5.3.2 Συγχρονισμός Δεδομένων μέσω Web Service Οι κλάσεις του NuSOAP τοποθετήθηκαν μαζί με τις αντίστοιχες του Moodle για να καταστεί δυνατή η συμπερίληψη του NuSOAP από τον PHP κώδικα του Moodle. Για την κλήση της υπηρεσίας έπρεπε να βρεθεί ένας τρόπος που να διασφαλίζει τη συνέπεια των δεδομένων του συστήματος. Μία προσέγγιση ήταν να βρεθούν όλα εκείνα τα κομμάτια κώδικα του Moodle που πραγματοποιούν συναλλαγές με τη βάση δεδομένων. Αναλόγως με το είδος της συναλλαγής αλλά και με τον πίνακα της βάσης ο οποίος επηρεάζεται κάθε φορά, θα έπρεπε να γραφούν ξεχωριστά τμήματα κώδικα και να τοποθετηθούν επιλεκτικά σε όλο το εύρος της εφαρμογής. Ωστόσο, η πλατφόρμα του Moodle αποτελείται από πληθώρα βιβλιοθηκών, συναρτήσεων, αλλά και ιστοσελίδων, γεγονός που καθιστούσε το εγχείρημα ιδιαίτερα δύσκολο και με αμφίβολα τελικά αποτελέσματα. Συγκεκριμένα, ήταν πιθανός ο κίνδυνος παράλειψης κάποιας υποστηριζόμενης ενέργειας του Moodle, με αποτέλεσμα ο συγχρονισμός να μην επιτευχθεί πλήρως και οι εφαρμογές γραμματείας και Διαδικτυακής πύλης να παρουσιάσουν ασυμφωνίες στα δεδομένα τους. Για την αποφυγή τέτοιων προβλημάτων, επιλέχθηκε μία διαφορετική προσέγγιση και λύση που βασίζεται στον απευθείας έλεγχο των δεδομένων, μέσω της ενεργοποίησης triggers σε επιλεγμένους πίνακες της βάσης του Moodle. Ο κώδικας των trigger ενημερώνει τον admin_sync -έναν νέο πίνακα της βάσης που δημιουργήθηκε για τις ανάγκες συγχρονισμού του συστήματος- με τα εξής στοιχεία: Το είδος του συγχρονισμού που πρέπει να πραγματοποιηθεί Το είδος της κίνησης (εισαγωγή, ενημέρωση, διαγραφή) Το πρωτεύον κλειδί της εγγραφής Με αυτόν τον τρόπο γίνονται διαθέσιμα όλα τα απαραίτητα στοιχεία για τον συγχρονισμό των δύο βάσεων δεδομένων. Στο τέλος του κώδικα όλων των σελίδων του Moodle, εκτελείται μία συγκεκριμένη συνάρτηση, η f_sync(), η οποία ελέγχει τα δεδομένα του πίνακα admin_sync και προβαίνει στην επικοινωνία με το web service συγχρονισμού. Η Σελίδα 81 από 120

82 κλήση της f_sync() τοποθετήθηκε στον κώδικα του αρχείου weblib.php του Moodle, το οποίο αποτελεί μία βιβλιοθήκη συναρτήσεων και καλείται κάθε φορά που φορτώνεται κάποια σελίδα του Moodle. Στο αρχείο weblib.php ενσωματώθηκε ο παρακάτω κώδικας: require_once($cfg->libdir.'/sync.php'); $sync_call = f_sync(); Ακολουθεί ο κώδικας της συνάρτησης f_sync(), όπου φαίνεται μεταξύ άλλων, η δήλωση της διεύθυνσης του web service SyncService, η χρήση κατάλληλων ορισμάτων για την κλήση της syncdbs(), οι διάφοροι έλεγχοι επίτευξης της σύνδεσης κ.ά. <?php //SYNCHRONISATION// function f_sync() { $charset = mysql_query("set character_set_client = greek"); $charset = mysql_query("set character_set_results = greek"); $charset = mysql_query("set character_set_connection = greek"); $sql = 'select map_name from admin_sync where flag = 1'; $map_name = get_field_sql($sql); $sql = 'select action from admin_sync where flag = 1'; $action = get_field_sql($sql); $sql = 'select pk from admin_sync where flag = 1'; $pk = get_field_sql($sql); $sql = 'select flag from admin_sync where flag = 1'; $flag = get_field_sql($sql); if($flag){ require_once('nusoap/nusoap.php'); $proxyhost = isset($_post['proxyhost'])? $_POST['proxyhost'] : ''; $proxyport = isset($_post['proxyport'])? $_POST['proxyport'] : ''; $proxyusername = isset($_post['proxyusername'])? $_POST['proxyusername'] : ''; $proxypassword = isset($_post['proxypassword'])? $_POST['proxypassword'] : ''; $client = new soapclient(' false, $proxyhost, $proxyport, $proxyusername, $proxypassword); $err = $client->geterror(); if ($err) { echo '<h2>constructor error</h2><pre>'. $err. '</pre>'; } Σελίδα 82 από 120

83 $pk = intval($pk); $result = $client->call('syncdbs', array('mappingname' => $map_name, 'action' => $action, 'primarykeyvalue' => $pk)); // Check for a fault if ($client->fault) { echo '<h2>fault</h2><pre>'; print_r($result); echo '</pre>'; } else { // Check for errors $err = $client->geterror(); if ($err) { // Display the error echo '<h2>error</h2><pre>'. $err. '</pre>'; } else { // Display the result //echo '<h2>result</h2><pre>'; if ($result) print_r('synchronisation completed successfully'); else print_r('synchronisation aborted'); echo '</pre>'; } } //echo '<h2>request</h2><pre>'. htmlspecialchars($client->request, ENT_QUOTES). '</pre>'; //echo '<h2>response</h2><pre>'. htmlspecialchars($client->response, ENT_QUOTES). '</pre>'; //echo '<h2>debug</h2><pre>'. htmlspecialchars($client->debug_str, ENT_QUOTES). '</pre>'; } $str = 'update admin_sync set flag = 0'; $return = ''; $res = execute_sql($str, $return); } return $return;?> Ο συνολικός τρόπος λειτουργίας γίνεται κατανοητός με ένα παράδειγμα. Ας υποτεθεί ότι ο χρήστης-φοιτητής της Διαδικτυακής πύλης εκτελεί μία ενημέρωση των προσωπικών του στοιχείων, τα οποία στον αντίστοιχο πίνακα mdl_user έχουν τιμή πρωτεύοντος κλειδιού ίση με 100. Η ενημέρωση των στοιχείων στη βάση δεδομένων του Moodle, θα εκτελέσει αυτόματα το περιεχόμενο του παρακάτω trigger: Σελίδα 83 από 120

84 CREATE TRIGGER dbt_u_user AFTER UPDATE on mdl_user for each row BEGIN if ( (NEW.username <> OLD.username) or (NEW.firstname <> OLD.firstname) or (NEW.lastname <> OLD.lastname) or (NEW. <> OLD. ) or (NEW.phone1 <> OLD.phone1) or (NEW.phone2 <> OLD.phone2) or (NEW.address <> OLD.address) or (NEW.city <> OLD.city) or (NEW.country <> OLD.country) or (NEW.address <> OLD.address) or (NEW.lang <> OLD.lang) or (NEW.password <> OLD.password) ) and (current_user() = 'root@localhost') then update admin_sync set map_name = 'mapmdluser', action = 'update', flag = 1, pk = NEW.id; end if; END $$ Έτσι, στον πίνακα admin_sync θα αποθηκευτεί μία έγγραφή με το εξής περιεχόμενο: Είδος συγχρονισμού: mapmdluser Κίνηση: update Τιμή πρωτεύοντος κλειδιού: 100 Flag: 1 Όπως έχει αναφερθεί, όταν φορτώνεται μία σελίδα της Πύλης, εκτελείται η συνάρτηση f_sync(), η οποία ελέγχει αρχικά το πεδίο Flag. Αν η τιμή του είναι ίση με 0, σημαίνει ότι δεν έγινε κάποια αλλαγή στη βάση και η συνάρτηση τερματίζει. Αν όμως έχει τιμή ίση με 1, σημαίνει ότι πρέπει να εκτελεστεί η ενέργεια mapmdluser του web service, η οποία θα ενημερώσει τη συγκεκριμένη εγγραφή στη legacy εφαρμογή της γραμματείας. Αν η κλήση πραγματοποιηθεί επιτυχώς και δεν επιστραφεί μήνυμα λάθους, η συνάρτηση f_sync() επαναφέρει την τιμή flag = 0, έτσι ώστε μέχρι την επόμενη φορά που θα απαιτηθεί κάποιος συγχρονισμός, τα δεδομένα του πίνακα admin_sync να μην λαμβάνονται υπόψη. Σελίδα 84 από 120

85 6. Συμπεράσματα Υλοποίησης Από όλα όσα αναφέρθηκαν στις ενότητες που προηγήθηκαν, προκύπτουν χρήσιμα συμπεράσματα όσον αφορά τη χρήση των web services. Η ανάπτυξη συστημάτων με βάση την τεχνολογία των web services απαιτεί μια διαφορετική προσέγγιση από ότι στην παραδοσιακή ανάπτυξη εφαρμογών. Ο σχεδιασμός των web services ορίζει τις υπηρεσίες που θα υποστηριχθούν, τους τύπους δεδομένων και τη μορφή των μηνυμάτων αλληλεπίδρασης. Τα web services καταγράφουν και δημοσιεύουν τη λειτουργικότητά τους σε ένα WSDL αρχείο που χρησιμοποιείται ως βάση για τη δημιουργία κατάλληλων μηνυμάτων συμβατών με τα υποστηριζόμενα από τα web services πρωτόκολλα. Όπως προκύπτει από τις προηγούμενες ενότητες, ο προγραμματιστής υπηρεσιών δεν είναι απαραίτητο να είναι γνώστης των XML μηνυμάτων που ανταλλάσσονται κατά την αλληλεπίδραση με τα web services, καθώς προσφέρεται πλέον πληθώρα εργαλείων και πλατφόρμων που εξασφαλίζουν αυτή τη χαμηλού επιπέδου επικοινωνία. Τα web services αναπτύσσονται πάνω σε υπάρχουσες υποδομές και πρωτόκολλα του Διαδικτύου, δεν απαιτούν συνεκτική σύνδεση και υποστηρίζονται σχεδόν από όλους τους παροχείς πληροφοριακών συστημάτων και εφαρμογών σήμερα. Αποτέλεσμα των τεχνολογιών που χρησιμοποιούν είναι ότι δεν εξαρτώνται από τις πλατφόρμες στις οποίες υλοποιούνται και εγκαθίστανται, κάνοντας πράξη τη διαλειτουργικότητα μεταξύ συστημάτων και εφαρμογών. Σελίδα 85 από 120

86 6.1 Πλεονεκτήματα Χρήσης Web Services Η ενασχόληση με τα web services, στα πλαίσια της παρούσας εργασίας, έδωσε την ευκαιρία εξαγωγής συμπερασμάτων για τη χρησιμότητα τους, καθώς και για τα πλεονεκτήματα που έχουν τη δυνατότητα να προσφέρουν στα σύγχρονα πληροφοριακά συστήματα. Μερικά από τα κύρια σημεία συνεισφοράς των web services στην ενοποίηση του παρόντος πληροφοριακού συστήματος του Πανεπιστημιακού Τμήματος είναι τα ακόλουθα: Υποστήριξη ετερογενών συστημάτων και εφαρμογών: Όπως αναλύθηκε κατά παρουσίαση του συστήματος στην ενότητα 3, οι αρχικές εφαρμογές του Τμήματος που λειτουργούσαν ανεξάρτητα η μία από την άλλη, ήταν η legacy εφαρμογή της γραμματείας και η Διαδικτυακή Πύλη του Πανεπιστημίου. Η μεν πρώτη είναι υλοποιημένη σε περιβάλλον PowerBuilder και υποστηρίζεται από βάση δεδομένων SQL Server, το δε Moodle έχει αναπτυχθεί σε γλώσσα PHP και αποθηκεύει τα δεδομένα του στη MySQL. Για τις ανάγκες ολοκλήρωσης του συστήματος, αναπτύχθηκε ένα Java web service, αξιοποιώντας τις ευκολίες που παρέχει η πλατφόρμα J2EE και το Apache Axis. Παρόλο που το συνολικό σύστημα παρουσιάζει πλήρη ετερογένεια, η ενοποίηση του επιτεύχθηκε χωρίς σημαντικά προβλήματα, καθώς οι πλατφόρμες υλοποίησης των περισσότερων συστημάτων σήμερα, υποστηρίζουν πλήρως την τεχνολογία των web services. Έτσι, στις δύο εφαρμογές ενσωματώθηκαν λειτουργίες καταναλωτή του web service, με αποτέλεσμα την επίτευξη επικοινωνίας και αλληλεπίδρασης μεταξύ των εφαρμογών και τον τελικό συγχρονισμό των δεδομένων του συστήματος Αξιοποίηση legacy εφαρμογών: Οι legacy εφαρμογές μπορεί να ανταποκρίνονται επαρκώς στις εργασίες για τις οποίες προορίζονται, συνήθως όμως παρουσιάζουν προβλήματα όταν πρέπει να επικοινωνήσουν και να διαμοιραστούν πληροφορίες με άλλα νεότερα και πιο σύγχρονα πληροφοριακά συστήματα. Αυτό που συνήθως συμβαίνει σε αυτές τις περιπτώσεις, είναι η ολική αντικατάσταση της εφαρμογής. Αντίθετα στην παρούσα εργασία, το web Σελίδα 86 από 120

87 services συγχρονισμού δεδομένων, περίκλεισε τη legacy εφαρμογή της γραμματείας, κάνοντας διαθέσιμη τη λειτουργικότητά της ως επαναχρησιμοποιήσιμη υπηρεσία. Αποτέλεσμα ήταν η πλήρης αξιοποίηση της εφαρμογής και η δυνατότητα ευρείας χρήσης της Συνέχιση λειτουργίας συστημάτων: Από τη στιγμή που με τη βοήθεια του web service επιτεύχθηκε η πλήρης ενοποίηση του συστήματος, ήταν λογική η διατήρηση της λειτουργίας και χρήσης των επιμέρους εφαρμογών που σε άλλες περιστάσεις θα είχαν αντικατασταθεί. Με αυτόν τον τρόπο αποφεύγονται συχνά παραδείγματα του παρελθόντος, όπου διάφορες επιχειρήσεις ή οργανισμοί αναγκάσθηκαν να αντικαταστήσουν τα πληροφοριακά τους συστήματα πολλές φορές, έως ότου επιτύχουν ένα πλήρως ενοποιημένο περιβάλλον εφαρμογών Μικρό κόστος ενοποίησης συστημάτων: Όπως διαπιστώθηκε στην παρούσα εργασία, η ολοκλήρωση του συστήματος επιτεύχθηκε με χρήση ανοιχτών προτύπων που δε προϋποθέτουν μεγάλο κόστος. Επιπλέον, μικρές ήταν και οι αλλαγές που χρειάστηκαν στις δύο εν λειτουργία εφαρμογές, για την ενσωμάτωση λειτουργιών καταναλωτή του υλοποιημένου web service. Με άλλα λόγια, το συνολικό κόστος αναβάθμισης είναι πολύ μικρό, ενώ ταυτόχρονα αποφεύγεται η επιβάρυνση πλήρους αντικατάστασης του συστήματος που επιφέρει πρόσθετο κόστος υλοποίησης, μεταφοράς δεδομένων, εκμάθησης κ.λπ. Σελίδα 87 από 120

88 6.2 Προβλήματα Χρήσης Web Services Πέρα πάντως από τα πολλά και αδιαμφισβήτητα πλεονεκτήματα της αξιοποίησης των web services, εντοπίστηκαν κατά τη διάρκεια της ανάπτυξης του συστήματος και μερικά προβλήματα, καθώς και δυσλειτουργίες στην πλήρως ενοποιημένη λειτουργία των εφαρμογών. Το πιο σημαντικό πρόβλημα είναι η αντιμετώπιση περιπτώσεων στις οποίες δεν είναι δυνατή η εκτέλεση του συγχρονισμού των δεδομένων, είτε γιατί κάποια από τις δύο εφαρμογές δεν είναι σε λειτουργία, είτε γιατί παρουσιάζεται κάποιας μορφής πρόβλημα στο υλοποιημένο web service. Η λύση που επιλέχθηκε, προβλέπει τον έλεγχο της δυνατότητας πραγματοποίησης της αποστολής δεδομένων πριν την αποθήκευση στην τοπική εφαρμογή. Σε περίπτωση σφάλματος, εμφανίζεται μήνυμα λάθους στον χρήστη και η ροή του κώδικα διακόπτεται, χωρίς να επιτρέπεται τελικά η μεταβολή των δεδομένων σε καμία από τις δύο εφαρμογές. Με αυτόν τον τρόπο παραμένουν συγχρονισμένα τα δεδομένα του συστήματος. Αξίζει να σημειωθεί βέβαια ότι η αντιμετώπιση των σφαλμάτων επικοινωνίας θα μπορούσε να είναι διαφορετική, ώστε να επιτρέπεται η συνέχιση της λειτουργίας κάποιας εκ των εφαρμογών ανεξάρτητα από την επικοινωνία με το web service και τον συγχρονισμό με την έταιρη εφαρμογή. Μία ενδεχόμενη λύση στις περιπτώσεις αδυναμίας επικοινωνίας, θα ήταν η καταγραφή όλων των κινήσεων της γραμματείας σε ένα αρχείο (log file) και η πραγματοποίηση του συνόλου των εκκρεμών συναλλαγών μετά την αποκατάσταση της επικοινωνίας με το web service. Ωστόσο, η αντιμετώπιση τέτοιου είδους προβλημάτων εναπόκειται στη βελτιστοποίηση ενός ολοκληρωμένου πληροφοριακού συστήματος και όχι ενός πρότυπου, όπως αυτό που περιγράφεται στα πλαίσια της παρούσας εργασίας. Επιπλέον, για να καταστεί δυνατή η ενοποιημένη λειτουργία του συστήματος, προηγήθηκε η λεπτομερής καταγραφή της συμπεριφοράς των δύο εφαρμογών και η πλήρης χαρτογράφηση των αλλαγών που επιφέρουν διάφορες ενέργειες στα δεδομένα τους. Με βάση τη συγκεκριμένη μελέτη, δημιουργήθηκε το XML αρχείο συγχρονισμού που παρουσιάστηκε στην ενότητα Αυτό πρακτικά όμως σημαίνει, ότι οποτεδήποτε Σελίδα 88 από 120

89 πραγματοποιείται κάποια αλλαγή στον κώδικα των δύο εφαρμογών, πρέπει να εξασφαλίζεται στη συνέχεια και η διατήρηση της εγκυρότητας αντιστοιχήσεων του web service. Ακόμα πιο σημαντικό θα είναι το πρόβλημα, αν χρειαστεί η αναβάθμιση κάποιας εκ των δύο εφαρμογών. Αν για παράδειγμα, εκδοθεί μία νέα έκδοση του Moodle και αποφασιστεί η εγκατάστασή της για την αναβάθμιση της Διαδικτυακής Πύλης, πρέπει να ελεγχθούν εκ νέου όλες οι λειτουργίες του Moodle, να διαπιστωθούν οι τυχόν διαταραχές που προκαλούνται στην ομαλή λειτουργία του web service και να διορθωθούν ανάλογα. Το συγκεκριμένο γεγονός μπορεί έως ένα βαθμό ακόμα και να αποθαρρύνει την εγκατάσταση νέων αναβαθμισμένων εκδόσεων των δύο εφαρμογών. Σε κάθε περίπτωση βέβαια, οι δυσλειτουργίες που παρουσιάζονται σε περίπτωση πιθανής αναβάθμιση του συστήματος, είναι πολύ μικρότερες συγκριτικά με τα οφέλη που προσφέρει το web service στη συνεχή και απρόσκοπτη λειτουργία των δύο εφαρμογών. Σελίδα 89 από 120

90 6.3 Ασφάλεια Web Services Διατυπώνεται συχνά η άποψη ότι το πρωτόκολλο SOAP δεν προσφέρει την απαιτούμενη ασφάλεια ανταλλαγής μηνυμάτων, εξαιτίας της ικανότητας του να διαπερνά τον έλεγχο των firewalls. Παρόλα αυτά, επειδή ένας καταναλωτής web service μπορεί μόνο να εκτελέσει και όχι να δεχθεί κλήσεις μέσω SOAP, το συγκεκριμένο πρωτόκολλο δε μπορεί να χαρακτηριστεί λιγότερο ασφαλές από οποιαδήποτε άλλη εφαρμογή που αποστέλλει XML δεδομένα σε έναν εξυπηρετητή Διαδικτύου (web server). Για την περαιτέρω ενίσχυση της ασφάλειας που προσφέρουν οι συναλλαγές με ένα web service, υπάρχουν κάποια μέτρα που είναι δυνατόν να ληφθούν στην πλατφόρμα του Apache Axis. Ενδεικτικά αναφέρονται τα εξής: Απενεργοποίηση της λειτουργίας δημοσίευσης και παρουσίασης της λίστας των web services που φιλοξενούνται από το Apache Axis Απενεργοποίηση της λειτουργίας δημοσίευσης των WSDL εγγράφων, για να μη γίνονται γνωστές οι υποστηριζόμενες μέθοδοι του κάθε web service Αξιοποίηση της λειτουργίας που προσφέρεται από το Apache Axis για τη δημιουργία φίλτρων με τις διευθύνσεις των καταναλωτών κάθε web service. Έτσι, μία κλήση γίνεται δεκτή και εκτελείται από το Apache Axis, μόνο αν η διεύθυνση του καταναλωτή περιέχεται στην εγκεκριμένη λίστα του web service (IP validation) Σελίδα 90 από 120

91 7. Παράρτημα Ι: Σενάριο Χρήσης Συστήματος Ένα τυπικό σενάριο χρήσης της λειτουργίας συστήματος και του συγχρονισμού των δύο εφαρμογών περιλαμβάνει συνοπτικά τα παρακάτω στάδια: Γραμματεία - Αρχική καταχώρηση στοιχείων: Τα στοιχεία των χρηστών (φοιτητών και καθηγητών) του συστήματος καταχωρούνται από τη γραμματεία στη legacy εφαρμογή. Ταυτόχρονα, ο συγχρονισμός των δύο εφαρμογών δημιουργεί τους αντίστοιχους λογαριασμούς χρηστών στη Διαδικτυακή Πύλη του Πανεπιστημίου Γραμματεία Δημιουργία και ανάθεση μαθημάτων: Η γραμματεία, γνωρίζοντας το πρόγραμμα σπουδών, καταχωρεί τα μαθήματα και τις κατηγορίες μαθημάτων και παράλληλα αναθέτει κάθε μάθημα στον αντίστοιχο καθηγητή. Ταυτόχρονα, η Διαδικτυακή Πύλη συγχρονίζεται μέσω του web service, έτσι ώστε ο κάθε καθηγητής να έχει κατάλληλη πρόσβαση στα μαθήματα που έχει αναλάβει Φοιτητές - Δήλωση μαθημάτων: Οι φοιτητές επιλέγουν τα μαθήματα που επιθυμούν να παρακολουθήσουν μέσα από τη Διαδικτυακή Πύλη. Μέσω του συγχρονισμού, η γραμματεία ενημερώνεται άμεσα για τις δηλώσεις μαθημάτων των φοιτητών του Τμήματος. Παράλληλα, οι καθηγητές, μέσω της Διαδικτυακής Πύλης, έχουν άμεση πρόσβαση στα ονόματα των φοιτητών που έχουν επιλέξει τα μαθήματά τους Καθηγητές Ορισμός μορφής μαθήματος: Ο καθηγητής του κάθε μαθήματος, ορίζει στην Πύλη τη μορφή του μαθήματος (εργασίες, εξετάσεις, κ.λπ.). Ο συγχρονισμός του συστήματος ενημερώσει τη legacy εφαρμογή για τη μορφή του μαθήματος Φοιτητές & καθηγητές Υποβολή & βαθμολόγηση εργασιών: Οι φοιτητές έχουν τη δυνατότητα να υποβάλλουν τις εργασίες τους στη Διαδικτυακή Πύλη και ο καθηγητής αποκτά άμεσα πρόσβαση στο περιεχόμενό τους. Στη συνέχεια, Σελίδα 91 από 120

92 ο καθηγητής καταχωρεί τη βαθμολογία των εργασιών και μέσω του συγχρονισμού οι βαθμοί μεταφέρονται στην εφαρμογή της γραμματείας Γραμματεία Έκδοση βαθμολογίας: Τέλος, η γραμματεία έχοντας ενημερωμένες όλες τις εργασίες των φοιτητών αλλά και τη βαθμολογία τους, μπορεί να προχωρήσει στην έκδοση αναλυτικής βαθμολογίας για κάθε φοιτητή. Στις ενότητες που ακολουθούν περιγράφεται ένα αναλυτικό σενάριο λειτουργίας του συστήματος. Σελίδα 92 από 120

93 7.1 Γραμματεία - Καταχώρηση Στοιχείων Χρηστών Η γραμματεία καταχωρεί τα στοιχεία των χρηστών, δίνοντας τους ένα όνομα χρήστη και ένα αρχικό συνθηματικό, για παράδειγμα Θωμάς Φωτίου με όνομα χρήστη student1 (Εικόνα 7.1). Εικόνα 7.1 Καταχώρηση στοιχείων φοιτητή στη legacy εφαρμογή Ο λογαριασμός του χρήστη μέσω του web service συγχρονισμού, καταχωρείται άμεσα και στην εφαρμογή του Moodle (Εικόνα 7.2). Εικόνα 7.2 Αυτόματη δημιουργία χρήστη στο Moodle Η διαδικασία αυτή επαναλαμβάνεται για όλους τους καθηγητές και φοιτητές του Τμήματος. Σελίδα 93 από 120

94 7.2 Γραμματεία - Καταχώρηση Στοιχείων Μαθημάτων Η γραμματεία στη συνέχεια καταχωρεί τις κατηγορίες μαθημάτων, π.χ. Υποχρεωτικά, Επιλογής (Εικόνα 7.3). Εικόνα 7.3 Καταχώρηση κατηγοριών μαθημάτων στη legacy εφαρμογή Επιπλέον, καταχωρεί και όλα τα μαθήματα του εξαμήνου επιλέγοντας την αντίστοιχη κατηγορία. Η Εικόνα 7.4 απεικονίζει την καταχώρηση του μαθήματος Εφαρμογές Ηλεκτρονικού Εμπορίου. Εικόνα 7.4 Καταχώρηση μαθήματος στη γραμματεία Σελίδα 94 από 120

95 Παράλληλα, ορίζεται και η αντιστοίχηση μεταξύ μαθημάτων και καθηγητών, δηλαδή ορίζεται ο καθηγητής που διδάσκει το κάθε μάθημα για το τρέχον εξάμηνο. Για παράδειγμα, το μάθημα ΕΗΕ100 - Εφαρμογές Ηλεκτρονικού Εμπορίου θα διδαχθεί από τον καθηγητή κ. Θεοδώρου (Εικόνα 7.5). Εικόνα 7.5 Καθορισμός διδάσκοντα καθηγητή σε μάθημα στη legacy εφαρμογή Η αποθήκευση των παραπάνω δεδομένων στην εφαρμογή της γραμματείας οδηγεί στην κλήση του web service και στην άμεση ενημέρωση της βάση δεδομένων του Moodle. Έτσι, όταν ο καθηγητής κ. Θεοδώρου συνδεθεί στη Διαδικτυακή Πύλη, θα έχει άμεση πρόσβαση στα μαθήματά του (Εικόνα 7.6). Εικόνα 7.6 Αυτόματη αντιστοίχηση μαθημάτων σε καθηγητή στο Moodle Σελίδα 95 από 120

96 7.3 Φοιτητές - Δήλωση Μαθημάτων Οι φοιτητές πλέον έχοντας αποκτήσει αυτόματα λογαριασμό χρήστη στη Διαδικτυακή Πύλη μπορούν να επιλέξουν τα μαθήματα που επιθυμούν να παρακολουθήσουν. Στην Εικόνα 7.7, ο φοιτητής Φωτίου Θωμάς επιλέγει το μάθημα ΕΗΕ100 - Εφαρμογές Ηλεκτρονικού Εμπορίου. Εικόνα 7.7 Δήλωση μαθήματος από φοιτητή στο Moodle Παράλληλα, η εφαρμογή της γραμματείας ενημερώνεται αυτόματα για τη συγκεκριμένη καταχώρηση, όπως απεικονίζεται στην Εικόνα 7.8. Εικόνα 7.8 Αυτόματη ενημέρωση δήλωσης μαθήματος στη legacy εφαρμογή Σελίδα 96 από 120

97 Αξίζει να σημειωθεί πως αρχικά ο βαθμός τους φοιτητή για το μάθημα είναι κενός, καθώς δεν έχουν υποβληθεί ακόμα βαθμολογίες από τυχόν εργασίες ή γραπτές εξετάσεις του μαθήματος. Μετά το πέρας της δήλωσης μαθημάτων, ο καθηγητής έχει πρόσβαση, μέσω της Πύλης, στη λίστα των φοιτητών που έχουν δηλώσει το συγκεκριμένο μάθημα (Εικόνα 7.9). Εικόνα 7.9 Λίστες των καθηγητών και φοιτητών του μαθήματος στο Moodle Όπως γίνεται αντιληπτό, η ολοκλήρωση της διαδικασίας δήλωσης μαθημάτων γίνεται πλέον με ταχύτερο και σαφώς ευκολότερο τρόπο, χωρίς να απαιτείται μάλιστα η φυσική παρουσία των φοιτητών στη γραμματεία. Σελίδα 97 από 120

98 7.4 Καθηγητές Ορισμός Μορφής Μαθήματος Ένας από τους τρόπους ορισμού της μορφής του μαθήματος είναι ο ορισμός εργασιών. Ας υποτεθεί ότι ο καθηγητής κ. Θεοδώρου ορίζει για το μάθημα Εφαρμογές Ηλεκτρονικού Εμπορίου μια εργασία, η όποια θα βαθμολογηθεί με μέγιστο βαθμό το 100 και θα αποτελέσει την τελική βαθμολογία των φοιτητών για το εν λόγω μάθημα (Εικόνα 7.10). Ο καθηγητής βέβαια έχει τη δυνατότητα να δηλώσει πολλές εργασίες, αλλά και γραπτές εξετάσεις, ορίζοντας τα αντίστοιχα βάρη τους στην τελική βαθμολογία του μαθήματος (π.χ. Εργασία 30 Βαθμοί, Τελική Εξέταση - 70 Βαθμοί). Εικόνα 7.10 Προσθήκη εργασίας σε μάθημα στο Moodle Ο ορισμός της εργασίας μεταφέρεται άμεσα και στη legacy εφαρμογή της γραμματείας (Εικόνα 7.11). Εικόνα 7.11 Αυτόματη καταχώρηση εργασίας στην εφαρμογή γραμματείας Σελίδα 98 από 120

99 7.5 Φοιτητές & Καθηγητές - Υποβολή & Βαθμολόγηση Εργασιών Οι φοιτητές του μαθήματος μπορούν με τη σειρά τους να υποβάλλουν τις εργασίες τους στη Διαδικτυακή Πύλη (Εικόνα 7.12), αποφεύγοντας τις χρονοβόρες διαδικασίες παράδοσης εργασιών στο γραφείο του καθηγητή, σε καθορισμένες ώρες και ημέρες. Εικόνα 7.12 Υποβολή εργασίας από φοιτητή στο Moodle Ο καθηγητής του μαθήματος αποκτά άμεσα πρόσβαση στο περιεχόμενο της εργασίας (Εικόνα 7.13) και προχωρεί στη βαθμολόγηση και το σχολιασμό της (Εικόνα 7.14). Εικόνα 7.13 Πρόσβαση του καθηγητή στην εργασία μέσω Moodle Εικόνα 7.14 Βαθμολόγηση εργασίας από τον καθηγητή στο Moodle Σελίδα 99 από 120

100 Με τη βοήθεια του υλοποιημένου web service, η εφαρμογή της γραμματείας ενημερώνεται με όλες τις λεπτομέρειες που αφορούν τις εργασίες του μαθήματος (Εικόνα 7.15). Εικόνα 7.15 Αυτόματη ενημέρωση βαθμολογίας εργασίας στη γραμματεία Ταυτόχρονα, ενημερώνεται και ο βαθμός του φοιτητή για το συγκεκριμένο μάθημα, ο οποίος αρχικά παρέμενε κενός (Εικόνα 7.16). Στην περίπτωση κατά την οποία το μάθημα περιέχει περισσότερες από μία εργασίες ή γραπτές εξετάσεις, ο συνολικός βαθμός υπολογίζεται λαμβάνοντας υπόψη τα βάρη που είχε ορίσει ο καθηγητής στο Moodle κατά τη δήλωσή των εργασιών και εξετάσεων. Εικόνα 7.16 Αυτόματη καταχώρηση βαθμού μαθήματος στην εφαρμογή γραμματείας Σελίδα 100 από 120

101 7.6 Γραμματεία - Έκδοση Αναλυτικής Βαθμολογίας Τέλος, μία από τις βασικές εκτυπώσεις που παρέχει η γραμματεία, είναι η δήλωση και η αναλυτική βαθμολογία των μαθημάτων ενός φοιτητή (Εικόνα 7.17). Αξίζει να σημειωθεί ότι ο συγχρονισμός των δύο εφαρμογών εξαλείφει τη χρονική καθυστέρηση που υπάρχει συνήθως μεταξύ της βαθμολόγησης ενός μαθήματος και της μεταφοράς των βαθμών από τον καθηγητή προς τη γραμματεία. Εικόνα 7.17 Εκτύπωση αναλυτικής βαθμολογίας φοιτητή από την εφαρμογή γραμματείας Σελίδα 101 από 120

102 8. Παράρτημα ΙΙ: Οδηγός Εγκατάστασης Συστήματος Για την πλήρη εγκατάσταση του παρόντος συστήματος απαιτείται μία σειρά από εργαλεία και αρχεία υλοποίησης, τα οποία μάλιστα περιέχονται και στο συνοδευτικό CD-ROM της παρούσας αναφοράς. Συγκεκριμένα, ο φάκελος impl περιέχει τα αρχεία υλοποίησης των εφαρμογών και του web service, ενώ ο φάκελος tools τις πλατφόρμες και τα εργαλεία που χρησιμοποιήθηκαν. Συνοπτικά, απαιτούνται τα ακόλουθα: Ο εξυπηρετητής δικτύου Apache HTTP Server v που φιλοξενεί την πλατφόρμα Moodle. Για την εγγυημένη συμβατότητα του εξυπηρετητή με τα υπόλοιπα εργαλεία της εφαρμογής απαιτείται έκδοση ίση ή μεγαλύτερη από v2 Η γλώσσα προγραμματισμού PHP v (ή τουλάχιστον έκδοση ίση ή μεγαλύτερη από την v5), καθώς η πλατφόρμα Moodle είναι υλοποιημένη στη συγκεκριμένη γλώσσα, όπως βέβαια και ο κώδικας με τον οποίο καλούνται τα web services από την πλευρά του Moodle Το Σύστημα Διαχείρισης Βάσεων Δεδομένων MySQL v (ή τουλάχιστον έκδοση ίση ή μεγαλύτερη από την v5) και η διεπαφή διαχείρισης phpmyadmin v H MySQL υποστηρίζει την αποθήκευση των δεδομένων του Moodle Τα αρχεία εγκατάστασης της εφαρμογής Moodle v1.5, όπως αυτά διανέμονται αρχικά και στη συνέχεια διαφοροποιούνται για τους σκοπούς της εργασίας Η βιβλιοθήκη NuSOAP v0.7.2 για τη δημιουργία καταναλωτών του web service μέσω της γλώσσας PHP Το Σύστημα Διαχείρισης Βάσεων Δεδομένων Microsoft SQL Server 2000 (Service Pack 3) για την υποστήριξη της legacy εφαρμογής της γραμματείας. Επίσης, απαιτείται η εγκατάσταση του αντίστοιχου αρχείου προέλευσης δεδομένων (ODBC), για την επικοινωνία ανάμεσα στη διεπαφή της legacy εφαρμογής και της βάσης δεδομένων Τα αρχεία (εκτελέσιμο και βιβλιοθήκες) της legacy εφαρμογής της γραμματείας Σελίδα 102 από 120

103 Η πλατφόρμα J2SE v1.5.0_07 που χρησιμοποιήθηκε για την ανάπτυξη των Java web services O εξυπηρετητής εφαρμογών Apache Tomcat v5.5 που αποτελεί τον Java Servlet Container του συστήματος H πλατφόρμα Apache Axis v1.3 που αποτελεί τον εξυπηρετητή των web services, καθώς και τα modules που απαιτούνται για την πλήρη λειτουργία της: JAF v1.0.2, JavaMail v1.3.3 & XML Security v1.3.0 Οι Java κλάσεις του web service που εκτελούνται (deploy) στο Apache Axis Ο οδηγός προέλευσης δεδομένων JDBC για την επικοινωνία του κώδικα του web service με τη βάση δεδομένων, τόσο της legacy εφαρμογής, όσο και της αντίστοιχης του Moodle Στον αναλυτικό οδηγό που ακολουθεί, θεωρείται ότι η εγκατάσταση πραγματοποιείται στη διαδρομή C:\Services ενός μόνο υπολογιστή. Μπορούν βέβαια να χρησιμοποιηθούν πολλαπλοί υπολογιστές για την εγκατάσταση του συστήματος και να διαχωριστούν οι εφαρμογές, το web service, οι βάσεις δεδομένων κ.λπ. Σελίδα 103 από 120

104 8.1 Εγκατάσταση Apache HTTP Server Εκτελούμε το αρχείο apache_ win32-x86-no_ssl.msi και επιλέγουμε εγκατάσταση στη διαδρομή C:\Services\Apache2 με τις ρυθμίσεις που απεικονίζονται στην εικόνα Εικόνα 8.1. Εικόνα 8.1 Εγκατάσταση Apache HTTP Server Στο αρχείο C:\Services\Apache2\conf\httpd.conf προσθέτουμε τα ακόλουθα: LoadModule php5_module 'c:/services/php5/php5apache2.dll', γραμμή 173 DirectoryIndex index.html index.php index.html.var, γραμμή 324 AddType application/x-httpd-php.php, γραμμή 759 Για την επαλήθευση της εγκατάστασης, επιλέγουμε από έναν φυλλομετρητή ιστού τη διεύθυνση: Σελίδα 104 από 120

105 8.2 Εγκατάσταση PHP Αποσυμπιέζουμε το αρχείο php win32.zip στη διαδρομή C:\Services\PHP5. Αντιγράφουμε το αρχείο php.ini-recommended στη θέση C:\windows και το μετονομάζουμε σε php.ini. Στο αρχείο αυτό, προσθέτουμε στη συνέχεια τα εξής: extension=php_mysql.dll, γραμμή 647 extension=php_mbstring.dll, γραμμή 627 extension_dir = "C:\Services\php5\ext", γραμμή 519 doc_root = 'C:\Services\Apache2\htdocs', γραμμή 512 Επίσης, αντιγράφουμε το αρχείο C:\Services\PHP5\libmysql.dll στη θέση C:\Services\Apache2\bin. Σελίδα 105 από 120

106 8.3 Εγκατάσταση MySQL Εκτελούμε το αρχείο setup.exe που περιέχεται στο συμπιεσμένο αρχείο mysql win32.zip και επιλέγουμε την εγκατάσταση στη θέση C:\Services\mysql5. Στη συνέχεια ρυθμίζουμε τις παραμέτρους που απεικονίζει η Εικόνα 8.2. Εικόνα 8.2 Εγκατάσταση MySQL Σελίδα 106 από 120

107 Εικόνα 8.3 Παραμετροποίηση MySQL Στις ρυθμίσεις εγκατάστασης απενεργοποιούμε την επιλογή: «Enable Strict Mode» (Εικόνα 8.3). Στη συνέχεια αποσυμπιέζουμε το αρχείο phpmyadmin pl4.zip στη θέση C:\Services\Apache2\htdocs\phpMyAdmin και στο αρχείο confic.inc.php κάνουμε τις ακόλουθες προσθήκες: $cfg['pmaabsoluteuri'] = ' (γραμμή 36) $cfg['servers'][$i]['auth_type'] = 'http ; (γραμμή 73) Επιλέγουμε την επανεκίνηση του Apache HTTP Server και επαληθεύουμε την εγκατάσταση επιλέγοντας: Σελίδα 107 από 120

108 8.4 Εγκατάσταση Moodle Για την εγκατάσταση της εφαρμογής του Moodle απαιτείται αρχικά η δημιουργία μίας νέας βάσης δεδομένων στην MySQL με όνομα moodle και collation greek general ci. Μετά τη δημιουργία της βάσης αποσυμπιέζουμε το αρχείο moodle-latest-15.zip στη θέση C:\Services\Apache2\htdocs\moodle. Στη συνέχεια χρησιμοποιώντας έναν φυλλομετρητή ιστού επισκεπτόμαστε τη διεύθυνση: η οποία οδηγεί στην παραμετροποίηση της εφαρμογής μέσα από έναν απλό και εύχρηστο οδηγό εγκατάστασης (Εικόνα 8.4). Εικόνα 8.4 Αρχική οθόνη εγκατάστασης Moodle Μετά το πέρας της εγκατάστασης πρέπει να ενημερωθούν τα αρχεία της πλατφόρμας Moodle με τις διαφοροποιήσεις που περιγράφηκαν στην ενότητα 5.3. Για τον λόγο αυτό, αντιγράφουμε τα αρχεία που βρίσκονται στον φάκελο moodle-changes του συνοδευτικού CD στις παρακάτω διαδρομές, αντικαθιστώντας, όπου απαιτείται, τα ήδη υπάρχοντα: C:\Services\Apache2\htdocs\moodle\lib\setup.php Σελίδα 108 από 120

109 C:\Services\Apache2\htdocs\moodle\lib\sync.php C:\Services\Apache2\htdocs\moodle\lib\weblib.php Επιπλέον, για να είναι δυνατή η κλήση του web service μέσα από τον PHP κώδικα του Moodle, πρέπει να αντιγραφεί το αρχείο nusoap.php που περιέχει την ομώνυμη βιβλιοθήκη, στη θέση: C:\Services\Apache2\htdocs\moodle\lib. Τέλος, οι αλλαγές στην πλατφόρμα Moodle περιλαμβάνουν και ορισμένες τροποποιήσεις στη βάση δεδομένων. Για το σκοπό αυτό, εκτελούμε στη βάση moodle της MySQL, τις SQL εντολές που περιέχονται στο αρχείο mdl_script.sql. Σελίδα 109 από 120

110 8.5 Εγκατάσταση Εφαρμογής Γραμματείας Η εγκατάσταση της εφαρμογής της γραμματείας περιλαμβάνει δύο μέρη: Τη διεπαφή χρήσης και τη βάση δεδομένων. Αρχικά, εγκαθιστούμε τον Microsoft SQL Server 2000 (Service Pack 3) και δημιουργούμε στον Enterprise Manager μία βάση με όνομα university. Χρησιμοποιώντας την εντολή Restore Database του SQL Server, δημιουργούμε τους πίνακες της βάσης από το αρχείο university.bak του συνοδευτικού CD. Εικόνα 8.5 Παραμετροποίηση ODBC Στη συνέχεια δημιουργούμε το αρχείο προέλευσης δεδομένων από τη διαδρομή Πίνακας ελέγχου -> Εργαλεία διαχείρισης -> Πηγές δεδομένων (ODBC) των Windows (Εικόνα Σελίδα 110 από 120

111 8.5). Μετά την εγκατάσταση του ODBC, εκκινούμε τον SQL Server όπως φαίνεται στην Εικόνα 8.6. Εικόνα 8.6 Εκκίνηση SQL Server Τέλος, αποσυμπιέζουμε το αρχείο university.zip στη θέση C:\Services\university και στο αρχείο config.ini θέτουμε στη μεταβλητή Server την τιμή του εγκατεστημένου SQL Server instance (είναι το εκάστοτε όνομα του πεδίου Server όπως φαίνεται στην Εικόνα 8.6, συνήθως είναι το όνομα του υπολογιστή). Σελίδα 111 από 120

112 8.6 Εγκατάσταση Apache Axis Απαραίτητη προϋπόθεση για την εγκατάσταση του Apache Axis, αποτελεί είναι η εκ των προτέρων εγκατάσταση της Java, όπως και του Apache Tomcat. Στα πλαίσια του παρόντος οδηγού προτείνεται η εγκατάσταση του J2SE 1.5 [26], μέσω του αρχείου jdk- 1_5_0_07-windows-i586-p.exe, που παρέχει και τη δυνατότητα μετάφρασης (compile) των Java αρχείων του web service. Αν ο αναγνώστης επιθυμεί να αποφύγει τη διαδικασία μετάφρασης, έχει τη δυνατότητα να χρησιμοποιήσει απευθείας τα.class files του συνοδευτικού CD. Σε αυτή την περίπτωση, αρκεί η εγκατάσταση του J2RE 1.5. Αφού εκτελέσουμε το αρχείο apache-tomcat exe επιλέγουμε τη διαδρομή εγκατάστασης C:\Services\Tomcat 5.5 και δίνουμε την ακριβή διαδρομή στην όποια βρίσκεται το Java Runtime Environment (Εικόνα 8.7). Εικόνα 8.7 Επιλογή του Java Runtime Environment από τον Apache Tomcat Για την επαλήθευση της εγκατάστασης, επιλέγουμε από έναν φυλλομετρητή ιστού τη διεύθυνση: Στη συνέχεια, αποσυμπιέζουμε το αρχείο axis-bin-1-3.zip στην τοποθεσία C:\Services και αντιγράφουμε τον φάκελο C:\Services\axis-1_3\webapps\axis στη θέση Σελίδα 112 από 120

113 C:\Services\Tomcat 5.5\webapps. Τέλος, εγκαθιστούμε και τα modules JAF [27], JavaMail [28] & XML Security [29] που απαιτούνται για την πλήρη λειτουργία του Apache Axis: Αποσυμπιέζουμε το αρχείο jaf-1_0_2-upd2.zip στη θέση C:\Services και αντιγράφουμε το αρχείο activation.jar στη θέση C:\Services\Tomcat 5.5\webapps\axis\WEB-INF\lib Αποσυμπιέζουμε το αρχείο javamail-1_3_3_01.zip στη θέση C:\Services και αντιγράφουμε το αρχείο mail.jar στη θέση C:\Services\Tomcat 5.5\webapps\axis\WEB-INF\lib Αποσυμπιέζουμε το αρχείο xml-security-bin-1_3_0.zip στη θέση C:\Services και αντιγράφουμε το αρχείο xmlsec jar στη θέση C:\Services\Tomcat 5.5\webapps\axis\WEB-INF\lib Για επιβεβαίωση, επισκεπτόμαστε τη σελίδα (Εικόνα 8.8). Εικόνα 8.8 Η αρχική σελίδα του Apache Axis Για να διαπιστωθεί η πλήρης εγκατάσταση, επιλέγουμε τον σύνδεσμο Validation της αρχικής σελίδας του Apache Axis και οδηγούμαστε στη σελίδα που απεικονίζει η Εικόνα 8.9, όπου πραγματοποιείται ο έλεγχος όλων των εγκατεστημένων modules. Σελίδα 113 από 120

114 Εικόνα 8.9 Έλεγχος των εγκατεστημένων modules από το Apache Axis Σελίδα 114 από 120

115 8.7 Εγκατάσταση Web Service Επιλέγουμε τη διαδρομή Πίνακας ελέγχου -> Σύστημα ->Για Προχωρημένους -> Μεταβλητές Περιβάλλοντος και δημιουργούμε μία μεταβλητή συστήματος με όνομα CLASSPATH, όπου εισάγουμε ως τιμή τις διαδρομές των βιβλιοθηκών των Apache Axis, JAF, JavaMail & XML Security (Εικόνα 8.10): C:\Services\axis-1_3\lib\axis.jar;C:\Services\axis-1_3\lib\axis-ant.jar;C:\Services\axis- 1_3\lib\axis-schema.jar;C:\Services\axis-1_3\lib\commons-discovery- 0.2.jar;C:\Services\axis-1_3\lib\commons-logging jar;C:\Services\axis- 1_3\lib\jaxrpc.jar;C:\Services\axis-1_3\lib\log4j jar;C:\Services\axis- 1_3\lib\saaj.jar;C:\Services\axis-1_3\lib\wsdl4j jar;C:\Services\jaf \activation.jar;C:\Services\javamail-1.3.3_01\mail.jar;C:\Services\xml-security- 1_3_0\libs\xmlsec jar;C:\Services\web-service Εικόνα 8.10 Εισαγωγή μεταβλητής συστήματος CLASSPATH Στη συνέχεια, αντιγράφουμε τον φάκελο web-service του συνοδευτικού CD στη θέση C:\Services. Εισάγουμε στη μεταβλητή CLASSPATH τον συγκεκριμένο φάκελο, όπως φαίνεται και παραπάνω, για να είναι δυνατή η μετάφραση του web service. Εισάγουμε επίσης στη μεταβλητή PATH, τη διαδρομή των εκτελέσιμων αρχείων της πλατφόρμας Σελίδα 115 από 120

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα:

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα: Μονάδα Διασφάλισης Ποιότητας Πανεπιστημίου Δυτικής Μακεδονίας Κωδικός Πράξης ΟΠΣ: 335662 Τίτλος Πράξης: ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας Επιχειρησιακό Πρόγραμμα: Άξονας Προτεραιότητας: Στοιχεία επιστημονικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET Δημήτριος Παπαδημητρίου Παπαδημητρίου Δημήτριος - MIS - Παν.Μακεδονίας 1 Microsoft.NET Πλατφόρμα επικοινωνίας ανθρώπων, συστημάτων και

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

* Enterprise Resource Planning ** Customer Relationship Management

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

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

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com. Στόχος Σκοπός μαθήματος

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com. Στόχος Σκοπός μαθήματος Επιχειρησιακά Πληροφοριακά Συστήματα Διδάσκων: Αγγελόπουλος Γιάννης Δευτέρα 3-5 Τρίτη 4-6 Εργαστήριο Α Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com 1 Στόχος Σκοπός μαθήματος Σκοπός:

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

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

Προγραμματισμός διαδικτυακών εφαρμογών με PHP ΕΣΔ516: Τεχνολογίες Διαδικτύου Προγραμματισμός διαδικτυακών εφαρμογών με PHP Ερωτήματα μέσω Περιεχόμενα Περιεχόμενα Λογισμικό για εφαρμογές Web Η τριεπίπεδη αρχιτεκτονική (3-tier architecture) Εισαγωγή

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

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

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

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

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

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

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

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

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό Ανάδοχοι Φορέας Υλοποίησης Έργο ΛΑΕΡΤΗΣ Λογισμικό Δικτύων Οδηγίες αξιοποίησης για τον Εκπαιδευτικό Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών Ανάδοχος φορέας: CONCEPTUM A.E. 1 Προσομοίωση

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

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

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

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

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

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

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

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

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

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

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

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

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

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

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

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

GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Περιγραφή Πλατφόρμας Η πλατφόρμα eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και αποτελεί την πρόταση του Ακαδημαϊκού Διαδικτύου

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

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

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

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

Δυνατότητα επέκτασης για υποστήριξη ξεχωριστής διεπαφής χρήστη για φορητές συσκευές

Δυνατότητα επέκτασης για υποστήριξη ξεχωριστής διεπαφής χρήστη για φορητές συσκευές e-gateway SOLUTION ΕΙΣΑΓΩΓΗ Ιδιωτικοί και δημόσιοι οργανισμοί κινούνται όλο και περισσότερο προς την κατεύθυνση της μηχανογράφησης και αυτοματοποίησης των εργασιών τους, σε μια προσπάθεια να διαχειριστούν

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

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

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Ηλεκτρονικό Εμπόριο Αναπτύσσοντας ένα Ηλεκτρονικό Κατάστημα Ηλεκτρονικό Εμπόριο Λειτουργικότητα Εφαρμογής Κατάλογος προϊόντων Καλάθι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΚΠΑ η-τάξη Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

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

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

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

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

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

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

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

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

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Ηµεροµηνία Μάιος 2004 Πίνακας Περιεχοµένων ΕΙΣΑΓΩΓΗ 3 ΦΙΛΟΣΟΦΙΑ ΠΛΑΤΦΟΡΜΑΣ 4 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ

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

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Moodle

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Moodle Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Moodle Κάργα Σουλτάνα MSc Πληροφορικός skarga@uom.gr Κατσάνα Αικατερίνη MSc Πληροφορικός akatsana@uom.gr «18 ο Συνάντηση Εκπαιδευτικών για θέματα Τ.Π.Ε. στη Δυτική Μακεδονία»,

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στη J2EE. Μέρος 2

Εισαγωγή στη J2EE. Μέρος 2 Εισαγωγή στη J2EE Μέρος 2 JNDI Java Naming and Directory Interface Χρησιμοποιείταιαπότιςεφαρμογέςπου βασίζονταισε J2EE γιατον μεταφερτό προσδιορισμό πόρωνκαιαντικειμένων Οιεφαρμογές χρησιμοποιούν συμβολικά

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

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

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

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ... 22 ΕΠΙΚΟΙΝΩΝΙΑ... 23

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ... 22 ΕΠΙΚΟΙΝΩΝΙΑ... 23 Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης GUnet e-class Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης

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

Σύστημα Ηλεκτρονικού Πρωτοκόλλου

Σύστημα Ηλεκτρονικού Πρωτοκόλλου Σύστημα Ηλεκτρονικού Πρωτοκόλλου Το Σύστημα Ηλεκτρονικού Πρωτοκόλλου της OPTIONSNET, αποτελεί ένα ολοκληρωμένο λογισμικό για τη διαχείριση όλων των διεργασιών ενός τυπικού πρωτοκόλλου για Δημόσιους και

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

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

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

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

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

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

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

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

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

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

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

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

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ Αριθμ. Πρωτ.: 129334/2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΤΟΥ ΑΡΙΣΤΟΤΕΛΕΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΑΚΟΙΝΩΝΕΙ Τη διενέργεια διαδικασίας ΑΠΕΥΘΕΙΑΣ

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

Η ποιοτική εξυπηρέτηση του πολίτη αποτελεί πλέον µια από τις βασικές προτεραιότητες της πολιτείας, µε τις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών, να καλούνται να παίξουν ένα σηµαντικό και υποστηρικτικό

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

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ 4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ Η εφαρμογή "Υδροληψίες Αττικής" είναι ένα πληροφοριακό σύστημα (αρχιτεκτονικής

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

Συγκριτικά Πλεονεκτήµατα Γραµµατείας 2003 έναντι Γραµµατείας 2.5

Συγκριτικά Πλεονεκτήµατα Γραµµατείας 2003 έναντι Γραµµατείας 2.5 Συγκριτικά Πλεονεκτήµατα Γραµµατείας 2003 έναντι Γραµµατείας 2.5 ιαφορετική αρχιτεκτονική: Κοινή βάση δεδοµένων, υνατότητες διασύνδεσης διαφορετικών συστηµάτων Η ανάγκη για την βελτίωση της ποιότητας των

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

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

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

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

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου

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

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

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012 ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ Τρίτη, 7 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου Κων/νος Ποτιέ 21/ Χανιά, ΤΚ 73100 AΦΜ: 065439343 Τηλ./Fax:

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

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

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται:

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται: Μάθημα 10 Συστήματα Διάχυσης και Διαχείρισης Γνώσης Chapter 10 Knowledge Transfer In The E-world Chapter 13 Knowledge Management Tools and Knowledge Portals Συστήματα Διάχυσης και Διαχείρισης Γνώσης Λογισμικό

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

Information Technology for Business

Information Technology for Business Information Technology for Business! Lecturer: N. Kyritsis, MBA, Ph.D. Candidate!! e-mail: kyritsis@ist.edu.gr Διαχείριση Επιχειρηματικών Δεδομένων - Databases Ορισμός Βάσης Δεδομένων Συλλογή συναφών αρχείων

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

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων .. Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Μάθημα Βασικές Έννοιες - . Ύλη Εργαστηρίου ΒΔ Ύλη - 4 Ενότητες.1 - Σχεδιασμός Βάσης Δεδομένων.2 Δημιουργία Βάσης Δεδομένων Δημιουργία Πινάκων Εισαγωγή/Ανανέωση/Διαγραφή

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

Πληροφορική στιςεπιχειρήσεις

Πληροφορική στιςεπιχειρήσεις Εισαγωγή στη J2EE Εκπαιδευτικοί Στόχοι Ναγνωρίσετετην αρχιτεκτονικήτης πλατφόρμας J2EE Κατανόησητης αξίαςτης J2EE Εποπτικήμελέτη των APIs και των τεχνολογιών πουαποτελούν τη J2EE Δεν είναι απαραίτητο νακαταλάβετε

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

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

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

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

Καλώς ήλθατε στην παρουσίαση του έργου SmartGov.

Καλώς ήλθατε στην παρουσίαση του έργου SmartGov. Καλώς ήλθατε στην παρουσίαση του έργου SmartGov http://www.smartgov-project.org project.org Αθήνα,, 1η1 Οκτώβρη 2004 1 Γενικά για το έργο SmartGov SmartGov: Μια πλατφόρµα βασισµένη στη γνώση για την ανάπτυξη

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

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

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

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

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

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο 2014-2015 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου

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

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

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα3 Επικοινωνία και Διαδίκτυο Κεφ10: Υπηρεσίες και Εφαρμογές Διαδικτύου 10.1 Υπηρεσίες Διαδικτύου Υπηρεσίες Επικοινωνίας Ηλεκτρονικό Ταχυδρομείο (e-mail) Υπηρεσία του Διαδικτύου για διακίνηση γραπτών

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

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

Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης Σπουδαστές: Μιχαήλ Μιχάλης ΑΜ:5089 Αναγνωστόπουλος Σπύρος ΑΜ:3692 Υπεύθυνος καθηγητής: Αναλυτή Κατερίνα Άρτα 2006 E- learning

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

Introduction to JAX-WS. Φοιτητής : ηµόπουλος Κωνσταντίνος

Introduction to JAX-WS. Φοιτητής : ηµόπουλος Κωνσταντίνος Introduction to JAX-WS Φοιτητής : ηµόπουλος Κωνσταντίνος οµή Παρουσίασης Introduction to JAX-WS About Web Services Πρωτόκολλα WS Περιγραφή λειτουργίας WS JAX-WS Server/Client side Τα πλεονεκτήµατα του

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

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

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΕΓΚΑΤΑΣΤΑΣΗ & ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ INTERNET INFORMATION SERVER (IIS) ΓΙΑ ΥΛΟΠΟΙΗΣΗ ΥΠΗΡΕΣΙΩΝ ΔΙΑΔΙΚΤΥΟΥ (WEB SERVICES) ΣΠΟΥΔΑΣΤΡΙΑ:Μπάρδα Μαρία ΕΙΣΗΓΗΤΗΣ: Τσιαντής

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

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου.

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. ΚΕΦΑΛΑΙΟ 13 Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. Οι υπηρεσίες νέφους παρέχονται με τέτοιο τρόπο ώστε ο τελικός χρήστης δεν μπορεί να διακρίνει τεχνικές λεπτομέρειες. Η χρηστικότητα, η διαθεσιμότητα

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

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

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

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

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress Σταύρος Καουκάκης Χάρης Παπαγιαννάκης Ευτύχης Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

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

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

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

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

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

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων -Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a) Create

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας

Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας ΓΙΑ ΜΙΑ ΑΝΟΙKΤΗ ΕΠΙΧΕΙΡΗΣΗ Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας Web & Mobile apps Για µια ανοικτή επιχείρηση Σήµερα περισσότερο από ποτέ, µια επιχείρηση που θέλει να ανοίξει νέους δρόµους ανάπτυξης

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

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

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

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου Wordpress & Κοινωνικά Δίκτυα (Part 1) Σταύρος Καουκάκης Ευτύχιος Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα Διαχείρισης

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

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

Έκδοσης 2005 Π. Κεντερλής Σύστημα «Ηλέκτρα» Το Σύστημα «Ηλέκτρα» αποτελεί μια ολοκληρωμένη διαδικτυακή εφαρμογή διαχείρισης πληροφοριών μαθημάτων και χρηστών. Αναπτύχθηκε εξολοκλήρου από τον εργαστηριακό συνεργάτη Παναγιώτη Κεντερλή

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

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών Η LINK Technologies Α.Ε. ιδρύθηκε το 2002 με στόχο να καταστεί πυρήνας καινοτομικών λύσεων Τηλεματικής αναβαθμίζοντας καθημερινά

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

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

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

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

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

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

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