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

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

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

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Π.Μ.Σ. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΕΥΘΥΝΣΗ ΔΙΚΤΥΟΚΕΝΤΡΙΚΑ ΣΥΣΤΗΜΑΤΑ Ανάλυση, Σχεδιασμός και Ανάπτυξη Ηλεκτρονικής Υπηρεσίας ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Χαϊντίνη Ασημίνας Επιβλέπων: Μ. Θεμιστοκλέους Επίκουρος Καθηγητής Πειραιάς, 2011

2 - 1 -

3 ... ΧΑΪΝΤΙΝΗ ΑΣΗΜΙΝΑ Διπλωματούχος Π.Μ.Σ. Διδακτική της Τεχνολογίας και Ψηφιακά Συστήματα Πανεπιστημίου Πειραιώς Copyright Χαϊντίνη Ασημίνα, 2011 Με επιφύλαξη παντός δικαιώματος. All rights reserved Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου τμήματος αυτής, για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Ερωτήματα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προς τον συγγραφέα. Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν τον συγγραφέα και δεν πρέπει να ερμηνευθεί ότι αντιπροσωπεύουν τις επίσημες θέσεις του Πανεπιστημίου Πειραιώς

4 Πρόλογος Η διπλωματική εργασία που τεκμηριώνεται στο παρόν έγγραφο έχει ως αντικείμενο τη σχεδίαση, ανάπτυξη και ολοκλήρωση ενός πληροφοριακού συστήματος με χρήση ηλεκτρονικών υπηρεσιών (web services). Ολοκληρώνοντας τη διπλωματική εργασία, θα ήθελα να ευχαριστήσω θερμά τον κ. Μαρίνο Θεμιστοκλέους, επιβλέποντα καθηγητή, για την ανάθεση της εργασίας και τη συνεχή του επίβλεψη. Επίσης θα ήθελα να ευχαριστήσω τους συναδέλφους μου Γεώργιο Λαμπράκη, Βαγγέλη Μαρκέτη, Χρήστο Μπούρα και Σοφία Αναγνωστοπούλου καθώς και τον προϊστάμενό μου Αντώνη Αλεξάκη. Τέλος, νιώθω την ανάγκη να ευχαριστήσω την οικογένειά μου και τους φίλους μου για τη στήριξη και τη συμπαράστασή τους τόσο στη διάρκεια εκπόνησης της διπλωματικής εργασίας όσο και γενικότερα καθ όλη τη διάρκεια των σπουδών μου. Δεκέμβριος 2011 Χαϊντίνη Ασημίνα - 3 -

5 Περιεχόμενα Κεφάλαιο 1. Εισαγωγή Αντικείμενο της Διπλωματικής Πως προέκυψε η ανάγκη δημιουργίας αυτού του συστήματος; Θεσμικό Πλαίσιο Ιστορικό Ελέγχων Σκοπός και Αντικειμενικοί Στόχοι Λειτουργικές Περιοχές - Υποσυστήματα Πρώτη Λειτουργική Περιοχή Δεύτερη Λειτουργική Περιοχή Σχεδιαζόμενες Επεκτάσεις Δομή εργασίας Κεφάλαιο 2. Ανασκόπηση Βιβλιογραφίας Διαδικτυακές Υπηρεσίες (Web Services) Πλεονεκτήματα των Web Services Υπηρεσιοστρεφής Αρχιτεκτονική (Service Oriented Architecture XML (extensible Markup Language) Ορθότητα XML εγγράφου Ετικέτες - Tags Μεταβλητές Ιδιοτήτων - Attributes XML - Namespaces XML - Shema XML Parsers (λεκτικοί αναλυτές XML) SOAP (Simple Object Access Protocol) SOAP over HTTP SOAP Exceptions and Errors SOAP Extensions SOAP Versioning Χειρισμός λαθών (Error Handling) REST (Representational State Transfer) WSDL (Web Services Description Language) UDDI (Universal Description, Discovery and Integration) Κεφάλαιο 3. Ερευνητική Μεθοδολογία Ποιοτική Έρευνα Πλεονεκτήματα και μειονεκτήματα ποιοτικής έρευνας Τύποι ποιοτικής έρευνας Έρευνα Δράσης (Action Research) Στόχοι της Έρευνας Δράσης Τα βασικά χαρακτηριστικά της Έρευνας Δράσης Μεθοδολογία Πότε χρησιμοποιείται η Έρευνα Δράσης; Κεφάλαιο 4. Ανάλυση και Σχεδίαση Εισαγωγή επενδυτικού σχεδίου Δομή βάσης δεδομένων Κεφάλαιο 5. Εργαλεία Υλοποίησης Spring Τα module της Spring Java EE Connector API (JCA) Dependency Injection (DI)

6 Aspect Oriented Programming Model View - Controller Apache Axis Τα γενικά χαρακτηριστικά του AXIS Tomcat Apache HTTP Server ZK Framework Η αρχιτεκτονική του ZK Η γλώσσα σήμανσης ZUML Τα Components του ZK και ο χειρισμός γεγονότων Ant Κεφάλαιο 6. Λεπτομέρειες Υλοποίησης Υλοποίηση Web Forms Υλοποίηση του στρώματος Μοντέλου (View Layer) Αντικείμενα μεταφοράς δεδομένων (DTO) Αντικείμενα πρόσβασης δεδομένων (DAO) Διαχειριστής (Manager) Υλοποίηση του στρώματος της Προβολής (View Layer) Υλοποίηση του στρώματος Ελεγκτή (Controller Layer) Υλοποίηση Web Service Μέθοδος checkaccumulation Μέθοδος insertiplan Ασφάλεια Συστήματος Κεφάλαιο 7. Σενάριο χρήσης εφαρμογής Κεφάλαιο 8. Επίλογος Σύνοψη και συμπεράσματα Μελλοντικές Επεκτάσεις Βιβλιογραφία Ιστότοποι Κεφάλαιο 9. Ευρετήριο Όρων Κεφάλαιο 10. Παράρτημα AccumulationService.wsdl InsertIPlan.xsd Request CheckAccumulation.xml Request InsertIPlan.xml CompanyDaoImpl.java CompanyController.java CompanyDaoImpl.java panelcompany.zul

7 Κεφάλαιο 1. Εισαγωγή Η παρούσα εργασία αποτελεί την τεκμηρίωση της σχεδίασης και της ανάπτυξης ενός πληροφοριακού συστήματος το οποίο αυτοματοποιεί την διαδικασία ελέγχου σώρευσης. Στο εισαγωγικό αυτό κεφάλαιο παρουσιάζεται η γνωστική περιοχή και το θέμα στο οποίο στηρίζεται η διπλωματική εργασία, καθώς και η οργάνωση του τόμου σε κεφάλαια Αντικείμενο της Διπλωματικής Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι o σχεδιασμός και η ανάπτυξη μιας εφαρμογής την οποία θα μπορεί να χρησιμοποιήσει ο χρήστης μέσω κάποιων ηλεκτρονικών σελίδων στο διαδίκτυο (web forms) ή μέσω ηλεκτρονικών υπηρεσιών (web services). Σκοπός είναι η εφαρμογή του θεωρητικού υπόβαθρου ώστε να υλοποιηθεί ένα πληροφοριακό σύστημα από την αρχή, με τον βέλτιστο τρόπο και η ανάπτυξη web services με τα οποία θα γίνεται εισαγωγή στοιχείων σε μια βάση δεδομένων, εφόσον ικανοποιούνται κάποιοι έλεγχοι. Με τον όρο Web Service εννοούμε μια υπηρεσία, η οποία βρίσκεται σε έναν διακομιστή Web και την οποία μπορεί να χρησιμοποιήσει ο οποιοσδήποτε έχει πρόσβαση σε αυτόν. Το μόνο που χρειάζεται για να χρησιμοποιήσουμε την υπηρεσία είναι να ξέρουμε τον τρόπο κλήσης και τη μορφή των μεταβλητών που απαιτούνται και να μπορούμε να επικοινωνήσουμε με τέτοιο τρόπο, ώστε η υπηρεσία να καταλάβει την κλήση μας και να επιστρέψει ένα κατανοητό, για εμάς, αποτέλεσμα. Η προσπάθειά μας τέλος επικεντρώθηκε στο να υλοποιήσουμε ένα αυτοματοποιημένο και πλήρες σύστημα, το οποίο θα παρέχει όσο το δυνατό πιο εύχρηστες και λειτουργικές υπηρεσίες Πως προέκυψε η ανάγκη δημιουργίας αυτού του συστήματος; Σύμφωνα με τη συνθήκη της Ευρωπαϊκής Ένωσης και το κανονιστικό πλαίσιο εξειδίκευσης, όπως αυτό διαμορφώνεται από τους σχετικούς κανονισμούς και τις κατευθυντήριες γραμμές της Ευρωπαϊκής Επιτροπής, τα Κράτη-Μέλη υπόκεινται σε περιορισμούς όσον αφορά στη χορήγηση κρατικών ενισχύσεων ώστε να διασφαλίζεται ότι δε δημιουργούν στρέβλωση του ανταγωνισμού. Ειδική κατηγορία περιορισμών, που διέπει το σύνολο του κανονιστικού πλαισίου κρατικών ενισχύσεων είναι οι μέγιστες εντάσεις και τα ανώτατα ποσά των κρατικών ενισχύσεων που μπορούν κατά περίπτωση να χορηγούνται από τα κράτη μέλη. Η ιδιαιτερότητα στη διαχείριση των περιορισμών αυτών έγκειται στο γεγονός ότι η τήρηση των ανώτατων κατά περίπτωση ορίων, δεν μπορεί να διασφαλισθεί μεμονωμένα στο πλαίσιο κάθε καθεστώτος αλλά πρέπει να λαμβάνεται υπόψη σωρευτικά το συνολικό ποσό των δημόσιων μέτρων στήριξης ανεξάρτητα από το αν η στήριξη χρηματοδοτείται από τοπικές, περιφερειακές, εθνικές ή κοινοτικές πηγές. Ειδικότερα, για τις ενισχύσεις ήσσονος σημασίας ο κανονισμός (ΕΕ) 1998/06-De minimis, ορίζει ότι τα κράτη μέλη οφείλουν να εξασφαλίζουν ότι το συνολικό ποσό - 6 -

8 ενισχύσεων ήσσονος σημασίας που χορηγείται βάσει του κανόνα για τις ενισχύσεις ήσσονος σημασίας στην ίδια οικονομική μονάδα, δεν υπερβαίνει το ανώτατο όριο των ευρώ σε περίοδο τριών οικονομικών ετών ( για τον τομέα των μεταφορών). Επιπλέον, η ανακοίνωση της ΕΕ «προσωρινό κοινοτικό πλαίσιο για τη λήψη μέτρων κρατικής ενίσχυσης με σκοπό να στηριχθεί η πρόσβαση στη χρηματοδότηση κατά τη διάρκεια της τρέχουσας χρηματοπιστωτικής και οικονομικής κρίσης» (2009/C 83/01), αύξησε το ανώτατο όριο de minimis ενισχύσεων σε ευρώ για τα έτη Την περίοδο , η Ελλάδα ενισχύεται με σημαντικούς πόρους από τα διαρθρωτικά ταμεία της Ευρωπαϊκής Ένωσης στα πλαίσια της Ευρωπαϊκής Περιφερειακής Πολιτικής. Οι πόροι αυτοί δημιουργούν τις προϋποθέσεις για υψηλότερη μακροπρόθεσμη ανάπτυξη, οδηγούν σε πραγματική σύγκλιση με τις υπόλοιπες οικονομίες των κρατών μελών και συμβάλουν στην αντιμετώπιση των βασικών ελλείψεων της οικονομικής και κοινωνικής ζωής, κυρίως στους τομείς των υποδομών, της ανάπτυξης των ανθρώπινων πόρων και της παραγωγικότητας. Η στήριξη που παρέχει στην Ελλάδα η Ευρωπαϊκή Ένωση πραγματοποιείται μέσω α) του Κοινοτικού Πλαισίου Στήριξης β) των Κοινοτικών Πρωτοβουλιών και γ) του Ταμείου Συνοχής. Στο πλαίσιο του Γ ΚΠΣ χορηγήθηκαν ενισχύσεις de minimis σε μικρές και μεσαίες επιχειρήσεις όλων των τομέων. Σε συμμόρφωση προς την απαίτηση του κανονισμού σχετικά με τη σώρευση, οι οδηγοί εφαρμογής των προγραμμάτων για την χορήγηση αυτών των ενισχύσεων προέβλεπαν την υποβολή σχετικής υπεύθυνης δήλωσης βεβαίωσης από τον δικαιούχο της ενίσχυσης σχετικά με τις de minimis ενισχύσεις που έχει λάβει την προηγούμενη τριετία. Στο πλαίσιο της διαχειριστικής τακτοποίησης για το κλείσιμο των επιχειρησιακών προγραμμάτων διενεργήθηκαν στην συγκεκριμένη φάση απολογιστικά διοικητικοί διασταυρωτικοί έλεγχοι σχετικά με τη σώρευση των ενισχύσεων de minimis, βάση των πληροφοριών που είναι καταχωρημένες στο ΟΠΣ ΚΠΣ, σε συνδυασμό με στοιχεία που συλλέχθηκαν σχετικά με τις μη συγχρηματοδοτούμενες ενισχύσεις που δεν καταχωρούνται στο ΟΠΣ. Τα αποτελέσματα αυτής της διαδικασίας έδειξαν ότι εκατοντάδες επιχειρήσεις είχαν υπερβεί το ανώτατο όριο χρηματοδότησης που τους αναλογούσε. Στόχος αυτής της διπλωματικής εργασίας είναι η ανάπτυξη ενός πληροφοριακού συστήματος το οποίο θα υποστηρίζει τη διαδικασία ελέγχου σώρευσης ΑΦΜ σε επίπεδο ΑΦΜ Επιχείρησης κι ΑΦΜ μετόχων Επιχείρησης, σε συνεργαζόμενες και συνδεδεμένες επιχειρήσεις. Η υλοποίηση της παρούσας εργασίας θεωρείται η πρώτη φάση ανάπτυξης ενός συστήματος που με μελλοντικές αναβαθμίσεις θα περιλαμβάνει ακόμα περισσότερα χαρακτηριστικά. Οι βασικές εργασίες για την ολοκλήρωση της εργασίας είναι: Επίπεδο 1: online έλεγχος κατά την στιγμή έγκρισης της Κρατικής Ενίσχυσης Επίπεδο 2: Επικαιροποίηση του ποσού της Δημόσιας Δαπάνης κατά την ολοκλήρωση της επένδυσης Επίπεδο 3: Απολογιστικός (ex post) έλεγχος

9 Τα κύρια παραδοτέα της εργασίας είναι: Η σχεσιακή βάση δεδομένων Ο κώδικας της διαδικτυακής εφαρμογής και των ηλεκτρονικών υπηρεσιών Οδηγός χρήσης συστήματος Τα εργαλεία στα οποία βασίστηκε η υλοποίηση ήταν ο Tomcat ως server, η Οracle Database 11g ως Σύστημα Διαχείρισης Βάσεων Δεδομένων (DBMS) και η γλώσσα προγραμματισμού JAVA ως πλατφόρμα υλοποίησης σε συνδυασμό με Spring Framework και ZK σελίδες Θεσμικό Πλαίσιο Το 1992, η Ευρωπαϊκή Επιτροπή ζήτησε να της ανακοινώνονται ενισχύσεις μεγαλύτερες των ευρώ (στην ίδια επιχείρηση, μέσα σε 3 έτη). Επειδή το 1992 δεν υπήρχε πρόβλεψη για ελέγχους σώρευσης επενδύσεων, η διαδικασία εύρεσης των απαιτούμενων στοιχείων ήταν δύσκολο να πραγματοποιηθεί O κανόνας de minimis εισήχθη το 1992 και αφορά στην πολιτική της Ευρωπαϊκής Επιτροπής για τις κρατικές ενισχύσεις των μικρομεσαίων επιχειρήσεων. Συγκεκριμένα, ενισχύσεις μεγαλύτερες των ΕΥΡΩ, μέσα σε χρονικό διάστημα μιας τριετίας, ανά επιχείρηση, έπρεπε να ανακοινώνονται στην Επιτροπή για λόγους ελέγχου της τήρησης των κανόνων του ανταγωνισμού. Μερικά χρόνια αργότερα, ο κανονισμός ανανεώνεται, διπλασιάζοντας το ανώτατο όριο από ευρώ σε και συμπεριλαμβάνοντας περισσότερες περιπτώσεις που θα έπρεπε να αναφερθούν Ένας νέος κανονισμός (ΕΚ 1998/2006) ενημερώνει τον κανόνα de minimis, με διπλασιασμό ιδίως του ανώτατου ορίου του και διεύρυνση του πεδίου εφαρμογής του. Ο νέος κανονισμός de minimis εγγράφεται, εξάλλου, στο πλαίσιο του σχεδίου δράσης της Επιτροπής για τις κρατικές ενισχύσεις και συμπληρώνει τις κατευθυντήριες γραμμές για το επιχειρηματικό κεφάλαιο και την πλαισίωση των ενισχύσεων στην έρευνα, στην ανάπτυξη και στην καινοτομία Ιστορικό Ελέγχων Η ανάγκη για έλεγχο της σώρευσης de minimis ξεκίνησε ουσιαστικά από την Τρίτη Προγραμματική Περίοδο, δηλαδή από το Γ ΚΠΣ. Τότε έγιναν επιτακτικές οι απαιτήσεις από την Επιτροπή. Αρχικά ενεργοποιήθηκε η Διαχειριστική Αρχή του Επιχειρησιακού Προγράμματος (ΕΠ) της Ανταγωνιστικότητας. Το ΕΠ - 8 -

10 Ανταγωνιστικότητας ήταν και το κατεξοχήν υπεύθυνο για κρατικές ενισχύσεις σε ιδιωτικές εταιρίες. Η διαδικασία συλλογής και ελέγχου των δεδομένων πραγματοποιήθηκε σε 2 φάσεις οι οποίες περιγράφονται παρακάτω και έδωσαν το έναυσμα για την δημιουργία μίας εφαρμογής ελέγχου σώρευσης σε ευρύτερο επίπεδο που θα ελέγχει απολογιστικά όλες τις δράσεις που εμπίπτουν στα καθεστώτα De minimis, ή/και σε άλλα καθεστώτα ενίσχυσης. Πρώτο Βήμα: Έλεγχος δεδομένων για επιχειρήσεις που ενισχύθηκαν με βάση τον κανονισμό 69/2001 (De minimis) Τον Φεβρουάριο του 2008 αποφασίστηκε να γίνουν οι πρώτοι έλεγχοι, κάνοντας χρήση των στοιχείων που ήταν καταχωρημένα στο Ολοκληρωμένο Πληροφοριακό Σύστημα του Υπουργείου Οικονομικών (ΟΠΣ). Στόχος ήταν να διασταυρωθούν τα στοιχεία που αφορούν σε ενισχύσεις de minimis που χορηγήθηκαν από το Επιχειρησιακό Πρόγραμμα «Ανταγωνιστικότητα». Για το εγχείρημα αυτό, επειδή στο ΟΠΣ δεν ήταν καταχωρημένες όλες οι απαιτούμενες πληροφορίες για την παρακολούθηση της σώρευσης των ενισχύσεων αυτών, η Διαχειριστική Αρχή του ΕΠ «Ανταγωνιστικότητα» χρειάστηκε να προβεί σε υποστηρικτικές ενέργειες καταγραφής επιπλέον πληροφοριών, που αντλήθηκαν από τους φακέλους των συγκεκριμένων επενδύσεων για τις οποίες υπήρχαν ενδείξεις ότι μπορεί να υπάρχει πρόβλημα. Τα στοιχεία αυτά διασταυρώθηκαν με τα στοιχεία του ΟΠΣ για ενισχύσεις που έχουν χορηγηθεί στο πλαίσιο των λοιπών προγραμμάτων του Γ ΚΠΣ. Τα ευρήματα της διαδικασίας αυτής ήταν: Επιχειρήσεις (ΑΦΜ) του Επιχειρησιακού Προγράμματος «Ανταγωνιστικότητα» με υπέρβαση De minimis η οποία δημιουργήθηκε από τελική ενίσχυση υπέρβασης σε έργα αυτού του Επιχειρησιακού Προγράμματος. Τα 27 αυτά ΑΦΜ αντιστοιχούσαν σε 28 υποέργα τα οποία είχαν συνολικά ,96 δημόσια δαπάνη. 2. Αντίστοιχα εντοπίστηκαν 13 περιπτώσεις επιχειρήσεων (ΑΦΜ) με υπέρβαση De minimis, η οποία δημιουργήθηκε σε άλλο επιχειρησιακό πρόγραμμα (Κοινωνία της Πληροφορίας). Αυτά αφορούσαν 13 υποέργα του επιχειρησιακού προγράμματος Κοινωνία της Πληροφορίας. Δεύτερο Βήμα: Έλεγχος δεδομένων για επιχειρήσεις που ενισχύθηκαν με βάση τον κανονισμό 69/2001 και τον κανονισμό 1998/2006 Στην δεύτερη φάση του ελέγχου που διεξήγαγε η Διαχειριστική Αρχή του Επιχειρησιακού Προγράμματος «Ανταγωνιστικότητα» στα στοιχεία των κρατικών ενισχύσεων που την αφορούν, χρησιμοποίησε τα παρακάτω: Δεδομένα όλων των Επιχειρησιακών Προγραμμάτων του Γ ΚΠΣ και του ΕΣΠΑ, όπως αυτά έχουν καταχωρηθεί στο ΟΠΣ. Δεδομένα που χορηγήθηκαν από το ΤΕΜΠΜΕ και καταχωρήθηκαν σε ειδική βάση δεδομένων. Δεδομένα που είχαν καταγραφεί κατά το Πρώτο Βήμα ελέγχου. Επιπλέον δεδομένα που αναζητήθηκαν ανά περίπτωση

11 Ο στόχος του ελέγχου ήταν να εντοπιστούν και να διορθωθούν πιθανά προβλήματα υπέρβασης του συνολικού ορίου των δημόσιας δαπάνης υπαγωγής που προβλέπεται 1 για τριετία από τον κανονισμό 69/2001 και του συνολικού ορίου των που προβλέπεται 2 από τον κανονισμό 1998/2006. Εξαιρέθηκαν φορείς που είναι Δημόσιο ή Ευρύτερος Δημόσιος Τομέας, Ιδρύματα και άλλες τέτοιες περιπτώσεις. Τα ευρήματα της διαδικασίας αυτής ήταν: 1. 7 Επιχειρήσεις (ΑΦΜ) του Επιχειρησιακού Προγράμματος «Ανταγωνιστικότητα» με υπέρβαση De minimis Επιχειρήσεις (ΑΦΜ) του Επιχειρησιακού Προγράμματος «Κοινωνίας της Πληροφορίας». Τα βήματα βάση των οποίων έγινε ο έλεγχος είναι τα εξής: 1. Δημιουργία βάσης δεδομένων με όλες τις πληρωμές κρατικών ενισχύσεων που υπάγονταν στα δύο συγκεκριμένα καθεστώτα ενισχύσεων οι οποίες αντλήθηκαν από το ΟΠΣ. 2. Αποστολή των στοιχείων στους φορείς. Εκεί διορθώθηκαν (παρουσίαζαν αρκετά λάθη) και ομογενοποιήθηκαν σε ένα ενιαίο format στην λογική δομή της βάσης δεδομένων και εν συνεχεία εισαγωγή σε αυτήν. 3. Υλοποίηση πληροφοριακού συστήματος για την συγκέντρωση, τήρηση, επεξεργασία, έλεγχο, εξαγωγή και παρουσίαση των δεδομένων. Πάνω σε υποσυστήματα του συστήματος αυτού, βασίστηκε και η παρούσα Διπλωματική Εργασία. 4. Εκτέλεση έλεγχου σώρευσης για τα ΑΦΜ των επιχειρήσεων που έχουν χρηματοδοτηθεί με βάση το καθεστώς ΕΚ 69/2001 με βάση την ημερομηνία έγκρισης και τις πληρωμές. Εξαγωγή αναφορών με τα αποτελέσματα αυτών που ξεπερνούν το όριο των στην τριετία. 5. Εκτέλεση ελέγχου σώρευσης για τα ΑΦΜ των επιχειρήσεων που έχουν χρηματοδοτηθεί με βάση το καθεστώς EK 1998/2006 με βάση την ημερομηνία έγκρισης και τις πληρωμές. Εξαγωγή αρχείου με αυτές που ξεπερνούν το όριο των στην τριετία. 1 Η έναρξη και η λήξη της τριετίας για κανονισμό 69/2001 ταυτοποιούνται με τις ημερομηνίες των Υπουργικών Αποφάσεων υπαγωγής οι οποίες παρέχουν την ενίσχυση. Παραβίαση του κανόνα συμβαίνει, όταν χορηγείται η τελευταία ενίσχυση με την οποία γίνεται η υπέρβαση των αθροίζοντας τις χορηγηθείσες ενισχύσεις σε ημερολογιακό διάστημα των 3 προηγούμενων ετών από την τελευταία υπαγωγή. 2 Αναφορικά με τον κανονισμό 1998/2006 ο έλεγχος πραγματοποιείται με βάση τα 3 τελευταία οικονομικά έτη (δηλαδή του τρέχοντος έτους έγκρισης-υπαγωγής της ενίσχυσης και των 2 προηγούμενων ετών)

12 1.5. Σκοπός και Αντικειμενικοί Στόχοι Βάσει των παραπάνω απαιτείται η ύπαρξη πληροφοριακού συστήματος για την τήρηση και τον έλεγχο των δεδομένων. Οι αντικειμενικοί στόχοι της παρούσας εργασίας είναι οι εξής: Μελέτη και εφαρμογή θεωρητικού υπόβαθρου Σχεδίαση και υλοποίηση πληροφοριακού συστήματος Ικανοποίηση των απαιτήσεων και προδιαγραφών Στόχος του συστήματος είναι η επαλήθευση της νομιμότητας των αντίστοιχων δαπανών των ενισχύσεων σύμφωνα με τους κοινοτικούς και εθνικούς κανόνες και την αρχή της χρηστής δημοσιονομικής διαχείρισης. Η εν λόγω εφαρμογή δίνει τη δυνατότητα on line ελέγχου κάθε επενδυτικής πρότασης και αναφοράς του de minimis ποσού που δικαιούται η επιχείρηση πριν την έγκριση. Δημιουργείται μοναδικός αριθμός σώρευσης για κάθε επενδυτική πρόταση, που θα πιστοποιεί ότι έχει περάσει από τον έλεγχο σώρευσης, καθώς καμία πρόταση δεν θα εγκρίνεται αν δεν φέρει αυτόν τον αριθμό. Η χρησιμοποίηση του μοναδιαίου κωδικού «θωρακίζεται» θεσμικά προκειμένου να μην είναι δυνατή η παροχή κρατικής ενίσχυσης, χωρίς να έχει γίνει ο έλεγχος από το Σύστημα Σώρευσης. Κατά την ολοκλήρωση της επένδυσης θα γίνεται η επικαιροποίηση με βάση το ποσό της ενίσχυσης που τελικά χορηγήθηκε. Η ενημέρωση του Συστήματος είναι υποχρέωση του Φορέα που χορηγεί τις εν λόγω ενισχύσεις. Επιπλέον υπάρχει η δυνατότητα εκ των υστέρων ελέγχων ώστε να καλύπτεται οποιαδήποτε τυχόν καθυστέρηση στην εισαγωγή των δεδομένων στο σύστημα σώρευσης. Οι χρήστες στους οποίους απευθύνεται το σύστημα θα είναι οι φορείς που χορηγούν κρατικές ενισχύσεις (δεν θα έχει πρόσβαση το ευρύ κοινό). Στο σύστημα θα εισαχθούν αναδρομικά όλα τα διαθέσιμα στοιχεία που είναι απαραίτητα για τον έλεγχο της σώρευσης για το ΕΣΠΑ. Το σύστημα ελέγχει τη σώρευση ανά ΑΦΜ λαμβάνοντας υπόψη και τις κατά δήλωση συνδεδεμένες και με κοινό έλεγχο επιχειρήσεις και τηρεί στοιχεία μέχρι 1ου βαθμού μετοχικής σύνθεσης (πάνω από ένα ποσοστό που θα ορίζεται παραμετρικά). Επίσης τηρούνται στοιχεία συνδεδεμένων επιχειρήσεων και των ασκούντων τον έλεγχο (με βάση το ΑΦΜ της επιχείρησης που υποβάλει την επενδυτική πρόταση). Τα παραπάνω στοιχεία υποβάλλονται ανά επιχείρηση με την αίτηση για λήψη Κρατικής Ενίσχυσης καλύπτοντας όλους τους φορείς που χορηγούν Κρατικές Ενισχύσεις: Φορείς που έχουν δικό τους Πληροφοριακό Σύστημα (ΠΣ) Φορείς που δεν έχουν δικό τους Πληροφοριακό Σύστημα (ΠΣ)

13 Λειτουργικές Περιοχές - Υποσυστήματα Το σύστημα αποτελείται από δύο λειτουργικές περιοχές έτσι ώστε να καλύψει τους φορείς που έχουν δικό τους ΠΣ αλλά και αυτούς που δεν έχουν οι οποίες περιγράφονται στις επόμενες παραγράφους Πρώτη Λειτουργική Περιοχή Η πρώτη Λειτουργική Περιοχή του συστήματος αφορά σε φορείς με δικά τους πληροφοριακά συστήματα. Θα αναπτυχθεί σειρά αυτομάτων διεπαφών (web services): Έλεγχος ΑΦΜ, για το ποσόν που μπορεί να απορροφήσει Online έλεγχος την στιγμή τις έγκρισης Σε περίπτωση που δικαιούται μικρότερο ποσό από το ζητούμενο, απάντηση με το ποσό αυτό σε αυτή την περίπτωση θα δίνεται και πληροφόρηση για τον λόγο (πχ κάποιος μέτοχος έχει υπερβεί το όριο) Προσδιορισμός της έγκρισης της Κρατικής Ενίσχυσης με μοναδιαίο κωδικό Ενημέρωση της κατάστασης της Κρατικής Ενίσχυσης στο σύστημα σε περίπτωση αλλαγών Περάτωση της Κρατικής Ενίσχυσης στο σύστημα Η ενημέρωση του Πληροφοριακού Συστήματος Σώρευσης είναι υποχρέωση του Φορέα που παρέχει τις Κρατικές Ενισχύσεις Δεύτερη Λειτουργική Περιοχή Η δεύτερη Λειτουργική Περιοχή του συστήματος αφορά σε φορείς που δεν διαθέτουν Πληροφοριακό Σύστημα ή/και δεν θα μπορούν να στείλουν δεδομένα μέσω διαδικτυακών διεπαφών (web services). Για τους χρήστες αυτούς θα αναπτυχθεί διαδικτυακή εφαρμογή για να παρέχονται οι ίδιες δυνατότητες όπως και στην 1 η Λειτουργική Περιοχή αλλά αυτή τη φορά μέσω web forms. Ο φορέας καταχωρεί τις απαραίτητες πληροφορίες (όπως στην 1η ΛΠ) και το σύστημα θα ανταποκρίνεται με τις ίδιες πληροφορίες (όπως και στην 1η ΛΠ) Σχεδιαζόμενες Επεκτάσεις Οι διαδικτυακές υπηρεσίες που παρουσιάζονται στην παρούσα εργασία, καλύπτουν ένα μόνο τμήμα των υφιστάμενων απαιτήσεων της ΕΕ, της χώρας και των χρηστών που διαχειρίζονται και χρησιμοποιούν τα προγράμματα αυτά. Στο πλαίσιο αυτό, προγραμματίζονται και σχεδιάζονται οι παρακάτω επεκτάσεις του συστήματος: 1. Επέκταση του συστήματος για την κάλυψη περισσοτέρων επενδυτικών καθεστώτων σώρευσης. 2. Υλοποίηση διαδικτυακών υπηρεσιών για την εξυπηρέτηση εξωτερικών πληροφοριακών συστημάτων. Στόχος είναι η παροχή πληροφόρησης και/ή έγκρισης

