Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών Ακαδημαϊκό έτος Πτυχιακή εργασία

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

Download "Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών Ακαδημαϊκό έτος 2008-2009. Πτυχιακή εργασία"

Transcript

1 Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών Ακαδημαϊκό έτος Πτυχιακή εργασία Βελτιστοποίηση της εκτέλεσης σύνθετων υπηρεσιών διαδικτύου μέσω παροχέτευσης ενδιαμέσων αποτελεσμάτων Optimizing Composite Web Service Execution through Intermediate Result Streamlining Ομάδα εργασίας Επιβλέπων καθηγητής Καρκαλάκος Ιωάννης Βασιλάκης Κωνσταντίνος Γιαννόπουλος Ευστράτιος

2 Περιεχόμενα Περιεχόμενα Ευρετήριο σχημάτων Ευρετήριο πινάκων Ευρετήριο γραφημάτων Σκοπός εργασίας Summary Αρχιτεκτονική βασισμένη σε υπηρεσίες Τι είναι η αρχιτεκτονική βασισμένη σε υπηρεσίες; Διαφορές μοντέλου υπηρεσιών διαδικτύου και ανθρωποκεντρικού μοντέλου υπηρεσιών Αρχιτεκτονική και δομικά στοιχεία των υπηρεσιών διαδικτύου Διαφορές μοντέλου υπηρεσιών διαδικτύου και υπόλοιπων κατανεμημένων τεχνολογιών Βασικές τεχνολογίες υπηρεσιών διαδικτύου Ανταλλαγή δεδομένων Πρωτόκολλο επικοινωνίας Γλώσσα περιγραφής παρεχόμενων υπηρεσιών Καταχώρηση και ανάκτηση πληροφοριών υπηρεσίας Βήματα ανάπτυξης και χρήσης εφαρμογής διαδικτύου Εφαρμογές των υπηρεσιών διαδικτύου Θέματα ασφαλείας XML Τι είναι XML; Μεγάλη εξάπλωση της XML Το συντακτικό της XML Στοιχεία ή ετικέτες Ιδιότητες XML Schema Συντακτικό του XML SCHEMA WSDL Συντακτικό της WSDL UDDI SOAP Τι είναι το SOAP Συντακτικό του SOAP Soap envelope Soap Header

3 7.2.3 Soap Fault SOAP μέσω HTTP Ασυμβατότητες SOAP Άλλα πρωτόκολλα υπηρεσιών διαδικτύου Εισαγωγή EDI XML-RPC Επικοινωνούντα αντικείμενα RMI COM και DCOM CORBA Υλοποίηση Εισαγωγή Ανάλυση κώδικα Επικοινωνία μέσω μηνυμάτων XML Streamliner Γενικά Υλοποίηση Aggregator Γενικά Υλοποίηση Μέτρηση επιδόσεων Εισαγωγή Μετρήσεις Επίλογος Βιβλιογραφία Παράρτημα κώδικα Πακέτο streamliner Αρχείο CompletedVariable.java Αρχείο OperationId.java Αρχείο OutputVariable.java Αρχείο PendingVariable.java Αρχείο Request.java Αρχείο Requests.java Αρχείο UnknownIncomingVariable.java Αρχείο Optimize.java Αρχείο Service.java Αρχείο Parser.java Αρχείο parsedmessage2send.java Πακέτο aggregator Αρχείο PendingReturns Αρχείο Service.java Αρχείο XMLParser.java

4 Αρχείο sendmessage.java Δοκιμαστική υπηρεσία Δοκιμαστικός κώδικας χωρίς βελτιστοποίηση Δοκιμαστικός κώδικας με βελτιστοποίηση

5 Ευρετήριο σχημάτων Σχήμα 1 Σύνθεση υπηρεσιών Σχήμα 2 Βελτιστοποιημένη σύνθεση υπηρεσιών Schema 1 Web Service Synthesis Schema 2 Optimized web service synthesis Σχήμα 3 Ρόλοι οντοτήτων και ανταλλαγές μηνυμάτων στα πλαίσια του SOA Σχήμα 4 Δομή ενός μηνύματος SOAP Σχήμα 5 Παράδειγμα f=(x+y)*(z-k) Ευρετήριο πινάκων Πίνακας 1 - Αποτελέσματα εκτέλεσης διαδικασίας μη βελτιστοποιημένης περίπτωσης Πίνακας 2 - Αποτελέσματα εκτέλεσης διαδικασίας βελτιστοποιημένης περίπτωσης Πίνακας 3 - Σύγκριση αποτελεσμάτων Ευρετήριο γραφημάτων Γράφημα 1 - Σύγκριση χρόνου εκτέλεσης των δύο περιπτώσεων Γράφημα 2 Οφέλη χρήσης της βελτιστοποιημένης περίπτωσης

6 1 Σκοπός εργασίας Ο σκοπός της εργασίας αυτής είναι να δημιουργηθεί ένας μηχανισμός που θα επιτρέπει την πιο αποτελεσματική εκτέλεση μιας σύνθεσης υπηρεσιών. Ως σύνθεση υπηρεσιών μπορούμε να θεωρήσουμε την διαδοχική κλήση υπηρεσιών S 1, S 2,, S n, όπου τα αποτελέσματα που επιστρέφονται από την υπηρεσία S i χρησιμοποιούνται ως παράμετροι για την υπηρεσία S j (1 i < j n). Στο σχήμα 1 απεικονίζεται μία σύνθεση υπηρεσιών, όπου ο χρήστης υπηρεσιών επιθυμεί το αποτέλεσμα της υπηρεσίας 3, η οποία απαιτεί ως είσοδο το αποτέλεσμα της υπηρεσίας 2 κ.ο.κ. Έτσι ο χρήστης των υπηρεσιών θα πρέπει να καλέσει πρώτα την υπηρεσία 1 και να συλλέξει το αποτέλεσμά της, το οποίο κατόπιν θα παραδώσει στην υπηρεσία 2 ως είσοδο κ.ο.κ. μέχρι να συλλεχθεί το αποτέλεσμα της υπηρεσίας 3. Αυτή η μέθοδος σχεδιασμού υπηρεσιών διαδικτύου ακολουθείται από τους περισσότερους παροχείς υπηρεσιών μέχρι σήμερα. Υπηρεσία 1 Υπηρεσία 2 Υπηρεσία Αποτέλεσμα 1 Αποτέλεσμα 2 Τελικό αποτέλεσμα Αρχικά δεδομένα 3 5 Χρήστης υπηρεσιών Σχήμα 1 Σύνθεση υπηρεσιών Το αποτέλεσμα αυτό είναι ικανοποιητικό σαν τελική τιμή γιατί είναι αυτό που ζητούσαμε, αλλά η μέθοδος που ακολουθήθηκε δεν είναι καθόλου αποδοτική από δύο απόψεις : Από τη πλευρά του χρήστη ο οποίος αν δεν έχει τη τοπική εφαρμογή (δεν υπάρχει ή δεν του παρέχεται) θα πρέπει, για να συλλέξει το τελικό αποτέλεσμα, να συντονίσει τις κλήσεις ανάμεσα στις υπηρεσίες διαδικτύου. Θα πρέπει χρησιμοποιώντας ένα εργαλείο (π.χ. φυλλομετρητής ιστού) να στείλει τα αρχικά δεδομένα προς επεξεργασία στην Υπηρεσία 1, από εκεί να περιμένει (γιατί μπορεί να χρειάζεται και κάποιο χρόνο επεξεργασίας) για να πάρει το αποτέλεσμα 1 και να το δώσει στην υπηρεσία 2. Αυτή η διαδικασία θα πρέπει να γίνει για όλες τις υπηρεσίες, και είναι η πιο απλή περίπτωση καθώς σε μια πιο σύνθετη διαδικασία θα μπορούσαμε να έχουμε και επιστροφή σε προηγούμενη υπηρεσία. Από την άποψη του χρόνου, καθώς αυτή η διαδικασία εκτελεί πολλά ενδιάμεσα βήματα με την τοπική εφαρμογή χρήστη. Ξέρουμε ότι αυτά τα βήματα είναι χρονοβόρα καθώς εμπλέκονται οι χρόνοι αποστολής και λήψης των δεδομένων μέσω του δικτύου. Η πρότασή μας για βελτιστοποίηση της παραπάνω διαδικασίας, είναι να δημιουργηθεί ένα ενδιάμεσο λογισμικό ώστε να αναλαμβάνει την επικοινωνία μεταξύ των υπηρεσιών, και έτσι να ανταλλάσσουν μεταξύ τους τα δεδομένα που χρειάζονται για να συνθέσουν το τελικό αποτέλεσμα, όπως φαίνεται στο σχήμα

7 Υπηρεσία 1 Υπηρεσία 2 Υπηρεσία 3 Κλήση υπηρεσίας Αποτέλεσμα υπηρεσίας Streamliner 1 Ενδιάμεσο αποτέλεσμα Κλήση υπηρεσίας Αποτέλεσμα υπηρεσίας Streamliner 2 Ενδιάμεσο αποτέλεσμα Κλήση υπηρεσίας Αποτέλεσμα υπηρεσίας Streamliner 3 Κλήση streamliner με πληροφορίες για την παράδοση των αποτελεσμάτων Κλήση streamliner με πληροφορίες για την παραλαβή παραμέτρων και παράδοση των αποτελεσμάτων Κλήση streamliner με πληροφορίες για την παραλαβή παραμέτρων και παράδοση των αποτελεσμάτων Τελικό αποτέλεσμα Aggregator Αρχικά δεδομένα για κάθε υπηρεσία Τελικό αποτέλεσμα Τοπική εφαρμογή - Χρήστης Σχήμα 2 Βελτιστοποιημένη σύνθεση υπηρεσιών Η παραπάνω πρόταση δίνει το ίδιο αποτέλεσμα σαν τελική τιμή αποτελέσματος, αλλά βελτιώνει σε πολύ σημαντικό βαθμό τις ακόλουθες «προβληματικές» απόψεις: Στη βελτιστοποιημένη περίπτωση, ο χρήστης το μόνο που έχει να κάνει για να πάρει το τελικό αποτέλεσμα είναι να δώσει τα αρχικά δεδομένα στον aggregator, για να παραχθεί το τελικό αποτέλεσμα. Ο aggregator αναλαμβάνει να δώσει τις πληροφορίες και τα δεδομένα της εκτέλεσης στους streamliner. Αυτές οι πληροφορίες είναι η αλληλουχία των υπηρεσιών που πρέπει να εκτελεστούν. Από την άποψη του χρόνου, αυτό γίνεται κατά πολύ γρηγορότερα έχουμε και μείωση του χρόνου μεταφοράς των δεδομένων, καθώς αποφεύγεται η επιστροφή των ενδιάμεσων αποτελεσμάτων στον χρήστη, η οποία έχει ως μοναδικό σκοπό να του επιτρέψει να τα παραδώσει στις επόμενες υπηρεσίες που θα κληθούν. Λαμβάνοντας παράλληλα υπόψη ότι η επικοινωνία χρήστη-υπηρεσιών γίνεται συνήθως από πιο αργά κανάλια σε σχέση με την επικοινωνία aggregator-υπηρεσιών, τα οφέλη είναι σημαντικότερα. Tέλος, βελτίωση υπάρχει και σε ένα θέμα που σχετίζεται με την ασφάλεια. Στα παραπάνω σχήματα, αν ο πάροχος της υπηρεσίας 2 εμπιστεύεται τον πάροχο της υπηρεσίας 1 αλλά όχι και τον τελικό χρήστη υπηρεσιών, τότε αν δεν υπάρχει η μεσολάβηση του streamliner θα πρέπει να ληφθούν πρόσθετα μέτρα για να εξασφαλιστεί ότι ο τελικός χρήστης δεν θα αλλοιώσει, παραποιήσει ή πλαστογραφήσει τα - 7 -

8 ενδιάμεσα αποτελέσματα, ενώ στην εκδοχή με χρήση του aggregator και παροχέτευσης των ενδιάμεσων αποτελεσμάτων, τέτοιο ζήτημα δεν υφίσταται

9 2 Summary The purpose of this project is to create a mechanism that allows a more effective execution of a web service composition. The term web service composition refers to call the consecutive call of services S 1, S 2,, S n, where the results returned from the web service S i, are used as parameters for the web service S j (1 i < j n). In Figure 1 we represent the execution of a web service composition, where the user desires the result of service 3, which requires as input the result of service 2, etc. So, the user has to call firstly web service 1 and collect its result, then has to pass the result to service 2 as input and so on, until collecting the result of service 3. This web service design method is used by most web services providers. Service 1 Service 2 Service Result 2 6 Final result 1 Result 1 Initial data 3 5 Web service user Figure 3 Web Service Synthesis This arrangement is satisfying in respect of the final value obtained since it is the one that the user has asked forbut the method that used is not efficient from two reasons: From the user point of view, that if s/he has not a locally executed application available (is does not exist or is not provided), s/he has to orchastrate the calls to web services. The user should employ an appropriate tool (e.g. browser), and send the initial data to service 1, wait for the result (because service 1 may need some time for processing and return the result) and pass it to service 2. This process has to be done for all services, and it is the simplest case of web service composition. Regarding the process execution time, this process makes a lot of intermediate steps requiring the intervenstion of the local application (user). These steps are time consuming, and the time required to sending and receiving intermediate results may be too large, because of user upload and download rate. Our solution for the optimization of this process is to create a middleware, whose purpose is to orchestrate the web services comprising a composite service, and arrange for transferring the intermediate results as appropriate. This approach is depicted in Figure

10 Service 1 Service 2 Service 3 Service result Service result Service result Service call Streamliner 1 Intermediate result Service call Streamliner 2 Intermediate result Service call Streamliner 3 Streamliner call with information about the process Streamliner call with information about the process Streamliner call with information about the process Final result Aggregator Initial data for service invocation Final result Local application - User Figure 4 Optimized execution of a web service composition This solution concludes to the same result with the previous one regarding the final value, but considerably improves the following aspects: In optimized case, user has only to present the initial data to the aggregator and wait to receive the final result. The aggregator undertakes the task of passing all information and data about the process to streamliners and collects and passes the result back to user. Execution time is improved, because less intermediare result transfers are performed. This case avoids unnecessary intermediate results to user, which the only purpose of these is to pass them to next services. Intermediate results are transferred directly from the producer to the consumer. Finally, there is improvement to security. If the provider of service 2 trusts the provider of service 1 but not the final user, in the non streamliner-mediated approach provider 2 would have to employ additional security mechanisms (e.g. digital signatures) to ensure that the intermediate results are not forged or modified by the user; when direct transfer is employed, the introduction of such mechanisms is not required

11 3 Αρχιτεκτονική βασισμένη σε υπηρεσίες 3.1 Τι είναι η αρχιτεκτονική βασισμένη σε υπηρεσίες; Η αρχιτεκτονική βασισμένη στις υπηρεσίες είναι μια τεχνολογία σχεδιασμού λογισμικού, η οποία επιτρέπει στις εφαρμογές να επικοινωνούν μεταξύ τους ανεξαρτήτως λειτουργικού συστήματος και γλώσσας προγραμματισμού. Η κυρίαρχη τάση αναφορικά με τον τρόπο επικοινωνίας χρησιμοποιεί το πρωτόκολλο HTTP για τη μεταφορά των μηνυμάτων, ενώ τα ίδια τα μηνύματα δομούνται με χρήση της γλώσσας περιγραφής XML. Η αρχιτεκτονική βασισμένη στις υπηρεσίες αποτελεί έναν μηχανισμό για την επικοινωνία πολλών ξεχωριστών κομματιών λογισμικού. Κάθε κομμάτι από αυτά μπορεί να έχει σχεδιαστεί από διαφορετικούς οργανισμούς με διαφορετικά εργαλεία ανάπτυξης λογισμικού, και κάθε κομμάτι λογισμικού μπορεί να κληθεί από διαφορετικές εφαρμογές. Αυτή η σύνδεση μεταξύ διαφόρων μονάδων λογισμικού γίνεται μέσω κάποιων προτύπων, τα οποία επιτρέπουν στους προγραμματιστές να χρησιμοποιούν τις εφαρμογές χωρίς να νοιάζονται για το πως είναι υλοποιημένες. Βάσει των ανωτέρω, η αρχιτεκτονική βασισμένη σε υπηρεσίες ή SOA (Service Oriented Architecture), όπως θα αναφέρεται σε όλο το έγγραφο, δημιουργεί εφαρμογές οι οποίες πληρούν τις παρακάτω προϋποθέσεις [2]: Είναι διαθέσιμες από το διαδίκτυο (internet) ή οποιοδήποτε ενδοδίκτυο (intranet) χρησιμοποιείται (για παράδειγμα η υπηρεσία που χρησιμοποιεί μια επιχείρηση και είναι διαθέσιμη στο τοπικό της δίκτυο) Χρησιμοποιεί ένα πρωτυποποιημένο σύστημα επικοινωνίας βασισμένο σε XML Είναι ανεξάρτητες από οποιοδήποτε λειτουργικό σύστημα ή γλώσσα προγραμματισμού Είναι αυτοπεριγραφόμενες από μια κοινή γραμματική XML Είναι δυνατόν να εντοπιστούν μέσω κάποιου μηχανισμού αναζήτησης 3.2 Διαφορές μοντέλου υπηρεσιών διαδικτύου και ανθρωποκεντρικού μοντέλου υπηρεσιών Αρχικά, ας περιγράψουμε το ανθρωποκεντρικό μοντέλο υπηρεσιών, το οποίο έχει καταλάβει το μεγαλύτερο ποσοστό των υπηρεσιών στο διαδίκτυο. Το ανθρωποκεντρικό μοντέλο υπηρεσιών στηρίζεται στο ότι ο άνθρωπος-χρήστης είναι η κεντρική οντότητα της υπηρεσίας. Για να γίνει πιο κατανοητό ας δώσουμε ένα παράδειγμα : Έστω η υπηρεσία ηλεκτρονικής αγοράς κάποιων προϊόντων που υπάρχει στο διαδίκτυο. Με την ανθρωποκεντρική προσέγγιση έχουμε την εξής διαδικασία: ο χρήστης της υπηρεσίας αυτής έχει παραγγείλει το προϊόν του και μετά από κάποιο χρονικό διάστημα θέλει να ενημερωθεί για την πρόοδο της παραγγελίας του. Για να το κάνει αυτό χρησιμοποιεί ένα πρόγραμμα πλοήγησης (browser), συνδέεται στην υπηρεσία στο διαδίκτυο, εισάγει τον κωδικό της παραγγελίας και μέσα από την υπηρεσία τού εμφανίζεται στην οθόνη η εξέλιξη της παραγγελίας του. Προφανώς στη θεώρηση SOA, δεν αγνοείται ο άνθρωπος κατά τον σχεδιασμό της εφαρμογής (εξάλλου τα πάντα γίνονται για διευκόλυνση του ανθρώπου) απλά δεν είναι αυτός που απαραίτητα ξεκινά την εκτέλεση της υπηρεσίας, ενώ παράλληλα η κεντρική οντότητα στον σχεδιασμό είναι η υπηρεσία. Για παράδειγμα, χρησιμοποιούμε μια υπηρεσία η οποία παρακολουθεί από μόνη της την εξέλιξη της παραγγελίας μας, για να γίνει αυτό θα πρέπει η διαδικτυακή υπηρεσία να χρησιμοποιεί τη γλώσσα XML ώστε να μπορεί να γίνει σωστά η επικοινωνία με την εφαρμογή μας. Η εφαρμογή αυτή ζητά δεδομένα από την υπηρεσία διαδικτύου και τα δίνει στις ενδιαφερόμενες τοπικές εφαρμογές (για παράδειγμα ιστορικό κίνησης, ειδοποίηση εξέλιξης παραγγελίας

12 κ.λπ.). Μέσω των εφαρμογών αυτών μπορεί πλέον ο χρήστης να λάβει την πληροφορία για την εξέλιξη της παραγγελίας του (μοντέλο άντλησης pull) ή ακόμα και να υπάρχει τοπική εφαρμογή όπου θα τον ενημέρωνε με γραπτό μήνυμα στο κινητό του για πιθανή εξέλιξη της παραγγελίας (μοντέλο ώθησης push). 3.3 Αρχιτεκτονική και δομικά στοιχεία των υπηρεσιών διαδικτύου Σε αυτό το κεφάλαιο θα περιγράψουμε πώς λειτουργούν οι υπηρεσίες διαδικτύου, καθώς και από ποια επί μέρους τμήματα αποτελούνται. Για να καταλάβουμε καλύτερα τι είναι υπηρεσία διαδικτύου θα δώσουμε ένα παράδειγμα μιας τυπικής υπηρεσίας διαδικτύου, και μετά πάνω σ αυτό το παράδειγμα θα αναλύσουμε ποια είναι τα δομικά στοιχεία της συγκεκριμένης υπηρεσίας. Ένα παράδειγμα υπηρεσίας διαδικτύου είναι ένας εξυπηρέτης ενημέρωσης τοπικών καιρικών φαινομένων. Έστω ότι θέλουμε να μάθουμε τι καιρό έχει σε ένα μέρος της Ελλάδας, και υποθέτουμε ότι στο συγκεκριμένο μέρος υπάρχει αυτή η κατάλληλη υποδομή για την παροχή της πληροφορίας (δηλαδή υπάρχει υπολογιστής-εξυπηρέτης όπου δίνει την πληροφορία αυτή). Για να μάθουμε τον καιρό της περιοχής που μας ενδιαφέρει, θα ακολουθήσουμε την εξής διαδικασία: χρησιμοποιώντας ένα περιηγητή ιστού θα προσπελάσουμε μια ιστοσελίδα (γνωστή για εμάς, ας την ονομάσουμε «πληροφοριοδότη»), η οποία διαθέτει πληροφορίες για τις διευθύνσεις και τον τρόπο σύνδεσης όλων των εφαρμογών ενημέρωσης καιρικών φαινομένων για όλες τις περιοχές της Ελλάδας, που υποστηρίζουν τη συγκεκριμένη υπηρεσία. Από τον «πληροφοριοδότη» θα αναζητήσουμε τη περιοχή που μας ενδιαφέρει. Μετά έχοντας τη διεύθυνση της εφαρμογής και τον τρόπο σύνδεσης σε αυτήν, θα την προσπελάσουμε υποβάλλοντας μία αίτηση για ενημέρωση καιρού. Η τοπική υπηρεσία θα μας απαντήσει με τα τοπικά καιρικά φαινόμενα. Στις υπηρεσίες διαδικτύου οι όροι SOAP, UDDI και WSDL είναι αυτοί που περιγράφουν τα δομικά στοιχεία της αρχιτεκτονικής, όπως έχουν επικρατήσει στην τρέχουσα πρακτική 1. Από το παραπάνω παράδειγμα θα αναγνωρίσουμε τα δομικά στοιχεία της υπηρεσίας. Το SOAP στη συγκεκριμένη περίπτωση είναι ο τρόπος με τον οποίο θα κωδικοποιήσουμε την πληροφορία για να επικοινωνήσουμε με την εφαρμογή τοπικού καιρού (αυτό που μας επιστρέφει ο πληροφοριοδότης). Το UDDI είναι ο πληροφοριοδότης της περίπτωσης μας (η ιστοσελίδα που φυλάσσει πληροφορίες για όλες τις εφαρμογές των διαφόρων περιοχών). Και τέλος η WSDL είναι ο τρόπος με τον οποίο οι διαφορετικές υπηρεσίες περιγράφονται στο UDDI (πληροφοριοδότης), δηλ. σε ποια διεύθυνση μπορούμε να τις προσπελάσουμε, ποια δεδομένα εισόδου χρειάζονται και σε ποια μορφή, τι αποτελέσματα δίνουν κ.ο.κ.. Το ανωτέρω μοντέλο απεικονίζεται στο σχήμα 3. 1 Οι προδιαγραφές του SOA προβλέπουν και εναλλακτικές μεθόδους, π.χ. χρήση SMTP αντί για HTTP, REST (Representational State Transfer) αντί των SOAP/WSDL κ.λπ. Στο υπόλοιπο του παρόντος θα ακολουθήσουμε την κυρίαρχη τάση