14 3. Κάλυψη υπηρεσιών/δεδομένων με ψηφιακή υπογραφή. Η σειρά με την οποία παρουσιάζονται οι παραπάνω σχεδιαζόμενες επεκτάσεις είναι τυχαία, κι όχι ενδεικτική της σειράς με την οποία θα υλοποιηθούν Δομή εργασίας Η παρούσα εργασία αποτελείται από 10 κεφάλαια. Στις ενότητες των κεφαλαίων αυτών παρουσιάζεται ουσιαστικά με αναλυτικό τρόπο η διαδικασία ανάπτυξης της εφαρμογής που περιγράφηκε στην προηγούμενη ενότητα. Το κεφάλαιο 2 έχει τίτλο «Ανασκόπηση Βιβλιογραφίας» και τοποθετεί το θέμα ως προς την επιστημονική περιοχή στην οποία ανήκει. Το κεφάλαιο 3 έχει τίτλο «Ερευνητική Μεθοδολογία» και παρουσιάζει τη μέθοδο έρευνας που χρησιμοποιήθηκε στην παρούσα εργασία. Το κεφάλαιο 4 έχει τίτλο «Ανάλυση και Σχεδίαση» και μας παρουσιάζει αναλυτικά τη δομή του συστήματος, τις λειτουργίες του και τη σχεδίαση της βάσης δεδομένων. Το κεφάλαιο 5 έχει τίτλο «Εργαλεία Υλοποίησης» και παρουσιάζει τα εργαλεία που χρησιμοποιήθηκαν για την υλοποίηση της εργασίας. Το κεφάλαιο 6 έχει τίτλο «Λεπτομέρειες Υλοποίησης» και παρουσιάζει τα δύο τμήματα από τα οποία αποτελείται η εργασία (Web Forms & Web Services) και τον τρόπο υλοποίησης τους. Το κεφάλαιο 7 έχει τίτλο «Σενάριο Χρήσης Εφαρμογής» και περιλαμβάνει ένα παράδειγμα χρήσης του συστήματος. Το κεφάλαιο 8 έχει τίτλο «Επίλογος» και περιλαμβάνει τη σύνοψη της διπλωματικής εργασίας καθώς και τα συμπεράσματα που εξήχθησαν με την ολοκλήρωσή της. Επιπλέον γίνεται λόγος στις μελλοντικές επεκτάσεις που η παρούσα εργασία επιδέχεται. Έπειτα ακολουθούν τα κεφάλαια της Βιβλιογραφίας και των Ιστότοπων. Το κεφάλαιο 9 έχει τίτλο «Ευρετήριο Όρων» και παρέχει επεξηγήσεις για τους όρους που χρησιμοποιήθηκαν στην εργασία. Το κεφάλαιο 10 έχει τίτλο «Παράρτημα» όπου δίνονται τα στοιχεία που συμπληρώνουν το κεφάλαιο 6 όσον αφορά την υλοποίηση του συστήματος

15 Κεφάλαιο 2. Ανασκόπηση Βιβλιογραφίας Στο κεφάλαιο αυτό παρουσιάζεται το θεωρητικό υπόβαθρο για την υλοποίηση μιας Διαδικτυακής υπηρεσίας με την ανάλυση των τεχνολογιών και των προτύπων που απαιτούνται. Στη συνέχεια, δίνεται η γενική περιγραφή του προς ανάπτυξη συστήματος και προσδιορίζονται οι στόχοι αυτού Διαδικτυακές Υπηρεσίες (Web Services) Οι Διαδικτυακές Υπηρεσίες αποτελούν τεχνολογία αιχμής στο χώρο του λογισμικού και της ολοκλήρωσης συστημάτων και εφαρμογών (System Application Integration) και συνεχώς όλο και περισσότεροι οργανισμοί παγκοσμίως ασχολούνται ενεργά με την τεχνολογία αυτή. Τα Web Services παρέχουν ένα τυποποιημένο τρόπο αλληλεπίδρασης μεταξύ διαφορετικών εφαρμογών λογισμικού, ανεξάρτητα από την πλατφόρμα και το πλαίσιο εργασίας (framework), στα οποία έχουν υλοποιηθεί, και χωρίς να απαιτούν καμία αλλαγή στον μηχανισμό του συστήματος. Για το σκοπό αυτό, χρησιμοποιούν ανοικτά πρότυπα και ευρέως διαδεδομένα πρωτόκολλα, όπως XML (extensible Markup Language), SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language), HTTP (HyperText Transfer Protocol), SMTP (Simple Mail Transport Protocol) ή FTP (File Transfer Protocol). Οι πληροφορίες που αφορούν τις διαδικτυακές υπηρεσίες δημοσιεύονται, οπότε η εύρεση και η χρήση τους γίνονται ταχύτατα, ενώ μπορούν να δημιουργηθούν και να ανανεωθούν με εύκολο και οικονομικό τρόπο. Με άλλα λόγια, οι διαδικτυακές υπηρεσίες αποτελούν σήμερα το επόμενο βήμα στον αντικειμενοστραφή προγραμματισμό: αντί της ανάπτυξης λογισμικού από ένα μικρό πλήθος βιβλιοθηκών κλάσεων που παρέχονται σε μια θέση, οι προγραμματιστές μπορούν να προσπελάσουν αμέτρητες βιβλιοθήκες μέσω ενός δικτύου υπολογιστών, το οποίο μπορεί να είναι το internet, κάποιο intranet ή οποιασδήποτε άλλης μορφής δίκτυο. Ένας κοινά αποδεκτός ορισμός για τα web services δεν έχει πάντως ακόμη επικρατήσει. Ακολουθεί μια απόπειρα απόδοσης ενός ορισμού η οποία βασίζεται σε σχετικούς ορισμούς που παρέχονται από μεγάλες εταιρείες του χώρου, όπως η IBM και η Microsoft, οργανισμούς όπως ο W3C όπως και απόπειρες από τη βιβλιογραφία: «Ένα web service είναι μια εφαρμογή λογισμικού προσβάσιμη από δίκτυο μέσω τυποποιημένης αποστολής μηνυμάτων σε XML. Ένα Web Service μπορεί να περιγράφεται χρησιμοποιώντας τυποποιημένη περιγραφή σε XML (service description) που παρέχει όλες τις απαραίτητες λεπτομέρειες για αλληλεπίδραση με την υπηρεσία, συμπεριλαμβανομένων της μορφής των μηνυμάτων, των πρωτοκόλλων μεταφοράς και της τοποθεσίας. Επιπλέον μπορεί να είναι δημοσιευμένο σε κάποιο επίσημο οδηγό καταγραφής από όπου και να αναζητείται». Η κλήση της υπηρεσίας γίνεται μέσω κάποιας διεπαφής, η οποία κρύβει τις λεπτομέρειες υλοποίησής της. Έτσι το web service μπορεί να χρησιμοποιείται ανεξάρτητα από την πλατφόρμα υλικού ή λογισμικού στην οποία υλοποιείται και τη γλώσσα προγραμματισμού στην οποία η υπηρεσία είναι γραμμένη. Τα web services είναι προσβάσιμα μέσω ευρέως διαδεδομένων πρωτοκόλλων όπως το ΗΤΤΡ