13 5, Αποδοχή αίτησης και χρήση υπηρεσίας Πάροχος υπηρεσιών (τοπική εφαρμογή καιρού) 1, Δημοσίευση 4, Αίτηση για δέσμευση υπηρεσίας Πελάτης Κατάλογος υπηρεσιών UDDI 2, Αναζήτηση 3, Αποστολή πληροφοριών Πάροχος υπηρεσιών Πελάτης Πάροχος υπηρεσιών Πελάτης Σχήμα 5 Ρόλοι οντοτήτων και ανταλλαγές μηνυμάτων στα πλαίσια του SOA Σύμφωνα με τα παραπάνω μπορούμε να πούμε ότι μια καλώς ορισμένη αρχιτεκτονική υπηρεσιών διαδικτύου έχει τα παρακάτω χαρακτηριστικά : Ένα προτυποποιημένο τρόπο για επικοινωνία Ένα μηχανισμό για ανταλλαγή δεδομένων Μία περιγραφική γλώσσα ώστε να περιγράφει τις υπηρεσίες που προσφέρονται Ένα μηχανισμό για την καταχώρηση και ανάκτηση των πληροφοριών σχετικά με τις υπηρεσίες. 3.4 Διαφορές μοντέλου υπηρεσιών διαδικτύου και υπόλοιπων κατανεμημένων τεχνολογιών Εκτός από τη SOA έχουν αναπτυχθεί και άλλες κατανεμημένες αρχιτεκτονικές, όπως είναι το RPC και το RMI, υπάρχουν ωστόσο διαφορές μεταξύ του SOA και των άλλων προσεγγίσεων. Ο κύριος λόγος που κάνει τη SOA διαφορετική από τις υπόλοιπες τεχνολογίες είναι ο τρόπος με τον οποίο επικοινωνούν μεταξύ τους. Οι παλαιότερες τεχνολογίες χρησιμοποιούν ένα πρωτόκολλο επικοινωνίας το οποίο είναι αποκλειστικά υλοποιημένο για το συγκεκριμένο εργαλείο προγραμματισμού και επιτρέπει να γίνουν σε αυτό, από καθόλου έως ελάχιστες αλλαγές. Η SOA, από την άλλη πλευρά, χρησιμοποιεί την XML. Η XML είναι μια ευρέως διαδεδομένη γλώσσα για τη μορφοποίηση και την ανταλλαγή, δεδομένων όποτε είναι πολύ πιο εύκολο να επικοινωνήσουν διαφορετικές μονάδες λογισμικού μεταξύ τους. Ακόμη, η υιοθέτηση του HTTP για τη μεταφορά των μηνυμάτων διευκολύνει τη ζωή των προγραμματιστών, οι οποίοι δεν έχουν να ασχολούνται με τα firewall και τις υπόλοιπες ρυθμίσεις δικτύου, μπορεί να χρησιμοποιηθεί η διαμόρφωση που επιτρέπει τη χρήση του HTTP. Όποτε με τη SOA οι προγραμματιστές όταν θέλουν να χρησιμοποιήσουν κάποια υπηρεσία διαδικτύου υλοποιημένη από κάποιον άλλο φορέα, δεν χρειάζεται να σκεφτούν με πιο εργαλείο και πως είναι υλοποιημένη η

14 συγκεκριμένη εφαρμογή. Το μόνο που έχουν να κάνουν είναι να διαμορφώσουν το κατάλληλο μήνυμα XML και να το αποστείλουν (συνήθως μέσω HTTP) για να πάρουν το αποτέλεσμα, χωρίς να έχουν κάποια ουσιαστική γνώση για το πώς έγινε η επεξεργασία για να παραχθεί αυτό το αποτέλεσμα. Συγκεντρωτικά μπορούμε να πούμε ότι οι υπηρεσίες διαδικτύου που είναι σχεδιασμένες με την αρχιτεκτονική SOA διαφέρουν από τις υπόλοιπες κατανεμημένες τεχνολογίες στους παρακάτω τομείς : Τα δεδομένα είναι μορφοποιημένα με συγκεκριμένο τρόπο (XML) ώστε να είναι δυνατή η επεξεργασία και η κατανόησή τους, ανεξάρτητα από το λειτουργικό σύστημα και τη γλώσσα προγραμματισμού όπου παραλαμβάνονται. Τα δεδομένα μεταφέρονται χρησιμοποιώντας προτυποποιημένα πρωτόκολλα επικοινωνίας (HTTP), τα οποία είναι κοινώς αποδεκτά, συνεπώς είναι διαθέσιμα παντού, ενώ παράλληλα μπορούν να αξιοποιηθούν άμεσα μηχανισμοί ασφάλειας που έχουν αναπτυχθεί για τα πρωτόκολλα αυτά. Η παρεχόμενη υπηρεσία είναι καλά καθορισμένη από ένα γνωστό και αποδεκτό μηχανισμό (WSDL) Οι υπηρεσίες βρίσκονται εύκολα μέσω ενός καλώς καθορισμένου πρότυπου (UDDI). 3.5 Βασικές τεχνολογίες υπηρεσιών διαδικτύου Ας δούμε τώρα τις βασικές τεχνολογίες που προτείνει η αρχιτεκτονική SOA Ανταλλαγή δεδομένων XML (Extended Markup Language), περιγραφική γλώσσα με καλά καθορισμένη σύνταξη και σημασιολογία, καθώς και ενσωματωμένο μηχανισμό για την ανταλλαγή δεδομένων μέσω διαφορετικών εφαρμογών Πρωτόκολλο επικοινωνίας SOAP (Simple Object Access Protocol), είναι ένα ελαφρύ πρωτόκολλο φτιαγμένο για την ανταλλαγή δομημένων πληροφοριών, με χρήση της XML. Έχει σχεδιαστεί ώστε να είναι ανεξάρτητο γλώσσας προγραμματισμού Γλώσσα περιγραφής παρεχόμενων υπηρεσιών WSDL (Web Services Description Language), βασίζεται στην XML και χρησιμοποιεί ένα σύνολο ετικετών για να περιγράψει μια υπηρεσία. Το καλό του συγκεκριμένου σημείου είναι ότι οι πελάτες μαθαίνουν πληροφορίες σχετικά με την υπηρεσία πριν επικοινωνήσουν μαζί της Καταχώρηση και ανάκτηση πληροφοριών υπηρεσίας UDDI (Universal Description Discovery and Integration), είναι ο κατάλογος που περιέχει όλες τις πληροφορίες που χρειαζόμαστε για να επικοινωνήσουμε με μια υπηρεσία διαδικτύου. Ο πάροχος της υπηρεσίας καταχωρεί εδώ την υπηρεσία του, και ο πελάτης αναζητά υπηρεσίες μέσω αυτού του καταλόγου. 3.6 Βήματα ανάπτυξης και χρήσης εφαρμογής διαδικτύου Από τη πλευρά του παρόχου υπηρεσιών : 1. Καθορισμός της παρεχόμενης υπηρεσίας 2. Υλοποίηση της υπηρεσίας σε κάποια γλώσσα προγραμματισμού 3. Εγκατάσταση της εφαρμογής παροχής υπηρεσιών