16 Οι βασισμένες σε web services εφαρμογές είναι συνεπώς υλοποιήσεις χαλαρά συνδεδεμένες, αξιοποιούν την τεχνολογία των components λογισμικού (componentoriented) και είναι διατεχνολογικές (cross-technology). Τα web services μπορούν να χρησιμοποιηθούν αυτόνομα ή σε συνδυασμό με άλλα web services για τις ανάγκες μιας εφαρμογής. Αξίζει να σημειωθεί ότι ο όρος «web» είναι ίσως ατυχής ή περιοριστικός. Τα web services δεν είναι υποχρεωτικό να υπάρχουν μόνο στο διαδίκτυο (web) αλλά σε οποιοδήποτε είδος δικτύου (π.χ. Intranet). Επίσης σημειώνουμε ότι δεν αποτελεί διαδικτυακή υπηρεσία κάθε υπηρεσία που παρέχεται μέσω διαδικτύου, όπως για παράδειγμα η on-line υπηρεσία κράτησης δωματίων που παρέχεται από μια ξενοδοχειακή επιχείρηση μέσω του εξυπηρετητή της εταιρείας στην επίσημη ιστοσελίδα της. Απαραίτητη προϋπόθεση για να θεωρηθεί μια υπηρεσία διαδικτυακή είναι η ύπαρξη μιας εφαρμογής λογισμικού με σταθερή, γνωστή σε όλους διεπαφή, που κρύβει τις λεπτομέρειες υλοποίησης της υπηρεσίας και μέσω της οποίας γίνεται η κλήση της. Για την περίπτωση της ξενοδοχειακής μονάδας, η ύπαρξη μιας διαδικτυακής υπηρεσίας κράτησης δωματίων θα έδινε το δικαίωμα σε όλα τα ενημερωτικά τουριστικά sites, αλλά και συνεργαζόμενες επιχειρήσεις να κλείνουν αυτόματα δωμάτιά της. Μια γενική εικόνα που παρουσιάζει μια διαδικτυακή υπηρεσία και τα πρότυπα που χρησιμοποιούνται για την υλοποίησή της απεικονίζονται στο επόμενο σχήμα : Εικόνα Δομή των Web Services (Πηγή: Μια διαδικτυακή υπηρεσία αποτελείται από πολλές συσχετιζόμενες τεχνολογίες που τοποθετούνται σε διαφορετικό επίπεδο, όπως φαίνεται στο σχήμα Ξεκινώντας από κάτω προς τα πάνω, αναφέρουμε τα πρότυπα που χρησιμοποιούνται και τα αναλύουμε εκτενέστερα στις επόμενες ενότητες. Αρχικά, απαιτείται ένα πρωτόκολλο για μεταφορά πληροφοριών μέσω δικτύου, όπως το HTTP (HyperText Transfer Protocol), το SMTP (Simple Mail Transport Protocol) ή το FTP (File Transfer Protocol). Κάθε κλήση και απόκριση της υπηρεσίας θα πρέπει να «συσκευαστεί» σε ένα μήνυμα SOAP (Simple Object Access Protocol), το οποίο μπορεί να υφίσταται επεξεργασία από κάποιες επεκτάσεις SOAP (SOAP Extensions) πριν αποσταλεί από τον αιτούντα υπηρεσία (request agent) και παραδοθεί στον πάροχο υπηρεσίας (provider agent) και αντίστροφα. Τα μηνύματα που ανταλλάσσονται και ο τρόπος που γίνεται η ανταλλαγή περιγράφονται λεπτομερώς στο αρχείο WSDL (Web Services Description Language)

17 Επόμενο βήμα είναι η ανακάλυψη των υπηρεσιών, για την οποία υπάρχουν τρεις προσεγγίσεις: η ύπαρξη ενός καταλόγου καταγραφής και δημοσίευσης των υπηρεσιών με τη μορφή υπηρεσίας καταγραφής (registry), όπως το UDDI (Universal Description, Definition and Integration) και το DISCO (Microsoft Discovery), που αποτελεί την πιο διαδεδομένη λύση, η ύπαρξη ιστοσελίδων παραπομπής σε υπηρεσίες, τύπου και και η ανακάλυψη υπηρεσιών peer-to-peer, όπου οι υπηρεσίες ανακαλύπτουν η μια την άλλη δυναμικά μέσα σε ένα δίκτυο ομότιμων. Σημειώνουμε ότι τα πρότυπα SOAP, WSDL, UDDI και DISCO έχουν γραφεί σε γλώσσα επισήμανσης XML (extensible Markup Language) και ενδεχομένως υπακούουν σε κάποιο έγγραφο DTD (Document Type Definition) ή XML Schema. Εικόνα Αρχιτεκτονική των Web Services (Πηγή: Πλεονεκτήματα των Web Services Η αρχιτεκτονική των web services παρέχει αρκετά πλεονεκτήματα μερικά από τα οποία αναφέρονται παρακάτω: Διαλειτουργικότητα: Ένα web service παρέχει ανεξαρτησία τόσο από λειτουργικό σύστημα όσο και από το hardware. Οποιοδήποτε πρόγραμμα που συμβαδίζει με αυτή τη τεχνολογία μπορεί πολύ εύκολα να προσπελάσει μία τέτοια υπηρεσία. Ενσωμάτωση: Σε ένα υπάρχον λογισμικό σύστημα που λειτουργεί μέσα στο Internet η δημιουργία ενός web service δεν απαιτεί αλλαγές στον μηχανισμό του συστήματος. Διαθεσιμότητα και δημοσίευση: Οι πληροφορίες για τα web services δημοσιεύονται οπότε η εύρεση και η χρήση τους μπορεί να είναι ταχύτατες

18 Επέκταση: Ένα έτοιμο web service είναι δυνατό να ανανεωθεί με εύκολο τρόπο παρέχοντας έτσι επιπρόσθετες υπηρεσίες στους χρήστες του. Μικρό κόστος δημιουργίας και χρήσης: Εφόσον σε ένα λογισμικό σύστημα υπάρχει ήδη κάποια διαδικασία που χρειάζεται να επεκταθεί σε on-line υπηρεσία, η δημιουργία του web service κοστίζει ελάχιστα. Επίσης το κόστος ενσωμάτωσης ενός web service σε κάποιο website ή σε δικτυακή εφαρμογή είναι πάρα πολύ μικρό. Ακόμα και στις περιπτώσεις που η χρήση κάποιου web service γίνεται με ενοικίαση σίγουρα το συνολικό κόστος της χρήσης είναι αρκετά πιο μικρό από το κόστος δημιουργίας της υπηρεσίας αυτής. Χρήση λογισμικών συστημάτων: Όλα τα λογισμικά συστήματα και ειδικότερα τα websites που χρησιμοποιούν έτοιμες υπηρεσίες γίνονται πιο λειτουργικά και πιο φιλικά αφού παρέχουν περισσότερες υπηρεσίες στους χρήστες Υπηρεσιοστρεφής Αρχιτεκτονική (Service Oriented Architecture Σε επίπεδο σχεδιασμού συστημάτων, η χρήση της τεχνολογίας των web services οδηγεί στην υιοθέτηση της λεγόμενης service-oriented αρχιτεκτονικής Οι βασικοί ρόλοι και λειτουργίες στην αρχιτεκτονική αυτή παρουσιάζονται στο Σχήμα Αρχιτεκτονική γύρω από την υπηρεσία (Πηγή: Από το παραπάνω σχήμα μπορούμε να διακρίνουμε τις οντότητες που απαρτίζουν την τρέχουσα αρχιτεκτονική των υπηρεσιών διαδικτύου. Αυτές είναι η οντότητα που ζητάει την υπηρεσία (Service Requestor), η οντότητα που παρέχει την υπηρεσία (Service Provider) και τέλος η οντότητα του καταλόγου υπηρεσιών (Service Registry). Με περισσότερη λεπτομέρεια, κάθε μία οντότητα έχει τους ακόλουθους ρόλους:

19 Η οντότητα, η οποία ζητάει την υπηρεσία (Service Requestor), είναι στην ουσία ο «αιτούμενος» (Client) της υπηρεσίας και πυροδοτεί την έναρξη της όλης διαδικασίας. Αρχικά επιφορτίζεται με το έργο της αναζήτησης της κατάλληλης περιγραφής μιας υπηρεσίας τις καταχωρήσεις της υπηρεσίας καταλόγου. Στη συνέχεια, και ενώ έχει εντοπίσει τον επιθυμητό παροχέα, δημιουργεί σύνδεση με αυτόν, καλεί την υπηρεσία και λαμβάνει τα αποτελέσματα. Η οντότητα που παρέχει την υπηρεσία (Service Provider), δημοσιοποιεί την περιγραφή της υπηρεσίας ιστού στην οντότητα του καταλόγου υπηρεσιών (Service Registry) και ουσιαστικά παρέχει την υπηρεσία στο διαδίκτυο. Επιπλέον, της ανατίθεται ο ρόλος της λήψης των μηνυμάτων κλήσης για την υπηρεσία από έναν ή περισσότερους αιτούμενους και της παροχής των απαραίτητων αποτελεσμάτων. Τέλος, η οντότητα του καταλόγου υπηρεσιών (Service Registry), περιέχει καταχωρήσεις με τις περιγραφές των ήδη δημοσιοποιημένων υπηρεσιών διαδικτύου. Για τις υπηρεσίες αυτές παρέχονται τρόποι αναζήτησης ανάμεσα στις διάφορες περιγραφές. Οι λειτουργίες που παρέχονται μέσω αυτής της αρχιτεκτονικής είναι οι ακόλουθες: Η καταχώρηση των απαραίτητων πληροφοριών για μια υπηρεσία από τη μεριά του παρόχου (publishing), η οποία επιτυγχάνεται μέσω της χρήσης της γλώσσας περιγραφής WSDL. Η αναζήτηση και η εύρεση στους καταλόγους της κατάλληλης περιγραφής μιας «Υπηρεσίας Διαδικτύου» (finding). Η επικρατούσα τεχνολογία καταλόγου ονομάζεται UDDI. Τέλος, έχουμε την εγκαθίδρυση σύνδεσης μεταξύ αιτούμενου και παροχέα (binding), κλήση της κατάλληλης υπηρεσίας και αποστολή των αποτελεσμάτων. Όλα τα παραπάνω επιτυγχάνονται με την ανταλλαγή μηνυμάτων SOAP μεταξύ των τριών εμπλεκόμενων οντοτήτων, η οποία βασίζεται στη γλώσσα μεταδεδομένων XML. Το κλειδί της παραπάνω αρχιτεκτονικής είναι η περιγραφή της «Υπηρεσίας Διαδικτύου». Η περιγραφή είναι εκείνη που δημοσιοποιείται από τον παροχέα της υπηρεσίας στον κατάλογο υπηρεσιών. Η περιγραφή είναι το αποτέλεσμα της αναζήτησης του αιτούμενου στον κατάλογο υπηρεσιών. Η περιγραφή είναι εκείνη που λέει στον αιτούμενο όσα ακριβώς πρέπει να γνωρίζει προκειμένου να κάνει κλήση της υπηρεσίας που τον ενδιαφέρει. Τέλος, η περιγραφή της υπηρεσίας μπορεί να περιέχει πληροφορία για το τι είδους είναι το αποτέλεσμα που αναμένεται να επιστραφεί ύστερα από την κλήση της υπηρεσίας. Με την παραπάνω αρχιτεκτονική ήδη υπάρχουσες εφαρμογές μπορούν εύκολα να μετασχηματισθούν σε υπηρεσίες που να εξυπηρετούν άλλες υπάρχουσες ή και νέες εφαρμογές. Πολλές υπηρεσίες μπορούν να συνδυαστούν και να συνεργασθούν για την παραγωγή ενός αποτελέσματος με τρόπο διαφανή προς τον τελικό χρήστη, στον οποίο δίνεται η αίσθηση ότι κλήθηκε μία και μόνο υπηρεσία. Επιπρόσθετα, οργανισμοί και επιχειρήσεις μπορούν ευκολότερα να κατασκευάσουν λογισμικό, που να αλληλεπιδρά με επιχειρησιακές διαδικασίες και να ανταποκρίνεται γρήγορα στις αλλαγές του επιχειρησιακού περιβάλλοντος. Στη συνέχεια γίνεται μια εισαγωγή στις σχετικές με τα web services τεχνολογίες (XML, SOAP, WSDL, UDDI)

20 2.3. XML (extensible Markup Language) Σε ένα κόσμο όπου οι πληροφορίες παρέχονται μέσω του παγκόσμιου διαδικτύου, τα έγγραφα πρέπει να είναι εύκολα προσβάσιμα, μεταφέρσιμα και ευέλικτα. Πρέπει επίσης να είναι ανεξάρτητα οποιουδήποτε συστήματος και περιεχομένου. Οι γενικευμένες γλώσσες έχουν τέτοια χαρακτηριστικά, παρέχοντας στα έγγραφα αυτά μια δυνατότητα η οποία δεν υπάρχει σε άλλες γλώσσες περιγραφής εγγράφων. Η HTML είναι προβληματική και περιοριστική γλώσσα. Για την υλοποίηση των παραπάνω είναι απαραίτητη μια κοινή σύνταξη και γλώσσα για την περιγραφή των προδιαγραφών και τη μεταφορά των δεδομένων. Αυτό το ρόλο καλείται να παίξει η γλώσσα ΧΜL (Extensible Markup Language). Η XML (extensible Markup Language) αναπτύχθηκε από το W3C s XML Working Group το 1996 και συνδυάζει την ισχύ και την επεκτασιμότητα της SGML (Standard Generalized Markup Language), από την οποία προέρχεται, με την απλότητα που απαιτεί η κοινότητα του Διαδικτύου. Είναι μια μεταφερτή, ευρέως υποστηριζόμενη, ανοικτή τεχνολογία για την περιγραφή δεδομένων. Η XML περιγράφει μια κατηγορία αντικειμένων δεδομένων που ονομάζονται XML έγγραφα και εν μέρει τη συμπεριφορά των προγραμμάτων υπολογιστών που τα επεξεργάζονται. Τα έγγραφα XML αποτελούνται από μονάδες αποθήκευσης, τις οντότητες (entities), οι οποίες περιέχουν αναλυμένα λεκτικά (parsed) ή μη αναλυμένα λεκτικά (unparsed) δεδομένα. Τα αναλυμένα λεκτικά δεδομένα (parsed) συνίστανται από χαρακτήρες, ορισμένοι από τους οποίους αποτελούν δεδομένα χαρακτήρων και κάποιοι άλλοι δημιουργούν markup, δηλαδή κωδικοποιούν μια περιγραφή της διάταξης και της λογικής δομής του εγγράφου. Για τα μη αναλυμένα λεκτικά δεδομένα (unparsed) δεν είναι γνωστό εάν είναι κείμενο ή όχι, αλλά ακόμη κι αν είναι κείμενο, ενδέχεται να μην είναι XML, οπότε αγνοούνται κατά τη διαδικασία της ανάλυσης λεκτικών δεδομένων (parsing), στην οποία θα αναφερθούμε εκτενέστερα στη συνέχεια, και διοχετεύονται όπου προβλέπει η εφαρμογή. Η XML έλυσε πολλά από τα προβλήματα που αντιμετώπισαν οι σχεδιαστές του web και είναι υπεύθυνη για την XHTML, μια ανασχεδιασμένη HTML. Η XML σχεδιάστηκε να ικανοποιήσει πολλές ανάγκες δίνοντας στα έγγραφα ένα μεγαλύτερο επίπεδο προσαρμοστικότητας στο στυλ και τη δομή από αυτό που υπήρχε παλαιότερα στην HTML. Η XML προσφέρει στους σχεδιαστές της HTML τη δυνατότητα να προσθέτουν περισσότερα στοιχεία στη γλώσσα. Δεν αναφέρεται μονάχα στους σχεδιαστές του web αλλά σε οποιονδήποτε ασχολείται με εκδόσεις. Στην πραγματικότητα, η XML είναι markup γλώσσα για έγγραφα που περιέχουν δομημένες πληροφορίες. Markup γλώσσα είναι ένας μηχανισμός που καθορίζει δομές σε ένα έγγραφο. Οι δομημένες πληροφορίες περιλαμβάνουν περιεχόμενο και κάποιες διευκρινίσεις για το ρόλο που παίζει το περιεχόμενο. Σχεδόν όλα τα έγγραφα έχουν την ίδια δομή. Η XML αποτελεί σήμερα το πρότυπο για την αποθήκευση δεδομένων που ανταλλάσσονται μεταξύ των εφαρμογών χάρη στα ακόλουθα χαρακτηριστικά που παρουσιάζει : Υποστηρίζει ανεξαρτησία από τα δεδομένα και διαχωρίζει τα περιεχόμενα από τον τρόπο εμφάνισής τους και τον χειρισμό τους, οπότε διευκολύνεται η λεκτική ανάλυσή τους (parsing)

21 Διατίθενται έτοιμοι τρόποι σύνδεσης των κειμένων XML με τα πλέον σύγχρονα προγραμματιστικά περιβάλλοντα, όπως το Document Object Model (DOM) και το Simple API for XML (SAX). Είναι επεκτάσιμη και ανεξάρτητη από πλατφόρμες, γεγονός που την καθιστά απρόσβλητη σε τεχνολογικές αλλαγές. Τα έγγραφα XML είναι αναγνώσιμα από ανθρώπους και μηχανές και παρότι δεν προορίζονται για ανάγνωση προσφέρουν αυτή τη δυνατότητα στο χρήστη εάν κριθεί αναγκαίο. Είναι πλήρως συμβατή με Unicode, οπότε μπορεί να χειριστεί την πληροφορία που έχει γραφεί σε οποιαδήποτε ανθρώπινη γλώσσα. Παράλληλα, υποστηρίζει διεθνείς και τοπικές προσαρμογές. Χρησιμοποιώντας την XML, οι δημιουργοί των εγγράφων μπορούν να αναπαραστήσουν πολύπλοκες δομές δεδομένων, όπως λίστες, εγγραφές και δένδρα και να περιγράψουν οποιονδήποτε τύπο δεδομένων, συμπεριλαμβάνοντας μαθηματικούς τύπους, οδηγίες διαμόρφωσης λογισμικού, μουσική, αποδείξεις και οικονομικές αναφορές. Επιπλέον απαιτείται - όπως είναι προφανές - ένας μηχανισμός για την επικοινωνία μεταξύ των επιμέρους τμημάτων του δικτύου. Μπορούν να χρησιμοποιηθούν διάφορα πρωτόκολλα όπως ΗΤΤP, TCP/IP, SMTP. H αλληλεπίδραση μεταξύ των συμμετεχόντων τμημάτων βασίζονται στο πρωτόκολλο SOAP (Simple Object Access Protocol). Με το SOAP τα services μπορούν να ανταλλάσσουν απαραίτητες πληροφορίες με τη μορφή XML μηνυμάτων. To SOAP αποτελεί ουσιαστικά τον φάκελο ο οποίος περιβάλλει τα ΧΜL μηνύματα για να μεταφερθούν. Το σχήμα που παρατίθεται στη συνέχεια παρουσιάζει τις τεχνολογίες που καθορίζουν τον τρόπο με τον οποίο ένα μήνυμα μεταφέρεται από τον service requestor στον service provider Στοίβα τεχνολογιών για τη μεταφορά μηνυμάτων (Πηγή: Ένα ακόμα ζήτημα είναι η περιγραφή των services και ιδίως των αντίστοιχων interfaces ώστε να γνωστοποιείται ο τρόπος κλήσης τους, με ένα τυποποιημένο τρόπο. Το σκοπό αυτό εξυπηρετεί η WSDL (Web Service Description Language). Η WSDL είναι μια γλώσσα για την περιγραφή interfaces που βασίζεται στην ΧΜL. Τέλος αυτό που απομένει είναι μια υπηρεσία καταγραφής των διαθέσιμων services

22 και των περιγραφών τους, ένα είδος καταλόγου-οδηγού για web services. Απαιτείται συνεπώς ένας τυποποιημένος τρόπος για τη δημοσίευση και τον εντοπισμό των services. Το ρόλο αυτό καλύπτει το (UDDI) Universal Description, Discovery and Integration project. Ακολουθούν αναλυτικότερα στοιχεία για τις αναφερόμενες στο κεφάλαιο αυτό τεχνολογίες και πρότυπα Ορθότητα XML εγγράφου Για να είναι ένα έγγραφο XML σωστό, θα πρέπει να είναι συγχρόνως : Καλοσχηματισμένο (well-formed), δηλαδή να υπακούει σε όλους τους συντακτικούς κανόνες της XML. Εάν ένα έγγραφο δεν είναι συντακτικά σωστό, τότε δεν θεωρείται έγγραφο XML, η ανάλυση (parsing) σταματά και ο αναλυτής (parser) δίνει ένα σφάλμα. Έγκυρο (valid), δηλαδή να ικανοποιεί ένα σύνολο κανόνων που έχει ορίσει ο χρήστης και περιλαμβάνεται σε προαιρετικά έγγραφα XML, όπως τους ορισμούς Τύπων Εγγράφων (Document Type Definitions DTDs) και τα Σχήματα XML (XML Schemas) Ετικέτες - Tags Στην XML η πληροφορία προσδιορίζεται με την βοήθεια ετικετών (tags), δηλ. με ένα αναγνωριστικό περικλειόμενο από <>. Με τα tags επιτυγχάνεται το markup. Στο παρουσιάζονται κάποια βασικά στοιχεία ενός XML εγγράφου. Σχήμα Βασικά στοιχεία XML εγγράφου (Πηγή: Με την ενθυλάκωση (nesting) των tags δίνεται η δυνατότητα να κατασκευασθούν στοιχεία με πολύπλοκη εσωτερική δενδρική δομή, π.χ. <message> <to>you@youraddress.com</to> <from>me@myaddress.com</from>

23 <subject>xml Is Really Cool</subject> <text> How many ways is XML cool? Let me count the ways... </text> <another_text/> </message> Μεταβλητές Ιδιοτήτων - Attributes Κάθε στοιχείο (element) είναι δυνατόν να έχει και ιδιότητες (attributes) οι μεταβλητές των οποίων μαζί με τις τιμές τους συντάσσονται σύμφωνα με το παράδειγμα <movie type= comedy rating= for adults year= 1998 >. </movie> XML - Namespaces Μια σημαντική ιδιότητα των XML-εγγράφων είναι ότι μπορούν να χρησιμοποιηθούν ώστε να συνθέσουν ένα νέο έγγραφο. Ο μηχανισμός των namespaces έχει ως σκοπό την αντιμετώπιση του προβλήματος της σύγκρουσης elements με κοινά ονόματα, τα οποία μπορεί να προέρχονται από διαφορετικά έγγραφα. Συγκεκριμένα ένα element συμπληρώνεται με κάποιο επιπρόσθετο αναγνωριστικό που να του αποδίδει τη μοναδικότητα. Ως αναγνωριστικό χρησιμοποιείται κάποιο Uniform Resource Identifier (URI). Για παράδειγμα στην αρχή ενός XML εγγράφου μπορεί να οριστούν τα namespaces ως εξής : xmlns:it= " xmlns:ru= " και στο εξής να γίνεται αναφορά στο έγγραφο μέσω it:teams, ru:teams XML - Shema Το XML-Schema είναι μια προδιαγραφή στην οποία κατέληξε η απόπειρα της κοινότητας της XML υπό την ηγεσία του W3C για τη δημιουργία μιας μεταγλώσσας για την περιγραφή της δομής των XML εγγράφων και των τύπων δεδομένων σε αυτά. Τα XML-schemas είναι και αυτά εκφρασμένα σε XML. Με τον τρόπο αυτό εξαλείφεται η ανάγκη ύπαρξης ειδικών parsers που να τα διαβάζουν. Η ορολογία-λεξιλόγιο του XML-Schema καθορίζεται και αυτή χρησιμοποιώντας κάποιο schema. Το XML-Schema αποτελεί εκτός από τρόπο περιγραφής και τρόπο επικύρωσης της καλής μορφής (well-formedness) και εγκυρότητας (validity) ενός XML εγγράφου. Στο σχήμα που ακολουθεί παρατίθενται ένα απλό XML έγγραφο και το αντίστοιχό του ΧMLSchema έγγραφο

24 Σχήμα Παράδειγμα XML εγγράφου και του αντίστοιχου XML Shema (Πηγή: XML Parsers (λεκτικοί αναλυτές XML) Μια εφαρμογή που χρησιμοποιεί έγγραφα XML πρέπει να είναι σε θέση να αναλύει το έγγραφο στα στοιχεία που το συνθέτουν ώστε να αποσπά από αυτό και την απαραίτητη από το έγγραφο πληροφορία. Αυτό γίνεται μέσω της διαδικασίας του parsing. Το parsing αναλύει το κείμενο σε επιμέρους τμήματα τα οποία είναι αναγνωρίσιμα (start tags, end tags, attributes και τιμές αυτών, κείμενο, σχόλια). H εφαρμογή μπορεί να κάνει χρήση κάποιου από τα καθορισμένα Αpplication Programming Interfaces (APIs) που υλοποιούν κάποιο μοντέλο parsing. Έχουν αναπτυχθεί δύο ΑPIs για το parsing: το Document Object Module (DOM) και το Simple API for XML (SAX). Στο DOM ο parser διαβάζει όλο το έγγραφο και παράγει μια δομή δεδομένων (parse tree) που περιγράφει τα περιεχόμενα του εγγράφου (elements, attributes κλπ). Στο SAX ο parser ενημερώνει την εφαρμογή για τα στοιχεία που συναντά καθώς διαβάζει σειριακά ένα έγγραφο. Αυτό το είδος parsing είναι γνωστό και ως βασισμένο στα γεγονότα (event-based). Tα ΑΡΙs αυτά έχουν υλοποιηθεί και σε Java. Η κοινότητα της Java έχει αναπτύξει και την προδιαγραφή JDOM η οποία βασίζεται στη φιλοσοφία του DOM και έχει το πλεονέκτημα ότι χειρίζεται τα parse trees με αντικείμενα περισσότερο συμβατά με τις δομές δεδομένων της Java

25 Με τη χρήση APIs και άλλων προδιαγραφών που έχουν υλοποιηθεί σε γλώσσες προγραμματισμού όπως η Java, οι εφαρμογές είναι σε θέση εκτός από το parsing, να δημιουργούν και να επεξεργάζονται έγγραφα XML για τις ανάγκες τους SOAP (Simple Object Access Protocol) Το Simple Object Access Protocol (SOAP) είναι η τεχνολογία για την ανταλλαγή μηνυμάτων που διατυπώνονται ως XML μέσω του διαδικτύου. Σαν πρωτόκολλο επικοινωνίας μπορεί να χαρακτηριστεί ως stateless και μονόδρομο, αγνοεί τη σημασιολογία των μηνυμάτων που μεταφέρει και σχεδιάστηκε για να υποστηρίξει χαλαρά συνδεδεμένες εφαρμογές που αλληλεπιδρούν ανταλλάσσοντας ασύγχρονα μηνύματα. Συγκεκριμένα, το πρωτόκολλο SOAP καθορίζει τα ακόλουθα : Μια μορφή μηνύματος για μονόδρομη επικοινωνία, που περιγράφει πώς η πληροφορία μπορεί να ενσωματωθεί σε ένα έγγραφο XML. Ουσιαστικά, είναι ένας φάκελος (envelope), στον οποίο η εφαρμογή περικλείει οποιαδήποτε πληροφορία πρέπει να σταλεί. Ένα σύνολο συμβάσεων για τη χρήση μηνυμάτων SOAP στην υλοποίηση του προτύπου αλληλεπίδρασης RPC (Remote Procedure Call), που προσδιορίζουν πώς οι πελάτες μπορούν να καλέσουν μια απομονωμένη διαδικασία στέλνοντας ένα μήνυμα SOAP και πώς τα προγράμματα υπηρεσίες μπορούν να ανταποκριθούν στέλνοντας ένα άλλο SOAP μήνυμα σε αυτόν που τα κάλεσε. Ένα σύνολο κανόνων, τους κανόνες κωδικοποίησης SOAP (SOAP encoding rules), τους οποίους κάθε οντότητα που επεξεργάζεται ένα μήνυμα SOAP πρέπει να ακολουθεί. Συγκεκριμένα, οι κανόνες καθορίζουν τα στοιχεία XML που μια οντότητα πρέπει να διαβάσει και να καταλάβει, καθώς και τις ενέργειες στις οποίες μια οντότητα πρέπει να προβεί εάν δεν καταλάβει το περιεχόμενο. Μια περιγραφή του τρόπου με τον οποίο ένα μήνυμα SOAP θα πρέπει να μεταφέρεται πάνω από πρωτόκολλα μεταφοράς, όπως το HTTP και το SMTP. Ένα μήνυμα SOAP συνίσταται από το φάκελο SOAP <Envelope>, ο οποίος περιέχει δύο μέρη : την επικεφαλίδα <Header> και το κυρίως τμήμα <Body>. Η επικεφαλίδα (header) είναι προαιρετική και χρησιμοποιείται για να επεκτείνει το μήνυμα προσθέτοντας μεταδεδομένα, τα οποία θα μπορούν εναλλακτικά να επεξεργαστούν και οι ενδιάμεσοι κόμβοι. Γενικά, περιλαμβάνει πληροφορίες σχετικές με το μήνυμα, όπως την ημερομηνία που στάλθηκε, το χρόνο που εκπνέει ή δεδομένα ταυτοποίησης (authentication), εξουσιοδότησης (authorization) και χειρισμού δοσοληψιών (transactional interaction). Το κυρίως σώμα (body) είναι υποχρεωτικό και περιέχει την πληροφορία που μεταφέρεται σε XML. Τόσο η επικεφαλίδα όσο το κυρίως τμήμα ενδέχεται να περιέχουν πολλαπλά υπομέρη στη μορφή «μπλοκ» (header blocks ή body blocks ανάλογα). Η δομή ενός μηνύματος SOAP παρουσιάζεται στο επόμενο σχήμα :

26 Σχήμα Δομή μηνύματος SOAP (Πηγή: SOAP over HTTP Τα μηνύματα SOAP μπορούν να μεταφερθούν μέσα στο δίκτυο με διάφορα πρωτόκολλα, όπως το SMTP και το FTP, αλλά κατά κανόνα προτιμάται το HTTP (HyperText Transfer Protocol). Ο λόγος είναι ότι το HTTP είναι το πρωτόκολλο που χρησιμοποιείται ευρέως στο Διαδίκτυο (internet), καθώς χρησιμοποιείται από τους browsers για την πλοήγηση στον παγκόσμιο ιστό. Τα δεδομένα μεταφέρονται ακριβώς όπως οι ιστοσελίδες και δεν εμποδίζονται από τείχη ασφαλείας (firewalls) που ενδέχεται να διαθέτουν οι υπολογιστές. Το μήνυμα SOAP αποστέλλεται σαν μέρος του μηνύματος αίτησης ή απόκρισης HTTP (HTTP request ή HTTP response, αντίστοιχα) και προστίθενται στο μήνυμα και οι επικεφαλίδες HTTP (HTTP headers). Γενικά, το πρωτόκολλο HTTP χρησιμοποιεί δύο τρόπους για να στέλνει δεδομένα : HTTP POST και HTTP GET, με τον πρώτο να προτιμάται για τις Διαδικτυακές υπηρεσίες, διότι σύμφωνα με αυτόν το μήνυμα SOAP μεταφέρεται στο κυρίως σώμα (body) του μηνύματος HTTP SOAP Exceptions and Errors Οι κανόνες κωδικοποίησης SOAP (SOAP encoding rules) παρέχουν στο πρότυπο SOAP τη δυνατότητα χειρισμού λαθών, τα οποία μπορεί να προκύψουν τόσο κατά τη μεταφορά όσο κατά την επεξεργασία του μηνύματος. Στην πρώτη κατηγορία περιλαμβάνονται η μη αναγνωσιμότητά του μηνύματος και η αλλοίωση κάποιων χαρακτήρων του μηνύματος, ενώ στη δεύτερη κατατάσσονται οι λανθασμένες τιμές σε κάποια πεδία της επικεφαλίδας (SOAP header) ή των δεδομένων που αποστέλλονται, η μη ταυτοποίηση του αποστολέα και τα λάθη κατά τη σύνδεση με τη βάση δεδομένων. Οι πληροφορίες λάθους περιέχονται εντός του κυρίως σώματος (SOAP Body) στο στοιχείο XML <fault>, το οποίο αποτελείται από τα υποχρεωτικά στοιχεία : <faultcode> που προσδιορίζει πού συνέβη το λάθος, <faultstring> το οποίο περιγράφει πώς δημιουργήθηκε λάθος, και τα προαιρετικά στοιχεία : <faultactor>

27 και <detail> που παρέχουν περαιτέρω λεπτομέρειες. Πιο συγκεκριμένα, ανάλογα με την τιμή του <faultcode> διακρίνονται δύο γενικές κατηγορίες σφαλμάτων : <soap:server> που αναφέρεται σε λάθη για τα οποία δεν ευθύνεται το μήνυμα που έστειλε ο πελάτης της διαδικτυακής υπηρεσίας και δεν μπορούν να διορθωθούν με ενέργειες του client. Εάν αποσταλεί το ίδιο μήνυμα αργότερα, ενδέχεται να επιτύχει η υπηρεσία. <soap:client> δηλαδή λάθη τα οποία οφείλονται στο περιεχόμενο του μηνύματος που έστειλε ο client και μπορεί να βρίσκονται στην επικεφαλίδα ή / και στο κυρίως μήνυμα. Σχήμα Το στοιχείο Fault (Πηγή: CE%BB%CE%BF%CE%B3%CE%AF%CE%B1%20Web%20Services.pdf) SOAP Extensions Οι προεκτάσεις SOAP (SOAP Extensions) είναι ένα είδος component που επισυνάπτεται σε μια διαδικτυακή εφαρμογή που ανταλλάσσει μηνύματα SOAP με κάποια εξωτερική οντότητα και μπορεί να εφαρμόζεται σε κάθε SOAP μήνυμα που λαμβάνεται και αποστέλλεται ή σε κάποια SOAP μηνύματα επιλεκτικά. Ανάλογα με τη λειτουργία που επιτελεί η προέκταση καθορίζεται εάν απαιτείται να τοποθετηθεί και από την πλευρά της εξωτερικής οντότητας. Η διαδικασία που ακολουθείται έχει ως εξής : οι προεκτάσεις SOAP (SOAP Extensions) παραλαμβάνουν τα εισερχόμενα μηνύματα SOAP και τα προ-επεξεργάζονται προτού τα παραδώσουν στον χειριστή ASMX για να τα επεξεργαστεί. Μόλις δημιουργηθεί μια απόκριση στην αίτηση εξερχόμενο μήνυμα SOAP προωθείται στην επέκταση SOAP για περαιτέρω μετεπεξεργασία. Η χρήση των προεκτάσεων SOAP (SOAP Extensions) συνοψίζεται στους ακόλουθους λόγους: Ενίσχυση της ασφάλειας με κρυπτογράφηση και αποκρυπτογράφηση του μηνύματος SOAP. Συμπίεση και αποσυμπίεση του μηνύματος SOAP. Μετατροπή των μηνυμάτων που προορίζονται για παλιότερες εκδόσεις στην τρέχουσα έκδοση της υπηρεσίας. Λεκτική ανάλυση των επικεφαλίδων SOAP εξουσιοδότηση του πελάτη για ταυτοποίηση και

28 Έλεγχος εάν τα μηνύματα SOAP ικανοποιούν τα κατάλληλα XML σχήματα. Επιβολή επιχειρηματικών κανόνων στις τιμές εισόδου και εξόδου SOAP Versioning Ένα σημείο άξιο αναφοράς σχετικά με το SOAP είναι ότι το στοιχείο Envelope των μηνυμάτων SOAP δεν αποκαλύπτει ρητά κάποια έκδοση (version) του πρωτοκόλλου. To versioning στην περίπτωση των μηνυμάτων SOAP γίνεται μέσω του URI του namespace του φακέλου του SOAP. Συνεπώς για τις εκδόσεις του SOAP δεν τίθεται ζήτημα συμβατών ή μη αλλαγών στο πρωτόκολλο, αλλά μόνο αν δύο εκδόσεις είναι ίδιες ή διαφορετικές Χειρισμός λαθών (Error Handling) Το SOAP δίνει τη δυνατότητα χειρισμού λαθών που προκύπτουν κατά τη μεταφορά των μηνυμάτων. Λάθη μπορούν να προκύψουν σε περίπτωση που ένα μήνυμα δεν είναι σε μορφή κατάλληλη για να «διαβαστεί» από κάποιον παραλήπτη, ο παραλήπτης δεν είναι σε θέση να «διαβάσει» ή να δέχεται μηνύματα, υπάρχει πρόβλημα στο authentication του αποστολέα. Το SOAP δίνει τη δυνατότητα ενημέρωσης για την εμφάνιση κάποιου error και την παροχή κάποιας περιγραφής για αυτό. Σε περίπτωση λάθους, αποστέλλεται από τον παραλήπτη του μηνύματος που περιέχει το λάθος, ένα μήνυμα απάντησης (επίσης SOAP message). Η πληροφορία σχετικά με το λάθος μεταφέρεται στο τυποποιημένο element SOAP Fault. To element αυτό στο οποίο ενθυλακώνονται και άλλα τυποποιημένα elements (faultcode, faultstring, faultactor) περιέχει πληροφορία σχετικά με το λάθος, η οποία μπορεί να είναι και βοηθητική για την αντιμετώπισή του και για μια νέα απόπειρα επιτυχημένης αποστολής REST (Representational State Transfer) Το Representational State Transfer (REST) είναι ένα αρχιτεκτονικό στυλ για κατανεμημένα συστήματα υπερμέσων (hypermedia), όπως ο Παγκόσμιος Ιστός. Οι όροι «Representational State Transfer» και «REST» παρουσιάστηκαν το 2000 στη διδακτορική διατριβή του Roy Fielding. Η αρχιτεκτονική REST αποτελείται από εξυπηρετητές (servers) και πελάτες (clients). Οι clients εκκινούν την αποστολή αιτημάτων στους servers οι οποίοι με τη σειρά τους τα επεξεργάζονται προκειμένου να επιστρέψουν σε κατάλληλες απαντήσεις. Κάθε αίτημα ή μήνυμα προς τους εξυπηρετητές αποστέλλεται σε συγκεκριμένο αντικείμενο της εφαρμογής το οποίο ονομάζεται πόρος (resource). Κάθε πόρος έχει μοναδική διεύθυνση στην οποία αντιστοιχίζεται το κάθε αίτημα. Οι απαντήσεις εμφανίζουν στον πελάτη αναπαραστάσεις συγκεκριμένων πόρων για τη δεδομένη χρονική στιγμή του αιτήματος, αποτελούν δηλαδή ένα στιγμιότυπό τους. Η ονομασία της αρχιτεκτονικής REST προέρχεται από την έννοια της μεταφοράς κατάστασης στον πελάτη. Με κάθε νέο αίτημα επιστρέφεται μια ανάλογη απόκριση στον πελάτη με τη μορφή αναπαράστασης με αποτέλεσμα να μεταβαίνει αυτός σε μια νέα κατάσταση. Βασικές αρχές του REST είναι:

29 Μια υλοποίηση REST αποτελείται από συστατικά δικτύου (components) τα οποία διαιρούνται σε πόρους. Κάθε πόρος διευθυνσιοδοτείται μοναδικά με καθολικό ταυτοποιητή (URI) Η μεταφορά κατάστασης μεταξύ του πελάτη και του πόρου πραγματοποιείται μέσα από μια ομοιόμορφη διεπαφή (uniform interface), η οποία χαρακτηρίζεται από: Ένα καθορισμένο σύνολο αυστηρά ορισμένων λειτουργιών Ένα σύνολο από τύπους περιεχομένου Τα δύο παραπάνω συστατικά αναδεικνύουν τη σημασιολογία της επικοινωνίας καθώς επίσης αποτελούν το πρότυπο για την ανταλλαγή πληροφορίας. Η εφαρμογή της αρχιτεκτονικής γίνεται σε πρωτόκολλα τα οποία: Είναι Πελάτη Εξυπηρετητή (client - server) Είναι άνευ κατάστασης (stateless) Δίνουν δυνατότητα αποθήκευσης περιεχομένου σε κρυφές μνήμες (Cacheable) Υποστηρίζουν διαστρωμάτωση (Layered) Η δυνατότητα αποθήκευσης σε κρυφές μνήμες παρέχεται μέσα από το ίδιο το μήνυμα απόκρισης που αποστέλλει ο εξυπηρετητής στο περιεχόμενο του οποίου αναφέρεται εάν θα πρέπει να αποθηκευτεί προσωρινά. Αναπτύχθηκε παράλληλα με το πρωτόκολλο HTTP / 1.1 ενώ η ύπαρξη του παγκόσμιου ιστού αποτελεί την μεγαλύτερη υλοποίηση συστήματος που ακολουθεί τις αρχές της χωρίς ωστόσο να αποτελεί το μοναδικό πεδίο εφαρμογής WSDL (Web Services Description Language) Η Web Services Description Language (WSDL) είναι μια γλώσσα που βασίζεται στην XML για να καθορίσει τις Διαδικτυακές υπηρεσίες και να περιγράψει τους μηχανισμούς που πρέπει να τεθούν σε λειτουργία για να έχουν τα προγράμματα πελάτες πρόσβαση σε αυτές. Πιο συγκεκριμένα, στο έγγραφο WSDL καταγράφονται οι λειτουργίες που η διαδικτυακή υπηρεσία προσφέρει, τα πρωτόκολλα που μπορούν να χρησιμοποιηθούν για την κλήση της, η τοποθεσία της στο δίκτυο και το πώς δέχεται και επιστρέφει τα δεδομένα. Προκειμένου να γνωρίζει ο πελάτης όλες τις απαραίτητες πληροφορίες για την κλήση μιας υπηρεσίας διαδικτύου, πρέπει να έχει στην κατοχή του μια περιγραφή αυτής. Για να γίνει η όλη διαδικασία ακόμη πιο εύκολη και πιο τυποποιημένη χρειάζεται ένας καθορισμένος μηχανισμός για την περιγραφή των υπηρεσιών διαδικτύου. Αυτός ο μηχανισμός θα παρέχει πληροφορίες για ακριβώς αυτά που χρειάζεται να ξέρει ο χρήστης που θέλει να καλέσει την υπηρεσία. Επιπρόσθετα, χάρη σε αυτόν το μηχανισμό είναι δυνατή η ανάπτυξη εφαρμογών που θα βοηθούν τους προγραμματιστές στην ανάπτυξη των υπηρεσιών μέσω των περιγραφών τους. Όπως έχει αναφερθεί, ο ρόλος της υπηρεσίας καταλόγου (Service Registry) σε μια SOA αρχιτεκτονική είναι πολύ σημαντικός. Ο πελάτης, προκειμένου να ανακαλύψει

30 την υπηρεσία που τον ενδιαφέρει, ψάχνει πρώτα στον κατάλογο αυτό. Το αποτέλεσμα της αναζήτησης δεν είναι τίποτε άλλο από την περιγραφή της υπηρεσίας που ζήτησε. Ο πάροχος της υπηρεσίας διαδικτύου δημοσιεύει την περιγραφή της υπηρεσίας του γι αυτό το λόγο. Για να ξέρει ο κάθε πιθανός πελάτης πώς να εγκαθιδρύσει επικοινωνιακή σύνδεση μαζί του και πως ακριβώς να καλέσει την υπηρεσία που του παρέχει. Η περιγραφή μιας υπηρεσίας διαδικτύου πρέπει να αποτελείται από δύο μέρη: Τη λειτουργική περιγραφή Η περιγραφή αυτή περιγράφει ποιες ακριβώς λειτουργίες είναι διαθέσιμες από την υπηρεσία διαδικτύου και ποια είναι η απαιτούμενη σύνταξη που θα πρέπει να έχει το SOAP μήνυμα προκειμένου να γίνει με επιτυχία η κλήση. Επίσης, πληροφορίες σχετικές με την τοποθεσία της υπηρεσίας είναι διαθέσιμες ώστε ο χρήστης να έχει το ακριβές URL στο οποίο θα γίνει η κλήση. Είναι χρέος της περιγραφής αυτής να δώσει όλες τις απαραίτητες πληροφορίες στον πελάτη ώστε να καλέσει την υπηρεσία. Τη μη-λειτουργική περιγραφή Η λειτουργική περιγραφή είναι πολύ σημαντική, αφού χωρίς αυτή δεν είναι δυνατόν να επιτευχθεί η κλήση της υπηρεσίας. Η μη-λειτουργική περιγραφή όμως είναι εξίσου σημαντική. Όπως υποδηλώνει και το όνομά της, προσφέρει πληροφορίες που σχετίζονται με μη λειτουργικές απαιτήσεις της υπηρεσίας. Τέτοιες πληροφορίες μπορεί να περιγράφουν το λόγο που κάποιος πελάτης να επιθυμεί να καλέσει την υπηρεσία. Επίσης, μπορεί να περιγράφουν τον παροχέα της υπηρεσίας με αρκετή λεπτομέρεια. Μπορεί να προσφέρουν προσωπικά του στοιχεία και τηλέφωνα επικοινωνίας. Τέλος, πληροφορίες για την ασφάλεια γύρω από την υπηρεσία και την πολιτική του παροχέα μπορεί να είναι διαθέσιμες μέσω της μη λειτουργικής περιγραφής της υπηρεσίας. Η είναι μια γλώσσα βασισμένη στην XML και περιγράφει τρεις σημαντικές ιδιότητες της υπηρεσίας: Τι κάνει η υπηρεσία Εδώ περιγράφονται οι μέθοδοι της υπηρεσίας, οι παράμετροί της και τα αποτελέσματα που επιστρέφει. Πώς γίνεται η πρόσβαση στην υπηρεσία Εδώ παρέχονται όλες οι απαραίτητες πληροφορίες για τη σύνταξη των SOAP μηνυμάτων που θα ανταλλαγούν, καθώς και τα πρωτόκολλα που υποστηρίζονται από τον παροχέα. Που βρίσκεται η υπηρεσία Εδώ παρέχονται πληροφορίες για τη δικτυακή διεύθυνση της υπηρεσίας. Συνήθως είναι ένα URL. Όπως κάθε καλά ορισμένη γλώσσα βασισμένη σε XML, έτσι και η WSDL ορίζει κάποια βασικά στοιχεία που συναντώνται σε ένα WSDL έγγραφο. Τα κυριότερα από αυτά είναι: porttype: Είναι ένας αφαιρετικός ορισμός της διασύνδεσης της υπηρεσίας διαδικτύου. Ουσιαστικά, σκοπός του είναι η περιγραφή αυτής της διασύνδεσης. Όπως γίνεται σε έναν κώδικα Java, που η διασύνδεση αποτελείται μόνο από τις υπογραφές των μεθόδων, έτσι κι εδώ ο ορισμός του porttype είναι η συλλογή των λειτουργιών που παρέχει η υπηρεσία διαδικτύου. Ένα τέτοιο στοιχείο μπορεί να έχει ένα απλό όνομα, το οποίο πιθανόν να σχετίζεται με τη λειτουργία που προσφέρει η υπηρεσία. Εάν ένα

31 έγγραφο WSDL περιέχει πολλά τέτοια στοιχεία, τότε το κάθε ένα οφείλει να έχει διαφορετικό όνομα. Message: Καθορίζει τη μορφή του μηνύματος, καθώς και το σύνολο των παραμέτρων που σχετίζονται με τις μεθόδους της υπηρεσίας. Το στοιχείο αυτό μπορεί να αποσυντεθεί σε πολλά μέρη, που ονομάζονται parts. Κάθε στοιχείο message μέσα σε ένα WSDL έγγραφο πρέπει να έχει ένα μοναδικό όνομα ώστε να ξεχωρίζει από τα υπόλοιπα. Ουσιαστικά, τα στοιχεία αυτά δεν παρουσιάζουν ιδιαίτερο ενδιαφέρον αφού δεν είναι τίποτε άλλο από μια συλλογή από parts και κάθε part έχει ένα όνομα, που συνήθως αντικατοπτρίζει την πληροφορία που περιέχεται στο part. Types: Ορίζει τη συλλογή όλων των τύπων δεδομένων που χρησιμοποιούνται από την υπηρεσία διαδικτύου. Το εξ ορισμού σύστημα των τύπων δεδομένων στην WSDL είναι το XML σχήμα (XML Schema XSD). Το σχήμα αυτό μπορεί να χρησιμοποιηθεί για να περιγράψει όλους τους τύπους δεδομένων που μπορεί να χρησιμοποιηθούν στα διάφορα μηνύματα που ανταλλάσσονται για την κλήση της υπηρεσίας. Το στοιχείο types είναι ένα μέρος για το WSDL έγγραφο στο οποίο ο χρήστης ορίζει τύπους δεδομένων που θα χρησιμοποιηθούν σε άλλα στοιχεία του εγγράφου. Binding: Περιέχει λεπτομέρειες για το πώς τα στοιχεία σε μια αφαιρετική δομή (όπως το porttype) μπορούν να μετασχηματισθούν σε μια συμπαγή αναπαράσταση των δεδομένων και πρωτοκόλλων που θα χρησιμοποιηθούν για την επικοινωνία μεταξύ του πελάτη και της υπηρεσίας. Ουσιαστικά είναι το στοιχείο που θα πει στον πελάτη πώς ακριβώς να μορφοποιήσει το μήνυμα που θα στείλει για την κλήση της υπηρεσίας. Κάθε στοιχείο porttype μπορεί να έχει ένα ή περισσότερα στοιχεία binding συσχετισμένα με αυτό. Για ένα συγκεκριμένο στοιχείο porttype, ένα στοιχείο binding περιγράφει τον τρόπο που πρέπει να γίνει η κλήση των μεθόδων της υπηρεσίας χρησιμοποιώντας κάποιο καθορισμένο πρωτόκολλο, όπως το SOAP, πάνω σε κάποιο επίσης καθορισμένο πρωτόκολλο μεταφοράς, όπως το HTTP. Το όνομα του binding πρέπει να είναι μοναδικό καθώς πολλά τέτοια στοιχεία μπορεί να υπάρχουν σε ένα WSDL έγγραφο. Port Περιγράφει πως ακριβώς εκφράζεται ένα binding σε μια φυσική θύρα του δικτύου. Ο ρόλος της είναι πολύ απλός αφού δεν κάνει τίποτε άλλο από μια απλή αντιστοιχία. Τα στοιχεία αυτά, όπως και τα προηγούμενα, οφείλουν να φέρουν ένα όνομα, μοναδικό μέσα στο WSDL έγγραφο. Συνήθως, τα στοιχεία αυτά υποδεικνύουν το URL στο οποίο πρέπει να σταλούν τα μηνύματα SOAP ώστε να γίνει η κλήση της υπηρεσίας. Τα στοιχεία αυτά δε συναντούνται μόνα τους μέσα στο έγγραφο της περιγραφής της υπηρεσίας. Είναι στοιχεία παιδιά του συστατικού service. Service Ένα τέτοιο στοιχείο είναι μια συλλογή από ports. Το στοιχείο αυτό μπορεί να έχει ένα μοναδικό όνομα μέσα στο έγγραφο. Παρόλο που ο ρόλος του δεν έχει ιδιαίτερη σημασία, είναι καλό τα στοιχεία port να ομαδοποιούνται κάτω από ένα στοιχείο service. Συνήθως όμως ένα μόνο στοιχείο port συναντάται και έτσι καταλήγουμε στο να έχουμε ένα στοιχείο service, που να περιέχει ένα στοιχείο port. Το σχήμα που ακολουθεί απεικονίζει τις συσχετίσεις μεταξύ των συστατικών της WSDL

32 Σχήμα Το πληροφοριακό μοντέλο της WSDL (Πηγή: CE%BB%CE%BF%CE%B3%CE%AF%CE%B1%20Web%20Services.pdf) Η δομή ενός WSDL εγγράφου ξεκινά με ένα στοιχείο ορισμών, το οποίο καλείται definitions. Το στοιχείο αυτό περιέχει όλα τα υπόλοιπα στοιχεία που μπορεί να συναντηθούν μέσα στο έγγραφο, δηλαδή μπορεί να περιέχει: Στοιχεία τεκμηρίωσης. Τα στοιχεία αυτά καλούνται documentation elements και χρησιμοποιούνται για να παρέχουν χρήσιμες πληροφορίες κατανοητές από τον άνθρωπο γύρω από την υπηρεσία διαδικτύου. Στοιχεία εισαγωγών. Τα στοιχεία αυτά καλούνται import elements. Τα στοιχεία δίνουν τη δυνατότητα επαναχρησιμοποίησης ήδη υπαρχόντων WSDL εγγράφων επιτρέποντας σε διάφορα στοιχεία να έχουν αναφορές σε άλλα ήδη υπάρχοντα που βρίσκονται σε διαφορετικό έγγραφο σε διαφορετικό αρχείο. Προαιρετικά ένα στοιχείο types. Στοιχεία message. Στοιχεία porttype. Συνήθως μόνο ένα συναντάται. Στοιχεία binding. Συνήθως μόνο ένα συναντάται, το οποίο έχει να κάνει με το στοιχείο porttype. Στοιχεία service. Και πάλι συνήθως μόνο ένα είναι αρκετό

33 2.7. UDDI (Universal Description, Discovery and Integration) Το Universal Description, Definition and Integration (UDDI) αποτελεί ένα πρωτόκολλο καταχώρησης για Διαδικτυακές υπηρεσίες. Σκοπός του είναι να διευκολύνει την ανακάλυψη υπηρεσιών και κατά το χρόνο σχεδίασης, και δυναμικά κατά το χρόνο εκτέλεσης. Συνεπώς το UDDI λειτουργεί ως ένα κοινό άμεσα συνδεδεμένο κατάλογο (και των αντιστοίχων υπηρεσιών). Ο κατάλογος αυτός, συνήθως αναφέρεται ως κατάλογος επιχειρήσεων UDDI (UDDI Business Registry). Για να γίνει κάποιος διαχειριστής ενός τέτοιου καταλόγου, πρέπει να ακολουθήσει αυστηρές συμφωνίες για την αντιγραφή των δεδομένων, το απόρρητο των δεδομένων και τις διάφορες πολιτικές. Από την οπτική μιας καταχωρημένης επιχείρησης αλλά και από την οπτική του απλού χρήστη, η απαίτηση είναι να μην υπάρχει διαφορά ανάμεσα στα διαφορετικά αντίγραφα του καταλόγου. Οι επιχειρήσεις μπορούν να κάνουν εγγραφή σε οποιονδήποτε διαχειριστή UDDI, και τα δεδομένα τους θα αντιγραφούν σε όλα τα άλλα αντίγραφα του καταλόγου στους άλλους διαχειριστές. Επομένως, οι χρήστες μπορούν να αναζητήσουν στον κατάλογο οποιουδήποτε διαχειριστή για να βρουν τις επιχειρήσεις που αναζητούν, άσχετα με το διαχειριστή που έχει επιλέξει η συγκεκριμένη επιχείρηση για να εγγραφεί. Το UDDI είναι κάτι παραπάνω από ένα κατάλογο επιχειρήσεων και υπηρεσιών. Ορίζει ένα σύνολο από δομές δεδομένων και προδιαγραφές ΑΡΙ, για την προγραμματική αναζήτηση και καταχώρηση εταιριών, υπηρεσιών, δεσμών, και ειδών υπηρεσιών. Στα τυπικά σενάρια υπηρεσιών διαδικτύου, οι παροχείς υπηρεσιών διαδικτύου θα θελήσουν να δημοσιεύσουν τις περιγραφές των εταιριών και των υπηρεσιών τους σε ένα κατάλογο, και όσοι αναζητούν υπηρεσίες, είτε κατά τη σχεδίαση, είτε κατά την εκτέλεση, θα θελήσουν να αναζητήσουν στον κατάλογο περιγραφές υπηρεσιών. Οι προδιαγραφές ΑΡΙ του UDDI παρέχουν γι αυτό το λόγο ένα σύνολο από προγραμματιστικές διεπαφές (ΑΡΙ) δημοσίευσης για την καταχώρηση υπηρεσιών, και αντίστοιχες διεπαφές ερωτήσεων ΑΡΙ για την εύρεση υπηρεσιών. Επιπλέον από την παροχή μιας προγραμματιστικής διεπαφής, οι διαχειριστές του καταλόγου UDDI, παρέχουν ένα σύστημα αλληλεπίδρασης με το χρήστη, βασισμένο στο διαδίκτυο, για την καταχώρηση, διαχείριση, ανεύρεση εταιριών και υπηρεσιών μέσα στον κατάλογο. Ένας απλός τρόπος κατηγοριοποίησης της πληροφορίας που περιέχεται σε μια υπηρεσία καταγραφής (registry) UDDI παρουσιάζει ομοιότητες με τον τηλεφωνικό κατάλογο: Λευκές σελίδες, στις οποίες οι πελάτες UDDI μπορούν να βρουν τις Διαδικτυακές υπηρεσίες που προσφέρονται από μια συγκεκριμένη επιχείρηση. Κίτρινες σελίδες, όπου είναι δυνατή η αναζήτηση υπηρεσιών ανάλογα με την κατηγορία στην οποία ανήκουν, σύμφωνα με κάποιο σχήμα ταξινόμησης. Πράσινες σελίδες, που περιγράφουν πώς μπορεί να καλέσει ένα πρόγραμμα πελάτη μια συγκεκριμένη διαδικτυακή υπηρεσία

34 Κεφάλαιο 3. Ερευνητική Μεθοδολογία Η Ερευνητική Μεθοδολογία ορίζεται ως μια δομημένη συλλογή από οδηγίες ή/και δραστηριότητες η οποία αποβλέπει στην εποικοδομητική παραγωγή αξιόπιστων αποτελεσμάτων (Mingers, 2001). Αποτελεί γεγονός ότι κατά τη διάρκεια εκπόνησης των μελετητικών τμημάτων έργων που αφορούν σε ανάπτυξη Ολοκληρωμένων Συστημάτων διευκολύνει η επιλογή μιας μοναδικής μεθοδολογικής προσέγγισης καταγραφής και ανάλυσης των απαιτήσεων των χρηστών με στόχο τη μεγιστοποίηση της ακρίβειας των αποτελεσμάτων (J. McGrath, 1982). Κατόπιν σφαιρικής εξετάσεως και προσεγγίσεως του κοινού-στόχου αυτής της εργασίας, κρίθηκε σκόπιμο να υιοθετηθεί συγκεκριμένη μέθοδος έρευνας (research method), δηλαδή η αναζήτηση της πληροφορίας έγινε βάσει στρατηγικής η οποία ξεκίνησε από θεμελιώδεις φιλοσοφικές αρχές και συνδύασε σχεδιασμό έρευνας και συλλογή δεδομένων. Ως γνωστό, οι μέθοδοι έρευνας κατηγοριοποιούνται με ποικίλους τρόπους, ωστόσο η πιο κοινή διάκριση είναι εκείνη μεταξύ των δυο επικρατέστερων: της ποιοτικής (qualitative) και της ποσοτικής (quantitative) μεθόδου έρευνας. Βέβαια, παρόλο που οι περισσότεροι ερευνητές υιοθετούν είτε την ποσοτική είτε την ποιοτική, μερικοί προτείνουν συνδυασμό μιας ή περισσοτέρων μεθόδων στην μελέτη τους (ο αποκαλούμενος τριγωνισμός - triangulation), όμως στην παρούσα εργασία υιοθετήθηκε η μέθοδος της ποιοτικής έρευνας Ποιοτική Έρευνα Η ποιοτική έρευνα έχει τις ρίζες της στην κοινωνιολογία και ασχολείται περισσότερο με την ανάπτυξη εννοιών και ιδεών παρά με την εφαρμογή ήδη προϋπαρχουσών εννοιών (Halfpenny, 1979). Στην παρούσα εργασία η ποιοτική έρευνα περιέλαβε τη χρήση ποιοτικών δεδομένων, όπως συνεδριάσεις, τηλεφωνικές επικοινωνίες, ντοκουμέντα και δεδομένα εξέτασης άλλων παρόμοιων συστημάτων. Σημειωτέο πως τα ποιοτικά δεδομένα δεν είναι αριθμητικά ή μετρήσιμα και η πλειοψηφία των ερευνητών που ασπάζονται την ποιοτική μέθοδο προτιμούν τον όρο εμπειρικό υλικό- empirical material από τη λέξη δεδομένα-data. Οι ερευνητές αυτής της μεθόδου ενδιαφέρονται περισσότερο για την κατανόηση και γνώση των ερωτηθέντων από το να κατηγοριοποιούν ανθρώπους ή γεγονότα σε όρους ακαδημαϊκής θεωρίας (Rubin & Rubin, 1995) και μεταχειρίζονται τους συμμετέχοντες ως συνδιαλεγόμενους συνεταίρους παρά ως πληροφοριακά αντικείμενα. Η προσέγγιση αυτή δίνει έμφαση στην ακρόαση δεδομένων και στην κατανόηση του νοήματος μέσα από τα συμφραζόμενα, όπου αυτό το νόημα προέρχεται από αλληλεπίδραση με τους συμμετέχοντες. Επίσης, οι πολλαπλές εμπειρίες αφηγούμενες από διαφορετικούς συμμετέχοντες είναι χαρακτηριστικό της ποιοτικής προσέγγισης. Στη συγκεκριμένη εργασία χρησιμοποιούμε την ποιοτική προσέγγιση και όχι την ποσοτική διότι (Hancock et al, 2007): η ποιοτική προσέγγιση εστιάζει στο πώς οι άνθρωποι μπορούν και έχουν διαφορετικούς τρόπους αντίληψης μιας πραγματικότητας

35 εστιάζει και ερευνά τις δηλώσεις της εμπειρίας των ατόμων και τα δεδομένα που δεν θα μπορούσαν να εκφραστούν επαρκώς με αριθμούς μελετά τις συμπεριφορές ατόμων στο φυσικό τους πλαίσιο-περιβάλλον και χρησιμοποιεί τις περιγραφές τους ως δεδομένα εστιάζει στην περιγραφή και ερμηνεία των ατόμων με την πιθανότητα ανάπτυξης μιας νέας θεωρίας και στην αξιολόγηση μιας ήδη υπάρχουσας διαδικασίας η ποιοτική προσέγγιση εφαρμόζει μια ευέλικτη αλλά συστηματική διαδικασία έρευνας Πλεονεκτήματα και μειονεκτήματα ποιοτικής έρευνας Παρόλη την αφθονία και σχετικότητα των δεδομένων, η ποιοτική προσέγγιση δεδομένων έχει τις αδυναμίες της και τους περιορισμούς της (Miles, 1979). Αρχικά, η συλλογή και ανάλυση ποιοτικών δεδομένων είναι απαιτητική και παίρνει υπερβολικό χρόνο, διότι μαζεύονται δεδομένα πολλών μορφών και ο ερευνητής κατακλύζεται από τον όγκο τους. Δεύτερον, δεν έχουν καθιερωθεί καλά τα όρια των διαφόρων μεθοδολογιών ανάλυσης ποσοτικών δεδομένων (Cavaye, 1996), και τέλος, μία συνηθισμένη κριτική που δέχονται οι ερευνητές που χρησιμοποιούν την ποιοτική μεθοδολογία είναι το ότι τα αποτελέσματα μιας ποιοτικής ανάλυσης δεν μπορούν να γενικευθούν σε ένα ευρύτερο πληθυσμό διότι το δείγμα ανθρώπων είναι συνήθως μικρό και οι συμμετέχοντες δεν διαλέγονται τυχαία (Hancock et al, 2007). Πλεονεκτήματα Διερεύνηση που χαρακτηρίζεται από λεπτομέρεια και βάθος Είναι δυνατόν να οδηγήσει στη διερεύνηση φαινομένων, διαδικασιών και συμπεριφορών που δεν είχαν προβλεφθεί από πριν Διερεύνηση της εμπειρίας των κοινωνικών υποκειμένων. Ο ερευνητής «βλέπει» και κατανοεί τον κόσμο μέσα από τα μάτια και την αντίληψη των κοινωνικών υποκειμένων Γίνεται προσπάθεια για την αποφυγή a priori κρίσεων Μειονεκτήματα Συνήθως αφορά σε μικρά δείγματα Χαρακτηρίζεται από σχετικά περιορισμένες δυνατότητες γενίκευσης και σύγκρισης Εξαρτάται αρκετά από τις προσωπικές αντιλήψεις του ερευνητή και από τα επικοινωνιακά του προσόντα Η συμμετοχή ή η εμπλοκή του ερευνητή μπορεί να μεταβάλλει τα χαρακτηριστικά του υπό μελέτη κοινωνικού φαινομένου ή διαδικασίας Πίνακας Πλεονεκτήματα και Μειονεκτήματα της ποιοτικής έρευνας (Πηγή: Ιωσηφίδης, 2008)

36 Τύποι ποιοτικής έρευνας Υπάρχουν πολλές προσεγγίσεις στην ποιοτική έρευνα. Αυτό συμβαίνει επειδή δεν είναι όλες οι ερωτήσεις ποιοτικής έρευνας του ίδιου τύπου και επειδή οι ερευνητές προέρχονται από ένα ευρύ φάσμα παράδοσης ερευνών. Η επιλογή της κάθε προσέγγισης έρευνας θα επηρεάσει τον τρόπο συλλογής δεδομένων από τον ερευνητή (Hancock et al, 2007). Η στρατηγική έρευνας ορίζεται ως «ένα προσεγμένο σχέδιο ή μέθοδος ειδικά για την πραγμάτωση ενός στόχου» (Webster,1985). Οι πιο σημαντικοί τύποι ποιοτικής έρευνας είναι οι εξής: Εθνογραφία (Ethnography) Θεμελιωμένη θεωρία (Grounded theory) Μελέτη Περίπτωσης (Case study research) Έρευνα Δράσης (Action research) Μελέτη πεδίου (Field study) Περιγραφή Εφαρμογής (Application Description) 3.2. Έρευνα Δράσης (Action Research) Η έρευνα δράσης επιλέχθηκε διότι αναφέρεται ομόφωνα στη διεθνή βιβλιογραφία πως, σε συνδυασμό με ομάδες ενδιαφέροντος (focus groups) και συνεντεύξειςδιάλογους, είναι η καταλληλότερη καθώς επιτρέπει προσαρμοστικότητα στη μελέτη ώστε να βρίσκεται η καλύτερη δυνατή λύση στο πρόβλημα. Μερικοί από τους ευρύτατα αποδεκτούς ορισμούς της Έρευνας Δράσης περιλαμβάνουν τα ακόλουθα: «Η ενεργή έρευνα στοχεύει να συμβάλει αμφότερα στις πρακτικές ανησυχίες των ανθρώπων σε μια άμεση προβληματική κατάσταση και στους σκοπούς της κοινωνικής επιστήμης με κοινές συνεργασίες μέσα σε ένα αμοιβαία αποδεκτό εθνικό πλαίσιο.» (Rapoport 1970: 499) «Η Έρευνα Δράσης είναι μια μορφή συλλογικής αυτο-αναστοχαστικής (selfreflective) έρευνας που αναλαμβάνεται από τους συμμετέχοντες στις κοινωνικές καταστάσεις, προκειμένου να βελτιώσουν τις κοινωνικές ή εκπαιδευτικές πρακτικές τους, καθώς επίσης και να κατανοήσουν τις πρακτικές τους και τις καταστάσεις στις οποίες πραγματοποιούνται». (Kemmis and McTaggart 1988: 56) «Η έρευνα δράση είναι μια παρέμβαση μικρής κλίμακας στη λειτουργία του πραγματικού κόσμου και μια εξέταση από κοντά των επιδράσεων αυτής της παρέμβασης». (L. Cohen, L. Manion 2000:258) Ο πιο επιγραμματικός ορισμός της Έρευνας Δράσης δίνεται από τον John Elliot (1991: 69): «Η Έρευνα Δράσης είναι η μελέτη μιας κοινωνικής κατάστασης, με στόχο τη βελτίωση της ποιότητας της δράσης στα πλαίσια αυτής της κατάστασης»

37 Στόχοι της Έρευνας Δράσης Οι βασικοί στόχοι της Έρευνας Δράσης είναι: 1. η υποστήριξη των μελών μιας ομάδας στην αντιμετώπιση των προκλήσεων και των προβλημάτων ενός συστήματος και στην υλοποίηση καινοτομιών μετά από προβληματισμό και συζήτηση. 2. να προσφέρει μια στρατηγική στην ανάπτυξη του συστήματος. 3. να προσφέρει μια στρατηγική εκπαίδευσης για τους χρήστες και θεωρεί ότι το σημαντικότερο πεδίο εκπαίδευσης είναι η πρακτική. Η Έρευνα Δράσης έχει ως βάση τις παρακάτω παραδοχές της θεωρίας του αναστοχαστικού ορθολογισμού: 1. Τα πολύπλοκα πρακτικά προβλήματα απαιτούν εξειδικευμένες λύσεις. 2. Οι λύσεις αυτές μπορούν να αναπτυχθούν μόνο μέσα στο περιβάλλον στο οποίο αναδύεται το πρόβλημα και όπου κρίσιμο και καθοριστικό στοιχείο είναι ο χρήστης. 3. Οι λύσεις δεν μπορούν να εφαρμοστούν με επιτυχία σε άλλες καταστάσεις, αλλά μπορούν να τεθούν στη διάθεση άλλων χρηστών ως υποθέσεις προς έλεγχο. Οι παραδοχές αυτές αποτελούν τη βάση της Έρευνας Δράσης, (Altrichter, Posch, & Somekh 2001). Εν κατακλείδι, η Έρευνα Δράσης στοχεύει να υπηρετήσει τόσο τις πρακτικές ανησυχίες των ανθρώπων που βιώνουν μια προβληματική κατάσταση, όσο και τους σκοπούς των κοινωνικών επιστημών, μέσα σε ένα αμοιβαία αποδεκτό ηθικό δεοντολογικό πλαίσιο Τα βασικά χαρακτηριστικά της Έρευνας Δράσης Τα βασικά χαρακτηριστικά της έρευνας δράσης είναι τα εξής: 1. Η Έρευνα Δράσης διεξάγεται από ανθρώπους που σχετίζονται άμεσα με την κοινωνική κατάσταση που ερευνάται. 2. Η Έρευνα Δράσης ξεκινά από πρακτικά ζητήματα που προκύπτουν από την καθημερινή χρήση ενός συστήματος και στοχεύει, τόσο στην βελτίωση της πρακτικής κατάστασης, όσο και στην ανάπτυξη της γνώσης σχετικά με τις πρακτικές των συμμετεχόντων. Δηλαδή, τα ερευνητικά ερωτήματα αναδύονται από αλληλεπίδραση των χρηστών με το σύστημα και όχι από γενικούς προβληματισμούς. 3. Η Έρευνα Δράσης πρέπει να συμβατή με τις εκπαιδευτικές αξίες του σχολείου και με τις συνθήκες εργασίας των εκπαιδευτικών και συμβάλλει στην περαιτέρω ανάπτυξη των αξιών και στη βελτίωση των συνθηκών. 4. Η Έρευνα Δράσης οδηγεί σε βελτίωση της κατανόησης από την πλευρά του ερευνητή κοινωνικών καταστάσεων, δομών και συμπεριφορών και προσανατολίζει τη δράση τόσο του ίδιου του όσο και των συμμετεχόντων. (Altrichter, Posch, & Somekh 2001)

38 5. Η Έρευνα Δράσης είναι δυνατόν να οδηγήσει σε αποτελέσματα που θα έχουν ευρύτερη επίδραση. (Ιωσηφίδης 2003) Μεθοδολογία Η Έρευνα Δράσης ανήκει στις συμμετοχικές μεθοδολογίες έρευνας, οι οποίες χαρακτηρίζονται από κριτική διάθεση, πραγματιστικό πνεύμα, αποσκοπούν στην άμεση λύση προβλημάτων και στοχεύουν στην αλλαγή, περιορισμένη ή ευρύτερη. Το κοινό τους χαρακτηριστικό είναι η σχετικοποίηση της διάκρισης ερευνητή και ερευνούμενων. Δεν υπάρχει καμιά αυστηρή διαδοχική διαδικασία στην Έρευνα Δράσης. Όλοι οι θεωρητικοί της Έρευνας Δράσης προτείνουν μοντέλα σπειροειδή ή κυκλικά, στα οποία ο σχεδιασμός, η δράση και ο αναστοχασμός επαναλαμβάνονται σε όλη την ερευνητική δραστηριότητα. (Hart E. and Bond M. 1995). Η έρευνα δράσης δεν είναι μια γραμμική ερευνητική μεθοδολογία που ξεκινά με τη διατύπωση υποθέσεων, που ελέγχονται μέσα από τη διερευνητική διαδικασία, για να καταλήξει στην επιβεβαίωση ή τη διάψευσή τους. Δεν έχει δηλαδή μια δεδομένηαρχή και ένα δεδομένο τέλος. Η έρευνα δράσης αναπτύσσεται μέσα από τη σπείρα αυτο στοχασμού: έναν έλικα από κύκλους σχεδιασμού, δράσης (υλοποίησης του σχεδιασμού), συστηματικής παρατήρησης, στοχασμού... και μετά επανα σχεδιασμού, περαιτέρω υλοποίησης, παρατήρησης και στοχασμού Αποτελεί ουσιαστικά μια αλυσίδα επάλληλων κύκλων χωρίς τέλος. Η έρευνα δράσης δηλαδή είναι μια ανοικτή κυκλική διαδικασία, κατά την οποία κάθε κύκλος οδηγεί στον επόμενο, που θα σημάνει επαναπροσδιορισμό του σχεδίου και νέα στρατηγική δράσης, επιπρόσθετηκριτική και αυτοκριτική παρέμβαση και αναστοχασμό σε ένα πλαίσιο διαρκούς σύνθεσης και ανασύνθεσης. Ενδεικτικό της ανοικτής αυτής κυκλικής διαδικασίας είναι η σπείρα κύκλων σχεδιασμού, δράσης, παρατήρησης και αναστοχασμού, όπως φαίνεται στο σχήμα: Σχήμα Κυκλική διαδικασία έρευνας δράσης

39 ( =blog&id=6&itemid=6) Η κυκλική αυτή διαδικασία χρησιμοποιήθηκε και στην παρούσα εργασία. Αρχικά έγιναν συναντήσεις και επικοινωνίες μεταξύ των εμπλεκόμενων φορέων οι οποίοι προσπάθησαν να εστιάσουν και να προσδιορίσουν ακριβώς το πρόβλημα. Έπειτα σε συνδυασμό με τους προγραμματιστές ολοκληρώθηκε ο σχεδιασμός και η υλοποίηση του συστήματος το οποίο πέρασε από μια σειρά δοκιμών και ελέγχων μέσα από τις οποίες προέκυψαν διορθώσεις και βελτιώσεις του συστήματος. Έτσι το σύστημα απέκτησε την τελική του μορφή, η οποία ωστόσο μπορεί να αλλάξει και πάλι, εφόσον ανακαλυφθούν νέες βελτιώσεις από τους χρήστες Πότε χρησιμοποιείται η Έρευνα Δράσης; Η Έρευνα Δράσης χρησιμοποιείται σε πραγματικές καταστάσεις, παρά στις σχεδιασμένες, πειραματικές μελέτες, δεδομένου ότι η αρχική εστίασή της είναι στην επίλυση των πραγματικών προβλημάτων. Μπορεί, εντούτοις, να χρησιμοποιηθεί από τους κοινωνικούς επιστήμονες για την προκαταρκτική ή πειραματική έρευνα, ειδικά όταν η κατάσταση είναι πάρα πολύ διφορούμενη για να πλαισιώσει μια ακριβή ερευνητική ερώτηση. Συνήθως, επιλέγεται όταν οι περιστάσεις απαιτούν ευελιξία, συμμετοχή των ανθρώπων στην έρευνα, ή όταν μια αλλαγή πρέπει να πραγματοποιηθεί γρήγορα (O'Brien, R. 2001)

40 Κεφάλαιο 4. Ανάλυση και Σχεδίαση Το σύστημα ελέγχου σώρευσης παρέχει τη δυνατότητα εισαγωγής και ενημέρωσης των επενδυτικών σχεδίων καθώς και τον έλεγχο σώρευσης μιας επιχείρησης όπως φαίνεται και στο γενικό use case diagram που ακολουθεί. Σχήμα 4.1. Γενικό Use Case Diagram 4.1. Εισαγωγή επενδυτικού σχεδίου Η διαδικασία εισαγωγής ενός επενδυτικού σχεδίου αποτελείται από συγκεκριμένα βήματα. Όπως φαίνεται και στο case diagram που ακολουθεί αρχικά ο φορέας που παρέχει την κρατική ενίσχυση, αφού συνδεθεί στο σύστημα, θα πρέπει να καταχωρήσει τα στοιχεία της επιχείρησης που δέχεται την ενίσχυση αλλά και τα στοιχεία του επενδυτικού σχεδίου

41 Σχήμα 4.2. Εισαγωγή Επενδυτικού Σχεδίου - Use Case Diagram Για την εισαγωγή της επιχείρησης θα πρέπει να συμπληρωθεί στην κατάλληλη οθόνη μια σειρά από πεδία όπως είναι το ΑΦΜ και η επωνυμία της επιχείρησης. Αναλυτικά τα στοιχεία που πρέπει να συμπληρωθούν φαίνονται στην παρακάτω εικόνα. Εικόνα 4.3. Προσθήκη νέας επιχείρησης

42 Ένα επενδυτικό σχέδιο θα πρέπει να συνδέεται με μία Πρόσκληση Προκήρυξη. Η σχέση τους είναι ένα προς πολλά. Δηλαδή κάτω από μια προκήρυξη μπορεί να «κρέμονται» περισσότερα από ένα επενδυτικά σχέδια, όπως φαίνεται και στο παρακάτω σχήμα. Σχήμα 4.4. Σχέση Προκήρυξης Επενδυτικού σχεδίου Οπότε, για να γίνει εισαγωγή ενός επενδυτικού σχεδίου θα πρέπει να έχει αρχικά καταχωρηθεί η προκήρυξη με την οποία συνδέεται. Αν έχει ήδη γίνει η εισαγωγή της προκήρυξης ο φορέας μπορεί να προχωρήσει με την εισαγωγή του επενδυτικού σχεδίου. Κατά την εισαγωγή μιας προκήρυξης θα πρέπει να εισαχθούν στο σύστημα τα πλήρη στοιχεία της τα οποία φαίνονται στην παρακάτω εικόνα. Εικόνα 4.5. Προσθήκη Προκήρυξης Αφού ολοκληρωθεί η εισαγωγή της προκήρυξης μπορεί να γίνει εισαγωγή του επενδυτικού σχεδίου (αναλυτικά τα βήματα αναφέρονται στο κεφάλαιο 8)

43 Πριν την καταχώρηση του επενδυτικού σχεδίου θα πρέπει γίνει έλεγχος σώρευσης της επιχείρησης για την οποία θέλουμε να καταχωρηθεί το επενδυτικό σχέδιο. Εικόνα 4.6. Activity Diagram - Έλεγχος Σώρευσης Ο έλεγχος σώρευσης γίνεται από την αρχική σελίδα όπως φαίνεται και στην παρακάτω οθόνη. Ο φορέας θα πρέπει να καταχωρήσει το ΑΦΜ της επιχείρησης που θέλει να χρηματοδοτήσει και το ποσό του επενδυτικού σχεδίου. Εικόνα 4.7. Έλεγχος Σώρευσης

44 Ανάλογα με τις χρηματοδοτήσεις που έχει λάβει η επιχείρηση στο διάστημα των τριών ετών το σύστημα θα επιστρέψει αναφορά ανάλογα με τον αν η επιχείρηση σωρεύει ή όχι. Εικόνα 4.8. Αποτέλεσμα Ελέγχου Σώρευσης Εφόσον η αναφορά σώρευσης είναι θετική μπορούμε να προχωρήσουμε στην καταχώρηση του επενδυτικού σχεδίου όπου και εδώ αντίστοιχα θα πρέπει να γίνει συμπλήρωση μιας σειράς από πεδία τα οποία φαίνονται στην επόμενη εικόνα. Εικόνα 4.9. Προσθήκη Επενδυτικού Σχεδίου Η ενημέρωση ενός Επενδυτικού σχεδίου μπορεί να γίνει μόνο εφόσον η επιχείρηση περνάει τον έλεγχο σώρευσης με επιτυχία

45 Εικόνα Activity Diagram - Τροποποίηση Επενδυτικού Σχεδίου Αντίστοιχα από τη πλευρά των διεπαφών υπάρχει η δυνατότητα εισαγωγής επενδυτικού σχεδίου και όλης της πληροφορίας που απαιτείται πριν την εισαγωγή του επενδυτικού σχεδίου και η δυνατότητα ελέγχου σώρευσης μιας επιχείρησης (βλέπε αντίστοιχα xml στο Παράρτημα 10.3 Request CheckAccumulation.xml και 10.4 Request InsertIPlan.xml). Πιο αναλυτικά κατά την εισαγωγή του επενδυτικού σχεδίου: 1. Γίνεται έλεγχος για το αν έχει ήδη καταχωρηθεί η επιχείρηση και αν όχι γίνεται η εισαγωγή της 2. Γίνεται έλεγχος για το αν υπάρχει ήδη στο σύστημα η αντίστοιχη προκήρυξη και αν όχι γίνεται η εισαγωγή της

46 3. Εκτελείται έλεγχος σώρευσης για την επιχείρηση με το ποσό του επενδυτικού σχεδίου 4. Αν ο έλεγχος σώρευσης είναι θετικός καταχωρείται το επενδυτικό σχέδιο. 5. Η διεπαφή επιστρέφει το συνολικό ποσό με το οποίο έχει ενισχυθεί η επιχείρηση μέσα στη τελευταία τριετία, το κωδικό της σώρευσης που έτρεξε, το κωδικό σφάλματος αν υπάρχει και ένα επεξηγηματικό μήνυμα. Εικόνα Activity Diagram - Εισαγωγή Επενδυτικού Σχεδίου Από τα παραπάνω συμπεραίνουμε ότι τα xml αρχεία που στέλνονται για την καταχώρηση επενδυτικού σχεδίου θα πρέπει να περιέχουν πλήρη στοιχεία επιχείρησης, προκήρυξης και επενδυτικού σχεδίου. Αν ο έλεγχος σώρευσης στο 4 ο βήμα είναι αρνητικός δεν καταχωρείται κανένα στοιχείο

47 Εικόνα Response Διεπαφής Εισαγωγής Επενδυτικού Σχεδίου Όσον αφορά την διεπαφή ελέγχου σώρευσης δέχεται το ΑΦΜ της επιχείρησης και το ποσό της επένδυσης και επιστρέφει το συνολικό ποσό με το οποίο έχει ενισχυθεί η επιχείρηση μέσα στη τελευταία τριετία, το κωδικό σφάλματος αν υπάρχει και ένα επεξηγηματικό μήνυμα για το αν μπορεί να ενισχυθεί περαιτέρω η επιχείρηση με το ποσό που αιτηθήκαμε. Εικόνα Response Διεπαφής Ελέγχου Σώρευσης 4.2. Δομή βάσης δεδομένων Το σχήμα της βάσης αποτελείται από πέντε βασικούς πίνακες. Οι πίνακες αυτοί είναι οι εξής: ACC_ENTERP_INFO: Σε αυτό τον πίνακα αποθηκεύονται τα στοιχεία των επιχειρήσεων. ACC_PROPOSALS: Σε αυτό τον πίνακα αποθηκεύονται τα στοιχεία των προσκλήσεων. ACC_PROJECT_PLAN: Σε αυτό τον πίνακα αποθηκεύονται τα στοιχεία των επενδυτικών σχεδίων. ACC_ACCUMULATION: Σε αυτό τον πίνακα αποθηκεύονται τα στοιχεία των ελέγχων σώρευσης που εκτελούνται

48 Η σχέση αυτών των πινάκων φαίνεται στο παρακάτω σχήμα. Σύστημα Σώρευσης Λύση ΜΟΣ Βασικό Διάγραμμα Οντοτήτων - Συσχετίσεων 04/2011 V 1.0 Χαϊντίνη Ασημίνα Αναλυτικά τα στοιχεία του πίνακα ACC_ENTERP_INFO φαίνονται στον πίνακα που ακολουθεί. Τίτλος Πεδίου Table Column Τύπος Πεδίου Μέγεθος Πεδίου Παρατηρήσεις AA ENT_ID Αριθμός 15 Κλειδί πίνακα (PK) Επωνυμία Επιχείρησης Διακριτικός Τίτλος Κωδικός κύριας Δραστηριότητας ENT_NAME Κείμενο 200 ENT_TITLE Κείμενο 200 ENT_KAD Κείμενο 25 Παραμετρικός πίνακας ACC_KAD

49 Α.Φ.Μ. ENT_AFM Κείμενο 12 Δ.Ο.Υ. Τομέας Δραστηριότητας Υπό σύσταση / Υφιστάμενη Νομική Μορφή Αριθμός απασχολ/νων στην Επιχείρηση Χώρα Περιφέρεια Έδρας Δήμος Έδρας Δημοτικό Διαμέρισμα Έδρας ENT_DOY_K ODIKOS ENT_TOMEA S ENT_YPO_SY STASH ENT_NOMIK H_MORFH ENT_EMPLO YEES_NUM ENT_XOR_K ODIKOS ENT_PER_KO DIKOS ENT_DHM_K ODIKOS ENT_DD_KO DIKOS Οδός ENT_ODOS Κείμενο 50 Αριθμός ENT_ARITHM OS Κείμενο 4 Παραμετρικός πίνακας ACC_DOY Κείμενο 2 Παραμετρικός πίνακας ACC_TOMEA S Αριθμός 1 (ΝΑΙ/ΟΧΙ) Αριθμός 2 Παραμετρικός πίνακας ACC_LEGAL_ FORM Αριθμός 38 Σε ΕΜΕ Κείμενο 3 Παραμετρικός πίνακας acc_xores Κείμενο 2 Παραμετρικός πίνακας ACC_PERIFER EIES Κείμενο 3 Παραμετρικός πίνακας ACC_DHMOI_ KOINOTHTES Κείμενο 3 Παραμετρικός πίνακας ACC_DHMOI_ KOINOTHTES Κείμενο 10 ΤΚ ENT_TK Κείμενο 10 Τηλέφωνο ENT_TEL Κείμενο 30 FAX ENT_FAX Κείμενο 30 ENT_ Κείμενο 30 website ENT_WEBSIT E Κείμενο 30 Επωνυμία ENT_SURNA Κείμενο

50 Εκπροσώπου Όνομα Εκπροσώπου Θέση στην επιχείρηση ΑΦΜ Εκπροσώπου Έγγραφο ταυτοποίησης Εκπροσώπου Τηλέφωνο Εκπροσώπου Είδος Βιβλίων Μέγεθος Επιχείρησης Περιγραφή ΔΥΟ Νομός ME_EKPR ENT_NAME_ EKPR ENT_THESH_ EKPR ENT_AFM_E KPR ENT_ADT_EK PR ENT_MOB_E KPR ENT_ACCOU NT_BOOKS Κείμενο 30 Κείμενο 30 Κείμενο 12 Κείμενο 30 Κείμενο 20 Αριθμός ENT_SIZE Αριθμός 1 ENT_DOY_D ESCR ENT_NOM_K ODIKOS Α,Β,Γ, Μη τήρηση Κείμενο 20 Για τους χρήστες που δεν ξέρουν τον κωδικό Κείμενο 2 Παραμετρικός πίνακας ACC_NOMOI

51 Η σχέση του πίνακα ACC_ENTERP_INFO με τους παραμετρικούς πίνακες φαίνεται στο σχήμα που ακολουθεί. Σύστημα Σώρευσης Λύση ΜΟΣ Σύνδεση πίνακα ACC_ENTERP_INFO με τους παραμετρικούς πίνακες 04/2011 V 1.0 Χαϊντίνη Ασημίνα

52 Τα στοιχεία του πίνακα ACC_PROPOSALS φαίνονται στον πίνακα που ακολουθεί. Τίτλος Πεδίου Table column Τύπος Πεδίου Μέγεθος Πεδίου Παρατηρήσεις ΑΑ PRJ_ID Αριθμός Κλειδί πίνακα (PK) Προγραμματιστι κή Περίοδος Επιχειρησιακό Πρόγραμμα Άξονας Προτεραιότητας Κωδικός Φορέα Προκήρυξης Κωδικός Προκήρυξης Είδος Αξιολόγησης Έναρξη Υποβολής Λήξη Υποβολής Περίοδος Υποβολής Περίοδος Αξιολόγησης Λήξη Επιλεξιμότητας Τίτλος Προκήρυξης Ποσό Προκήρυξης PROP_KPS_KODI KOS PROP_EP_KODIK OS PROP_YPOPROG R_KODIKOS PROP_FOREAS_ KODIKOS PROP_KODIKOS _PROSKLHSHS PROP_EIDOS_AK SIOLOGHSHS PROP_ENARKSH _YPOBOLHS PROP_LHKSH_Y POBOLHS PROP_PERIODOS _YPOBOLHS PROP_PERIODOS _AKSIOLOGHSH S PROP_LHKSH_E PILEKSIMOTHT AS Αριθμός Παραμετρικός πίνακας ACC_YPOPROG RAMMATA Κείμενο 3 Παραμετρικός πίνακας ACC_YPOPROG RAMMATA Κείμενο 3 Παραμετρικός πίνακας ACC_YPOPROG RAMMATA Αριθμός 9 Παραμετρικός πίνακας ACC_UM_FOREI S Κείμενο 10 Αριθμός Ημερομηνία Ημερομηνία Αριθμός Αριθμός Ημερομηνία PROP_TITLOS Κείμενο 2000 PROP_POSO Αριθμός 38,6 Αριθ. PROP_AR_PROT Κείμενο

53 Πρωτοκόλλου Ημερομ. Πρωτοκόλλου Ημερομ. Ολοκλήρωσης Έναρξη Επιλεξιμότητας Αριθμός Κοινοποίησης Αριθμός Απόφασης Έγκρισης ΕΕ Έναρξη Αξιολόγησης Λήξη Αξιολόγησης Περιγραφή Είδος Ενίσχυσης Καθεστώς Τύπος Ενίσχυσης OKOL PROP_HMEROM _PROTOKOL PROP_HMEROM HNIA_OLOKLHR OSHS PROP_ENARKSH _EPILEKSIMOTH TAS PROP_KATH_AR _KOINOP PROP_KATH_AR _APOFASHS PROP_ENARKSH _AJIOLOGHSHS PROP_LHKSH_A JIOLOGHSHS PROP_DESCRIPT ION PROP_EIDOS_EN ISX PROP_KATHEST OS_KODIKOS PROP_TYPE_ENI SX Ημερομηνία Ημερομηνία Ημερομηνία Κείμενο 50 Κείμενο 50 Ημερομηνία Ημερομηνία Κείμενο 4000 Αριθμός 1 Κείμενο 10 Παραμετρικός πίνακας ACC_KATHEST OTA Κείμενο 3 Παραμετρικός πίνακας ACC_TYPES_EN ISX

54 Η σχέση του πίνακα ACC_PROPOSALS με τους παραμετρικούς πίνακες φαίνεται στο σχήμα που ακολουθεί. Σύστημα Σώρευσης Λύση ΜΟΣ Σύνδεση πίνακα ACC_PROPOSALS με τους παραμετρικούς πίνακες 04/2011 V 1.0 Χαϊντίνη Ασημίνα

55 Τα στοιχεία του πίνακα ACC_PROJECT_PLAN φαίνονται στον πίνακα που ακολουθεί. Τίτλος Πεδίου Table column Τύπος Πεδίου ΑΑ PRJ_ID Αριθμός Μέγεθος Πεδίου Παρατηρήσεις ΑΑ Επιχείρησης PRJ_ENT_ID Αριθμός 15 Εξωτερικό κλειδί με τον πίνακα ACC_ENTERP _INFO (FK) ΑΦΜ Επιχείρησης Αιτούμενος Προϋπολογισμός Επιχορηγούμενος Προϋπολογισμός Ενισχυόμενος Προϋπολογισμός Δημόσια Επιχορήγηση Χώρα Τόπου εγκατάστασης Περιφέρεια Τόπου εγκατάστασης Νομός Τόπου εγκατάστασης Δήμος Τόπου εγκατάστασης Δημ. Διαμέρισμα Τόπου εγκατάστασης PRJ_ENT_AFM Κείμενο 20 Εξωτερικό κλειδί με τον πίνακα ACC_ENTERP _INFO (FK) PRJ_AIT_PROYP Αριθμός 38,3 PRJ_EPIX_PROYP Αριθμός 38,3 PRJ_ENISX_PROYP Αριθμός 38,3 PRJ_POSO_EPIX Αριθμός 38,3 PRJ_XOR_KODIKOS Κείμενο 3 Παραμετρικός πίνακας ACC_XORES PRJ_PER_KODIKOS Κείμενο 2 Παραμετρικός πίνακας ACC_PERIFER EIES PRJ_NOM_KODIKOS Παραμετρικός πίνακας ACC_NOMOI PRJ_DHM_KODIKOS Κείμενο 3 Παραμετρικός πίνακας ACC_DHMOI_ KOINOTHTES PRJ_DD_KODIKOS Κείμενο 3 Παραμετρικός πίνακας ACC_DHMOI_ KOINOTHTES Οδός PRJ_ODOS Κείμενο 50 Αριθμός PRJ_ARITHMOS Κείμενο 50

56 ΤΚ PRJ_TK Κείμενο 50 Σύντομη Τεχνική Περιγραφή PRJ_TECH_DESCR Κείμενο 4000 ΑΑ Προκήρυξης PRJ_PROP_ID Αριθμός Εξωτερικό κλειδί με τον πίνακα ACC_PROPOS ALS (FK) Κωδικός Φορέα Προκήρυξης Ημερομηνία Λήξης Ημερομηνία Έγκρισης Ένδειξη Ολοκλήρωσης Καθεστώς Κωδικός Προκήρυξης Τίτλος Επενδυτικού Σχεδίου Κωδικός Πράξης ΜΙΣ PRJ_KODIKOS_FOR EA PRJ_END_DATE PRJ_APPROVAL_DA TE Αριθμός Ημερομη νία Ημερομη νία FINALIZE_FLAG Αριθμός 1 PRJ_KATHESTOS_K ODIKOS PRJ_KODIKOS_PRO SKLHSHS Αριθμός Κείμενο 10 PRJ_TITLE Κείμενο 500 PRJ_KODIKOS_MIS Αριθμός 38 Κωδικός Έργου PRJ_IT_CODE Κείμενο 40 Εξωτερικό κλειδί με τον πίνακα ACC_ENTERP _INFO (FK) Παραμετρικός πίνακας ACC_KATHES TOTA

57 Η σχέση του πίνακα ACC_PROJECT_PLAN με τους παραμετρικούς πίνακες φαίνεται στο σχήμα που ακολουθεί. Σύστημα Σώρευσης Λύση ΜΟΣ Σύνδεση πίνακα ACC_PROJECT_PLAN με τους παραμετρικούς πίνακες 04/2011 V 1.0 Χαϊντίνη Ασημίνα

58 Τα στοιχεία του πίνακα ACC_ACCUMULATION φαίνονται στον πίνακα που ακολουθεί. Τίτλος Πεδίου Table column Τύπος Πεδίου Μέγεθος Πεδίου Παρατηρήσεις ΑΑ Επιχείρησης ACC_ENT_ID Αριθμός 15 Εξωτερικό κλειδί με τον πίνακα ACC_ENTERP_IN FO (FK) ΑΦΜ Επιχείρησης ΑΑ Επενδυτικού Σχεδίου Κωδικός Σώρευσης ACC_ENT_AFM Κείμενο 20 Εξωτερικό κλειδί με τον πίνακα ACC_ENTERP_IN FO (FK) ACC_PRJ_ID Αριθμός 15 Εξωτερικό κλειδί με τον πίνακα ACC_PROJECT_P LANS (FK) ACC_ACC_ID Αριθμός 15 Κωδικός Φορέα ACC_ENT_AFM Αριθμός 20 Παραμετρικός πίνακας ACC_UM_FOREI S Έγκριση ACC_APPROVAL Αριθμός 1 ΝΑΙ/ΟΧΙ Σωρευμένο Ποσό Είδος Ενίσχυσης Ημερομηνία λήξης επιλεξιμότητας των επενδυτικών δαπανών ACC_AMOUNT Αριθμός 38,6 ACC_ACC_STAT US ACC_LAST_APP ROV_DATE Κείμενο 3 Ad hoc ενίσχυση ή μέτρο ενίσχυσης ή και τα δύο Ημερομηνία

59 Η σχέση του πίνακα ACC_ACCUMULATION με τους παραμετρικούς πίνακες φαίνεται στο σχήμα που ακολουθεί. Σύστημα Σώρευσης Λύση ΜΟΣ Σύνδεση πίνακα ACC_ACCUMULATION με τους παραμετρικούς πίνακες 04/2011 V 1.0 Χαϊντίνη Ασημίνα

60 Κεφάλαιο 5. Εργαλεία Υλοποίησης Στις επόμενες ενότητες θα γίνει μια εκτενής αναφορά των εργαλείων που χρησιμοποιήθηκαν για την υλοποίηση του συστήματος. Στις πιο σύνθετες εφαρμογές, είναι πολύ πιθανό να προκύψουν προβλήματα στη σχεδίαση και οργάνωση της λειτουργικότητας, καθώς και δυσκολίες συντήρησης και περιορισμοί στη δυνατότητα αναβάθμισης. Για το λόγο αυτό, δόθηκε ιδιαίτερο βάρος στη δημιουργία και χρήση προτύπων σχεδίασης. Έχοντας λοιπόν σαν βάση το Spring Framework χρησιμοποιήθηκε το πρότυπο σχεδίασης MVC Model και η δυνατότητα που μας δίνει για Depenency Injection Spring Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java που δημιουργήθηκε από τον Rob Johnson και περιγράφηκε στο βιβλίο του Expert One-on-One: J2EE Design and Development. Αναπτύχθηκε κατά κύριο λόγο, για να αντιμετωπίσει την πολυπλοκότητα ανάπτυξης enterprise εφαρμογών. Η Spring κάνει εφικτή την χρήση απλών JavaBeans για την επίτευξη πραγμάτων που προηγουμένως μπορούσαν να γίνουν μόνο μέσω EJBs. Παρόλα αυτά, η Spring δεν είναι μόνο χρήσιμη για την ανάπτυξη server-side εφαρμογών. Η χρήση της μπορεί να βοηθήσει στην απλοποίηση του κώδικα, τον ευκολότερο και πιο αποτελεσματικό έλεγχο και τη χαλαρή διασύνδεση (loose coupling) κάθε Java εφαρμογής. Η Spring κάνει πολλά πράγματα, αλλά, αν την αναλύσει κάποιος στα βασικά της κομμάτια, θα δει ότι είναι ένας ελαφρύς (lightweight) aspect-oriented container ο οποίος εφαρμόζει dependency injection, ενώ παράλληλα αποτελεί και περιβάλλον εργασίας (framework). Για να γίνουν τα πράγματα πιο κατανοητά θα γίνεται ανάλυση της περιγραφής αυτής : Lightweight (Ελαφρύς): Με τον όρο αυτό αναφερόμαστε τόσο στο μέγεθος όσο και στον επιπλέον φόρτο (overhead). Η διανομή του Spring Framework μπορεί να συμπεριληφθεί σε ένα απλό jar αρχείο μεγέθους 2,5 MB, ενώ ο επιπρόσθετος φόρτος εργασίας που απαιτείται είναι αμελητέος. Ο προγραμματιστής χρειάζεται να κάνει ελάχιστες, αν όχι καθόλου, αλλαγές στον κώδικα της εφαρμογής που αναπτύσσει έτσι, ώστε να επωφεληθεί από τον πυρήνα της, ενώ μπορεί οποιαδήποτε στιγμή να σταματήσει να τη χρησιμοποιεί. Βέβαια αυτού του είδους η ευχέρεια παρέχεται μόνο στον πυρήνα της Spring. Πολλά επιπλέον μέρη της, όπως είναι η πρόσβαση δεδομένων, απαιτούν πολύ στενότερη «διασύνδεση» (coupling) από ότι το Spring framework. Παρόλα αυτά, το κέρδος στις περισσότερες από αυτές τις περιπτώσεις είναι πολύ σημαντικό. Dependency Injection: Η Spring προάγει τη χαλαρή διασύνδεση χρησιμοποιώντας μία τεχνική που είναι γνωστή ως dependency injection (DI). 'Όταν εφαρμόζεται η DI, τα αντικείμενα λαμβάνουν παθητικά τις εξαρτήσεις τους (dependencies) αντί να τις δημιουργούν ή να τις αναζητούν μόνα τους. Είναι κάτι σαν ένα αντίστροφο Java Naming and Directory Interface (JN-DI) αντί ένα αντικείμενο να ψάχνει μόνο του για τις εξαρτήσεις του σε έναν container, ο container δίνει τις εξαρτήσεις στο αντικείμενο χωρίς να περιμένει πρώτα να ερωτηθεί. Aspect Oriented: Η Spring παρέχει πλούσια υποστήριξη σε Aspect - Oriented Programming (AOP). Αυτό έχει σαν αποτέλεσμα τη δημιουργία

61 εφαρμογών με περισσότερη συνοχή ακόμη και αν είναι απαραίτητη η συνύπαρξη διαφορετικών λογικών λειτουργίας. Έτσι, κάθε αντικείμενο της εφαρμογής κάνει μόνο ότι το αφορά και δεν είναι υπεύθυνο (ενδεχομένως δε γνωρίζει καν) για πράγματα που έχουν να κάνουν με άλλα συστήματα. Τέτοιου είδους πράγματα μπορεί να είναι η υποστήριξη συνδιαλλαγών ή η καταγραφή των διαφόρων κινήσεων (logging). Container: Η Spring αποτελεί έναν container με την έννοια ότι κρατάει και διαχειρίζεται τον κύκλο ζωής και τη διαμόρφωση των αντικειμένων της εφαρμογής. Ο προγραμματιστής μπορεί να ορίσει πώς θέλει να διαμορφώνονται και να δημιουργούνται τα αντικείμενα, καθώς και ποιες θέλει να είναι οι σχέσεις μεταξύ τους. Framework (Περιβάλλον Εργασίας): Η Spring δίνει τη δυνατότητα να δημιουργηθούν πολύπλοκες εφαρμογές με το συνδυασμό άλλων, λιγότερο πολύπλοκων, κομματιών. Στη Spring τα αντικείμενα δημιουργούνται μέσω δηλώσεων σε απλά XML αρχεία. Επίσης παρέχει πολλές δομικές λειτουργίες, όπως η διαχείριση συναλλαγών κ.ά., επιτρέποντας στον προγραμματιστή να ασχοληθεί περισσότερο με τη λογική της εφαρμογής του. Έτσι, μπορούμε να πούμε ότι η Spring είναι ένα περιβάλλον εργασίας το οποίο βοηθάει τον προγραμματιστή να δημιουργήσει εφαρμογές με χαλαρά διασυνδεδεμένο κώδικα. Ακόμη και αν αυτό ήταν το μόνο που έκανε, τα οφέλη θα ήταν πάρα πολλά από άποψη συντηρησιμότητας και ελεγξιμότητας και θα άξιζε τον κόπο να γίνει χρήση της. Όμως η Spring είναι πολλά περισσότερα. Περιέχει κομμάτια που χρησιμοποιούν DI και AOP και έτσι συνθέτουν μία αρκετά αξιόλογη πλατφόρμα στην οποία μπορούν να αναπτυχθούν εφαρμογές Τα module της Spring Το περιβάλλον εργασίας της Spring αποτελείται από αρκετά, καλά ορισμένα, κομμάτια (modules). Τα κομμάτια αυτά σαν σύνολο δίνουν στον προγραμματιστή ότι χρειάζεται, για να αναπτύξει enterprise εφαρμογές. εν απαιτείται από τον προγραμματιστή να βασίσει όλη την εφαρμογή του πάνω στη Spring. Αντίθετα, του παρέχεται η δυνατότητα να επιλέξει όποια από τα modules πιστεύει ότι καλύπτουν τις ανάγκες του. Επιπλέον παρέχονται τρόποι σύνδεσης με άλλα περιβάλλοντα εργασίας και βιβλιοθήκες έτσι, ώστε ο προγραμματιστής να μη χρειαστεί να τα αναπτύξει από την αρχή. Όπως φαίνεται στο σχήμα όλα τα modules της Spring είναι χτισμένα πάνω από το βασικό της container - πυρήνα. Ο πυρήνας καθορίζει πώς δημιουργούνται τα beans, πώς αρχικοποιούνται και πώς γίνεται ο χειρισμός τους, κάτι που αποτελεί τις κυριότερες λειτουργίες της Spring. Όμως ο προγραμματιστής ενδιαφέρεται περισσότερο για άλλα modules, αυτά που χρησιμοποιούν τον πυρήνα και τις υπηρεσίες που αυτός παρέχει

62 Σχήμα Τα modules της Spring (Πηγή: Ο πυρήνας - core container Ο πυρήνας της Spring παρέχει όλη τη βασική λειτουργικότητα του Spring Framework. Το module αυτό περιέχει το BeanFactory, το οποίο είναι ο θεμελιώδης container και η βάση με την οποία η Spring υλοποιεί το DI. Το DAO module Η δουλειά με JDBC συχνά περιλαμβάνει τη δημιουργία αρκετού κώδικα, ο οποίος κάνει βασικές και τετριμμένες ενέργειες όπως σύνδεση με τη βάση, δημιουργία κάποιας εντολής (statement), επεξεργασία του αποτελέσματος και κλείσιμο της σύνδεσης. Μέσω του Data Access Object (DAO) module η Spring δίνει τη δυνατότητα απλοποίησης όλης αυτή της διαδικασίας περιορίζοντας τα προβλήματα που προκύπτουν. Επιπλέον, χτίζει ένα layer από exceptions πάνω από τα μηνύματα σφάλματος που παράγουν αρκετοί εξυπηρετητές βάσεων δεδομένων. Επιπρόσθετα, αυτό το module (χρησιμοποιώντας το AOP module) παρέχει υπηρεσίες διαχείρισης συναλλαγών για τα αντικείμενα των εφαρμογών που χρησιμοποιούν τη Spring. Το ORM module Η Spring παρέχει το ORM module object - relational mapping (ORM) (αντιστοίχηση σχέσης - αντικειμένου) αντί για την απευθείας χρήση του JDBC. Αυτό χτίζει πάνω στο DAO παρέχοντας έναν αρκετά ολικό τρόπο για ανάπτυξη DAO πάνω από αρκετές λύσεις που προσφέρουν object - relational mapping. Παρόλο που η Spring δεν παρέχει το δικό της ORM, υποστηρίζει αρκετά δημοφιλή περιβάλλοντα

63 εργασίας, συμπεριλαμβανομένων των Hibernate, Java Persistence API, Java Data Objects και ibatis SQL Maps. Το σύστημα διαχείρισης συναλλαγών της Spring υποστηρίζει εκτός από αυτά τα περιβάλλοντα εργασίας και το JDBC. Το AOP module Η Spring προσφέρει υποστήριξη για aspect - oriented programming στο AOP module της. όπως και το DI, το AOP υποστηρίζει τη χαλαρή διασύνδεση μεταξύ των αντικειμένων κάθε εφαρμογής, όμως με το AOP σημαντικά θέματα που αφορούν το σύνολο των εφαρμογών (όπως οι συναλλαγές και η ασφάλεια) χωρίζονται από τα αντικείμενα στα οποία αυτά εφαρμόζονται. Το Web module Η Spring παρέχει μία πλούσια συλλογή κλάσεων για τη δημιουργία εφαρμογών που στηρίζονται στο διαδίκτυο (web - based applications) μέσω του Web module της. Υποστηρίζεται η χρήση του προτύπου σχεδίασης εφαρμογών Model/View/Controller (MVC), ο χειρισμός ηλεκτρονικής αλληλογραφίας (mail support) καθώς και η χρήση απομακρυσμένων υπηρεσιών (remoting support). Όσον αφορά τη χρήση του προτύπου σχεδίασης εφαρμογών Model/View/Controller (MVC), η Spring υποστηρίζει πλήρως το πιο γνωστό MVC περιβάλλον εργασίας, το Apache Struts. Με αυτόν τον τρόπο δίνεται η δυνατότητα στον προγραμματιστή να χρησιμοποιήσει στις ήδη σχεδιασμένες κλάσεις του τις αρχές του dependency injection που προσφέρει η Spring. Βέβαια, πέραν της υποστήριξης του Apache Struts, η Spring προσφέρει και τη δική της υλοποίηση του MVC. Μέσω αυτού μπορεί να γίνει χρήση μίας ευρείας γκάμας τεχνολογιών παρουσίασης, από σελίδες JSP και Apache Jakarta Velocity μέχρι Microsoft Excel και Adobe PDF. Σε σχέση με την αποστολή μηνυμάτων ηλεκτρονικής αλληλογραφίας, η Spring παρέχει ένα αρκετά απλοποιημένο API, το οποίο ταιριάζει με την όλη φιλοσοφία του DI που αυτή προσφέρει. Για το σκοπό αυτό παρέχονται δύο υλοποιήσεις, μία του JavaMail και μία της MailMessage κλάσης από το πακέτο com.oreilly.servlet του Jason Hunter. Μέσω αυτών δίνεται η δυνατότητα δημιουργίας ενός πρότυπου μηνύματος το οποίο στη συνέχεια μπορεί να χρησιμοποιηθεί σαν βάση για την αποστολή αλληλογραφίας μέσω της εφαρμογής. Τέλος, σε σχέση με χρήση απομακρυσμένων υπηρεσιών, παρέχεται εκτεταμένη υποστήριξη μίας μεγάλης συλλογής τεχνικών απομακρυσμένης πρόσβασης για τη γρήγορη δημιουργία και πρόσβαση σε απομακρυσμένες υπηρεσίες. Τέτοιες τεχνικές είναι το Java RMI, το JAXRPC, το Caucho Hessian και το Caucho Burlap. Εκτός αυτών, η Spring παρέχει και το δικό της πρωτόκολλο, που χρησιμοποιεί το HTTP πρωτόκολλο επικοινωνίας και το οποίο βασίζεται στο απλό Java serialization Java EE Connector API (JCA) Αν και τα τελευταία χρόνια όλο και περισσότεροι προγραμματιστές τείνουν να χρησιμοποιούν τις λεγόμενες ελαφριές πλατφόρμες με τεχνολογίες όπως η Spring και ο Tomcat, υπάρχουν πολλές περιπτώσεις όπου η χρήση αρκετών παραδοσιακών J2EE APIs κρίνεται απαραίτητη. Η σύνδεση και επικοινωνία μεταξύ τέτοιου είδους εφαρμογών και εφαρμογών που χρησιμοποιούν άλλες τεχνολογίες μπορεί να είναι δύσκολη. Το JCA της Spring παρέχει ένα σταθερό και αξιόπιστο τρόπο για την επικοινωνία με μία σειρά από τέτοιου είδους enterprise συστήματα. Τα κυριότερα

64 APIs που υποστηρίζονται είναι το Java Naming and Directory Interface (JNDI), τα EJB καθώς και η Java Message Service (JMS) Dependency Injection (DI) Αν και η Spring έχει πολλές δυνατότητες, το DI αποτελεί την καρδιά του περιβάλλοντος εργασίας. Παρά το γεγονός ότι ο όρος αυτός ακούγεται σαν μια περίπλοκη προγραμματιστική τεχνική ή τρόπο σχεδιασμού (design pattern) στην πραγματικότητα δεν είναι τόσο πολύπλοκο όσο ακούγεται. Αντίθετα, η χρήση του κάνει τον κώδικα πολύ πιο απλό, ευκολονόητο και εύκολα συντηρήσιμο. Κάθε μη τετριμμένη εφαρμογή αποτελείται από δύο ή περισσότερες κλάσεις οι οποίες συνεργάζονται, για να εκτελέσουν τις απαραίτητες ενέργειες. Παραδοσιακά κάθε αντικείμενο είναι υπεύθυνο να διατηρεί τις αναφορές του (reference) στα αντικείμενα με τα οποία συνεργάζεται (δηλαδή τις εξαρτήσεις του dependencies). Κάτι τέτοιο οδηγεί σε έναν ισχυρά δεμένο και δύσκολο στον έλεγχο κώδικα. Όταν γίνεται χρήση του DI, τα αντικείμενα λαμβάνουν τις εξαρτήσεις τους κατά την ώρα της δημιουργίας τους από μία εξωτερική οντότητα η οποία συντονίζει κάθε αντικείμενο στο όλο σύστημα. Με άλλα λόγια, οι εξαρτήσεις (dependencies) δίνονται (injected) στα αντικείμενα. Έτσι, το DI αποτελεί ενός είδους αντιστροφής στην ευθύνη που αφορά τη διατήρηση των αναφορών των αντικειμένων. Η λειτουργικότητα αυτή παρέχεται από τον πυρήνα της Spring, ο οποίος είναι υπεύθυνος να δίνει στα αντικείμενα τις εξαρτήσεις τους. Ο πυρήνας γνωρίζει πώς πρέπει να δώσει αυτές τις εξαρτήσεις στα κατάλληλα αντικείμενα διαβάζοντας το XML αρχείο ρυθμίσεων της Spring. Το κλειδί της παραπάνω τεχνικής είναι η χαλαρή διασύνδεση. Αν ένα αντικείμενο γνωρίζει για τις εξαρτήσεις του μόνο μέσω μίας διεπαφής (όχι μέσω της υλοποίησής τους ή μέσω του τρόπου που δημιουργούνται), η εξάρτηση μπορεί να αλλαχτεί πολύ εύκολα από μια διαφορετική υλοποίηση χωρίς το αντικείμενο να γνωρίζει για τη διαφορά Aspect Oriented Programming Όπως περιγράφηκε στην προηγούμενη παράγραφο, το DI καθιστά εφικτή τη χαλαρή διασύνδεση τμημάτων λογισμικού σε εφαρμογές. Αντίθετα, το aspect-oriented programming επιτρέπει τη συγκέντρωση λειτουργιών οι οποίες χρησιμοποιούνται σε όλη την εφαρμογή σε επαναχρησιμοποιήσιμα κομμάτια. Το aspect-oriented programming συχνά ορίζεται ως μια τεχνική η οποία προάγει το διαχωρισμό ευθυνών μέσα στο σύστημα λογισμικού. Τα συστήματα αποτελούνται από πολλά ξεχωριστά κομμάτια το καθένα από τα οποία είναι υπεύθυνο για συγκεκριμένο κομμάτι λειτουργικότητας. Συχνά όμως αυτά τα κομμάτια έχουν επιπλέον ευθύνες πέρα από τις βασικές λειτουργίες για τις οποίες προορίζονται. Υπηρεσίες όπως η διατήρηση αρχείου, η διαχείριση συναλλαγών και η ασφάλεια συχνά υλοποιούνται μέσα σε κομμάτια λογισμικού των οποίων η βασική ευθύνη είναι τελείως διαφορετική. Μοιράζοντας τέτοιου είδους ευθύνες κατά μήκος πολλαπλών κομματιών κώδικα δημιουργούνται δύο επίπεδα πολυπλοκότητας στον κώδικα που αναπτύσσεται. Ο

65 κώδικας ο οποίος υλοποιεί λειτουργίες που αφορούν όλη την εφαρμογή είναι διασκορπισμένος σε πολλά διαφορετικά τμήματα κώδικα αντί να είναι συγκεντρωμένος. Αυτό σημαίνει ότι, αν ο προγραμματιστής αποφασίσει να αλλάξει τον τρόπο που εκτελούνται τέτοιου είδους λειτουργίες, πρέπει να ανατρέξει σε πολλά διαφορετικά κομμάτια. Ακόμα και αν η διαφοροποίηση έγκειται μόνο στην αλλαγή του τρόπου κλήσης μίας και μόνο μεθόδου, η διόρθωση θα πρέπει να γίνει σε πολλά διαφορετικά κομμάτια κώδικα. Τα διάφορα κομμάτια κώδικα είναι επιφορτισμένα με λειτουργίες οι οποίες δεν τα αφορούν προσθέτοντάς τους επιπλέον κώδικα. Για παράδειγμα, αν η λειτουργία μίας μεθόδου είναι να προσθέσει μία εγγραφή σε έναν τηλεφωνικό κατάλογο, δεν πρέπει να την αφορά το αν αυτή η διαδικασία γίνει με ασφάλεια. Το AOP κάνει εφικτό το διαχωρισμό των διαφόρων υπηρεσιών επιτρέποντας να γίνεται χρήση τους, όποτε κάτι τέτοιο κρίνεται επιθυμητό, από τα κομμάτια κώδικα (components) που τις χρειάζονται. Αυτό οδηγεί στην ανάπτυξη πιο συνεκτικών κομματιών τα οποία είναι περισσότερο συγκεντρωμένα στο βασικό τους στόχο, αγνοώντας τελείως τις διάφορες άλλες υπηρεσίες του συστήματος. Με λίγα λόγια η χρήση των aspects διασφαλίζει ότι τα POJOs θα παραμείνουν απλά (plain) Model View - Controller Μία από τις πιο συχνά εμφανιζόμενες μορφές προγραμμάτων είναι αυτά που ανάλογα με τις εντολές του χρήστη δημιουργούν, ενημερώνουν ή διαγράφουν δεδομένα που υπάρχουν σε κάποιο αρχείο ή βάση δεδομένων. Οι εφαρμογές αυτές εμφανίζονται σε πολλά διαφορετικά περιβάλλοντα, από εφαρμογές ιστού μέχρι εφαρμογές στη γραμμή εντολών. Το μοντέλο που χρησιμοποιείτε συνήθως για την ανάπτυξη τέτοιων εφαρμογών είναι το Model-View-Controller (MVC). Η λογική αυτού του προτύπου σχεδίασης όπως προκύπτει και από το όνομά του είναι ότι το πρόβλημα χωρίζεται σε τρία κύρια συστατικά: Το Μοντέλο του προβλήματος (model) που διαχειρίζεται τη συμπεριφορά και τα δεδομένα στο πεδίο της εφαρμογής. Το μοντέλο επιστρέφει πληροφορίες σχετικά με την κατάστασή του στις προβολές και αντιδρά σε αιτήσεις για αλλαγή στην κατάστασή του που προέρχονται από τον ελεγκτή. Οι Προβολές (views), οι οποίες είναι ο τρόπος με τον οποίο αναπαριστώνται τα δεδομένα. Αξίζει να σημειώσουμε ότι οι προβολές δεν είναι αναγκαίο να είναι μια διεπαφή προς τον χρήστη, αλλά μπορεί να είναι μια διεπαφή για άλλα εξωτερικά συστατικά. Αν και ο χρήστης δεν το αντιλαμβάνεται αυτό, η προβολή δεν γνωρίζει καμία λεπτομέρεια σχετικά με το επιχειρησιακό μοντέλο του συστήματος και ούτε με τον τρόπο υλοποίησης των υπηρεσιών που του προσφέρονται. Στην ιδανική περίπτωση το συνθέτημα της προβολής αρκείται στο να λαμβάνει πληροφορίες από το μοντέλο και να τις παρουσιάζει στον χρήστη. Ο Ελεγκτής (controller) είναι το συστατικό το οποίο ενθυλακώνει τη λογική της εφαρμογής και αναλαμβάνει το συντονισμό της. Επεξεργάζεται τις αιτήσεις που προέρχονται από τις προβολές και αφού εκτελέσει τις απαραίτητες ενέργειες στέλνει αιτήσεις προς το μοντέλο για να πραγματοποιήσει αλλαγές στην κατάστασή του

66 Model View Controller (Πηγή: Όπως είναι προφανές ένα σύστημα σχεδιασμένο σύμφωνα με το μοντέλο MVC έχει συνθετήματα με ξεκάθαρες αρμοδιότητες. Η συντήρηση και η περαιτέρω ανάπτυξη της εφαρμογής είναι ευκολότερη. Δεδομένων μάλιστα της επεκτασιμότητας και ευελιξίας που είναι αναγκαίο να χαρακτηρίζουν την εφαρμογή, η επιλογή του μοντέλου MVC υπήρξε μονόδρομος. Όταν ένα σύστημα καλείται να αλλάζει τον τρόπο λειτουργίας του, ή την δομή δεδομένων του για να προσαρμοστεί σε άλλες εφαρμογές είναι εύλογη η ανάγκη σαφούς κατανομής των αρμοδιοτήτων των συνθετημάτων του. Ο προγραμματιστής μπορεί ανά πάσα στιγμή να γνωρίζει τι ακριβώς πρέπει να αλλάξει και σε ποιο σημείο θα βρει αυτό που αναζητά. Οι βασικότερες λειτουργίες που χρειάζονται για το μεγαλύτερο μέρος των εφαρμογών που αναπτύσσονται με αυτό το σχεδιαστικό πρότυπο είναι η δημιουργία, ανάκτηση, ενημέρωση και διαγραφή των δεδομένων από κάποια πηγή δεδομένων (data source) η οποία μπορεί να είναι ένα σύστημα αρχείων, μια τοπική ή απομακρυσμένη βάση δεδομένων κλπ. Οι λειτουργίες αυτές είναι γνωστές και σαν CRUD από τα αρχικά των λειτουργιών Create-Retrieve-Update-Delete. Έχουν εμφανιστεί αρκετές διαφορετικές προσεγγίσεις που επιτρέπουν την εύκολη δημιουργία των αντικειμένων του μοντέλου μιας εφαρμογής, με πιο εύχρηστη αυτή του Ruby On Rails. Το RoR επιτρέπει στον προγραμματιστή να δημιουργήσει όλες τις κλάσεις του μοντέλου του και κάποιες προβολές που επιτρέπουν τις λειτουργίες CRUD με λίγες εντολές στη γραμμή εντολών και χρησιμοποιώντας σαν είσοδο τη βάση δεδομένων. Στην περίπτωσή μας οι λειτουργίες αυτές χρησιμοποιούνται για δικτυακές εφαρμογές που αναπτύσσονται με τη γλώσσα προγραμματισμού Java. Πιο αναλυτικά, οι απαιτήσεις που υπάρχουν για τις λειτουργίες μας είναι οι εξής: Δημιουργία κώδικα κλάσεων των αντικειμένων

67 Δημιουργία αντικειμένου σε μια βάση δεδομένων Ανάκτηση του αντικειμένου βάσει διαφορετικών κριτηρίων Ενημέρωση ήδη υπάρχοντος αντικειμένου Διαγραφή αντικειμένου Συσχετίσεις ανάμεσα στα αντικείμενα Δημιουργία απλών zk σελίδων που θα επιτρέπουν σε ένα χρήστη τις παραπάνω λειτουργίες Το μοντέλο μπορεί εύκολα να περιγραφεί χρησιμοποιώντας αντικείμενα java POJOs (POJOs Plain Old Java Objects). Κατά τη διάρκεια του σχεδιασμού της εφαρμογής αρκεί να εφαρμόσουμε στα αντικείμενα του μοντέλου μας το sterotype <<POJO>>. Για τα αντικείμενα του μοντέλου μας πρέπει να υπάρχουν και οι αντίστοιχες λειτουργίες CRUD. Κατά τη διάρκεια του μετασχηματισμού δημιουργείτε μία κλάση για κάθε αντικείμενο του μοντέλου που επιτρέπει να πραγματοποιηθούν οι λειτουργίες CRUD καθώς και τα αντίστοιχα αρχεία ρυθμίσεων. Οι προβολές αποτελούνται από σελίδες zk. Μια πρότυπη μορφή τέτοιων σελίδων δημιουργείτε αυτόματα κατά το μετασχηματισμό. Σαν controller χρησιμοποιείτε ένα Java Servlet το οποίο αναλαμβάνει να δέχεται αιτήσεις από τις σελίδες zk και χρησιμοποιώντας τις κλάσεις που προσφέρουν τις υπηρεσίες να πραγματοποιεί τις αντίστοιχες αλλαγές στο μοντέλο Apache Axis Ο Apache Axis είναι ένα πλαίσιο ανοιχτού λογισμικού, για διαδικτυακές υπηρεσίες, το οποίο βασίζεται στην γλώσσα xml. Αποτελείται από δύο υλοποιήσεις εξυπηρετητών SOAP (µία σε γλώσσα Java και µία σε C++), από διάφορα εργαλεία και από APIs που εξυπηρετούν την δημιουργία και την τοποθέτηση των διαδικτυακών υπηρεσιών. Χρησιμοποιώντας τον Apache Axis, οι προγραμματιστές είναι σε θέση να δημιουργήσουν δομημένες υπολογιστικές εφαρμογές, οι οποίες λειτουργούν σε οποιοδήποτε υπολογιστικό σύστημα. O Apache Axis2 είναι ένας πυρήνας για διαδικτυακές υπηρεσίες. Πρόκειται για τον ευρύτατα χρησιμοποιούμενο Apache Axis1, ο οποίος σχεδιάστηκε και κατασκευάστηκε από την αρχή, µε καινούργια χαρακτηριστικά. O Apache Axis2 παρέχει την δυνατότητα στον χρήστη του, να προσθέσει διεπαφές διαδικτυακών υπηρεσιών σε διαδικτυακές εφαρμογές αλλά μπορεί να λειτουργήσει και ως ένας ξεχωριστός εξυπηρετητής εφαρμογών (server application). Υλοποιήσεις του Axis2 είναι διαθέσιμες σε γλώσσα Java και C++. Αναπτύχθηκε υπό την αιγίδα του οργανισμού Apache Software Foundation. Στην περίπτωση χρήσης της Java έκδοσης του Axis, υπάρχουν δύο τρόποι να εκτεθεί ο κώδικας Java ως διαδικτυακή υπηρεσία. Ο πρώτος τρόπος, που είναι και πιο εύκολος, είναι η χρήση των Axis JWS (Java Web Service) αρχείων. Ο δεύτερος τρόπος, ο οποίος θα χρησιμοποιηθεί στην παρούσα εργασία, περιλαμβάνει τοποθέτηση των διαδικτυακών υπηρεσιών µε τον τυπικό πλέον, τρόπο. Η τυπική τοποθέτηση δίνει την πρόσθετη δυνατότητα στον χρήστη να καθορίζει τα τμήματα του κώδικα που επιθυμεί να θέσει ως διαδικτυακές υπηρεσίες

68 Στην συνέχεια παρουσιάζονται συνοπτικά οι δύο τρόποι δημιουργίας, τοποθέτησης και προσπέλασης των διαδικτυακών υπηρεσιών. 1ος τρόπος 1. Δημιουργία διαδικτυακών υπηρεσιών µε χρήση των JWS αρχείων Τα JWS αρχεία είναι αρχεία πηγαίου κώδικα Java και περιέχουν τις κλάσεις Java που θα τεθούν ως Διαδικτυακές Υπηρεσίες. Η διαφορά τους µε τα τυπικά αρχεία java είναι η επέκταση του αρχείου(.jws αντί για.java) καθώς και ότι τοποθετούνται ως πηγαίος κώδικας (.java) κι όχι ως μεταφρασμένα αρχεία κλάσεων (.class). Η δημιουργία λοιπόν περιλαμβάνει την δημιουργία του κατάλληλου JWS αρχείου. 2. Τοποθέτηση διαδικτυακών υπηρεσιών µε χρήση των JWS αρχείων Εφόσον τεθεί το Axis2 servlet στον εξυπηρετητή, η τοποθέτηση πλέον γίνεται µε απλή αντιγραφή των αρχείων jws στον φάκελο του Axis στον εξυπηρετητή. Αυτό ισχύει σε περίπτωση που χρησιμοποιείται ο Apache Tomcat ως υποδοχέας. Σε περίπτωση που χρησιμοποιείται κάποιος άλλος, η τυπική δημιουργία αρχείου WAR είναι απαραίτητη. 3. Πρόσβαση στις διαδικτυακές υπηρεσίες που έχουν δημιουργηθεί µε JWS αρχεία Οι διαδικτυακές υπηρεσίες υλοποιημένες µε JWS αρχεία, είναι προσβάσιμες μέσω της διαδικτυακής διεύθυνσης τους, π.χ. " Αν χρησιμοποιείται διαφορετικός υποδοχέας από τον Apache Tomcat, η διαδικτυακή διεύθυνση μπορεί να είναι διαφορετική. 2ος τρόπος 1. Τυπική δημιουργία διαδικτυακών υπηρεσιών µε χρήση Axis Archive αρχείων (.aar ) Αυτός ο τρόπος δημιουργίας απαιτεί την ύπαρξη ενός συγκεκριμένου περιγραφέα τοποθέτησης που ονομάζεται WSDD (Web Service Deployment Descriptor). Μπορεί να χρησιμοποιηθεί για να προσδιορίσει ποιές πηγές μπορούν να τεθούν ως διαδικτυακές υπηρεσίες. Η δημιουργία της διαδικτυακής υπηρεσίας περιλαμβάνει την δημιουργία ενός Axis Archive αρχείου (.aar) το οποίο περιέχει το μεταφρασμένο αρχείο (.class) του αρχείου Java της Διαδικτυακής Υπηρεσίας, καθώς και ένα αρχείο XML. 2. Τυπική τοποθέτηση διαδικτυακών υπηρεσιών Η τυπική τοποθέτηση περιλαμβάνει την αντιγραφή του αρχείου.aar που αντιπροσωπεύει την διαδικτυακή εφαρμογή στο φάκελο υπηρεσιών του υποδοχέα. 3. Πρόσβαση στις τυπικές διαδικτυακές υπηρεσίες Οι διαδικτυακές υπηρεσίες είναι προσβάσιμες µέσω της διαδικτυακής διεύθυνσης τους, π.χ. " Αν χρησιμοποιείται διαφορετικός υποδοχέας από τον Apache Tomcat, η διαδικτυακή διεύθυνση μπορεί να είναι διαφορετική. 4. Αυτόματη παραγωγή WSDL κώδικα

69 Όταν τεθεί µία διαδικτυακή υπηρεσία, κατά την προσπέλαση της δημιουργείται αυτόματα ένα αρχείο WSDL µε την κατάληξη.wsdl. Εικόνα 5.2.1: Axis 2 (Πηγή: Τα γενικά χαρακτηριστικά του AXIS2 O Axis2 ως πυρήνας Διαδικτυακών Υπηρεσιών τηρεί τις βασικές προϋποθέσεις για την λειτουργία τους, όπως η υποστήριξη βασικών πρωτοκόλλων επικοινωνίας, η υποστήριξη του βασικού προφίλ WS 1.1 κτλ. Παρακάτω παρατίθεται o πίνακας γενικών χαρακτηριστικών. Πέρα από τον πυρήνα Αxis2 αποτυπώνεται επίσης η υποστήριξη ή µη, και άλλων πυρήνων διαδικτυακών υπηρεσιών. Πίνακας γενικών χαρακτηριστικών AXIS2 (Πηγή:

70 Ο Apache Axis2 είναι πρότυπος, πιο αποτελεσματικός, και χρησιμοποιεί περισσότερο την γλώσσα XML απ' όσο η προηγούμενη έκδοση. Είναι προσεκτικά σχεδιασμένος για να υποστηρίζει την εύκολη ενσωμάτωση πρόσθετων μονάδων, οι οποίες συνεισφέρουν στην ασφάλεια και στην αξιοπιστία του συστήματος. Τα πρόσθετα αυτά είναι διαθέσιμα ή υπό κατασκευή και περιλαμβάνουν:

71 WS-Αξιόπιστη Ανταλλαγή Μηνυμάτων -Υπό τη υποστήριξη του Apache Sandesha2 WS-Συντονισμός και WS-Ατομική Δοσοληψία -Υπό τη υποστήριξη του Apache Kandula2 WS-Ασφάλεια -Υπό τη υποστήριξη του Apache Rampart WS-Διευθυνσιοδότηση -Μονάδα που περιλαμβάνεται στον πυρήνα του Axis2 Ο Apache Axis2 έχει κατασκευαστεί πάνω στον Apache AXIOM, ένα μοντέλο υψηλής απόδοσης βασισμένο στην XML O Axis2 συνοδεύεται από πολλά νέα χαρακτηριστικά, από ενισχυμένες λειτουργίες και από ειδικές επιχειρηματικές υλοποιήσεις. Πρόκειται για χαρακτηριστικά που τον καθιστούν καλύτερο σε σχέση µε τους υπόλοιπους πυρήνες όπως φαίνεται και στον πίνακα 2: i. Ταχύτητα: Ο Axis2 χρησιμοποιεί το δικό του μοντέλο αντικειμένου και το δικό του StAX (Streaming API for XML) αναλυτή κειμένου µε αποτέλεσμα να παρέχει στους χρήστες του, μεγαλύτερη ταχύτητα από προηγούμενες εκδόσεις του Apache Axis. ii. Μικρό μέγεθος απαιτούμενης μνήμης: Ο Axis2 σχεδιάστηκε από κάτω προς τα πάνω προσπαθώντας διαρκώς να κρατήσει τις απαιτήσεις σε μνήμη σε χαμηλά επίπεδα. iii. AXIOM: Ο Axis2 συνοδεύεται από το δικό του ελαφρύ μοντέλο αντικειμένου, AXIOM, για επεξεργασία μηνυμάτων, το οποίο είναι επεκτάσιμο, έχει υψηλή απόδοση και είναι εύχρηστο στον προγραμματιστή. iv. Εύκολη και Άμεσα Αναγνωρίσιμη Τοποθέτηση: Ο Axis2 είναι εφοδιασμένος µε την δυνατότητα τοποθέτησης διαδικτυακών υπηρεσιών και χειριστών ενώ το σύστημα είναι σε λειτουργία. Με άλλα λόγια, νέες διαδικτυακές υπηρεσίες μπορούν να προστεθούν στο σύστημα, χωρίς να διακόψει την λειτουργία του ο εξυπηρετητής. Αρκεί απλά, η τοποθέτηση του αρχείου της επιθυμητής διαδικτυακής υπηρεσίας στον φάκελο υπηρεσιών και το μοντέλο εγκατάστασης θα εγκαταστήσει αυτόματα την υπηρεσία και την κάνει διαθέσιμη προς χρήση. v. Ασύγχρονες Διαδικτυακές Υπηρεσίες: Ο Axis2 πλέον υποστηρίζει ασύγχρονες διαδικτυακές υπηρεσίες και ασύγχρονη κλήση διαδικτυακών υπηρεσιών χρησιμοποιώντας ασύγχρονες εφαρμογές-πελάτες και ασύγχρονες μεταφορές. vi. Υποστήριξη MEP: Ο Axis2 πλέον παρέχει την ευελιξία για υποστήριξη των Προτύπων Ανταλλαγής Μηνυμάτων (Message Exchange Patterns (MEPs)) µε εσωτερική υποστήριξη για τα βασικά MEPs όπως καθορίζονται στο WSDL 2.0. vii. Ευελιξία: Η αρχιτεκτονική του Axis2 δίνει στον προγραμματιστή τη πλήρη ελευθερία να εισάγει επεκτάσεις στο σύστημα για τυπική επεξεργασία των επικεφαλίδων, για τη διαχείριση του συστήματος, και για οτιδήποτε άλλο µπορεί να φανταστεί κανείς. viii. Σταθερότητα: Ο Axis2 προσδιορίζει ένα σύνολο από δημοσιευμένες διαπροσωπίες οι οποίες αλλάζουν σχετικά αργά, συγκριτικά µε τα υπόλοιπα συστατικά του Axis

72 ix. Ανάπτυξη προσανατολισμένη στα στοιχεία: Μπορεί κανείς εύκολα να ορίσει επαναχρησιμοποιούμενα δίκτυα των χειριστών προκειμένου να υλοποιήσει γνωστές τεχνικές επεξεργασίας των εφαρμογών του ή να τις μοιραστεί µε τους συνεργάτες του. Πλαίσιο Μεταφορών: Υπάρχει πλέον µια ξεκάθαρη ιδέα για την ενοποίηση και την χρήση των μεταφορών μεταξύ πρωτοκόλλων (π.χ. αποστολείς και ακροατές για SOAP πάνω σε διάφορα πρωτόκολλα όπως SMTP, FTP, μηνυµατοστραφές ενδιάμεσο λογισμικό κτλ), και ο πυρήνας είναι πλήρως ανεξάρτητος των μεταφορών. x. Υποστήριξη WSDL: Το Axis2 υποστηρίζει τις εκδόσεις 1.1 και 2.0, της Web Service Description Language, η οποία επιτρέπει στο χρήστη να έχει πρόσβαση σε απομακρυσμένες υπηρεσίες και επίσης να εξάγει αυτόματα αναγνώσιμες από μηχανές, περιγραφές της διαδικτυακής υπηρεσίας xi. Πρόσθετα: Αρκετές προδιαγραφές των Διαδικτυακών Υπηρεσιών ενσωματώθηκαν συμπεριλαμβανομένου του WSS4J για ασφάλεια (Apache Rampart), του Sandesha για αξιόπιστη ανταλλαγή μηνυμάτων, του Kandula το οποίο είναι ενθυλάκωση των WS Συντονισμός, WS Ατομική Δοσοληψία and WS Επιχειρηματική Δραστηριότητα. xii. Δυνατότητα Σύνθεσης και Επεκτασιμότητα: Υπάρχουν πολλές μονάδες που αυξάνουν την δυνατότητα για σύνθεση και επέκταση. Οι μονάδες αυτές, υποστηρίζουν την δυνατότητα σύνθεσης καθώς και τις καινούργιες προδιαγραφές WS -*, µε έναν απλό και ξεκάθαρο τρόπο. Η τοποθέτηση τους ωστόσο δεν είναι άμεσα αναγνωρίσιμη, εφόσον αλλάζουν την όλη συμπεριφορά του συστήματος Tomcat Ο Apache Tomcat είναι ένας δικτυακός υποδοχέας, ή εξυπηρετητής εφαρμογών που αναπτύχθηκε από την Apache Software Foundation (ASF). Ο Tomcat υλοποιεί τις προδιαγραφές του Java Servlet και των Java Server Pages (JSP) όπως αυτές προσδιορίζονται από τη Sun Microsystems, παρέχοντας ένα περιβάλλον για εκτέλεση Java κώδικα σε συνεργασία µε έναν δικτυακό εξυπηρετητή (web server). Διαθέτει εργαλεία για τη ρύθμιση των παραμέτρων του και για τη διαχείριση του, αλλά μπορεί επίσης να ρυθμιστεί µε επεξεργασία των αρχείων ρυθμίσεων τα οποία συνήθως έχουν XML μορφή. Ο Tomcat περιλαμβάνει τον δικό του εσωτερικό HTTP εξυπηρετητή. Θεωρείται από τους πλέον αξιόπιστους Web Servers και χρησιμοποιείται ευρέως στην ανάπτυξη δικτυακών υπηρεσιών. Στην παρούσα εφαρμογή χρησιμοποιήθηκε η έκδοση η οποία παρέχεται ελεύθερα στο διαδίκτυο µέσω του συνδέσμου Apache HTTP Server Ο Apache HTTP Server, ο οποίος συχνά αποκαλείται απλά Apache, είναι ένας web server γνωστός για το ρόλο κλειδί που έπαιξε στην αρχική ανάπτυξη του παγκόσμιου ιστού. Ο Apache ήταν η πρώτη βιώσιμη εναλλακτική στον Web Server Netscape Communications Corporation (γνωστός σήμερα ως Sun Java System Web Server), και έχει εξελιχθεί ώστε να ανταγωνιστεί άλλους Web Servers βασισμένους σε Unix όσον αφορά τη λειτουργικότητα και τις επιδόσεις

73 Ο Apache αναπτύχθηκε και συντηρήθηκε από µια ανοιχτή κοινωνία αναλυτών υπό το πρίσμα της Apache Software Foundation. Η εφαρμογή είναι διαθέσιμη για µια ποικιλία λειτουργικών συστημάτων, όπως Unix, FreeBSD, Linux, Solaris, Novell NetWare, Mac OS X και Microsoft Windows. Ο Apache χαρακτηρίζεται ως ελεύθερο λογισμικό και ως λογισμικό ανοιχτού κώδικα ZK Framework Το πλαίσιο ανάπτυξης πλούσιων διαδικτυακών εφαρμογών (Rich Internet Applications) ZK ανήκει στην κατηγορία των Java server-side ή server-centric Frameworks με πλήρη υποστήριξη Ajax, που αποκρύπτει απόλυτα από τον προγραμματιστή την ύπαρξη του XHR αντικειμένου και τη χρήση της JavaScript, ενώ υποστηρίζει το μοντέλο προγραμματισμού βασισμένο σε γεγονότα (event-driven programming). Το ZK εξαρτάται από την τεχνολογία Java, τόσο για την ανάπτυξη εφαρμογών όσο για την εκτέλεση τους. Σε αντίθεση δηλαδή με τα άλλα Frameworks, το ZK είναι στενά συνδεδεμένο με τις τεχνολογίες του Servlet API και εκτελείται σε ένα διακομιστή με περιβάλλον Servlet Container. Το ZK επιτυγχάνει το στόχο του παρέχοντας ένα πλούσιο σύνολο αντικειμένων που ονομάζονται Components, και αντιστοιχούν σε στοιχεία διεπαφής χρήστη με Ajax δυνατότητες, μια ειδική γλώσσα σήμανσης (ZUML) για σχεδίαση σελίδων UI με ειδική μορφή που αποκαλούνται σελίδες ZK, κι έναν μηχανισμό απάντησης σε ενέργειές που προκαλεί ο χρήστης στη σελίδα. Το ZK είναι προϊόν ανοιχτού κώδικα, και η τρέχουσα έκδοση του είναι η Η αρχιτεκτονική του ZK Ο πυρήνας του περιβάλλοντος εκτέλεσης και του μηχανισμού εξυπηρέτησης Ajax αιτημάτων αποτελείται από τρία τμήματα: 1. Το φορτωτή σελίδων ZK Loader, ο οποίος αναλαμβάνει να απαντήσει σε ένα αίτημα, ανακτώντας την κατάλληλη ZK σελίδα και μετατρέποντας την σε HTML μορφή κατάλληλη να εμφανιστεί στον περιηγητή. 2. Το μηχανισμό ZK Client Engine, μια συλλογή αντικειμένων γραμμένων σε JavaScript, που δημιουργείται κατά το πρώτο αίτημα του χρήστη και αποστέλλεται στον περιηγητή, όπου και παραμένει για όλη τη διάρκεια της συνεδρίας του χρήστη. Περιέχει τις απαραίτητες μεθόδους, αφενός για να επικοινωνεί ασύγχρονα με τον διακομιστή, μέσω ειδικών Ajax αιτημάτων που ονομάζονται αιτήματα ZK, και αφετέρου να διαχειρίζεται τα DOM (Dynamic Object Model) αντικείμενα της σελίδας αναλόγως. 3. Τον μηχανισμό Ασύγχρονης Εξυπηρέτησης ΖΚ AU (Asynschronous Update) Engine, σύμφωνα με τον οποίο μια συλλογή αντικειμένων στην πλευρά του διακομιστή διαχειρίζεται ασύγχρονα αιτήματα που λαμβάνει από το Client Engine και αναλαμβάνει να προωθήσει την εξυπηρέτησή τους. Συνεπώς, οι μηχανισμοί ZK Client και ZK AU συνεργάζονται για να υλοποιήσουν την επικοινωνία Ajax, με την συνεχή ενημέρωση του διακομιστή για τα γεγονότα που συμβαίνουν στην πλευρά του πελάτη και την ανάλογη ενημέρωση κομματιών της σελίδας. Ακολουθεί ένα τυπικό σενάριο εξυπηρέτησης μιας ZK σελίδας από το Framework:

74 1. Το Servlet Container λαμβάνει ένα αίτημα, το οποίο αφορά σε μια ZK σελίδα, και το προωθεί στον ZK Loader. 2. ZK Loader εντοπίζει τη σελίδα και την ερμηνεύει για να δημιουργήσει τα αντικείμενά της. Αυτό γίνεται σε 4 φάσεις: Φάση αρχικοποίησης: εκτελούνται ειδικές εντολές επεξεργασίας, αν υπάρχουν. Φάση δημιουργίας: τα Components που απαρτίζουν τη σελίδα δημιουργούνται ως Java αντικείμενα. Φάση εκτέλεσης γεγονότων: για κάθε ένα από τα Components εκτελείται μια μέθοδος αρχικοποίησης oncreate(). Φάση Μετατροπής σε ΗΤΜL: όλα τα Components μετατρέπονται σε αντίστοιχο HTML και JavaScript κώδικα. 3. Το αποτέλεσμα προκύπτει ως HTML σελίδα, η οποία αποστέλλεται ως απάντηση στον πελάτη, μαζί με το ZK client engine. 4. Το client engine παραμένει στον περιηγητή και αντιδρά σε γεγονότα της σελίδας, με το να αποστέλλει αιτήματα ZK στο AU engine. 5. Το ZK AU επεξεργάζεται το αίτημα και προωθεί την εκτέλεσή του. Αν το αποτέλεσμα του αιτήματος αφορά σε αλλαγές στα αντικείμενα DOM της σελίδας, το ZK AU αποστέλλει στο ZK client τις αλλαγές με τη μορφή ειδικής ZK απάντησης. 6. Το ΖK client ερμηνεύει την ZK απάντηση ως οδηγίες για τροποποίηση των στοιχείων της σελίδας και, στη συνέχεια, τις πραγματοποιεί. 7. Επαναλαμβάνονται τα βήματα 4-6 μέχρι να ληφθεί καινούριο αίτημα για νέα σελίδα. Η παραπάνω αρχιτεκτονική δίνει την ελευθερία στον σχεδιαστή να επιλέξει το επίπεδο διαδραστικότητας κάθε component. Οι εφαρμογές που προκύπτουν μπορεί να καλύπτουν όλο το φάσμα, από απλές εφαρμογές τύπου MVC με συνήθεις λειτουργίες μέχρι εξαιρετικά διαδραστικές εφαρμογές που μιμούνται την πλούσια λειτουργικότητα που συναντάται σε αντίστοιχες Desktop εφαρμογές (Desktop-like Web applications) Η γλώσσα σήμανσης ZUML Το ΖΚ Framework παρέχει τη δική του γλώσσα σήμανσης για σχεδίαση σελίδων, που βασίζεται στην XML, η οποία δημιουργήθηκε στα πλαίσια του Mozilla Project, προορισμένη να χρησιμοποιηθεί στον δημοφιλή περιηγητή Firefox. Μια ZK σελίδα αποτελείται από μια ιεραρχία ετικετών XML, που η κάθε μία αντιστοιχεί σε μια Java κλάση για ένα component. Για παράδειγμα, η ετικέτα <window>, που αποτελεί υποχρεωτικά το πρώτο στοιχείο της σελίδας και περικλείει όλα τα υπόλοιπα, αναφέρεται στην κλάση-component org.zkoss.zul.window. Όπως και στην HTML, οι ετικέτες μπορούν να περιέχουν δήλωση ιδιοτήτων που έχουν να κάνουν με την εμφάνιση των αντίστοιχων components. Επίσης, μπορεί να

75 περιέχουν αναφορές σε μεθόδους χειριστές γεγονότων του component. Για παράδειγμα, η δήλωση: <button id= one_button width= 100px label= Click me onclick= one_button.setvalue( Clicked! ) /> δημιουργεί τελικά ένα HTML button στη σελίδα με τιμή «Click me» και πλάτος 100 pixels, που όταν το πατήσει ο χρήστης, αλλάζει την τιμή του σε «Clicked!». Από το παράδειγμα γίνεται προφανές ότι επιτρέπεται η χρήση της Java μέσα σε μια σελίδα ZUML. H εντολή «one_button.setvalue( Clicked! )» είναι μια Java εντολή απόδοσης τιμής στην ιδιότητα «value» του Java αντικειμένου «one_button». Χάρη στη συνεργασία των ZK AU και ZK Client engine που περιγράφηκε, η εντολή αυτή ενεργεί με τον ίδιο τρόπο ταυτόχρονα και στο DOM αντικείμενο «one_button», αλλάζοντας την τιμή του. Εκτός από τις δηλώσεις χειριστών γεγονότων, ένα προγραμματιστής μπορεί επίσης να περιλάβει κώδικα Java σε μια ZUML σελίδα και μέσω της ειδικής ετικέτας <zscript>. Τα αντικείμενα που δημιουργούνται με αυτό τον τρόπο είναι προσβάσιμα στην υπόλοιπη σελίδα, π.χ. μέσα σε χειριστές γεγονότων, χρησιμοποιώντας εκφράσεις γραμμένες σε γλώσσα παρόμοια με την JSP Expression Language. Πέρα από τα αντικείμενα Java που δημιουργεί ο χρήστης, η Expression Language (και κατ επέκταση τα components της σελίδας) του ZK, έχει πρόσβαση σε ένα σύνολο υπονοουμένων (implicit) αντικειμένων. Αυτά αφορούν: Αντικείμενα για αναφορά σε components και στην ίδια τη σελίδα: τα αντικείμενα «self» και «event» μπορούν να χρησιμοποιηθούν μέσα σε μία μέθοδο χειριστή γεγονότων ενός component για να υπονοήσουν το ίδιο το component και το γεγονός που μόλις εκτελέστηκε, αντίστοιχα. Επίσης, είναι διαθέσιμο το αντικείμενο «page» που αναφέρεται στη σελίδα και το αντικείμενο «desktop» που αφορά σε όλο το περιβάλλον εκτέλεσης. Αντικείμενα που αντιστοιχούν στις οντότητες του Servlet API: όπως είναι γνωστό, το περιβάλλον εκτέλεσης ZK χρησιμοποιεί την υποδομή ενός Servlet Container, την οποία αποκρύπτει εν μέρει από τον προγραμματιστή. Όλα τα αντικείμενα που είναι διαθέσιμα σε μια τυπική εφαρμογή Servlet ή JSP, όπως τα request, session, applicationcontext, γίνονται προσβάσιμα και στην ZUML σελίδα, μέσα από ειδικές μεταβλητές του ZK. Η δυνατότητα ενσωμάτωσης καθαρού Java κώδικα σε μια ZUML σελίδα είναι σίγουρα χρήσιμη, ωστόσο, όπως και στην περίπτωση της JSP, δε θεωρείται καλή πρακτική και συνιστάται η ελαχιστοποίηση της χρήσης της Τα Components του ZK και ο χειρισμός γεγονότων Στο ZK υπάρχει ένα εκτενές σύνολο από έτοιμα αντικείμενα διεπαφής με Ajax δυνατότητες. Αυτά αντιστοιχούν στις ετικέτες της ZUML σελίδας και ονομάζονται ZK Components. Τα ZK Components αντιστοιχούν σε ενισχυμένες διαδραστικές HTML δομές και έχουν διπλή «υπόσταση»: αφενός είναι Java αντικείμενα, αφετέρου αντιστοιχούν σε αντικείμενα του DOM δέντρου της σελίδας. Ο μηχανισμός του ZK εξασφαλίζει ότι οι δύο αυτές «υποστάσεις» έχουν πάντα

76 συγχρονισμένες καταστάσεις, δηλαδή ότι κάποιο γεγονός στην πλευρά του DOM εντοπίζεται από το αντικείμενο Java, και κάθε αλλαγή του αντικειμένου Java αντικατοπτρίζεται στο αντίστοιχο αντικείμενο DOM. Τα components που προσφέρει το ZK, και που ξεπερνούν τα 120, διακρίνονται στις παρακάτω κατηγορίες: Δομικά Στοιχεία της σελίδας: αντικείμενα που συνήθως αντιστοιχούν σε περιοχές της σελίδας, περικλείουν άλλα components, και καθορίζουν τον τρόπο τοποθέτησής τους. Πιο συγκεκριμένα: Window: το εξωτερικό αντικείμενο κάθε σελίδας, που αντιστοιχεί στο ομώνυμο αντικείμενο DOM. Αντίθετα με το μοντέλο του DOM, ένα ZK Window μπορεί να περικλείει άλλα αντικείμενα Window. Box, Hbox, Vbox: Περικλείουν αντικείμενα και καθορίζουν τον τρόπο τοποθέτησής τους, π.χ. σε οριζόντια διάταξη. Layouts και Panels: τύποι αντικειμένων που καθορίζουν διακριτές περιοχές σε μια σελίδα, π.χ. το αντικείμενο ColumnLayout «χώριζε» τη σελίδα σε στήλες. Στοιχεία φόρμας και κειμένου: αντικείμενα που αντιστοιχούν στα συνήθη DOM αντικείμενα μιας HTML φόρμας όπως Button, Label, Checkbox, κ.α. Στοιχεία σύνθετων δομών: πιο σύνθετες δομές διάταξης περιεχομένου, όπως πίνακες (Grid), δένδρα (Tree), και λίστες επιλογής τιμών (Listbox). Οι δομές αυτές δεν αφορούν μόνο στην εμφάνιση, αλλά έχουν και στοιχεία λειτουργικότητας, π.χ. ένα αντικείμενο Listbox διαθέτει μια μέθοδο αυτόματης ταξινόμησης των τιμών που περιέχει. Στοιχεία Εργαλειοθήκης (Toolbar) και Μενού: αντικείμενα (Toolbar, Toolbarbutton, Menu, κ.α.) που δίνουν τη δυνατότητα δημιουργίας σύνθετων, πολλών επιπέδων λειτουργιών μενού, παρόμοιων με αυτές που προσφέρουν οι εφαρμογές Desktop. Στοιχεία Πολυμέσων: δίνουν την δυνατότητα προσθήκης πολυμεσικού περιεχομένου, εικόνων (Image), και αρχείων ήχου (Audio). Πέρα από τα παραπάνω σύνθετα components, το ZK διαθέτει Java αντικείμενα σχεδόν για όλα τα αντικείμενα του DOM μοντέλου, ακόμα και τα πιο απλά. Στην περίπτωση που ο προγραμματιστής επιθυμεί να συμπεριλάβει αυτούσιο HTML κώδικα σε μια σελίδα, μπορεί να χρησιμοποιήσει το αντικείμενο Java «HTML», που παρέχει το ZK. Επίσης, το ZK παρέχει ένα σύνολο αντικειμένων που αποτελούν «περιτύλιγμα» για αντικείμενα, οντότητες, ακόμα και JavaScript Widgets που προέρχονται από άλλες τεχνολογίες. Ενδεικτικά: Gmaps: αντικείμενο που προσθέτει στη σελίδα το διάσημο JavaScript Widget GoogleMaps, δηλαδή ένας διαδραστικό χάρτη, και το διαχειρίζεται με χρήση καθαρού Java κώδικα. FCKeditor: αντικείμενο-περιτύλιγμα για τον ομώνυμο δημοφιλή JavaScript Επεξεργαστή Εμπλουτισμένου Κειμένου (Rich Content Editor)

77 Jasper Report: αντικείμενο εμφάνισης εγγράφων-αναφορών, που έχουν υλοποιηθεί με το γνωστό εργαλείο Jasper Reports, το οποίο καθιστά δυνατή τη δημιουργία αναφορών από συστήματα βάσεων δεδομένων. Τέλος το ZK, παρά την πλούσια συλλογή του σε components, παρέχει τη δυνατότητα σε προγραμματιστές να δημιουργήσουν με εύκολο τρόπο νέα components, με συνδυασμό των υπαρχόντων ή ακόμα εισάγοντας μια τελείως νέα λειτουργικότητα, τα οποία στη συνέχεια μπορεί να διαμοιραστούν και να επαναχρησιμοποιηθούν από τα μέλη της κοινότητας Ανοιχτού Κώδικα. Κάθε ένα από τα components που παρέχονται στο ZK αναγνωρίζει και ανταποκρίνεται σε ένα πλούσιο σύνολο πιθανών γεγονότων και ενεργειών του χρήστη, κάτι που τα καθιστά εξαιρετικά διαδραστικά. Τα γεγονότα αυτά, όπως αναφέρθηκε, εντοπίζονται στην πλευρά του πελάτη από το αντικείμενο ZK client Engine και στη συνέχεια αποστέλλονται στο διακομιστή, με ασύγχρονο πάντα τρόπο. Τα είδη των γεγονότων που υποστηρίζονται είναι διαφορετικά για κάθε component και ποικίλουν από τα πιο απλά, όπως π.χ. το γεγονός «ο χρήστης πάτησε ένα πλήκτρο», έως πολύ εξεζητημένα, όπως π.χ. «ο χρήστης εκτέλεσε τη λειτουργία ταξινόμησης σε ένα component τύπου Listbox». Δύο πολύ ενδιαφέροντες τύποι γεγονότων στο ZK είναι: Γεγονότα Drag and Drop: σε όλα σχεδόν τα components του ΖΚ μπορεί να ανατεθεί η συμπεριφορά Draggable και Droppable, που σημαίνει ότι ο χρήστης μπορεί να αλλάξει την τοποθέτηση τους στην σελίδα απλά, επιλέγοντας τα και σύροντας το δείκτη του ποντικιού στην επιθυμητή νέα θέση μια λειτουργία αρκετά συνηθισμένη σε Desktop εφαρμογές, αλλά όχι και στις αντίστοιχες Web. Αυτά τα γεγονότα ενημερώνουν το διακομιστή για την αντίστοιχη ενέργεια του χρήστη. Γεγονός αλλαγής Σελιδοδείκτη: ειδοποιεί το διακομιστή ότι ο χρήστης πάτησε το κουμπί «πίσω» στον περιηγητή. Το ΖΚ παρέχει δύο εναλλακτικούς τρόπους δήλωσης των Java εντολών που θα εκτελεστούν στην πλευρά του διακομιστή ως αποτέλεσμα του εντοπισμού κάποιου γεγονότος. Ο στατικός τρόπος αναφέρθηκε ήδη στο παράδειγμα της ενότητας και αφορά στη δήλωσή τους απευθείας μέσα στην ετικέτα του αντίστοιχου component, το οποίο αφορά στο γεγονός, στην ZUML σελίδα. Ο δυναμικός τρόπος, ώστε να επιτευχθεί ακριβώς το ίδιο αποτέλεσμα με αυτό του παραδείγματος, είναι η εκτέλεση των παρακάτω Java εντολών κατά την αρχικοποίηση της σελίδας: Button button=new Button( one_button ); button.setlabel( Click me! ); button.setwidth( 100px ); button.addeventlistener(events.onclick,, new EventListener() { ); public void onevent(event event) throws Exception { button.setlabel("clicked!");

78 Προφανώς, ο δεύτερος τρόπος δίνει τη δυνατότητα για μεγαλύτερη ευελιξία, όταν αυτή χρειάζεται, και αποτελεί εξαιρετικά ισχυρό εργαλείο κατά το σχεδιασμό της εφαρμογής. Θα μπορούσε να χρησιμοποιηθεί, για παράδειγμα, στη τροποποίηση της συμπεριφοράς ενός γεγονότος δυναμικά, ή ως αποτέλεσμα της εκτέλεσης κάποιου άλλου γεγονότος πρώτα, ή για να ενεργοποιεί ή να απενεργοποιεί, ανάλογα με την κατάσταση της σελίδας, την ανταπόκριση ενός component σε συγκεκριμένα γεγονότα, κ.α. Τέλος, το ZK παρέχει έναν τρόπο αυτόνομης δημιουργίας και χειρισμού γεγονότων στην πλευρά του πελάτη, χωρίς την παρέμβαση του χρήστη, μια διαδικασία που αναφέρεται κάποιες φορές με τον όρο Ajax Push. Δηλαδή, είναι δυνατό να ενεργοποιηθούν γεγονότα απευθείας πάνω σε αντικείμενα DOM της σελίδας, μέσα από κώδικα Java που εκτελείται στην πλευρά του διακομιστή, χρησιμοποιώντας τις μεθόδους sendevent και postevent της κλάσης Events. Αυτός ο ιδιαίτερα ισχυρός μηχανισμός πρέπει να χρησιμοποιείται προσεχτικά, ώστε να μην οδηγήσει σε απρόβλεπτες, για τον τελικό χρήστη, καταστάσεις Ant Για λόγους ευκολίας στην εργασία χρησιμοποιήθηκε το πρόγραμμα ant για ενέργειες όπως compile, build κλπ. της εφαρμογής. Το πρόγραμμα ant χρησιμοποιείται για τη διαδικασία ελέγχου παραγωγής κώδικα στη γλώσσα Java. Στο ant δίνουμε ένα αρχείο XML (buildfile) το οποίο περιέχει τις εργασίες που απαιτούνται για την παραγωγή του προγράμματος και τις εξαρτήσεις μεταξύ των εργασιών αυτών. Το ant μας δίνει τη δυνατότητα να ορίσουμε δικές μας εργασίες και παρέχει και ένα πλήθος έτοιμων εργασιών, εκτός της μεταγλώττισης (δημιουργία αρχείων jar, ftp, χειρισμός αρχείων, αλληλεπίδραση με το CVS, αλληλεπίδραση με τον Tomcat, κ.λπ.)

79 Κεφάλαιο 6. Λεπτομέρειες Υλοποίησης Στο κεφάλαιο αυτό παρουσιάζεται ο τρόπος υλοποίησης της επιχειρησιακής λογικής του συστήματος, η οποία αναπτύχθηκε σε προηγούμενη ενότητα καθώς και η υλοποίηση επιμέρους λειτουργιών που υποστηρίζει η εφαρμογή. Η υλοποίηση της εφαρμογής βασίστηκε στις πλατφόρμες (frameworks) J2EE και Spring κάνοντας χρήση επιλεγμένων συστατικών λογισμικού για την υλοποίηση κάθε λειτουργίας. Ακολουθεί περιγραφή της υλοποίησης του τμήματος των web forms και του τμήματος των web services Υλοποίηση Web Forms Το κομμάτι των web forms του συστήματος βασίστηκε στο αρχιτεκτονικό μοντέλο MVC, κομμάτια από το οποίο χρησιμοποιήθηκαν και από τα web services, όπως είναι τα DAO Υλοποίηση του στρώματος Μοντέλου (View Layer) Εδώ «κρύβεται» σχεδόν ολόκληρη η επιχειρησιακή λογική της εφαρμογής. Το μοντέλο είναι ένα σύνολο τριών άλλων συνθετημάτων: Τα αντικείμενα μεταφοράς δεδομένων (DTO) Τα αντικείμενα πρόσβασης δεδομένων (DAO) Οι διαχειριστές των αντικειμένων (MANAGER) Αντικείμενα μεταφοράς δεδομένων (DTO) Τα αντικείμενα μεταφοράς δεδομένων (DTO-Data Transfer Object), τα οποία στην εφαρμογή ονομάζονται Value Objects (VO), περιέχουν τύπους δεδομένων και αντίστοιχες μεθόδους που αποθηκεύουν ή ανακτούν αυτά τα δεδομένα. Χρησιμοποιούνται για τη μεταφορά των δεδομένων ανάμεσα στα υποσυστήματα ή συνθετήματα της εφαρμογής. Για παράδειγμα αρχικοποιούνται από τους διαχειριστές των αντικειμένων και στη συνέχεια μεταφέρουν τις πληροφορίες, από τα αντικείμενα πρόσβασης δεδομένων DAO στην προβολή της εφαρμογής ή αντίστροφα δέχονται πληροφορίες από την προβολή της εφαρμογής και τις μεταφέρουν στα DAO ώστε να αποθηκευτούν στη Βάση Δεδομένων. Τα αντικείμενα μεταφοράς δεδομένων περιέχουν τις κατάλληλες δομές δεδομένων (για παράδειγμα Long,int,String,ArrayList κ.α.), ολόκληρα στιγμιότυπα άλλων αντικειμένων VO καθώς επίσης και κατάλληλες μεθόδους (Getters - Setters) για την ανάκτησή τους και την αποθήκευσή τους από και προς τη κλάση. Ένα παράδειγμα αντικειμένου μεταφοράς δεδομένων παρουσιάζεται στο σχήμα

80 Εικόνα CompanyVO.java

81 Αντικείμενα πρόσβασης δεδομένων (DAO) Τα αντικείμενα Πρόσβασης Δεδομένων (DAO: Data Access Object) είναι κλάσεις που παρέχουν συγκεκριμένες μεθόδους πρόσβασης σε δεδομένα χωρίς να προδίδουν λεπτομέρειες για αυτά. Με τη χρήση τους γίνεται ο διαχωρισμός σχετικά με το τι είδους δεδομένα χρειάζεται η εφαρμογή και ποιος είναι ο τρόπος απόκτησής τους από τη Βάση Δεδομένων. Ο διαχωρισμός αυτός είναι το βασικό πλεονέκτημα χρήσης των DAO. Η αλλαγή της επιχειρησιακής λογικής της εφαρμογής δεν έχει καμία επίδραση στον τρόπο ανάκτησης ή αποθήκευσης δεδομένων και αντίστοιχα η πιθανή μελλοντική αλλαγή του σχήματος της βάσης ή της τεχνολογίας της δεν αφορά καθόλου την λογική του συστήματος. Για παράδειγμα η κλάση, τύπου DAO, Company υλοποιεί το interface ICompanyDAO (σχήμα 6.1.2). Όσον αφορά τις επιχειρήσεις υπάρχουν πέντε βασικές μέθοδοι με τις οποίες η εφαρμογή επικοινωνεί με τη βάση διαμέσου των DAOs. Αυτές είναι οι: fetchcompany insertcompany updatecompany removecompany companyexists Όπως είναι αυτονόητο η μέθοδος fetchcompany χρησιμοποιείται κατά την κλήση της λίστας των επιχειρήσεων ώστε να μας φέρει τις επιχειρήσεις βάση των κριτηρίων που έχουμε ορίσει. Η μέθοδος insertcompany χρησιμοποιείται κατά την εισαγωγή μιας επιχείρησης. Αντίστοιχα οι μέθοδοι updatecompany και removecompany χρησιμοποιούνται κατά την τροποποίηση και κατά την αντιγραφή μιας επιχείρησης αντίστοιχα. Τέλος η μέθοδος companyexists χρησιμοποιείται πριν από την εισαγωγή μιας επιχείρησης όπου γίνεται έλεγχος βάση του ΑΦΜ για το αν η συγκεκριμένη επιχείρηση υπάρχει ήδη στο σύστημα. Εικόνα ICompanyDAO.java

82 Διαχειριστής (Manager) Οποιαδήποτε επικοινωνία ανάμεσα στον ελεγκτή (αναλύεται παρακάτω) και στο μοντέλο της εφαρμογής γίνεται μέσω του διαχειριστή (Manager). Ο διαχειριστής παρέχει στον ελεγκτή μέσω των μεθόδων που του προσφέρει πρόσβαση στα αντικείμενα διαχείρισης δεδομένων και από εκεί στη Βάση Δεδομένων του συστήματος. Βέβαια η αξιοποίησή του στην εφαρμογή δε περιορίζεται μόνο στη χρήση του ως γέφυρα ανάμεσα στα αναφερόμενα συνθετήματα της εφαρμογής. Βασικός του ρόλος είναι να μεταφέρει δεδομένα από και προς τις δυο κατευθύνσεις αλλά εφαρμόζοντας πρώτα την επιχειρησιακή λογική «Business Logic» που του δίνει ο προγραμματιστής. Δηλαδή ανάλογα με τα δεδομένα που δέχεται ως είσοδο και το σύνολο των παραμέτρων που καθορίζονται, ίσως από την περεταίρω επικοινωνία του με άλλα υποσυστήματα, παράγει νέα δεδομένα ως έξοδο μεταδίδοντάς τα στα κατάλληλα συνθετήματα-υποσυστήματα

83 - 82 -

84 - 83 -

85 - 84 -

86 Εικόνα CompanyDAOImpl.java Υλοποίηση του στρώματος της Προβολής (View Layer) Η προβολή (View) παράγει μια παρουσίαση των δεδομένων στον χρήστη της εφαρμογής. Αναλόγως τη τεχνολογία που έχει επιλεγεί για την ανάπτυξη της διεπαφής χρήστη και εφαρμογής, η προβολή μπορεί να αποτελείται από αρχεία τύπου JSP, HTML, XHTML κ.ά. Στη δική μας περίπτωση όπως αναφέρθηκε και νωρίτερα θα είναι σελίδες zul. Στα αρχεία αυτά περιγράφεται ο τρόπος απεικόνισης των δεδομένων του μοντέλου και επιπλέον δίνεται η δυνατότητα στον χρήστη να διαχειριστεί τα δεδομένα αυτά και να αλληλεπιδράσει με την εφαρμογή, μέσα στα στενά πάντα περιθώρια που η εφαρμογή καθορίζει, αναλόγως με τον τρόπο που έχει αναπτυχθεί από τον προγραμματιστή. Για κάθε λειτουργία του συστήματος αναπτύσσεται διαφορετική προβολή που αλληλεπιδρά με το αντίστοιχο μοντέλο μέσω των αντικειμένων μεταφοράς δεδομένων (DTOs). Στο σχήμα φαίνεται ο κώδικας δημιουργίας της προβολής για τη λίστα των επιχειρήσεων

87 - 86 -

88 - 87 -

89 Εικόνα companylist.zul Υλοποίηση του στρώματος Ελεγκτή (Controller Layer) Όπως προαναφέρθηκε, ο ελεγκτής αποτελεί τον συνδετικό κρίκο των παραπάνω στρωμάτων της προβολής και του μοντέλου. Συνεπώς για κάθε ζευγάρι μοντέλου προβολής αναπτύσσεται και ο αντίστοιχος ελεγκτής που πραγματοποιεί τη διασύνδεση με το μοντέλο. Μέσα σε κάθε αρχείο ελεγκτή καθορίζονται όλες οι λειτουργίες που θα πρέπει να εκτελούνται από τον ελεγκτή. Στην αρχή της κλάσης του ελεγκτή γίνεται η σύνδεσή του με το αντίστοιχο μοντέλο (σχήμα 6.1.5). Μέσα στη κλάση του ελεγκτή για τις επιχειρήσεις είναι υλοποιημένες οι παρακάτω μέθοδοι που είχαν δημιουργηθεί και στο αντίστοιχο DAO: fetchcompany fetchcompanies insertcompany updatecompany removecompany companyexists

90 Εικόνα CompanyController.java

91 6.2. Υλοποίηση Web Service Το κομμάτι των web services αποτελείται από ένα βασικό web service, το οποίο περιλαμβάνει δύο κύριες μεθόδους. Η μια μέθοδος κάνει τον έλεγχο της σώρευσης και μας ενημερώνει για τον αν μπορεί η επιχείρηση να χρηματοδοτηθεί ή έχει εξαντλήσει το όριο των και η δεύτερη κάνει την εισαγωγή της επιχείρησης καθώς και του επενδυτικού σχεδίου στο οποίο συμμετέχει εφόσον έχει περάσει επιτυχώς τον έλεγχο σώρευσης. Όπως φαίνεται και στo wsdl και το αντίστοιχο xsd που δημιουργήθηκαν για την υλοποίηση του web service (βλέπε παράρτημα, ενότητες 11.1 AccumulationService.wsdl και 11.2 InsertIPlan.xsd ) τα web services που δημιουργήθηκαν είναι το checkaccumulation και το insertiplan Μέθοδος checkaccumulation Η πρώτη μέθοδος και λιγότερο σύνθετη είναι αυτή του ελέγχου σώρευσης. Ουσιαστικά αυτή η μέθοδος παίρνει σαν παραμέτρους το ΑΦΜ της επιχείρησης και το ποσό της επένδυσης με το οποίο θέλουμε να τη χρηματοδοτήσουμε, και μας ενημερώνει για το αν η επιχείρηση έχει εξαντλήσει το επιτρεπόμενο όριο των που έχει ορίσει η Ευρωπαϊκή Ένωση. Παρακάτω φαίνεται το request που στέλνουμε για έλεγχο σώρευσης της επιχείρησης με ΑΦΜ και ποσό επένδυσης <soapenv:envelope xmlns:soapenv=" xmlns:par=" <soapenv:header> <wsse:security xmlns:wsse=" soapenv:mustunderstand="1"> <wsse:usernametoken xmlns:wsu=" wsu:id="usrtoken"> <wsse:username>accforeas</wsse:username> <wsse:password Type=" </wsse:usernametoken> </wsse:security> </soapenv:header> <soapenv:body> <par:checkaccumulationrequest> <par:afm> </par:afm> <par:poso>10000</par:poso> </par:checkaccumulationrequest> </soapenv:body> </soapenv:envelope> Εικόνα checkaccumulation request

92 Η απάντηση που λαμβάνουμε από το web service <soapenv:envelope xmlns:soapenv=" <soapenv:body> <checkaccumulationresponse xmlns=" <balance> </balance> <errorcode>0</errorcode> <errordescription>για την επιχείρηση (ΑΦΟΙ ΙΩΑΝ. ΛΕΤΣΙΟΥ Ο.Ε.) για το Α.Φ.Μ ( ) που δηλώσατε και για το ποσό (10000) μπορείτε να εγκρίνετε το επενδυτικό σχέδιο</errordescription> </checkaccumulationresponse> </soapenv:body> </soapenv:envelope> Εικόνα checkaccumulation response Άρα η συγκεκριμένη επιχείρηση καλύπτει τις προϋποθέσεις που όρισε η Ευρωπαϊκή Ένωση και μπορεί να ενισχυθεί με το ποσό των Μέθοδος insertiplan Η δεύτερη μέθοδος περιλαμβάνει όλη τη πληροφορία που χρειάζεται για να καταχωρηθεί ένα επενδυτικό σχέδιο. Όπως φαίνεται και στο request στο Παράρτημα 10.3 Request InsertIPlan.xml αρχικά στέλνονται τα πλήρη στοιχεία της επιχείρησης. Αν η επιχείρηση είναι ήδη καταχωρημένη τα αγνοεί διαφορετικά την καταχωρεί. Έπειτα στέλνονται τα στοιχεία της προκήρυξης τα οποία καταχωρούνται μόνο αν η προκήρυξη δεν είναι καταχωρημένη στο σύστημα. Μετά από κάθε καταχώρηση είτε επιχείρησης είτε προκήρυξης γίνεται commit ανεξάρτητα με το αν θα καταχωρηθεί επενδυτικό σχέδιο. Αυτό γίνεται γιατί θέλουμε το πληροφοριακό μας σύστημα να είναι όσο το δυνατόν περισσότερο ενημερωμένο. Αφού έχει γίνει καταχώρηση της επιχείρησης και της προκήρυξης από την οποία προκύπτει η επένδυση, καλείται η μέθοδος checkaccumulation (ενότητα 7.1.1) και γίνεται έλεγχος σώρευσης της επιχείρησης με το ποσό του επενδυτικού σχεδίου που στάλθηκε με το web service. Τα στοιχεία του επενδυτικού σχεδίου καταχωρούνται μόνο εφόσον ο έλεγχος σώρευσης είναι επιτυχημένος. Η απάντηση που λαμβάνουμε από το web service Εικόνα insertιplan response

93 6.3. Ασφάλεια Συστήματος Η ασφάλεια ενός πληροφοριακού συστήματος είναι άμεσα συνυφασμένη με την αξιοπιστία του και την αποδοχή του από τους χρήστες-επισκέπτες τους. Ένα πληροφοριακό σύστημα πρέπει να παρέχει επαρκές επίπεδο ασφάλειας και αξιοπιστίας διασφαλίζοντας τις εξής παραμέτρους: i. Ακεραιότητα (integrity): Η πληροφορία που δημοσιεύεται, διακινείται, επεξεργάζεται και αποθηκεύεται παραμένει αναλλοίωτη. ii. Εμπιστευτικότητα (confidentiality): Πρόσβαση στην πληροφορία έχουν μόνο όσοι διαθέτουν κατάλληλη εξουσιοδότηση. iii. Αναγνώριση (identification): Ο προσδιορισμός της ταυτότητας του χρήστη. iv. Πιστοποίηση ταυτότητας (authentication): Η ενέργεια που διασφαλίζει ότι η ταυτότητα που δηλώνει ο χρήστης είναι η πραγματική. v. Εξουσιοδότηση (authorization): Η εξασφάλιση ότι κάθε οντότητα έχει πρόσβαση στους επιτρεπόμενους σε αυτή πόρους του συστήματος, συμπεριλαμβανομένης της ίδιας της πληροφορίας. vi. Διαθεσιμότητα (availability): Η πληροφορία είναι διαθέσιμη κάθε στιγμή που ένας εξουσιοδοτημένος χρήστης επιχειρεί να αποκτήσει πρόσβαση σε αυτή. vii. Μη άρνηση συμμετοχής (non-repudiation): Ένας χρήστης δεν μπορεί να αρνηθεί ότι εκτέλεσε μία ενέργεια σχετική με πρόσβαση, καταχώρηση και επεξεργασία πληροφορίας. Για την πρόσβαση στο σύστημα είτε αυτό είναι το τμήμα των web forms είτε το τμήμα των web services απαιτείται η εισαγωγή αναγνωριστικού (username) και κωδικού πρόσβασης (password) με τα οποία γίνεται εξακρίβωση της ταυτότητας των χρηστών. Εικόνα Οθόνη εισαγωγής ονόματος και κωδικού χρήστη

94 Αναφορικά με την ασφάλεια των web services: Η αυθεντικοποίηση (authentication) γίνεται σε επίπεδο μηνύματος (message layer) με μηχανισμούς που ακολουθούν τις προδιαγραφές του προτύπου OASIS WS-Security. Για την υλοποίηση του μηχανισμού αυθεντικοποίησης χρησιμοποιήθηκε το Apache Rampart module (έκδοση 1.5). Η ακεραιότητα (integrity) και εμπιστευτικότητα (confidentiality) εξασφαλίζεται με κρυπτογράφηση των μηνυμάτων σε επίπεδο μεταφοράς (transport layer) με χρήση SSL. Για την αυθεντικοποίηση έχουν υλοποιηθεί μηχανισμοί που ακολουθούν τις προδιαγραφές του προτύπου OASIS WS-Security. Συγκεκριμένα, κατά τη διαδικασία αυθεντικοποίησης η ταυτότητα του καλούντος (αποστολέας) που αιτείται αυθεντικοποίηση, ελέγχεται βάσει ενός ονόματος χρήστη (username) και κωδικού χρήστη (password) το οποίο αποστέλλεται μαζί με το υπόλοιπο SOAP μήνυμα. Η αυθεντικοποίηση με χρήση αναγνωριστικού/ συνθηματικού απαιτεί την υλοποίηση του στοιχείου (element) <UsernameToken> στην επικεφαλίδα (header) του μηνύματος. Έτσι η ταυτότητα αυτού που καλεί το webservice θα ελέγχεται σε κάθε μήνυμά του. Αυτό σημαίνει ότι όλα τα μηνύματα θα πρέπει να φέρουν στην επικεφαλίδα τους ένα έγκυρο ζεύγος αναγνωριστικού/συνθηματικού όπως φαίνεται Το ακόλουθο απόσπασμα μηνύματος (message fragment) αποτελεί χαρακτηριστικό παράδειγμα ενός έγκυρου SOAP μηνύματος στο οποίο μαζί με τα υπόλοιπα στοιχεία συνυπάρχουν και τα στοιχεία που απαιτούνται για την ταυτοποίηση του αποστολέα. Οι πληροφορίες accforeas και accforeas αποτελούν αντίστοιχα το αναγνωριστικό και το συνθηματικό του αποστολέα. Να σημειωθεί ότι, η τρέχουσα έκδοση των προσφερόμενων υπηρεσιών δεν απαιτεί κρυπτογράφηση του συνθηματικού. Αυτό σημαίνει ότι το συνθηματικό θα πρέπει να αποστέλλεται ως plain text. Για την προστασία του μηνύματος κατά τη μεταφορά μέσω δικτύου χρησιμοποιείται SSL. Εικόνα Μήνυμα SOAP στο οποίο αποστέλλονται όνομα και κωδικός χρήστη

95 Κεφάλαιο 7. Σενάριο χρήσης εφαρμογής Σε αυτό το κεφάλαιο θα παρουσιαστεί ένα σενάριο χρήσης του συστήματος από έναν Φορέα Διαχείρισης Κρατικών Ενισχύσεων. Βήμα 1: Εισαγωγή στο σύστημα Ο Φορέας διαθέτει έναν κωδικό εισόδου στο σύστημα Κρατικών Ενισχύσεων. Για να τον αποκτήσει θα πρέπει να υποβάλει σχετικό αίτημα. Ο Φορέας με την χρήση ενός φυλλομετρητή πλοηγείται στην διεύθυνση ( και χρησιμοποιώντας τον κωδικό του εισάγεται στο σύστημα: Βήμα 2: Έλεγχος σώρευσης Στην αρχική οθόνη ο φορέας μπορεί να κάνει έναν άμεσο έλεγχο για το αν μία συγκεκριμένη επιχείρηση ξεπερνά το μέχρι τώρα όριο σώρευσης εισάγοντας το ΑΦΜ και το ποσό επιχορήγησης

96 Αν το σύστημα επιτρέπει την εισαγωγή της συγκεκριμένης επένδυσης, ο φορέας θα πρέπει να εισάγει όλη την απαραίτητη πληροφορία μέσα στο σύστημα διαφορετικά δεν δύναται να χρηματοδοτήσει την επιχείρηση με το συγκεκριμένο ποσό. Βήμα 3: Λίστα προσκλήσεων Ο φορέας ελέγχει αν έχουν περαστεί τα στοιχεία της προκήρυξης /πρόσκλησης μέσα στο σύστημα. Αν έχουν περαστεί τότε του δύναται η δυνατότητα επίβλεψης/διόρθωσης. Βήμα 4: Εισαγωγή Πρόσκλησης Αν δεν έχουν περαστεί τότε θα πρέπει να εισάγει τα στοιχεία της προκήρυξης/πρόσκλησης

97 Βήμα 5: Λίστα επενδυτικών σχεδίων για την πρόσκληση Ο φορέας δύναται να δει την λίστα των επενδυτικών σχεδίων που έχουν υποβληθεί για μία πρόσκληση Μπορεί να επενεργήσει σε αυτά τα επενδυτικά σχέδια (Επίβλεψη/Διόρθωση)

98 Βήμα 6: Προσθήκη Επενδυτικού Σχεδίου Αν δεν υπάρχει το επενδυτικό σχέδιο ο Φορέας θα πρέπει να το εισάγει στο σύστημα. Κατά την εισαγωγή του επενδυτικού σχεδίου και κατά την εισαγωγή του ΑΦΜ της επιχείρησης που χρηματοδοτείται θα ελεγχθεί με βάση το ΑΦΜ της αν έχει εισαχθεί στο σύστημα. Αν έχει θα επιτραπεί να συνεχίσει με την εισαγωγή διαφορετικά ο φορέας θα πρέπει να εισάγει τα στοιχεία της στην σχετική φόρμα (βλέπε Βήμα 7). Στο τέλος της διαδικασίας ο φορέας θα λάβει έναν κωδικό σώρευσης για την συγκεκριμένη επιχείρηση τον οποίο και θα χρησιμοποιεί. Βήμα 7: Προσθήκη Επιχείρησης Ο Φορέας εισάγει τα στοιχεία της επιχείρησης στο σύστημα

99 - 98 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύστημα Αναθέσεων. Σχεδιασμός Υποσυστημάτων Unified IT services Αγ. Παρασκευής 67 15234 Χαλάνδρι http://www.uit.gr Σύστημα Αναθέσεων Σχεδιασμός Υποσυστημάτων ΕΛΛΑΚ Ημερομηνία: 7/12/2010 UIT Χαλάνδρι Αγ. Παρασκευής 67 15234 210 6835289 Unified Information

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΜΣ 513 ΤΕΧΝΟΛΟΓΙΑ ΗΛΕΚΤΡΟΝ ΙΚΟΥ ΕΜΠΟΡΙΟΥ ΥΠΟΧΡΕΩΤΙΚΗ ΕΡΓΑΣΙΑ 2015

ΠΜΣ 513 ΤΕΧΝΟΛΟΓΙΑ ΗΛΕΚΤΡΟΝ ΙΚΟΥ ΕΜΠΟΡΙΟΥ ΥΠΟΧΡΕΩΤΙΚΗ ΕΡΓΑΣΙΑ 2015 ΠΜΣ 513 ΤΕΧΝΟΛΟΓΙΑ ΗΛΕΚΤΡΟΝ ΙΚΟΥ ΕΜΠΟΡΙΟΥ ΥΠΟΧΡΕΩΤΙΚΗ ΕΡΓΑΣΙΑ 2015 19 Ιουλίου 2015 Αντικείµενο της παρούσης εργασίας είναι η ανάπτυξη ενός πληροφοριακού συστήµατος για την υποστήριξη των λειτουργιών προσφοράς/ανάθεσης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εγχειρίδιο Εισαγωγής Στοιχείων στο Πληροφοριακό Σύστημα του προγράμματος Εξοικονόμηση Κατ Οίκον ΙΙ (Β Κύκλος), για την υποβολή αιτήσεων

Εγχειρίδιο Εισαγωγής Στοιχείων στο Πληροφοριακό Σύστημα του προγράμματος Εξοικονόμηση Κατ Οίκον ΙΙ (Β Κύκλος), για την υποβολή αιτήσεων Εγχειρίδιο Εισαγωγής Στοιχείων στο Πληροφοριακό Σύστημα του προγράμματος Εξοικονόμηση Κατ Οίκον ΙΙ (Β Κύκλος), για την υποβολή αιτήσεων Έκδοση 1 η / Ιούλιος 2019 Πίνακας Περιεχομένων Εισαγωγή... 3 1 Σύνδεση

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

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

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

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

Εγχειρίδιο Χρήσης για Διαχειριστές. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο

Εγχειρίδιο Χρήσης για Διαχειριστές. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο Εγχειρίδιο Χρήσης για Διαχειριστές Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο 1. Εισαγωγή 1.1 Περιγραφή Λειτουργίας Πλατφόρμας Η Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο παρέχει τη δυνατότητα της

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

ΕΓΧΕΙΡΙΔΙΟ ΥΠΟΒΟΛΗΣ ΠΡΟΤΑΣΗΣ ΣΤΗ ΔΡΑΣΗ. «Ενίσχυση της Ίδρυσης και Λειτουργίας Νέων Τουριστικών Μικρομεσαίων Επιχειρήσεων»

ΕΓΧΕΙΡΙΔΙΟ ΥΠΟΒΟΛΗΣ ΠΡΟΤΑΣΗΣ ΣΤΗ ΔΡΑΣΗ. «Ενίσχυση της Ίδρυσης και Λειτουργίας Νέων Τουριστικών Μικρομεσαίων Επιχειρήσεων» ΕΓΧΕΙΡΙΔΙΟ ΥΠΟΒΟΛΗΣ ΠΡΟΤΑΣΗΣ ΣΤΗ ΔΡΑΣΗ «Ενίσχυση της Ίδρυσης και Λειτουργίας Νέων Τουριστικών Μικρομεσαίων Επιχειρήσεων» 1 ΠΕΡΙΕΧΟΜΕΝΑ ΔΙΑΔΙΚΑΣΙΑ ΑΠΟΚΤΗΣΗΣ ΣΤΟΙΧΕΙΩΝ ΠΡΟΣΒΑΣΗΣ ΣΤΟ ΣΥΣΤΗΜΑ.3 ΔΙΑΔΙΚΑΣΙΑ

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

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

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

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

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

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

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

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

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΔΥΤΙΚΗ ΕΛΛΑΔΑ ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΔΥΤΙΚΗ ΕΛΛΑΔΑ 2014-2020 ΕΓΧΕΙΡΙΔΙΟ ΥΠΟΒΟΛΗΣ ΠΡΟΤΑΣΗΣ για τη δράση ΕΝΙΣΧΥΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΓΙΑ ΕΡΕΥΝΗΤΙΚΑ ΕΡΓΑ ΣΤΟΥΣ ΤΟΜΕΙΣ «ΜΙΚΡΟΗΛΕΚΤΡΟΝΙΚΗ» ΚΑΙ ΤΩΝ «ΠΡΟΗΓΜΕΝΩΝ ΥΛΙΚΩΝ» ΣΕΠΤΕΜΒΡΙΟΣ

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

Διευκρινίσεις για τον Ανοιχτό τακτικό διαγωνισμό με αρ. πρωτ. 675/28-02-2012

Διευκρινίσεις για τον Ανοιχτό τακτικό διαγωνισμό με αρ. πρωτ. 675/28-02-2012 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Τ.Ε.Ι) ΑΘΗΝΑΣ ΤΜΗΜΑ ΕΡΕΥΝΗΤΙΚΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ ΕΠΙΤΡΟΠΗ ΕΚΠΑΙΔΕΥΣΗΣ & ΕΡΕΥΝΩΝ Ταχ. Δ/νση : Αγ. Σπυρίδωνος 28 & Μήλου 1-122 10 ΑΙΓΑΛΕΩ Τηλέφωνο : 210-53.85.174-717

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

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

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

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

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

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

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

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

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

Σύστημα Ηλεκτρονικού Πρωτοκόλλου. Σχεδιασμός Υποσυστημάτων

Σύστημα Ηλεκτρονικού Πρωτοκόλλου. Σχεδιασμός Υποσυστημάτων Unified IT services Αγ. Παρασκευής 67 15234 Χαλάνδρι http://www.uit.gr Σύστημα Ηλεκτρονικού Πρωτοκόλλου Σχεδιασμός Υποσυστημάτων ΕΛΛΑΚ Ημερομηνία: 10/1/2011 UIT Χαλάνδρι Αγ. Παρασκευής 67 15234 210 6835289

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

Λειτουργικές - Τεχνικές Προδιαγραφές για το σύστημα Πρωτοκόλλου

Λειτουργικές - Τεχνικές Προδιαγραφές για το σύστημα Πρωτοκόλλου UNIFIED IT Services Halandri - Greece 67, Ag Paraskevis str. 15234 P: +30 210 6835289 F: +30 213 03 65 404 www.uit.gr Athens, 4 Φεβρουαρίου 2011 Company ΕΛΛΑΚ To Cc e-mail P.: +30 F.: +30 e-mail mountrakis@uit.gr

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

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

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

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

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

Περιεχόμενα. Visio / White paper 1 Περιεχόμενα Τι είναι η πλατφόρμα Visio Αρχιτεκτονική Δουλεύοντας με το Περιεχόμενο Πηγές Περιεχόμενου Διαγραφή Περιεχομένου Βασικές Λειτουργίες Προφίλ Χρήστη Διαχείριση Χρηστών Σύστημα Διαφημίσεων Αποθήκευση

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

* Enterprise Resource Planning ** Customer Relationship Management

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

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

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

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

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

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

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

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

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

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

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

01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, , Μαρούσι Αττικής. Τηλ FAX

01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, , Μαρούσι Αττικής. Τηλ FAX 01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, 151 25, Μαρούσι Αττικής Τηλ 215 55 00 880 FAX 215 55 00 883 Σύστημα Παρακολούθησης και Διαχείρισης των Αδειών του Προσωπικού HRMS 01 Leaves Συνοπτική Παρουσίαση Το

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

Αβραμίδης Ελευθέριος Επιβλέπων καθηγητής Κωνσταντίνος Διαμαντάρας. ΤΕΙ Θεσσαλονίκης 17/2/2009

Αβραμίδης Ελευθέριος Επιβλέπων καθηγητής Κωνσταντίνος Διαμαντάρας. ΤΕΙ Θεσσαλονίκης 17/2/2009 Αβραμίδης Ελευθέριος Επιβλέπων καθηγητής Κωνσταντίνος Διαμαντάρας ΤΕΙ Θεσσαλονίκης 17/2/2009 Γ ΚΠΣ Γενική δομή έργων Γ ΚΠΣ Απαιτήσεις συστήματος Παρουσίαση συστήματος 2 2000-2006: Δίνονται πόροι από τα

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

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

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

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

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

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

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

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

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εγχειρίδιο Εισαγωγής Στοιχείων στο Πληροφοριακό Σύστημα του προγράμματος Εξοικονόμηση Κατ Οίκον ΙΙ, για την υποβολή αιτήσεων Εγχειρίδιο Εισαγωγής Στοιχείων στο Πληροφοριακό Σύστημα του προγράμματος Εξοικονόμηση Κατ Οίκον ΙΙ, για την υποβολή αιτήσεων Έκδοση 1 η / Μάρτιος 2018 Πίνακας Περιεχομένων Εισαγωγή... 3 1 Σύνδεση ως Ωφελούμενος

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Ολοκλήρωση Συστημάτων και Εφαρμογών με χρήση Web Services «Διαλειτουργικότητα με PDA και Γεωγραφική

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

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

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

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

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

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

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

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

ΠΑΡΑΡΤΗΜΑ VI ΣΥΣΤΗΜΑ ΓΙΑ ΤΟΝ ΕΛΕΓΧΟ ΣΩΡΕΥΣΗΣ ΚΡΑΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ- ΠΑΡΑΡΤΗΜΑ VI ΣΥΣΤΗΜΑ ΓΙΑ ΤΟΝ ΕΛΕΓΧΟ ΣΩΡΕΥΣΗΣ ΚΡΑΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ- ΣΤΟΙΧΕΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΟΝ ΕΛΕΓΧΟ ΣΩΡΕΥΣΗΣ ΚΡΑΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ (σύμφωνα με την υπ.αρ. 3357/ΕΥΣ 1338/27-01-2011). Ενίσχυση ήσσονος σημασίας

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

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

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

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

1. Εισαγωγή στο ΟΠΣ - ΠΔΕ

1. Εισαγωγή στο ΟΠΣ - ΠΔΕ 1. Εισαγωγή στο ΟΠΣ - ΠΔΕ 1.1 Εισαγωγή 1.1.1 Σύντομη περιγραφή και σκοπός ΟΠΣ Το Ολοκληρωμένο Πληροφοριακό Σύστημα (Ο.Π.Σ.) αποτελεί ένα σύστημα πληροφόρησης και διαχείρισης, η χρήση του οποίου επιβάλλεται

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

Επίσηµη Εφηµερίδα της Ευρωπαϊκής Ένωσης. (Μη νομοθετικές πράξεις) ΚΑΝΟΝΙΣΜΟΙ

Επίσηµη Εφηµερίδα της Ευρωπαϊκής Ένωσης. (Μη νομοθετικές πράξεις) ΚΑΝΟΝΙΣΜΟΙ 10.6.2015 L 144/1 II (Μη νομοθετικές πράξεις) ΚΑΝΟΝΙΣΜΟΙ ΕΚΤΕΛΕΣΤΙΚΟΣ ΚΑΝΟΝΙΣΜΟΣ (ΕΕ) 2015/884 ΤΗΣ ΕΠΙΤΡΟΠΗΣ της 8ης Ιουνίου 2015 για τη θέσπιση των τεχνικών προδιαγραφών και διαδικασιών που απαιτούνται

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

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

ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & ΔΙΟΙΚΗΤΙΚΗΣ ΥΠΟΣΤΗΡΙΞΗΣ. Οδηγίες χρήσης ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & ΔΙΟΙΚΗΤΙΚΗΣ ΥΠΟΣΤΗΡΙΞΗΣ Πίνακας περιεχομένων 1. Εισαγωγή... 3 2. Διαχείριση Πληροφοριακών Συστημάτων... 4 3. Εξουσιοδότηση Υπαλλήλου...

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

Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα

Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα Σχεδιαστής Ψηφιακών Κινούμενων Σχεδίων ή Digital Animator 1. Περιγραφή Ρόλου Τίτλος Προφίλ Σχε Σχεδιαστής Ψηφιακών Κινούμενων Σχεδίων ή Digital Animator Γνωστό και ως Ειδικός Σχεδιασμού 2Δ- 3Δ γραφικών,

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

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

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

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

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

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

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

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

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο Βασικές Υπηρεσίες Διαδικτύου Επικοινωνίες Δεδομένων Μάθημα 2 ο Μεταφορά αρχείων (File Transfer Protocol, FTP) user at host FTP user interface FTP client local file system file transfer FTP server remote

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

Δικτυακοί τόποι. Η σχεδίαση ενός δικτυακού τόπου. Δρ. Ματθαίος Α. Πατρινόπουλος

Δικτυακοί τόποι. Η σχεδίαση ενός δικτυακού τόπου. Δρ. Ματθαίος Α. Πατρινόπουλος Δικτυακοί τόποι Η σχεδίαση ενός δικτυακού τόπου Δρ. Ματθαίος Α. Πατρινόπουλος Πώς χρησιμοποιούμε το διαδίκτυο; ΔΙΑΦΑΝΕΙΕΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΔΙΑΔΙΚΤΥΟΥ. 2 Από το www.smartinsights.

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

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

«ΛΕΙΤΟΥΡΓΙΑ ΚΕΝΤΡΟΥ ΔΙΑΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΘΕΣΗΣ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ» ΑΠΟΦΑΣΗ Ο ΥΠΟΥΡΓΟΣ ΟΙΚΟΝΟΜΙΚΩΝ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΓΕΝΙΚΗ ΠΡΑΜΜΑΤΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & ΔΙΟΙΚΗΤΙΚΗΣ ΥΠΟΣΤΗΡΙΞΗΣ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ 1) ΓΕΝΙΚΗ Δ/ΝΣΗ ΥΠΟΔΟΜΩΝ&ΥΠΗΡΕΣΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ-ΕΠΙΚΟΙΝΩΝΙΩΝ A) Δ/ΝΣΗ

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

CRM για Εκπαιδευτικούς Φορείς

CRM για Εκπαιδευτικούς Φορείς Cosmos Business Systems S.A. Group CRM για Εκπαιδευτικούς Φορείς CRM Εκπαιδευτικών Φορέων Το CRM Εκπαιδευτικών Φορέων έχει αναπτυχθεί για να ικανοποιήσει τις ανάγκες διαχείρισης του υποψήφιου πελατολογίου

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

ΠΟΛΙΤΙΚΗ ΣΥΝΟΧΗΣ 2014-2020

ΠΟΛΙΤΙΚΗ ΣΥΝΟΧΗΣ 2014-2020 ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΆ ΕΡΓΑΛΕΊΑ ΣΤΗΝ ΠΟΛΙΤΙΚΉ ΣΥΝΟΧΉΣ 2014-2020 ΠΟΛΙΤΙΚΗ ΣΥΝΟΧΗΣ 2014-2020 Οι νέοι κανόνες και η νομοθεσία που διέπουν τον επόμενο γύρο επένδυσης από την πολιτική συνοχής της ΕΕ για την περίοδο

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & ΔΙΟΙΚΗΤΙΚΗΣ ΥΠΟΣΤΗΡΙΞΗΣ. Οδηγίες χρήσης ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & ΔΙΟΙΚΗΤΙΚΗΣ ΥΠΟΣΤΗΡΙΞΗΣ Πίνακας περιεχομένων 1. Εισαγωγή... 3 2. Διαχείριση Πληροφοριακών Συστημάτων... 4 3. Εξουσιοδότηση Υπαλλήλου...

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

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

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

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

Συνοπτικές Οδηγίες του Επιχειρησιακού Προγράμματος «Ανταγωνιστικότητα, Επιχειρηματικότητα και Καινοτομία» Περιεχόμενα

Συνοπτικές Οδηγίες του Επιχειρησιακού Προγράμματος «Ανταγωνιστικότητα, Επιχειρηματικότητα και Καινοτομία» Περιεχόμενα Συνοπτικές Οδηγίες του Επιχειρησιακού Προγράμματος «Ανταγωνιστικότητα, Επιχειρηματικότητα και Καινοτομία» Περιεχόμενα 1. Υποχρεώσεις Πληροφόρησης και Επικοινωνίας των Δικαιούχων... 2 1.1 Γενικές Οδηγίες

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

Dynamic Business Systems. Παρουσίαση Εφαρμογής

Dynamic Business Systems. Παρουσίαση Εφαρμογής Παρουσίαση Εφαρμογής Διαχείριση Αποθήκης Ειδών, Μητρώου και Τιμοκαταλόγων Προμηθευτών, Αξιολόγηση Προμηθειών μέσω Προσφορών Ειδών Dynamic Business Systems (Dynamic Supplies) Περιεχόμενα A. Η Εφαρμογή Dynamic

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ- ΤΜΗΜΑ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΑΝΑΠΤΥΞΗΣ, ΜΑΘΗΜΑ: ΔΙΑΧΕΙΡΙΣΗ ΑΝΘΡΩΠΙΝΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΠΟΡΩΝ- ΧΡΙΣΤΟΣ ΑΠ. Χ. ΑΠ. ΛΑΔΙΑΣ Το ERP είναι ένα ολοκληρωμένο πληροφοριακό σύστημα διαχείρισης επιχειρησιακών πόρων. Διαχειρίζεται και συντονίζει όλες τις λειτουργίες και διαδικασίες που λαμβάνουν χώρα σε μια επιχείρηση.

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

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

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

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

Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ

Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ Π3.1 ΣΧΕΔΙΟ ΑΞΙΟΛΟΓΗΣΗΣ Αριθμός Έκδοσης: ΕΚΕΤΑ ΙΜΕΤ ΕΜ Β 2014 13 Παραδοτέο ΙΜΕΤ Τίτλος Έργου: «Ολοκληρωμένο σύστημα για την ασφαλή μεταφορά μαθητών» Συγγραφέας: Δρ. Μαρία Μορφουλάκη Κορνηλία Μαρία ΘΕΣΣΑΛΟΝΙΚΗ,

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

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

Πίνακας Εικόνων. 22/04/2014 Έκδοση 3.0.1 Προδιαγραφές για Προγραμματιστές Διαδικτυακής Υπηρεσίας «Βασικά στοιχεία μητρώου για νομικά πρόσωπα, νομικές οντότητες, και φυσικά πρόσωπα με εισόδημα από επιχειρηματική δραστηριότητα». Πίνακας Περιεχομένων

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

Αναφορά εργασιών για το τρίμηνο Δεκέμβριος 2012 Φεβρουάριος 2013 Όνομα : Μπελούλη Αγάθη

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

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

Γενική Γραμματεία Πληροφοριακών Συστημάτων

Γενική Γραμματεία Πληροφοριακών Συστημάτων Γενική Γραμματεία Πληροφοριακών Συστημάτων ΥΛΟΠΟΙΗΣΗ ΤΕΛΩΝΕΙΑΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ICISnet ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΕΦΑΡΜΟΓΩΝ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑ ΑΔΕΙΩΝ-ΕΓΚΡΙΣΕΩΝ ΜΕΡΟΣ 2: ΑΔΕΙΕΣ ΕΦΚ-ΟΧΗΜΑΤΩΝ

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

EΠΙΣΗΜΑΝΣΗ ΑΠΟΡΡΗΤΟΥ (PRIVACY NOTICE)

EΠΙΣΗΜΑΝΣΗ ΑΠΟΡΡΗΤΟΥ (PRIVACY NOTICE) EΠΙΣΗΜΑΝΣΗ ΑΠΟΡΡΗΤΟΥ (PRIVACY NOTICE) H εταιρεία FITGATE PRIVATE COMPANY η οποία εδρεύει στο Ν. Ψυχικό Αττικής (οδός Δημοκρατίας αρ. 8- email: info@fitgate.gr) και στην οποία ανήκει ο παρών δικτυακός τόπος

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

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

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

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

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

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

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

ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΗΜΟΣΙΩΝ ΕΠΕΝ ΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ ΕΙ ΙΚΗ ΥΠΗΡΕΣΙΑ Ο.Π.Σ. ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΗΜΟΣΙΩΝ ΕΠΕΝ ΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ ΕΙ ΙΚΗ ΥΠΗΡΕΣΙΑ Ο.Π.Σ. Υλοποίηση του Ολοκληρωμένου Πληροφοριακού Συστήματος (Ο.Π.Σ.) σύμφωνα με τις απαιτήσεις της Προγραμματικής Περιόδου

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

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

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

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

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

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται

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

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΔΗΛΩΣΗ ΔΙΑΧΕΙΡΙΣΗΣ KAI ΛΟΓΑΡΙΑΣΜΟΙ» 1η Έκδοση: 2016 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...4 2. ΔΙΕΝΕΡΓΕΙΑ

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

Διεύθυνση Προμηθειών, Υποδομών και Διαχείρισης Υλικού

Διεύθυνση Προμηθειών, Υποδομών και Διαχείρισης Υλικού Παπάγου, 10-12-2015 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΥΠΟΔΟΜΩΝ, ΜΕΤΑΦΟΡΩΝ ΚΑΙ ΔΙΚΤΥΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΥΠ.Υ.ΜΕ.ΔΙ. ΓΕΝΙΚΗ Δ/ΝΣΗ ΟΙΚΟΝΟΜΙΚΩΝ ΥΠΗΡΕΣΙΩΝ Αριθμ. Πρωτ.: Δ/ΝΣΗ ΠΡΟΜΗΘΕΙΩΝ, ΥΠΟΔΟΜΩΝ & ΔΙΑΧΕΙΡΙΣΗΣ

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

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

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

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

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

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

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

Οδηγός Χρήσης Εφαρμογής Ανάρτησης μέσω Διαδικτύου. (Έκδοση: 9.0)

Οδηγός Χρήσης Εφαρμογής Ανάρτησης μέσω Διαδικτύου. (Έκδοση: 9.0) Οδηγός Χρήσης Εφαρμογής Ανάρτησης μέσω Διαδικτύου (Έκδοση: 9.0) Δεκέμβριος 2016 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή... 3 Συμβατότητα Browser για τη χρήση της Εφαρμογής... 3 Α. Είσοδος με κωδικούς TaxisNet... 9 Β. Είσοδος

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

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

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

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

Για την ηλεκτρονική υποβολή αιτήσεως στήριξης θα πρέπει να προσπελάσετε τον διαδικτυακό τόπο

Για την ηλεκτρονική υποβολή αιτήσεως στήριξης θα πρέπει να προσπελάσετε τον διαδικτυακό τόπο Για την ηλεκτρονική υποβολή αιτήσεως στήριξης θα πρέπει να προσπελάσετε τον διαδικτυακό τόπο https://www.ependyseis.gr. Στη συνέχεια με τον κέρσορα επιλέγουμε, πάνω δεξιά, την ετικέτα «Πληροφοριακό Σύστημα

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

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

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

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

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