15 4. Δημοσίευση της υπηρεσίας σε ένα κατάλογο υπηρεσιών 5. Αναμονή εξυπηρέτησης αιτήσεων Από τη πλευρά του χρήστη της υπηρεσίας : 1. Προσδιορισμός της ζητούμενης υπηρεσίας 2. Εντοπισμός κάποιας υπηρεσίας μέσω ενός καταλόγου υπηρεσιών 3. Αποστολή αίτησης παροχής υπηρεσίας στην υπηρεσία 4. Λήψη απάντησης από την υπηρεσία 3.7 Εφαρμογές των υπηρεσιών διαδικτύου Οι υπηρεσίες διαδικτύου άρχισαν να γίνονται γνωστές ως μικρές πηγές πληροφοριών, όπως είναι η παρουσίαση των τιμών των μετοχών ή της πρόγνωσης του καιρού. Τέτοιου τύπου πληροφορίες μπορούμε να βρούμε παντού στο διαδίκτυο. Γιατί όμως να τις ενσωματώσουμε σε υπηρεσίες; Οι υπηρεσίες διαδικτύου μας δίνουν έναν πιο δυναμικό και πιο οργανωμένο τρόπο παρουσίασης και παροχής των πληροφοριών. Κάθε μια από αυτές τις υπηρεσίες μπορεί να κληθεί από εμάς ώστε να μας επιστρέψει τα αποτελέσματά της, έτσι εμείς μπορούμε να την ενσωματώσουμε σε μια δική μας εφαρμογή. Αυτό μπορεί να κάνει τις εφαρμογές που τις χρησιμοποιούν πιο λειτουργικές και πιο εύκολα συντηρήσιμες, αλλά και τις πληροφορίες που υπάρχουν στο διαδίκτυο πιο χρήσιμες, για παράδειγμα: Θέλουμε να φτιάξουμε μια εφαρμογή που θα ενημερώνει τους χρήστες της για τον καιρό. Αυτή η εφαρμογή έχει ως κύριο χαρακτηριστικό της την συχνή ανανέωση των πληροφοριών της, όποτε θα πρέπει να βρούμε κάπου αυτές τις πληροφορίες. Στο διαδίκτυο υπάρχουν πολλές ιστοσελίδες που μας δίνουν τον καιρό, αλλά αν αυτές οι πληροφορίες επιστρέφονται με μορφή μιας ιστοσελίδας (έγγραφο HTML) είναι δύσκολο να μπορέσουμε να τις ενσωματώσουμε στην εφαρμογή μας. Και ακόμα και αν ενσωματωθούν, μέσω ανάλυσης της ιστοσελίδας και εξαγωγής των πληροφοριών, η εφαρμογή που θα φτιάξουμε θα είναι πολύ πιθανό να πάψει να λειτουργεί σωστά αν αλλάξει έστω και λίγο η ιστοσελίδα. Αν όμως οι πληροφορίες της συγκεκριμένης ιστοσελίδας καθίσταντο διαθέσιμες μέσω μιας υπηρεσίας, εμείς δεν θα είχαμε να κάνουμε τίποτα παραπάνω από το να την καλέσουμε. Με τη χρήση των υπηρεσιών διαδικτύου κάνουμε πιο χρήσιμες τις πληροφορίες που υπάρχουν στο διαδίκτυο για τους προγραμματιστές που θέλουν να τις χρησιμοποιήσουν, οι οποίοι πλέον μπορούν να τις χρησιμοποιήσουν έτσι ώστε να φτιάξουν εφαρμογές που παλαιοτέρα θα ήταν πολύ δύσκολο ως αδύνατο να φτιάξουν - για παράδειγμα μια εφαρμογή η όποια θα μας ειδοποιεί πότε η τηλεόραση έχει ταινίες που μας αρέσουν. 3.8 Θέματα ασφαλείας Η ασφάλεια ένα σημαντικό κομμάτι μιας υπηρεσίας διαδικτύου, σε κάποιες δε περιπτώσεις είναι πιο σημαντικό ακόμα και από την ίδια τη λειτουργία της υπηρεσίας. Η SOA δεν ενσωματώνει κανένα μηχανισμό ασφαλείας, κωδικοποίησης ή αυθεντικοποίησης. Τι μπορούμε να κάνουμε λοιπόν για να έχουμε ασφαλείς υπηρεσίες; Τα πρώτα χρόνια χρήσης της XML δεν υπήρχε κάποια μέθοδος ασφαλείας - ο μόνος τρόπος να εισαχθεί κάποια μορφής ασφάλεια ήταν να χρησιμοποιηθεί το πρωτόκολλο SSL. Επειδή στη γενική περίπτωση στο μοντέλο SOA η κλήση των υπηρεσιών γίνεται μέσω του πρωτοκόλλου HTTP, αντί για το απλό HTTP θα μπορούσε να χρησιμοποιηθεί το πρωτόκολλο HTTPS. Αυτή η μέθοδος είναι αρκετά αμφισβητήσιμη καθώς, όταν η επικοινωνία γίνεται με SSL, κάθε πακέτο κωδικοποιείται και στέλνεται ξεχωριστά, συνεπώς όταν έχουμε αποστολή πολλαπλών ανεξάρτητων πακέτων η επικοινωνία γίνεται ευάλωτη σε κρυπταναλυτικές επιθέσεις για την εύρεση

16 του κλειδιού. Λύση σε αυτό το πρόβλημα θα μπορούσε να αποτελεί η μοντελοποίηση της υπηρεσίας έτσι ώστε να είναι απαραίτητη η αποστολή μίας μόνο αίτησης και μίας μόνο απάντησης, κάτι που είναι ωστόσο πρακτικά αδύνατο. Τα επόμενα χρόνια όμως άρχισαν να αναπτύσσονται μηχανισμοί ασφαλείας, όπου ενσωματώνονται στην XML. Χαρακτηριστικά που υπάρχουν αυτή τη στιγμή είναι[5][6] : XML Signature XML Encryption Message authentication διακρίβωση της ταυτότητας του αποστολέα και μέτρα ενάντια σε αποστολή πακέτων από μη εξουσιοδοτημένους χρήστες Message integrity ενάντια στην ακεραιότητα του πακέτου Message confidentiality ενάντια στη παρακολούθηση και υποκλοπή μηνυμάτων Message freshness ενάντια στις επανεκπομπές

17 4 XML 4.1 Τι είναι XML; Μιλήσαμε παραπάνω για την XML και ότι χρησιμοποιείται ως εργαλείο για την υλοποίηση μιας SOA αρχιτεκτονικής, τι είναι λοιπόν η XML; Η XML (Extensible Markup Language) λοιπόν είναι μια γλώσσα αναπαράστασης δεδομένων, η όποια είναι ανεξάρτητη από το λειτουργικό και το υλικό της εκάστοτε υπολογιστικής πλατφόρμας. Για την αναπαράσταση των δεδομένων χρησιμοποιεί απλό κείμενο το οποίο περικλείεται από ετικέτες με τις οποίες παρέχεται δομή και σημασιολογία στα δεδομένα. Η XML είναι επεκτάσιμη, με την έννοια ότι μπορούν να χρησιμοποιηθούν οποιεσδήποτε ετικέτες για την περιγραφή των δεδομένων, έτσι ώστε να περιγράφονται αυτά πλήρως, χωρίς να υπάρχει καμία ανάγκη αλλαγής της ίδιας της XML, αρκεί βεβαία να τηρούμε το συντακτικό της XML για την αναπαράσταση των δεδομένων μας. 4.2 Μεγάλη εξάπλωση της XML. Η XML είναι μια πολύ διαδεδομένη γλώσσα και αυτό λόγω της ανεξαρτησίας της και της δυνατότητας επέκτασής της. Έχουν αναπτυχθεί πάρα πολλά εργαλεία σχετικά με την XML, και σ αυτά περιλαμβάνονται επεξεργαστές XML και αναγνώστες (εκτελεστές) XML. Όλα αυτά τα εργαλεία καλύπτουν σχεδόν όλα τα λειτουργικά συστήματα και τις γλώσσες προγραμματισμού. Ενδεικτικές γλώσσες προγραμματισμού που διαθέτουν εργαλεία επεξεργασίας και εκτέλεσης XML και είναι οι πιο διαδεδομένες σ αυτό το τομέα είναι οι Java, Perl, Python, C#, C, C++, και Ruby. Υπάρχουν δυο διαφορετικοί τρόποι σχεδιασμού επικοινωνίας δυο συστημάτων XML (XML Messaging): XML-RPC. Είναι η πιο απλή μέθοδος επικοινωνίας XML, χρησιμοποιεί XML για να υλοποιήσει κλήσεις απομακρυσμένων διαδικασιών (RPC). Τα αιτήματα στέλνονται μέσω μεθόδων HTTP POST,ενώ οι απαντήσεις XML ενσωματώνονται στην απάντηση HTTP. SOAP. Το SOAP είναι ένα πρωτόκολλο βασισμένο σε XML και χρησιμοποιείται για πολλές εφαρμογές επικοινωνίας μεταξύ υπολογιστών, η βασική χρήση του SOAP είναι να καλούνται μέθοδοι αντικειμένων μέσω HTTP. Τα δυο πρωτόκολλα σαν βασική σχεδίαση επικοινωνίας είναι παρόμοια. Ο κύριος λόγος της εξάπλωσης αυτής, βέβαια είναι η ανάγκη για μια κοινή γλώσσα ανταλλαγής δεδομένων. Αφού ως τότε ο καθένας έφτιαχνε ένα δικό του πρότυπο επικοινωνίας, όμως με αυτή την προσέγγιση η ανταλλαγή δεδομένων μεταξύ διαφορετικών προγραμμάτων ήταν αδύνατη. 4.3 Το συντακτικό της XML Η XML μοιάζει πολύ με την HTML (γλώσσα σχεδιασμού ιστοσελίδων), αφού και οι δυο έχουν παρόμοιο τρόπο σύνταξης για τις ετικέτες τους (περικλείονται με <> </> ). Η XML είναι ωστόσο πολύ πιο αυστηρή, καθώς αν. π.χ. ένα πεδίο στην HTML δεν κλείνει μπορεί το γεγονός αυτό μπορεί να αγνοηθεί, ενώ αντίθετα σε ένα κείμενο XML μία τέτοια παράλειψη οδηγεί σε σφάλμα και σταματά την επεξεργασία του κειμένου. Η βαθύτερη αιτία για αυτή τη διαφορά είναι ότι αν και φαινομενικά η XML μοιάζει με τη HTML, η τελευταία φτιάχτηκε για να υποστηρίζει την παρουσίαση των δεδομένων και όχι για την περιγραφή τους. Αυτό φαίνεται και από το παρακάτω παράδειγμα εγγράφου XML: <bookstore> <book category="children"> <title>harry Potter</title> <author>j K. Rowling</author>

18 <year>2005</year> <price>29.99</price> </book> <book category="web"> <title>learning XML</title> <author>erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> Ένα έγγραφο XML αποτελείται από στοιχεία και ιδιότητες. Ο τρόπος που οργανώνονται τα δεδομένα στην XML είναι δενδροειδής. Οπότε κάθε αρχείο θα πρέπει να περιέχει ένα στοιχείο-πάτερα το οποίο μπορεί να έχει οσαδήποτε παιδιά 2, και τα παιδιά με τη σειρά τους μπορεί να έχουν οσαδήποτε παιδιά. Έτσι στο τέλος θα σχηματιστεί ένα δένδρο το οποίο θα έχει τα απαραίτητα δεδομένα Στοιχεία ή ετικέτες Τα στοιχεία της XML μπορεί να περιέχουν δεδομένα, όπως είναι το <title> που περιέχει το Harry Potter. Η ακόμα μπορεί να περιέχουν και ιδιότητες που αφορούν τα συγκεκριμένα στοιχειά, όπως είναι το <book category="children">. Βεβαία τα στοιχεία πρέπει να υπάκουνε σε κάποιους κανόνες οι οποίοι είναι : Κάθε έγγραφο θα πρέπει να έχει ακριβώς ένα αρχικό στοιχείο-γονέα που θα έχει τον ρόλο της ρίζας Σε αντίθεση με την HTML όλα τα στοιχεία θα πρέπει να έχουν και ετικέτα κλεισίματος Στα στοιχεία παίζει ρόλο το αν είναι γραμμένα με πεζά η με κεφαλαία (case sensitive) Κάθε ετικέτα που ανοίγει θα πρέπει να κλείνει και με τη σωστή σειρά για παράδειγμα <book><title> XML </title> </book> και όχι <book><title> XML </book></title> Ιδιότητες Οι ιδιότητες χρησιμοποιούνται για να μας δώσουν περισσότερες πληροφορίες για τα δεδομένα τα οποία περιέχονται σε μία ετικέτα, όπως φαίνεται και στο υπόδειγμα <book category="children">, όπου η ιδιότητα ουσιαστικά μας λέει ότι το βιβλίο που υπάρχει στα δεδομένα προορίζεται για παιδιά. Βεβαία ποτέ δεν πρέπει να τα δεδομένα να περιέχονται στης ιδιότητες, αφού ο κύριος σκοπός των ιδιοτήτων είναι να περιγράψουν τα δεδομένα, που περιέχουν τα στοιχεία. 4.4 XML Schema Παραπάνω μιλήσαμε για το συντακτικό το οποίο πρέπει να τηρείται σε ένα έγγραφο XML, όμως πως μπορούμε να ελέγξουμε αν το συντακτικό είναι όντως σωστό; Σε κάθε έγγραφο XML αντιστοιχεί ένα έγγραφο τύπου XML schema. Το XML schema δεν είναι τίποτα παραπάνω από ένα έγγραφο το οποίο περιέχει τις απαραίτητες πληροφορίες, έτσι ώστε να μπορούμε να ελέγξουμε τη δομή και τη σειρά των στοιχείων και των δεδομένων ενός αρχείου XML. Ένα XML schema έχει ως κύρια χαρακτηριστικά του : 2 Στα σχήματα XML υπάρχει τρόπος να καθοριστεί το ποια παιδιά είναι έγκυρα, πόσες φορές μπορούν να επαναλαμβάνονται, μοναδικότητα τιμών κ.λπ

19 Τη δυνατότητα χρήσης βασικών τύπων δεδομένων όπως ακέραιος, χαρακτήρας, κ.ά. Τη δυνατότητα καθορισμού δικών μας τύπων δεδομένων για στοιχεία, οι όποιοι μπορούν να περιέχουν και άλλα στοιχεία. Με αυτόν τον τρόπο μπορούμε να φτιάξουμε και σύνθετους τύπους δεδομένων οι όποιοι υποστηρίζονται πλέον από τις περισσότερες βάσεις δεδομένων. Ακολουθεί ένα αντικειμενοστραφές πρότυπο, και έτσι μπορεί να χρησιμοποιηθεί εύκολα από τις αντικειμενοστραφείς γλώσσες προγραμματισμού. Μας δίνει τη δυνατότητα να ορίσουμε νέους τύπους δεδομένων με την χρήση άλλων τύπων όπως ακριβώς γίνεται και στις αντικειμενοστραφείς γλώσσες προγραμματισμού με την κληρονομικότητα. Επικυρώνει τη σειρά την όποια θα εμφανίζονται τα στοιχεία στους σύνθετους τύπους δεδομένων Μπορεί να ορίσει περιορισμούς στις τιμές των δεδομένων. Αυτό επιτυγχάνεται με διάφορους τρόπους όπως για παράδειγμα, τον καθορισμό της μεγίστης και της ελάχιστης τιμής των δεδομένων. Χρησιμοποιεί namespaces έτσι ώστε κάθε τύπος δεδομένων να είναι καθορισμένος μοναδικά. Αυτό είναι χρήσιμο για να αποφεύγονται προβλήματα που προκύπτουν όταν σε ένα έγγραφο χρησιμοποιούνται πολλαπλά σχήματα και τα σχήματα αυτά ορίζουν κάποια στοιχεία με το ίδιο όνομα. Με τη χρήση των namespaces κάθε στοιχείο καθορίζεται μοναδικά ώστε να αποφεύγονται οι συγκρούσεις από κοινά ονόματα Συντακτικό του XML SCHEMA Όπως προαναφέραμε, η χρήση του XML schema είναι για να ελέγχεται αν ένα έγγραφο XML είναι έγκυρο. Όμως πως συντάσσεται ένα XML schema; Η σύνταξη του ακολουθεί αυτή της γλώσσας XML, έχοντας κάποιες δεσμευμένες ετικέτες με συγκεκριμένη σημασιολογία. Για να αναλύσουμε την σύνταξη του θα χρησιμοποιήσουμε ένα παράδειγμα: Αρχείο XML: <card XMLns =" <name>john Doe</name> <title>ceo, Widget Inc.</title> <phone>(202) </phone> </card> Αντίστοιχο XML schema: 1 <schema XMLns =" XMLns:b=" targetnamespace=" 2 <element name="card" type="b:card_type"/> 3 <element name="name" type="string"/> 4 <element name="title" type="string"/> 5 <element name=" " type="string"/> 6 <element name="phone" type="string"/> 7 <complextype name="card_type"> 8 <sequence> 9 <element ref="b:name"/> 10 <element ref="b:title"/> 11 <element ref="b: "/> 12 <element ref="b:phone" minoccurs="0"/> 13 </sequence> 14 </complextype> 15 </schema>

20 Όταν φτιάχνουμε ένα XML schema θα πρέπει να ορίσουμε και τα namespaces στα οποία αναφέρεται. Αυτό γίνεται στην πρώτη γραμμή του παραδείγματος με την χρήση του XMLns. Όμως σε αυτόν τον κώδικα υπάρχουν δυο namespaces το XMLns και το XMLns:b, όταν το XMLns δεν ακολουθείται από κάποιο «ταμπελάκι» (:b) σημαίνει ότι αυτό είναι το προκαθορισμένο namespace, και όλες οι μεταβλητές χωρίς «ταμπελάκι» ανήκουν σε αυτό. Όμως όταν έχουμε «ταμπελάκι» πρέπει να το παραθέσουμε μπροστά από μεταβλητή για να το αναγνωρίσει π.χ. b:card_type. Τέλος το targetnamespace μας καθορίζει το namespace που θα ανήκουν οι νέοι τύποι. Από τη γραμμή 2 έως και την 6 δηλώνουμε τα ονόματα των στοιχείων τα οποία θα χρησιμοποιήσουμε, καθώς και τους τύπους τους. Οι τύποι μπορεί να είναι απλοί π.χ. <element name="name" type="string"/> αλλά μπορεί να είναι και σύνθετοι τους οποίους θα ορίσουμε εμείς <element name="card" type="b:card_type"/>. Στη συνεχεία ορίζουμε τον σύνθετο τύπο τον οποίο δηλώσαμε στην γραμμή 2. Εδώ παραθέτουμε τα στοιχεία που ανήκουν στον τύπο. Με αυτόν τον τρόπο ορίζουμε τον τύπο των στοιχείων που θα περιέχει καθώς και τη σειρά τους. Βεβαία μπορούμε να ορίσουμε και περιορισμούς για τα δεδομένα ενός συγκεκριμένου στοιχείου ή κανόνες πληθικότητας. Για παράδειγμα, στη γραμμή 12 ορίζουμε ότι το συγκεκριμένο στοιχείο είναι προαιρετικό (μπορεί να δίνεται ή όχι)

21 5 WSDL H WSDL μας επιτρέπει να περιγράψουμε το πώς θα είναι τα μηνύματα που θα χρειαστούμε για να επικοινωνήσουμε με μια υπηρεσία, τα σφάλματα που μπορούν να προκύψουν κατά την κλήση της υπηρεσίας καθώς και τη διεύθυνση στην οποία μπορούμε να την καλέσουμε. Οπότε ένα έγγραφο WSDL είναι απαραίτητο σε όσους θέλουν να επικοινωνήσουν με την υπηρεσία, αφού τους λέει την δομή την οποία πρέπει να έχει το μήνυμα τους, αλλά και τους τύπους των στοιχείων που θα περιέχει το μήνυμα, καθώς και τη διεύθυνση για πρόσβαση σ αυτή. Τα έγγραφα WSDL ακολουθούν το πρότυπο της XML και αυτό κάνει την WSDL ανεξάρτητη από τις γλώσσες προγραμματισμού. Το γεγονός αυτό κάνει την WSDL αρκετά καλή για την περιγραφή υπηρεσιών, στις οποίες η ανεξαρτησία είναι απαραίτητη. Η WSDL χρησιμοποιείται για να περιγράψει την δομή των αιτήσεων και των απαντήσεων αλλά πως ακριβώς; Αυτό το κάνει περιγράφοντας τι μπορεί να κάνει ένα web service, πού βρίσκεται και πώς να το καλέσει κανείς. Όποτε ένα έγγραφο WSDL περιέχει : Την περιγραφή των τύπων δεδομένων που περιέχονται στις αιτήσεις. Την περιγραφή των ίδιων των δεδομένων που θα περιέχονται στα μηνύματα. Τον τρόπο με τον όποιο μπορούμε να καλέσουμε μια υπηρεσία. Την περιγραφή της θέσης της συγκεκριμένης υπηρεσίας. Το πρωτόκολλο που χρησιμοποιεί η υπηρεσία. 5.1 Συντακτικό της WSDL Για να αναλύσουμε την σύνταξη της WSDL θα χρησιμοποιήσουμε ένα παράδειγμα για μια υπηρεσία που της δίνουμε το όνομα μας και μας λέει hello : 1 <?XML version="1.0" encoding="utf-8"?> 2 <definitions name="helloservice" targetnamespace=" XMLns =" XMLns:soap=" XMLns:tns=" XMLns:xsd=" 3 <message name="sayhellorequest"> 4 <part name="firstname" type="xsd:string"/> 5 </message> 6 <message name="sayhelloresponse"> 7 <part name="greeting" type="xsd:string"/> 8 </message> 9 <porttype name="hello_porttype"> 10 <operation name="sayhello"> 11 <input message="tns:sayhellorequest"/> 12 <output message="tns:sayhelloresponse"/> 13 </operation> 14 </porttype> 15 <binding name="hello_binding" type="tns:hello_porttype"> 16 <soap:binding style="rpc" transport=" 17 <operation name="sayhello"> 18 <soap:operation soapaction="sayhello"/> 19 <input> 20 <soap:body encodingstyle=" namespace="urn:examples:helloservice" use="encoded"/>

22 21 </input> 22 <output> 23 <soap:body 24 encodingstyle=" 25 namespace="urn:examples:helloservice" 26 use="encoded"/> 27 </output> 28 </operation> 29 </binding> 30 <service name="hello_service"> 31 <documentation>wsdl File for HelloService</documentation> 32 <port binding="tns:hello_binding" name="hello_port"> 33 <soap:address location=" 34 </port> 35 </service> 36 </definitions> Απ ότι βλέπουμε η σύνταξη της WSDL ακολουθεί το πρότυπο της XML, ενώ έχει και κάποια κοινά στοιχεία με το XML schema. Παρατηρώντας τη δεύτερη γραμμή βλέπουμε ότι υπάρχουν ορισμοί για τα namespaces, η σημασία και η χρήση τους είναι ακριβώς ίδια με αυτή του XML schema η οποία αναλύθηκε παραπάνω. Στις γραμμές τρία έως και οχτώ δίνονται οι ορισμοί και οι τύποι των στοιχείων, τα οποία θα περιέχονται στις αιτήσεις και τις απαντήσεις. Στη συνέχεια (γραμμές εννέα έως και δεκατέσσερα) έχουμε την περιγραφή της υπηρεσίας sayhello. Εδώ περιγράφονται η μορφή της αίτησης και της απάντησης. Μια υπηρεσία βέβαια δεν είναι αναγκαστικό να έχει αίτηση και απάντηση αλλά μπορεί να περιέχει ένα από τα δύο π.χ. μία υπηρεσία καταγραφής μηνύματος σε ημερολόγιο μπορεί έχει μόνο την αίτηση που περιέχει το μήνυμα προς καταγραφή. Οι υπηρεσίες αυτές λέγονται μονόδρομες. Μετά την περιγραφή της υπηρεσίας (γραμμές δεκαπέντε έως και εικοσιένα), έχουμε τους ορισμούς των πρωτοκόλλων τα οποία θα χρησιμοποιούν για την επικοινωνία με την υπηρεσία. Εκτός από αυτό ορίζονται και οι περιοχές ονομάτων (namespaces) που θα χρησιμοποιήσει η συγκεκριμένη υπηρεσία. Οι περιοχές ονομάτων χρησιμοποιούνται για να επιλύονται εύκολα περιπτώσεις όπου διαφορετικές υπηρεσίες χρησιμοποιούν τον ίδιο προσδιοριστή για να αναφερθούν σε διαφορετικούς τύπους αντικειμένων. Στο τέλος του παραδείγματος έχουμε την περιγραφή της θέσης της υπηρεσίας και του τρόπου με τον όποιο μπορούμε να την καλέσουμε

23 6 UDDI Tο UDDI (Universal Description Discovery and Integration) είναι ένας τρόπος που παρέχεται για να είναι δυνατός ο εντοπισμός των υπηρεσιών. Το UDDI περιλαμβάνει τεχνικά χαρακτηριστικά για τη δημιουργία ενός κατανεμημένου καταλόγου με τις επιχειρήσεις και τις υπηρεσίες. Τα δεδομένα ανταλλάσσονται σε XML. Το UDDI περιέχει API (εγχειρίδια χρήσης και πληροφορίες) για το πώς μπορεί να αναζητηθούν και να προστεθούν υπηρεσίες. Τα δεδομένα είναι διαθέσιμα σε οποιονδήποτε θέλει να πραγματοποιήσει αναζητήσεις και επίσης είναι δυνατόν να προστεθούν υπηρεσίες στη λίστα διαθέσιμων υπηρεσιών (εδώ ακολουθείται κάποια πολιτική για το ποιος έχει δικαίωμα, για παράδειγμα είναι εργαζόμενος). Τα δεδομένα που υποστηρίζει μια υπηρεσία UDDI είναι τριών ειδών : White pages: Αυτή η κατηγορία περιλαμβάνει γενικές πληροφορίες για την εταιρεία, για παράδειγμα, όνομα, διεύθυνση, και κάποια περιγραφή. Yellow pages: Αυτή η κατηγορία περιλαμβάνει κατηγοριοποίηση της εταιρείας σε σχέση με το είδος της υπηρεσίας που προσφέρει, ή το είδος της εταιρείας. Green pages: Αυτή η κατηγορία είναι αυτή που δίνει στον υποψήφιο χρήστη της υπηρεσίας πληροφορίες για το πώς θα χρησιμοποιήσει την υπηρεσία, πως θα συνδεθεί μαζί της και σε ποια διεύθυνση βρίσκεται

24 7 SOAP 7.1 Τι είναι το SOAP Το SOAP είναι ένα πρωτόκολλο με το οποίο, μπορούν οι υπηρεσίες διαδικτύου να ανταλλάξουν πληροφορίες μεταξύ τους. Χρησιμοποιείται το πρότυπο της XML για την ανταλλαγή μηνυμάτων μεταξύ των υπηρεσιών. Ένα άλλο χαρακτηριστικό του SOAP είναι τα πρωτόκολλα τα οποία χρησιμοποιεί για την επικοινωνία του, αυτά είναι τα γνωστά σε όλους μας HTTP και SMTP. Η χρήση κοινά χρησιμοποιούμενων πρωτοκόλλων για την επικοινωνία του SOAP, και όχι η δημιουργία ενός νέου ειδικευόμενου πρωτοκόλλου, κάνει το SOAP ένα πρωτόκολλο ανταλλαγής πληροφοριών το οποίο είναι ανεξάρτητο από την εφαρμογή και το υλικό της υπολογιστικής πλατφόρμας. Η ανεξαρτησία αυτή είναι ένα από τα κύρια ζητούμενα όταν μιλάμε για υπηρεσίες διαδικτύου. Από την άλλη το SOAP είναι ένα ιδιαίτερα λιτό και απλό πρωτόκολλο, αφού προσφέρει μόνο τα βασικά συστατικά για την ανταλλαγή των πληροφοριών, παραλείποντας πολλά χαρακτηριστικά όπως είναι η ασφάλεια και η αξιοπιστία. Αυτό όμως φαίνεται να μην αποτελεί πρόβλημα καθώς μας δίνει τη δυνατότητα να το επεκτείνουμε προσθέτοντας εμείς τις δυνατότητες που χρειαζόμαστε. Συγκεντρωτικά το SOAP είναι : Ένα ελαφρύ πρωτόκολλο για την ανταλλαγή πληροφοριών μεταξύ των υπηρεσιών διαδικτύου. Ένας τρόπος επικοινωνίας, ανεξάρτητος από την υλοποίηση αφού χρησιμοποιεί την XML για την ανταλλαγή των πληροφοριών. Ανεξάρτητο από την γλώσσα προγραμματισμού. Επεκτάσιμο. Χρησιμοποιεί κοινά πρωτόκολλα για την επικοινωνία του (HTTP, SMTP). 7.2 Συντακτικό του SOAP Κάθε μήνυμα SOAP είτε έρχεται από τον εξυπηρετούμενο, είτε από τον εξυπηρέτη, είναι ένα έγγραφο XML το οποίο περιέχει τα παρακάτω στοιχεία Ένα στοιχείο <Εnvelope> το οποίο μας υποδεικνύει ότι το συγκεκριμένο έγγραφο XML είναι ένα μήνυμα SOAP. Ένα προαιρετικό στοιχείο <Header> το οποίο περιέχει πρόσθετες πληροφορίες που αφορούν το μήνυμα. Ένα υποχρεωτικό πεδίο <Body> που περιλαμβάνει της πληροφορίες του μηνύματος. Ένα προαιρετικό στοιχείο <Fault> που περιλαμβάνει τα σφάλματα του προκληθήκαν κατά την επεξεργασία του μηνύματος. Κάθε ένα από τα παραπάνω πεδία έχει χαρακτηριστικά που θα περιγραφούν στα παρακάτω υποκεφάλαια. Πρώτα όμως ας δούμε την μορφή την όποια θα πρέπει να έχουν τα μηνύματα του SOAP: <?XML version="1.0"?> <soap:envelope XMLns:soap=" soap:encodingstyle=" <soap:header> </soap:header> <soap:body>

25 ... <soap:fault> </soap:fault> </soap:body> </soap:envelope> Σχήμα 6 Δομή ενός μηνύματος SOAP Soap envelope Κάθε μήνυμα SOAP πρέπει να έχει αυτό το πεδίο εντός του οποίου περιέχονται όλα τα υπόλοιπα πεδία του μηνύματος. Από ό,τι βλέπουμε τόσο στο ανωτέρω παράδειγμα όσο και στο σχήμα 4, το envelope περιλαμβάνει: Ένα ή παραπάνω namespaces, όπου σίγουρα θα πρέπει να περιέχεται το namespace της έκδοσης SOAP που χρησιμοποιούμε (XMLns:soap= Το απαραίτητο στοιχείο body Το προαιρετικό στοιχείο header Soap Header Το προαιρετικό αυτό πεδίο κεφαλίδας χρησιμοποιείται για να δώσει επιπλέον δυνατότητες στην εφαρμογή που θα χρησιμοποιήσει το SOAP, για παράδειγμα θα μπορούσε να χρησιμοποιηθεί για μια εφαρμογή που χρειάζεται επιπρόσθετες λειτουργίες όπως ασφάλεια, κρυπτογράφηση και αλλά (πρέπει να αναφερθεί ότι οι περισσότερες εφαρμογές SOAP δεν χρησιμοποιούν αυτή τη κεφαλίδα, ωστόσο όσο πληθαίνουν οι ανάγκες των εφαρμογών αυτό το πεδίο θα προσφέρει πολύ λειτουργικότητα). Το πρωτόκολλο υποστηρίζει τα εξής πεδία μέσα στη κεφαλίδα : Tο πεδίο actor attribute, το οποίο χρησιμοποιείται από το χρήστη για να ορίσει αν θέλει να «προωθήσει» το μήνυμα αυτό ώστε να γίνει κάποια εργασία εκεί και το αποτέλεσμα να δοθεί σε κάποια άλλη υπηρεσία. Επίσης, χρησιμοποιώντας αυτό το πεδίο μπορούμε να ορίσουμε και το παραλήπτη του αποτελέσματος. Το πεδίο MustUnderstand attribute. Το πεδίο αυτό ορίζει αν η κεφαλίδα είναι υποχρεωτικό να αναγνωστεί και να κατανοηθεί πλήρως. Αν το πεδίο έχει τιμή true τότε ο εξυπηρετητής πρέπει να αναλύσει και να καταλάβει το header για να απαντήσει, αλλιώς να επιστρέψει αρνητική απάντηση

26 Ένα header αποτελείται από: Καμία έως οσεσδήποτε ιδιότητες. Κανένα έως οσαδήποτε στοιχεία-παιδιά που έχουν ακριβώς τον ίδιο τρόπο σύνταξης με το header Ένα παράδειγμα επικεφαλίδας: <SOAP-ENV:Header> <ns1:paymentaccount XMLns:ns1="urn:ecerami" SOAP-ENV: mustunderstand="true"> orsenigo473 </ns1:paymentaccount > </SOAP-ENV:Header> Soap Fault Αυτό το προαιρετικό στοιχείο χρησιμοποιείτε για να μας ενημερώσει για τα σφάλματα που συνέβησαν κατά την επεξεργασία του μηνύματος. Σε περίπτωση λάθους, στο σώμα του μηνύματος εμφανίζεται ένα στοιχείο <fault>, το οποίο θα έχει πληροφορίες για το λάθος το οποίο συνέβη. Ένα fault αποτελείται από: Ένα στοιχείο που αναφέρει τον κωδικό του σφάλματος <faultcode>. Ένα στοιχείο το οποίο θα περιέχει το κείμενο της αναφοράς του σφάλματος <faultstring>. Ένα προαιρετικό στοιχείο, το οποίο θα λέει ποιος προκάλεσε το λάθος που συνέβη <faultactor>. Ένα προαιρετικό στοιχείο, που έχει μια πιο λεπτομερή αναφορά για το λάθος το οποίο συνέβη <detail>. Κάποιοι τυποποιημένοι κωδικοί που αφορούν τα σφάλματα είναι : Το VersionMismatch που σημαίνει ότι το namespace του envelope είναι λάθος. Δηλαδή ότι χρησιμοποιούμε λάθος έκδοση namespace για το SOAP. Το MustUnderstand που σημαίνει ότι υπάρχει header ο οποίος πρέπει να τύχει επεξεργασίας, αλλά η υπηρεσία δεν μπόρεσε να τον επεξεργαστεί. Το Client που σημαίνει ότι το μήνυμα ήταν λάθος διαμορφωμένο ή περιείχε λάθος πληροφορίες. Το Server που σημαίνει ότι δεν μπόρεσε να γίνει η επεξεργασία γιατί υπήρχε πρόβλημα με την υπηρεσία και όχι με τις πληροφορίες που περιείχε το μήνυμα. Για παράδειγμα, δίνεται μια απάντηση λάθους σε ένα πελάτη που ζήτησε να εκτελεστεί η μέθοδος ValidateCreditCard,, η οποία δεν είναι διαθέσιμη στον server. <?XML version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope XMLns:SOAP-ENV=" XMLns:xsi=" XMLns:xsd=" <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode xsi:type="xsd:string"> SOAP-ENV:Client </faultcode> <faultstring xsi:type="xsd:string"> Failed to locate method (ValidateCreditCard) in class (examplescreditcard) at /usr/local/activeperl-5.6/lib/ site_perl/5.6.0/soap/lite.pm line </faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

27 7.3 SOAP μέσω HTTP Το SOAP (θεωρητικά) είναι ανεξάρτητο πρωτοκόλλου μεταφοράς και μπορεί να μεταφερθεί μέσω SMTP, FTP, IBM s, MQSeries, ή Microsoft Message Queuing (MSMQ). Ωστόσο οι προδιαγραφές και η προγραμματιστική διασύνδεση (API) που δίνει το SOAP είναι μόνο για το HTTP. Όπως είναι λογικό, οι αιτήσεις του SOAP στέλνονται σαν αιτήματα HTTP, και επιστρέφονται πίσω σαν περιεχόμενο της απάντησης HTTP. Οι αιτήσεις SOAP μπορούν να σταλούν μέσω HTTP GET και HTTP POST, ωστόσο το API του SOAP δίνει πληροφορίες μόνο για το HTTP POST: το HTTP POST είναι προτεινόμενο διότι κάποιοι server έχουν περιορισμούς στο μέγιστο πλήθος χαρακτήρων σε αιτήσεις HTTP GET. Όταν στέλνουμε αιτήσεις HTTP πρέπει να τις μετατρέψουμε σε text/xml. Επίσης, οι εξυπηρετούμενοι πρέπει να περιλαμβάνουν στην αίτηση HTTP μία επικεφαλίδα SOAPAction που δίνει πληροφορίες για το URI στο οποίο τελικά γίνεται η πρόσβαση της υπηρεσίας διαδικτύου. Η επικεφαλίδα αυτή είναι χρήσιμη καθώς δίνει τη δυνατότητα σε firewalls να εξάγουν πληροφορίες για το συγκεκριμένο μήνυμα χωρίς να χρειάζεται να αναλύσουν τη δομή XML του πακέτου. Παρόλο που οι προδιαγραφές του SOAP λένε ότι ο εξυπηρετούμενος είναι αυτός που διαμορφώνει την αίτηση HTTP και άρα ορίζει τις επικεφαλίδες-, κάθε server διατηρεί τη δυνατότητα να απαιτεί την ύπαρξη συγκεκριμένων επικεφαλίδων για να αποδεχτεί μία αίτηση, και να την απορρίπτει αν οι επικεφαλίδες δεν υπάρχουν οι δεν έχουν τις κατάλληλες τιμές. Έστω και αν ο server δεν απαιτεί κάποια επικεφαλίδα πρέπει να δώσουμε το πεδίο αυτό σαν κενή συμβολοσειρά. Παρακάτω δίνεται ένα παράδειγμα για το πώς μπορούμε να στείλουμε μια αίτηση στην υπηρεσία μετάφρασης Babelfish Translation που δίνεται από την XMethods : POST /perl/soaplite.cgi HTTP/1.0 Host: services.xmethods.com Content-Type: text/xml; charset=utf-8 Content-Length: 538 SOAPAction: "urn:xmethodsbabelfish#babelfish" <?XML version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope XMLns:SOAP-ENV=" XMLns:xsi=" XMLns:xsd=" <SOAP-ENV:Body> <ns1:babelfish XMLns:ns1="urn:xmethodsBabelFish" SOAP-ENV:encodingStyle=" <translationmode xsi:type="xsd:string">en_fr</translationmode> <sourcedata xsi:type="xsd:string">hello, world!</sourcedata> </ns1:babelfish> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Ζητάμε από το server services.xmethods.com να καλέσει την συνάρτηση BabelFish με παραμέτρους ένα string με όνομα translationmode και περιεχόμενα «en_fr» (κωδικοποίηση της πράξης μετάφρασης «από αγγλικά σε γαλλικά») και άλλο ένα string με όνομα sourcedata και περιεχόμενα «Hello World». Να σημειωθεί ότι το URI που ζητούν οι XMethods για αυτή την υπηρεσία είναι SOAPAction: "urn:xmethodsbabelfish#babelfish" όπου συμπληρώνεται πιο πάνω. Και η απάντηση που θα έρθει από το server της XMethods είναι : HTTP/ OK Date: Sat, 09 Jun :01:55 GMT Server: Apache/ (Unix) tomcat/1.0 PHP/4.0.1pl2 SOAPServer: SOAP::Lite/Perl/0.50 Cache-Control: s-maxage=60, proxy-revalidate Content-Length:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

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

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

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

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

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

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

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

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

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

Web Services. και SOAP

Web Services. και SOAP Web Services και SOAP Πίνακας Περιεχομένων 1 Εισαγωγή στα web services...3 2 Αρχιτεκτονική και δομικά στοιχεία των web services...9 3 XML...15 4 WSDL και UDDI...25 5 SOAP...32 6 Αναπτυσσόμενες τεχνολογίες...52

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

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

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

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

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All rights reserved. Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.

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

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

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

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

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

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

Επιβλέπων καθηγητής : Μαρίνος Θεμιστοκλέους (Επίκουρος Καθηγητής)

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

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

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

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

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

Paybybank RESTful API GUIDE

Paybybank RESTful API GUIDE Paybybank RESTful API GUIDE Α. Paybybank API Documentation Για να χρησιμοποιήσετε το Paybybank API περιβάλλον (Documentation/PLAYGROUND), χρειάζεται να δημιουργήσετε ένα λογαριασμό, καταχωρώντας ένα έγκυρο

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

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

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

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

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

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

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

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

PayByBank RESTful API GUIDE

PayByBank RESTful API GUIDE PayByBank RESTful API GUIDE Α. PayByBank API Documentation Για να χρησιμοποιήσετε το PayByBank API περιβάλλον (Documentation/PLAYGROUND), χρειάζεται να δημιουργήσετε ένα λογαριασμό, καταχωρώντας ένα έγκυρο

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

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

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

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

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

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

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook Βήμα 1: Step 1: Βρείτε το βιβλίο που θα θέλατε να αγοράσετε και πατήστε Add to Cart, για να το προσθέσετε στο καλάθι σας. Αυτόματα θα

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

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

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

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

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

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

Διαβούλευση για την ηλεκτρονική υποβολή αποδείξεων

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

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

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων 1.1. Εισαγωγή Γενικότερα δεν υπάρχει κάποια ταξινόμηση των πιθανών δικτύων κάτω από την οποία να ταιριάζουν όλα τα δίκτυα. Παρόλα αυτά η ταξινόμηση τους είθισται να γίνεται

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

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

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

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

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

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

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2 ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2 1 ΠΕΡΙΕΧΟΜΕΝΑ Πρωτόκολο http εντολών έκδοση 1.0 Σελ:2...περιεχόμενα Σελ:3...τι θα βρείτε σε αυτό το βιβλίο Σελ:3...γενικά τεχνικά χαρακτηριστικά Σελ:4-5...πως

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

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

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

HTTP API v1.6 SMSBOX.GR HTTP API v

HTTP API v1.6 SMSBOX.GR HTTP API v SMSBOX.GR HTTP API v 1.6 23.6.17 Αποστολή SMS Η χρήση του HTTP Api της smsbox.gr σας επιτρέπει να συνδεθείτε με το σύστημά μας και να στείλετε εύκολα sms από την δικιά σας ιστοσελίδα ή εφαρμογή. Μπορεί

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

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

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

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

6.2 Υπηρεσίες Διαδικτύου

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

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

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

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

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

Πανεπιστήμιο Πειραιώς Τμ ή μα Ψήφιακώή ν Συστήμαή τών

Πανεπιστήμιο Πειραιώς Τμ ή μα Ψήφιακώή ν Συστήμαή τών Τμ ή μα Ψήφιακώή ν Συστήμαή τών Π.Μ.Σ. Διδακτικ ή τής Τεχνολογιήας και Ψήφιακαή Συστ ή ματα Κατευή θυνσή Δικτυοκεντρικώή ν Συστήμαή τών Διπλωματική Εργασία Αναή λυσή, Σχεδιασμοή ς και Υλοποιήήσή Πλήροφοριακουή

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

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

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

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

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

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

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

Ασφαλείς Εφαρμογές η-υπογραφών

Ασφαλείς Εφαρμογές η-υπογραφών Ασφαλείς Εφαρμογές η-υπογραφών Δρ. Νινέτα Πολέμη Expertnet SA, Πρόεδρος ΔΣ Πανεπιστήμιο Πειραιά, Λέκτορας despina.polemi@expertnet.net.gr 1 Θέματα Εισαγωγή Απαιτήσεις Ασφάλειας Οι λύσεις της EXPERTNET

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου Α Γενικού Λυκείου 87 Διδακτικές ενότητες 10.1 Υπηρεσίες Διαδικτύου 10.2 Ο παγκόσμιος ιστός, υπηρεσίες και εφαρμογές Διαδικτύου Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να μπορούν να διακρίνουν

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

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

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

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

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

Ψηφιακή ανάπτυξη. Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS

Ψηφιακή ανάπτυξη. Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS Ψηφιακή ανάπτυξη Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS Learning Objective : Βασικά συστατικά του Web Fabio Calefato Department of

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

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

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

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

Open Discovery Space. ODS Portal Manual

Open Discovery Space. ODS Portal Manual ODS Portal Manual Project Acronym: ODS Project Title: Open Discovery Space: A socially powered and multilingual open learning infrastructure to boost the adoption of elearning resources ODS Portal Manual

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

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

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

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

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Κεφάλαιο 7.3. Πρωτόκολλο TCP Κεφάλαιο 7.3 Πρωτόκολλο TCP Πρωτόκολλο TCP Το πρωτόκολλο Ελέγχου Μετάδοσης (Transmission Control Protocol, TCP) είναι το βασικό πρωτόκολο του Επιπέδου Μεταφοράς του μοντέλου TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

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

Εγχειρίδιο Παρόχου. (Υπηρεσία Διάθεσης και Ανταλλαγής Αγαθών)

Εγχειρίδιο Παρόχου. (Υπηρεσία Διάθεσης και Ανταλλαγής Αγαθών) (Υπηρεσία Διάθεσης και Ανταλλαγής Αγαθών) Για το Έργο ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή... 3 2 Τεχνικά Χαρακτηριστικά... 4 3 Περιβάλλον Εργασίας... 5 4 Σύνδεση / Αποσύνδεση Παρόχου... 8 4.1 Σύνδεση Παρόχου... 8 4.2

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

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

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

Πληροφοριακό Σύστημα Μονάδας Διασφάλισης Ποιότητας (ΜΟ.ΔΙ.Π) της Ανωτάτης Σχολής Καλών Τεχνών

Πληροφοριακό Σύστημα Μονάδας Διασφάλισης Ποιότητας (ΜΟ.ΔΙ.Π) της Ανωτάτης Σχολής Καλών Τεχνών Πληροφοριακό Σύστημα Μονάδας Διασφάλισης Ποιότητας (ΜΟ.ΔΙ.Π) της Ανωτάτης Σχολής Καλών Τεχνών Τεχνική Περιγραφή Μελέτη Εφαρμογής Cardisoft AE -Π.Σ. ΜΟΔΙΠ Ανωτάτης Σχολής Καλών Τεχνών- Σελίδα: 1 Γενικά

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

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

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M. ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26 Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.: 43 Άσκηση 3 Μια αξιόπιστη multicast υπηρεσία επιτρέπει σε έναν

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

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

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

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

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ 7.7 Πρωτόκολλο ARP & Ερωτήσεις 1. Ποιος ο ρόλος του Πρωτοκόλλου Μετατροπής Διεύθυνσης (ARP); 2. Τι είναι ο πίνακας ARP, τι πληροφορία περιλαμβάνει και με ποιο τρόπο ενημερώνεται και ποιος ο χρόνος ζωής

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

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

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

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

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Αναζήτησης Συνεπιβατών)

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Αναζήτησης Συνεπιβατών) (Υπηρεσία Αναζήτησης Συνεπιβατών) Για το Έργο ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή... 3 2 Τεχνικά Χαρακτηριστικά... 4 3 Περιβάλλον Εργασίας... 5 4 Σύνδεση / Αποσύνδεση Διαχειριστή... 7 4.1 Σύνδεση Διαχειριστή... 7 4.2

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

"Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0"

Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0 "Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0" Βλαχάκης Εμμανουήλ Οικονομάκης Σπυρίδων Εισηγητής: Δ.Ν. Καλλέργης, MSc. Εργ. Συνεργάτης

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

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

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

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

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

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΥΠΟΔΕΙΓΜΑΤΟΣ ΓΙΑ ΤΗΝ ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΣΤΟΙΧΕΙΩΝ ΡΕΥΣΤΟΤΗΤΑΣ (BSD07) (ΠΔ.Τ.Ε. 2563/19.7.2005 Ε50) Ιανουάριος 2005 ΓΕΝΙΚΑ... 4 1. Προϋποθέσεις

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

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) ΕΡΓΑΣΙΑ (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) Τίτλος: Εφαρμογή Διαδικτύου Ηλεκτρονικού Καταστήματος Ζητούμενο: Να αναπτυχθεί web εφαρμογή,

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

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

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

Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης. Μέρος 2ο: Επίπεδο Ευρετηρίου Β+ Δένδρων

Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης. Μέρος 2ο: Επίπεδο Ευρετηρίου Β+ Δένδρων Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης Μέρος 2ο: Επίπεδο Ευρετηρίου Β+ Δένδρων (Ημερομηνία Παράδοσης: Δευτέρα 5/5/2008, 11:59μμ Εισαγωγή Στο

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

ΜΑΘΗΜΑ 4 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ

ΜΑΘΗΜΑ 4 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΜΑΘΗΜΑ 4 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ 1. Οι Η/Υ στο κτίριο που βρίσκεται το γραφείο σας συνδέονται έτσι ώστε το προσωπικό να μοιράζεται τα αρχεία και τους εκτυπωτές. Πως ονομάζεται αυτή η διάταξη των

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

4. ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΤΕΛΟΥ ΠΟΛΥΔΙΑΣΤΑΤΗΣ ΑΝΑΛΥΣΗΣ

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

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

Εγχειρίδιο Επιμελητή Δράσεων. (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις)

Εγχειρίδιο Επιμελητή Δράσεων. (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις) (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις) Για το Έργο ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή... 3 2 Τεχνικά Χαρακτηριστικά... 4 3 Περιβάλλον Εργασίας... 5 4 Σύνδεση / Αποσύνδεση Επιμελητή Δράσεων...

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