ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. ιαχείριση Συµφραζοµένων στην πλατφόρµα ενδιάµεσου λογισµικού WSAMI. ΑΘΑΝΑΣΟΠΟΥΛΟΣ Ν.

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

Download "ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. ιαχείριση Συµφραζοµένων στην πλατφόρµα ενδιάµεσου λογισµικού WSAMI. ΑΘΑΝΑΣΟΠΟΥΛΟΣ Ν."

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥΠΟΛΗ ΙΩΑΝΝΙΝΩΝ, ΙΩΑΝΝΙΝΑ ΙΠΛ Σεπτεµβρίου 2005 ιαχείριση Συµφραζοµένων στην πλατφόρµα ενδιάµεσου λογισµικού WSAMI. ΑΘΑΝΑΣΟΠΟΥΛΟΣ Ν. ΙΟΝΥΣΙΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Απόστολος Ζάρρας ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

2 ii

3 Στους γονείς µου, Νικόλαο και Γεωργία. iii

4 Πρόλογος Στην παρούσα πτυχιακή εργασία θα ασχοληθούµε µε την υλοποίηση των δύο βασικών υποσυστηµάτων της πλατφόρµας CONSERV [1] υπό την µορφή υπηρεσιών διαδικτύου. Η πλατφόρµα ενδιάµεσου λογισµικού που θα χρησιµοποιηθεί για να εγκατασταθούν οι παραπάνω υπηρεσίες είναι η WSAMI [6]. Επιπλέον, θα ασχοληθούµε µε τις δυνατότητες που προσφέρει η πλατφόρµα WSAMI και βοηθούν στην υλοποίηση των παραπάνω υποσυστηµάτων. Σκοπός αυτής της εργασίας είναι να γίνουν ορισµένες µετρήσεις ως προς τον χρόνο και την µνήµη που θα χρησιµοποιούν αυτά τα υποσυστήµατα όταν έχουν εγκατασταθεί σε µια σταθερή συσκευή (PC) ώστε µελλοντικά να γίνουν οι αντίστοιχες µετρήσεις και σε κινητές συσκευές (PDA). Με την ολοκλήρωση της πτυχιακής µου εργασίας θα ήθελα να ευχαριστήσω τον επιβλέποντα αυτής της εργασίας Ζάρρα Απόστολο για την άριστη συνεργασία, για την συνεχή παρότρυνση και εµψύχωση σε κάθε στάδιο της εργασίας. Επιπλέον, θα ήθελα να τον ευχαριστήσω για το ενδιαφέρον του σε κάποιες στιγµές που χρειάστηκα την βοήθεια του. Τέλος, θέλω να ευχαριστήσω τους γονείς µου και την αδερφή µου για την συνεχή στήριξή τους. Ιωάννινα, Σεπτέµβριος 2005 Αθανασόπουλος ιανύσιος. iv

5 Περίληψη στα ελληνικά Το αντικείµενο αυτής της πτυχιακής εργασίας βασίζεται στην γενικότερη ιδέα της κατανοµής και συλλογής πληροφορίας από οµότιµους κόµβους ενός περιβάλλοντος κινητού και διάχυτου υπολογισµού (mobile and pervasive computing). Αυτό το είδος του υπολογιστικού περιβάλλοντος έχει την επιπλέον ιδιότητα ότι µεταβάλλεται διαρκώς. Εποµένως, ένα σύστηµα από οµότιµους κόµβους είναι αναγκαίο να έχει την ικανότητα να προσαρµόζεται και να παραµένει ενήµερο στις αλλαγές που συµβαίνουν στο περιβάλλον του (context awareness). Επιπλέον, το σύστηµα δεν περιορίζεται στην αρχιτεκτονική των παραδοσιακών κατανεµηµένων συστηµάτων αλλά µπορεί να περιλαµβάνει κινητές συσκευές συνδεδεµένες µέσω ασύρµατων δικτύων (WLANs). Πιο συγκεκριµένα, σε αυτήν την πτυχιακή εργασία υλοποιήσαµε δύο βασικά υποσυστήµατα της πλατφόρµας CONSERV [1]. Το πρώτο βασικό υποσύστηµα ονοµάζεται PEER MANAGER και είναι υπεύθυνο για την εύρεση γειτονικών οµότιµων κόµβων που µπορούν να επικοινωνούν µεταξύ τους. Αναλυτικότερα, ανακαλύπτει κοινωνίες από υπηρεσίες διαδικτύου (Web Services) που προσφέρονται από οµότιµους κόµβους. Με τον όρο κοινωνία εννοούµε το σύνολο των κόµβων που προσφέρουν υπηρεσίες διαδικτύου µε την ίδια διεπαφή (Web Service interface). Οι κοινωνίες αυτές µεταβάλλονται µε το πέρασµα του χρόνου και γι αυτό το υποσύστηµα PEER MANAGER είναι επιπλέον υπεύθυνο να τις ανανεώνει. Η ανανέωση υλοποιείται είτε µε την πολιτική της ανανέωσης µετά από αίτηση (lazy update), είτε µε την πολιτική της περιοδικής ανανέωσης (periodic update) είτε µε την πολιτική της διαρκής ανανέωσης (always update). Κάθε κόµβος µιας κοινωνίας προσφέρει την τοπικά αποθηκευµένη πληροφορία του µε την µορφή µιας απάντησης (reply) σε αίτηση (request) που του υποβάλλεται. Το δεύτερο βασικό υποσύστηµα ονοµάζεται WORKFLOW RESOLVER και υλοποιεί την συλλογή και την οργάνωση της πληροφορίας που προκύπτει από κοινωνίες υπηρεσιών διαδικτύου. Αυτό το υποσύστηµα απευθύνει ερωτήσεις σε κόµβους των κοινωνιών και επεξεργάζεται τις απαντήσεις. Ο τρόπος που θα γίνει µια ερώτηση εξαρτάται από τον τύπο των υπηρεσιών διαδικτύου που παρέχουν οι κόµβοι. ηλαδή, η ίδια πληροφορία µπορεί να παρέχεται από διαφορετικού τύπου υπηρεσιών. Για την επίλυση αυτού του προβλήµατος, το υποσύστηµα WORKFLOW RESOLVER χρησιµοποιεί κανόνες. Οι κανόνες εκφράζουν τον τύπο της πληροφορίας που ενδιαφέρει τον χρήστη και τον τρόπο µε τον οποίο παίρνουµε αυτήν την πληροφορία από τις διαφορετικού τύπου υπηρεσίες των κόµβων. v

6 Για να έχουν την δυνατότητα οι χρήστες διαφορετικών µηχανηµάτων που χρησιµοποιούν τα παραπάνω υποσυστήµατα να επικοινωνούν, να αναγνωρίζουν τις διευθύνσεις δικτύου των γειτονικών κόµβων τους και να απαντούν σε αιτήσεις πληροφορίας, πρέπει να χρησιµοποιούν µια πλατφόρµα ενδιάµεσου λογισµικού (middleware) για υπηρεσίες διαδικτύου. Η πλατφόρµα που χρησιµοποιήθηκε ονοµάζεται WSAMI [6] και το σύστηµα υλοποιήθηκε πάνω από αυτήν την πλατφόρµα σε γλώσσα προγραµµατισµού Java. Λέξεις Κλειδιά: πληροφορία, οµότιµος κόµβος, κατανεµηµένο σύστηµα, κινητές συσκευές, ασύρµατο δίκτυο, σύστηµα υπολογισµού πληροφορίας, υπολογιστικό περιβάλλον, κινητός υπολογισµός, διάχυτος υπολογισµός, κοινωνία οµότιµων κόµβων, υπηρεσίες διαδικτύου, πλατφόρµα ενδιάµεσου λογισµικού. vi

7 Πίνακας περιεχοµένων 1 Εισαγωγή Υπηρεσίες ιαδικτύου Ενδιάµεσο λογισµικό Ο κινητός και ο διάχυτος υπολογισµός (mobile and pervasive computing) Η γενική περιγραφή των Υπηρεσιών ιαδικτύου που υλοποιήσαµε Το υποσύστηµα PEER MANAGER Το υποσύστηµα WORKFLORW RESOLVER Οργάνωση του τόµου Aνάλυση και Σχεδίαση Αρχιτεκτονικός Σχεδιασµός Στατική Περιγραφή Ορισµός των κλάσεων υλοποίησης της υπηρεσίας διαδικτύου PEER MANAGER Ορισµός των κλάσεων της υπηρεσίας διαδικτύου WORKFLOW RESOLVER υναµική Περιγραφή Τα ακολουθιακά διαγράµµατα κατά την λειτουργία του υποσυστήµατος PEER MANAGER Τα ακολουθιακά διαγράµµατα κατά την λειτουργία του υποσυστήµατος WORKFLOW RESOLVER Υλοποίηση Πλατφόρµες και προγραµµατιστικά εργαλεία Οι απαιτήσεις για την εγκατάσταση της πλατφόρµας WSAMI Τα βασικά χαρακτηριστικά του WSAMI στα οποία βασίζεται η λειτουργία των υποσυστηµάτων PEER MANAGER και WORKFLOW RESOLVER Λεπτοµέρειες υλοποίησης Οι λεπτοµέρειες υλοποίησης της υπηρεσίας PEER MANAGER Οι λεπτοµέρειες υλοποίησης της υπηρεσίας WORKFLOW RESOLVER...56 vii

8 4 Έλεγχος και Μετρήσεις Μεθοδολογία Ελέγχου Αναλυτική παρουσίαση έλεγχου Κλήση της µεθόδου FIND_COMMUNITY Κλήση της µεθόδου LEAVE_COMMUNITY Κλήση της µεθόδου JOIN_COMMUNITY Κλήση της µεθόδου UPDATE_PER_PERIOD Κλήση της µεθόδου give_rules_per_table Επίλογος Σύνοψη και συµπεράσµατα Μελλοντικές επεκτάσεις Βιβλιογραφία...82 viii

9 1 Εισαγωγή Η παρούσα πτυχιακή εργασία υλοποιεί δύο υπηρεσίες διαδικτύου ενδιάµεσου λογισµικού που διευκολύνουν στην οργάνωση κοινωνιών οµότιµων κόµβων και στην συλλογή πληροφορίας από αυτούς. Οι κόµβοι µπορούν να παρέχουν µία ή περισσότερες υπηρεσίες διαδικτύου και να οργανώνονται είτε σε ένα infrastructure based δίκτυο συσκευών είτε σε ένα Ad-Hoc based δίκτυο συσκευών. Οι συσκευές σχηµατίζουν δυναµικά κάποιο από τα παραπάνω δίκτυα και το χρησιµοποιούν για να συνεργάζονται και να πραγµατοποιούν υπολογισµούς. Οι δύο τύποι δικτύων εξηγούνται παρακάτω : 1. Ιnfrastructure based δίκτυο. Όταν έχουµε infrastructure based ασύρµατο δίκτυο, τότε χρησιµοποιείται µια κεντρικοποιηµένη συσκευή προσπέλασης (access point). Αυτή η συσκευή προωθεί µηνύµατα που στέλνονται ή λαµβάνονται από κινητά τερµατικά. Το µειονέκτηµα ενός τέτοιου δικτύου είναι ότι αυτή η συσκευή χρησιµοποιείται από όλες τις κινητές συσκευές και σε περιόδους υψηλής χρήσης της οδηγούµαστε σε υπερχείλιση της συσκευής. 2. Αd-hoc based δίκτυο. Όταν έχουµε Ad-hoc based ασύρµατο δίκτυο, τότε ξεπερνούµε το παραπάνω πρόβληµα της υπερχείλισης σχηµατίζοντας δυναµικά ένα προσωρινό δίκτυο χωρίς την ύπαρξη κάποιας σταθερής συσκευής. Στα κινητά Ad Hoc ίκτυα (Mobile Ad Hoc Networks MANET) δεν υπάρχει κεντρικοποιηµένη και οργανωµένη 1

10 συνδεσµικότητα των συσκευών. Επειδή, οι κόµβοι του δικτύου είναι κινητοί, η τοπολογία του δικτύου µπορεί να αλλάζει γρήγορα και απρόβλεπτα µε το πέρασµα του χρόνου. Το δίκτυο MANET είναι αποκεντρικοποιηµένο και τόσο η ανακάλυψη της τοπολογίας του δικτύου όσο και η παράδοση των µηνυµάτων πρέπει να εκτελείται από τους ίδιους τους κόµβους. Ένα δίκτυο ΜΑΝΕΤ για την σωστή λειτουργία του χρειάζεται ένα κατανεµηµένο αλγόριθµο για τον προσδιορισµό της οργάνωσης των κόµβων σε αυτό δίκτυο (την τοπολογία τους) και της δροµολόγησης των µηνυµάτων που ανταλλάσουν οι κόµβοι µεταξύ τους. 1.1 Υπηρεσίες ιαδικτύου Οι κόµβοι των συστηµάτων λογισµικού στα οποία απευθύνεται η παρούσα εργασία, ανταλλάσουν πληροφορία µε κλήση υπηρεσιών διαδικτύου. Οι υπηρεσίες διαδικτύου είναι ένα άλλος τύπος επικοινωνίας (όπως και οι CORBA, RMI) για να δηµιουργούµε εφαρµογές πελάτη διακοµιστή. Γενικά, οι υπηρεσίες διαδικτύου είναι ανεξάρτητες από την πλατφόρµα πάνω από την οποία αναπτύσσονται (platform - independent) και από την γλώσσα µε την οποία υλοποιούνται (language - independent). Αυτό γιατί χρησιµοποιείται η XML γλώσσα για να κληθούν και να απαντήσουν. Γενικά, µπορούµε να καλέσουµε µια υπηρεσία διαδικτύου για να αντλήσουµε πληροφορία. Για να πραγµατοποιηθεί η κλήση της υπηρεσίας πρέπει να γνωρίζουµε την διεύθυνσή της. Οι υπηρεσίες διαδικτύου διευθυνσιοδοτούνται µε ένα URI (Uniform Resource Identifier). Συνήθως, εάν δεν γνωρίζουµε το URI της υπηρεσίας διαδικτύου προηγείται η διαδικασία ανακάλυψής του (Service Discovery). Αυτή η διαδικασία µας δίνει την δυνατότητα να ανακαλύπτουµε υπηρεσίες διαδικτύου που ικανοποιούν κάποιες προϋποθέσεις. Αφού έχουµε ανακαλύψει το URI της επιθυµητής υπηρεσίας διαδικτύου µπορούµε να ζητήσουµε και πάρουµε από την ίδια την υπηρεσία την περιγραφή της. Η περιγραφή της είναι γραµµένη σε γλώσσα WSDL (Service Descriprtion). Με αυτήν την γλώσσα περιγράφονται οι λειτουργίες (operations) που υποστηρίζει η υπηρεσία και πώς να τις καλέσουµε (παράµετροι, επιστρεφόµενες τιµές κτλ). Καλώντας µια υπηρεσία διαδικτύου στην ουσία περνάµε SOAP (Simple Object Access Protocol) µηνύµατα από τον πελάτη προς τον διακοµιστή της υπηρεσίας (Service Invocation). Το πρωτόκολλο των SOAP µηνυµάτων καθορίζει την σύνταξη και την σηµασιολογία των µηνυµάτων προς τον διακοµιστή (requests to the server) και των µηνυµάτων που απαντά ο διακοµιστής (server s responses). Τελικά, όλα αυτά τα µηνύµατα πρέπει να µεταφέρονται µε κάποιο τρόπο από τον πελάτη στον διακοµιστή της υπηρεσίας. Το πρωτόκολλο που χρησιµοποιείται για αυτήν την µεταφορά είναι το HTTP (HyperText Transfer Protocol). 2

11 Εποµένως, ο διακοµιστής της υπηρεσίας διαδικτύου είναι µια οντότητα λογισµικού που παρέχει την υπηρεσία (Web service provider). Μία υπηρεσία διαδικτύου έχει ένα σύνολο από τερµατικά σηµεία σύνδεσης (endpoints) που χειρίζονται τα παραπάνω SOAP µηνύµατα της αµφίδροµης επικοινωνίας του πελάτη µε τον διακοµιστή (σχήµα 1). Οι υπηρεσίες διαδικτύου προτείνονται συνήθως ως ένα µέσο για να συνδεθούν εφαρµογές που αναπτύχθηκαν σε διαφορετικές πλατφόρµες ενδιάµεσου λογισµικού και προγραµµατιστικά περιβάλλοντα (interoperability). Αυτό σηµαίνει ότι οι υπηρεσίες διαδικτύου δίνουν την δυνατότητα να αναπτυχθούν κατανεµηµένες εφαρµογές που έχουν την δυνατότητα να ανταλάσσουν και να χρησιµοποιούν πληροφορία σε ένα ευρή ανοµοιογενές δίκτυο το οποίο αποτελείται από πολλά τοπικά δίκτυα χωρίς αυτά να έχουν ασυνέχειες (seamless). ηλαδή, έχουµε ένα σύνολο από υπηρεσίες που µπορούν να ολοκληρωθούν ανεξάρτητα της τεχνολογίας που χρησιµοποίησαν για να αναπτυχθούν (seamless interoperability ολοκληρωµένο δίκτυο απρόσκοπτης λειτουργίας χωρίς ασυνέχειες). 1.2 Ενδιάµεσο Λογισµικό Το ενδιάµεσο λογισµικό είναι ένας ευρής όρος που καλύπτει όλα τα κατανεµηµένα λογισµικά που χρειάζονται για την υποστήριξη της επικοινωνίας και της συνεργασίας πελατών και διακοµιστών. Από άποψη υλοποίησης το ενδιάµεσο λογισµικό αρχίζει µε την οµάδα των APIs στην πλευρά του πελάτη που χρησιµοποιείται για την κλήση µιας υπηρεσίας και καλύπτει την µεταβίβαση του αιτήµατος στο δίκτυο και την αντίστοιχη απάντηση. Η επικοινωνία µεταξύ του πελάτη και του διακοµιστή δεν είναι άµεση. Όταν ένας πελάτης απαιτεί µια υπηρεσία από έναν διακοµιστή, το αίτηµα περνά µέσω πολλών ενδιάµεσων στρωµάτων λογισµικού που παρεµβάλλονται µεταξύ των πελατών και διακοµιστών. 3

12 Οι υπηρεσίες του ενδιάµεσου λογισµικού τοποθετούνται νοηµατικά πάνω ακριβώς από το λειτουργικό σύστηµα και το λογισµικό δικτύωσης που χρησιµοποιεί κάθε µηχάνηµα. Γενικά οι υπηρεσίες αυτές επεκτείνουν τις µη κατανεµηµένες λειτουργίες του λειτουργικού συστήµατος σε αντίστοιχες κατανεµηµένες χρησιµοποιώντας το δίκτυο. Σχηµατικά η σχέση του ενδιάµεσου λογισµικού µε τα υπόλοιπα τµήµατα λογισµικού ενός µηχανήµατος απεικονίζεται στο σχήµα 2. Ο ρόλος του ενδιάµεσου λογισµικού είναι να διευκολύνει τον σχεδιασµό, τον προγραµµατισµό και τον χειρισµό εφαρµογών σε κατανεµηµένα συστήµατα παρέχοντας ένα συνεπές και ολοκληρωµένο προγραµµατιστικό περιβάλλον. Ο ρόλος του προγραµµατιστή και του σχεδιαστή περιορίζεται στην ανάπτυξη κώδικα για τον ορισµό υπηρεσιών µε την βοήθεια του ενδιάµεσου λογισµικού και την κλήση των µεθόδων τους. ιαφορετικά, είναι µία πλατφόρµα που έχει την ικανότητα να αποκρύπτει την ανοµοιογένεια του κατανεµηµένου περιβάλλοντος που αφορά τις διαφορές στις τεχνολογίες δικτύων, αρχιτεκτονικές µηχανών, λειτουργικά συστήµατα και προγραµµατιστικές γλώσσες. Το ενδιάµεσο λογισµικό παίζει σηµαντικό ρόλο στην τεχνολογία των υπηρεσιών διαδικτύου. Η ανεξαρτησία στην υλοποίηση (implementation independence) των υπηρεσιών διαδικτύου επιτυγχάνεται χρησιµοποιώντας κατάλληλο ενδιάµεσο λογισµικό. Οι υπηρεσίες διαδικτύου δεν αντικαθιστούν τις παραδοσιακές αρχές του ενδιάµεσου λογισµικού αλλά χρησιµοποιούνται για να επεκτείνουν τις δυνατότητες του. Εποµένως, στα επόµενα κεφάλαια δεν αναφερόµαστε στο παραδοσιακό ενδιάµεσο λογισµικό αλλά στο ενδιάµεσο λογισµικό για υπηρεσίες διαδικτύου. 1.3 Ο κινητός και ο διάχυτος υπολογισµός (mobile and pervasive computing) Η εµφάνιση των φορητών υπολογιστών και των ασύρµατων τοπικών δικτύων (wireless LANs) οδήγησε στην ανάπτυξη κατανεµηµένων συστηµάτων που υποστηρίζουν κινητούς πελάτες και διακοµιστές (mobile clients and servers). Η ιδέα αυτή αποτελεί και το πεδίο των κινητών υπολογιστικών συστηµάτων (mobile computing systems). Οι βασικές αρχές των κλασσικών κατανεµηµένων συστηµάτων συνεχίζουν να χρησιµοποιούνται στα κατανεµηµένα 4

13 συστήµατα κινητού υπολογισµού. Όµως, η κινητικότητα των πελατών και των διακοµιστών (mobility) οδήγησε σε νέους περιορισµούς : 1. την απρόβλεπτη ύπαρξη ή την ανυπαξία κάποιου κόµβου στο δίκτυο, 2. την απουσία εµπιστοσύνης στην επικοινωνία µε τους κινητούς κόµβους, 3. τους περιορισµούς σχετικά µε τους πόρους των συσκευών που χρησιµοποιούν οι κινητοί κόµβοι (π.χ. µνήµη και υπολογιστική ισχύς), 4. τον περιορισµό σχετικά µε την διαθεσιµότητα της µπαταρίας της κινητής συσκευής, 5. την επικοινωνία µέσω ασύρµατου δικτύου. Μια εξέλιξη των συστηµάτων κινητού υπολογισµού είναι και τα συστήµατα διάχυτου υπολογισµού στα οποία ολόκληρο το περιβάλλον στο οποίο λειτουργεί ένα σύστηµα παρέχει πληροφορίες που µπορούν να προσπελάζονται από συσκευές που είναι είτε επιτραπέζιες είτε φορητές ή ακόµα και συσκευές παλάµης (handheld devices). Το βασικό στοιχείο στον διάχυτο υπολογισµό είναι ότι ο χώρος µέσα στον οποίο αναπτύσσεται το σύστηµα περιέχει πολυάριθµες τέτοιες συσκευές που είναι συνδεδεµένες σε ένα διαρκώς αυξανόµενο και πανταχού παρόν δίκτυο. Κάθε µια από αυτές τις συσκευές χρησιµοποεί τις υπηρεσίες που προσφέρουν οι άλλες συσκευές. Οι συσκευές που υπάρχουν στο χώρο έχουν την δυνατότητα να ανιχνεύονται µεταξύ τους, να επικοινωνούν και να ανταλλάσουν πληροφορία. Το λογισµικό που θα υλοποιεί έναν τέτοιο υπολογισµό και εκτελείται στο µηχάνηµα ενός χρήστη, µπορεί να έχει την ιδιότητα να συµπεριφέρεται διαφορετικά ανάλογα µε την θέση του µηχανήµατος σε αυτόν τον χώρο. Αυτό δείχνει και την αποτελεσµατική χρήση του χώρου από το λογισµικό του διάχυτου υπολογισµού. Συµπερασµατικά, σε ένα διάχυτο υπολογιστικό περιβάλλον, οι έννοιες που κυριαρχούν είναι η κινητικότητα (mobility) των συσκευών του περιβάλλοντος, η απουσία σταθερής σύνδεσης δικτύου των κινητών συσκευών και η δυναµκή είσοδος ή αποχώρηση των κινητών συσκευών από αυτό το περιβάλλον. Αυτές οι έννοιες αποτελούν επιπλέον ιδιότητες που πρέπει να διαχειρίζεται το ενδιάµεσο λογισµικό που θα χρησιµοποιείται από µία συσκευή σε ένα περιβάλλον διάχυτου υπολογισµού. Γενικά, οι εφαρµογές που εκτελούνται σε ένα περιβάλλον διάχυτου υπολογισµού χαρακτηρίζονται από την ανάγκη να παραµένουν ενήµερες για το περιβάλλον τους (context-aware) για να προσαρµόζουν τις λειτουργίες τους και να παίρνουν αποφάσεις. Αυτή η ανάγκη οδήγησε στην ιδέα της ανάπτυξης ενός ενδιάµεσου λογισµικού που θα δίνει αυτές τις δυνατότητες. Μια τέτοια πλατφόρµα ενδιάµεσου λογισµικού είναι και η πλατφόρµα WSAMI [6] που χρησιµοποιήθηκε ως βάση σε αυτήν την πτυχιακή εργασία. 5

14 Το ενδιάµεσο λογισµικό WSAMI προσφέρει µια πλατφόρµα βασισµένη σε υπηρεσίες (middleware-related services) και επιτρέπει στους χρήστες της να αναπτύξουν και να τρέξουν εφαρµογές (application-related services) στην κορυφή του WSAMI (Κεφάλαιο 4). Το WSAMI καλύπτει τις ιδιαιτερότητες ενός περιβάλλοντος διάχυτου υπολογισµού. Έχει υλοποιηµένο λογισµικό για την επικοινωνία συσκευών που είναι συνδεδεµένες είτε σε infrastructure based δίκτυο συσκευών είτε σε Ad-Hoc based δίκτυο συσκευών. Επιπλέον, το WSAMI µπορεί να διακρίνει σε ποιον από τους δύο τύπους δικτύου είναι συνδεδεµένη µια συσκευή. Οι συσκευές ενός συστήµατος που χρησιµοποιούν την πλατφόρµα WSAMI για την ανακάλυψη του περιβάλλοντός τους, διατηρούν πληροφορία για τους κόµβους που µπορούν να ανακαλυφθούν και να προσεγγιστούν µε ένα βήµα (1 hop). Επιπλέον, υπάρχουν κόµβοι που διαθέτουν διάφορες διεπαφές δικτύου και δρουν ως πύλες δροµολόγησης (Gateway nodes) προς άλλα δίκτυα είτε σταθερής συνδεσµικότητας (infrastructure based) είτε ad hoc δίκτυα. Με αυτόν τον τρόπο σχηµατίζεται ένα συµπαγές δίκτυο που γεφυρώνει τα ΜΑΝΕΤ δίκτυα µε τα δίκτυα σταθερής συνδεσµικότητας. Το σχήµα 3 δίνει την γενική αρχιτεκτoνική ενός δικτύου που µπορεί να προκύψει χρησιµοποιώντας τις υπηρεσίες και τις πλήρεις δυνατότητες της πλατφόρµας WSAMI. 6

15 1.4 Η γενική περιγραφή των Υπηρεσιών ιαδικτύου που υλοποιήσαµε Το πρόβληµα που επιλύει αυτή πτυχιακή εργασία είναι ειδική περίπτωση της πλατφόρµας CONSERV [1]. Η πλατφόρµα CONSERV ορίζεται ως µια πλατφόρµα ενδιάµεσου λογισµικού που επιτρέπει την οργάνωση και την διαχείριση Ad-Hoc κοινωνιών κόµβων σε ένα περιβάλλον διάχυτου υπολογισµού. Κάθε κόµβος παρέχει πληροφορία µέσω µίας ή περισσοτέρων υπηρεσιών διαδικτύου. Στην παρούσα εργασία υλοποιήσαµε δύο βασικά υποσυστήµατα της πλατφόρµας CONSERV υπό µπορφή WSAMI υπηρσιών διαδικτύου (σχήµα 4) : 1. Το υποσύστηµα PEER MANAGER για την οργάνωση των γειτονικών κόµβων σε κοινωνίες. Με τον όρο κοινωνία εννοούµε το σύνολο των κόµβων που προσφέρουν υπηρεσίες διαδικτύου µε την ίδια διεπαφή. 2. Το υποσύστηµα WORKFLOW RESOLVER για την συλλογή πληροφορίας από αυτές τις κοινωνίες των κόµβων. Οι υπηρεσίες που υλοποιήσαµε διατηρούν την ιδέα της πλατφόρµας CONSERV σχετικά µε την συλλογή της πληροφορίας. Η πληροφορία είναι τοπικά αποθηκευµένη στους κόµβους των κοινωνιών. Η συλλογή αυτής της πληροφορίας γίνεται δυναµικά κατά την διάρκεια εκτέλεσης του συστήµατος. ηλαδή, πρόκειται για δυναµικά παραγόµενη 7

16 πληροφορία που αντλείται από το σύνολο των γειτονικών κόµβων (σχήµα 5). Συµπερασµατικά, το σύστηµα χειρίζεται ερωτήσεις σε κοινωνίες κόµβων µε στόχο την άντληση και την οργάνωση της πληροφορίας που προκύπτει απο αυτές Το υποσύστηµα PEER MANAGER Για να ανταποκρίνεται η παραγόµενη πληροφορία σε πραγµατική πληροφορία, πρέπει να ανακαλύπτονται τα µέλη των κοινωνιών και να ανανεώνονται τακτικά. Αυτό υλοποιείται από το υποσύστηµα PEER MANAGER. Γενικά, αυτό το υποσύστηµα χειρίζεται τους κόµβους από τους οποίους θα αντλήσουµε πληροφορία. Αυτός ο χειρισµός των κόµβων περιλαµβάνει την ανακάλυψή τους και την οργάνωσή τους σε κοινωνίες. 1. υναµική ανακάλυψη των γειτονικών κόµβων. Η διαδικασία της ανακάλυψης των κόµβων ταυτίζεται µε την διαδικασία της ανακάλυψης των URIs των υπηρεσιών διαδικτύου που προσφέρουν οι κόµβοι. ηλαδή, οι κόµβοι ανακαλύπτονται διαµέσου των υπηρεσιών διαδικτύου που προσφέρουν. Το υποσύστηµα PEER MANAGER µε δεδοµένο το όνοµα µιας υπηρεσίας διαδικτύου ανακαλύπτει τα URIs των διαθέσιµων κόµβων που προσφέρουν υπηρεσία µε αυτό το όνοµα στο τοπικό δίκτυο (σχήµα 6). Από το σχήµα φαίνεται ότι το υποσύστηµα PEER MANAGER ανακαλύπτει µια κοινωνία κόµβων (τα URIs) που προσφέρουν την υπηρεσία διαδικτύου CAR. Με την ίδια διαδικασία µπορεί να ανακαλύπτει κοινωνίες κόµβων που προσφέρουν οποιαδήποτε άλλη υπηρεσία διαδικτύου. 8

17 Η διαδικασία αυτή πραγµατοποιείται χρησιµοποιώντας τις δυνατότητες της πλατφόρµας WSAMI. Η πλατφόρµα WSAMI αντιστοιχίζει σε κάθε υπηρεσία διαδικτύου ένα URI µε διεύθυνση δικτύου localhost. Για παράδειγµα για την υπηρεσία διαδικτύου µε όνοµα CAR έχουµε το URI Στην συνέχεια χρησιµοποιείται η υπηρεσία Naming&Discovery (ND Service) µε είσοδο το παραπάνω URI και ανακαλύπτει τις διευθύνσεις δικτύου των γειτονικών κόµβων χρησιµοποιώντας την υλοποίηση του πρωτοκόλλου Service Location Protocol (SLP manager 1.2.0). Η υλοποίηση SLP manager κάνει περιοδικά πολυεκποµπή (multicast) µηνυµάτων στο τοπικό δίκτυο και αποθηκεύει τις διευθύνσεις δικτύου των γειτονικών κόµβων. Συµπερασµατικά, δεν είναι απαραίτητη η εκ των προτέρων γνώση του περιβάλλοντος ενός κόµβου. Αντιθέτως, ανακαλύπτεται δυναµικά κατά την διάρκεια εκτέλεσης του συστήµατος. 2. Οργάνωση των κόµβων σε κοινωνίες. Η διαδικασία που περιγράφηκε παραπάνω επιστρέφει τους κόµβους που είναι µέλη µιας µόνο κοινωνίας και αποθηκεύονται τοπικά στο τρέχον µηχάνηµα. Όλοι αυτοί οι κόµβοι που αποθηκεύονται προσφέρουν την ίδια υπηρεσία διαδικτύου η οποία είναι και το κριτήριο ανακάλυψής τους. Για να βρεθούν τα µέλη και άλλων κοινωνιών επαναλαµβάνεται η διαδικασία του σηµείου Η διαδικασία της άφιξης και της αποχώρησης ενός κόµβου από µια κοινωνία. 9

18 Έχει ήδη αναφερθεί ότι ένας κόµβος συµµετέχει σε ένα διαρκώς µεταβαλλόµενο περιβάλλον. ηλαδή, κάποιοι κόµβοι αποχωρούν από αυτό ή κάποιοι άλλοι εισέρχονται δηµιουργώντας την ανάγκη για τροποποίηση των κοινωνιών που γνωρίζουν οι υπόλοιποι κόµβοι. Η ανανέωση υλοποιείται από το υποσύστηµα PEER MANAGER µε τις τρεις πολιτικές της πλατφόρµας CONSERV: a. Η πολιτική της διαρκής ανανέωσης (Always Update). Η κοινωνία µε αυτήν την πολιτική διατηρείται πάντα ανανεωµένη. Οποτεδήποτε συµβαίνει άφιξη ή αποχώρηση κόµβου από την κοινωνία, αυτόµατα αποτυπώνεται στον κατάλογο της κοινωνίας. b. Η πολιτική της ανανέωσης µετά από αίτηση (Lazy update). Η κοινωνία µε αυτήν την πολιτική ανανεώνεται µόνο όταν κάποιος χρήστης το ζητήσει και ανακαλύπτονται τυχόν αλλαγές. c. Η πολιτική της περιοδικής ανανέωσης (Periodic update). Η κοινωνία µε αυτήν την πολιτική ανανεώνεται περιοδικά σε κάποια προκαθορισµένα διαστήµατα Το υποσύστηµα WORKFLOW RESOLVER Το υποσύστηµα WORKFLOW RESOLVER εκµεταλλεύεται την οργάνωση των γειτονικών κόµβων σε κοινωνίες. Χρησιµοποεί τα µέλη των κοινωνιών για να τους απευθύνει ερωτήσεις. Ο τρόπος που θα γίνει µια ερώτηση εξαρτάται από τον τύπο των υπηρεσιών διαδικτύου που παρέχουν οι κόµβοι. ηλαδή, η ίδια πληροφορία µπορεί να παρέχεται από διαφορετικού τύπου υπηρεσιών. Για την επίλυση αυτού του προβλήµατος, το υποσύστηµα WORKFLOW RESOLVER χρησιµοποιεί κανόνες. Οι κανόνες εκφράζουν τον τύπο της πληροφορίας που ενδιαφέρει τον χρήστη και τον τρόπο µε τον οποίο παίρνουµε αυτήν την πληροφορία από τις διαφορετικού τύπου υπηρεσίες των κόµβων. Οι απαντήσεις των κόµβων αντιστοιχούν στην συλλογή της δυναµικά παραγόµενης πληροφορίας και αποθηκεύονται τοπικά µε την µορφή εγγραφών σε εικονικούς σχεσιακούς πίνακες. Εποµένως, η λειτουργικότητα του υποσυστήµατος WORKFLOW RESOLVER µπορεί να περιγραφεί από τα παρακάτω σηµεία : 1. Οργάνωση του τύπου της πληροφορίας που επιθυµεί ο χρήστης σε κανόνες. 2. Εκτέλεση των κανόνων, δηλαδή συλλογή πληροφορίας από τις κοινωνίες των κόµβων. 3. Χρήση των κοινωνιών που έχουν κατασκευαστεί από το υποσύστηµα PEER MANAGER. 10

19 4. Ορισµός και δηµιουργία ενός εικονικού σχεσιακού πίνακα. 5. Αποθήκευση της δυναµικά παραγόµενης πληροφορίας µε µορφή εγγραφών σε εικονικό σχεσιακό πίνακα. 1.5 Οργάνωση του τόµου Στο κεφάλαιο 2 δίνονται οι λεπτοµέρειες σχεδίασης των υπηρεσιών διαδικτύου PEER MANAGER και WORKFLOW RESOLVER. Συγκεκριµένα, στην παράγραφο 2.1 δίνεται ο αρχιτεκτονικός σχεδιασµός των υπηρεσιών και αναλύονται τα υποσυστήµατά τους. Στην παράγραφο 2.2 δίνεται η στατική περιγραφή των παραπάνω υποσυστηµάτων αναλύοντας τις κλάσεις υλοποίησης των υπηρεσιών. Στην παράγραφο 2.3 δίνεται η δυναµική περιγραφή των υποσυστηµάτων αναλύοντας την ακολουθία των γεγονότων που συµβαίνουν όταν βρίσκονται σε λειτουργία οι υπηρεσίες. Η περιγραφή γίνεται µε διάγραµµα αντικειµένων σε UML. Στο κεφάλαιο 3 δίνεται η δοµή της πλατφόρµας WSAMI και οι λεπτοµέρειες υλοποίησης των υπηρεσιών διαδικτύου PEER MANAGER και WORKFLOW RESOLVER. Συγκεκριµένα, στην παράγραφο 3.1 περιγράφονται τα βασικά χαρακτηριστικά της πλατφόρµας WSAMI στα οποία βασίζεται η λειτουργία των παραπάνω υπηρεσιών. Στην παράγραφο 3.2 περιγράφονται αναλυτικά οι συναρτήσεις που χρησιµοποιούνται στις κλάσεις υλοποίησης των υπηρεσιών. Στο κεφάλαιο 4 δίνεται η µεθοδολογία που ακολουθήθηκε για να γίνουν οι µετρήσεις χρόνου και µνήµης (παράγραφος 4.1) και η αναλυτική παρουσία των µετρήσεων για όλες τις µεθόδους και των δύο υπηρεσιών (παράγραφος 4.2). Στο κεφάλαιο 5 δίνεται µια σύνοψη της πτυχιακής εργασίας και ορισµένες προτάσεις για επεκτάσεις σε αυτό το θέµα. 11

20 2 Ανάλυση και Σχεδίαση Οι υπηρεσίες διαδικτύου ενδιάµεσου λογισµικού που υλοποιήσαµε βασίζονται στην λογική µε την οποία έχει σχεδιαστεί η πλατφόρµα ενδιάµεσου λογισµικού WSAMI (Web Services for AMbient Intelligent systems). Πρόκειται για µία πλατφόρµα που είναι βασισµένη στο ιαδίκτυο αλλά επιπλέον έχει αρχιτεκτονική προσανατολισµένη στην προσφορά υπηρεσιών διαδικτύου (Service Oriented Architecture SOA). Συγκεκριµένα, οποιαδήποτε πληροφορία ζητήσει ο χρήστης αντλείται µε την κλήση των υπηρεσιών διαδικτύου τις οποίες προσφέρει η πλατφόρµα WSAMI (middleware related services). Με την ίδια λογική υλοποιήσαµε δύο υποσυστήµατα υπό την µορφή WSAMI υπηρεσιών διαδικτύου για την οργάνωση κοινωνιών κόµβων και την αυτοµατοποίηση της διαδικασίας της συλλογής πληροφορίας από αυτούς. Στην συνέχεια του κεφαλαίου δίνονται ο αρχιτεκτονικός σχεδιασµός, η στατική περιγραφή και η δυναµική περιγραφή των υποσυστηµάτων PEER MANAGER και WORKFLOW RESOLVER. 2.1 Αρχιτεκτονικός Σχεδιασµός Έχει ήδη αναφερθεί στην εισαγωγή ότι τα υποσυστήµατα PEER MANAGER και WORKFLOW RESOLVER είναι δύο υπηρεσίες οι οποίες έχουν υλοποιηθεί πάνω ακριβώς από την πλατφόρµα WSAMI (σχήµα 7). 12

21 Αυτό σηµαίνει ότι χρησιµοποιούν τις λειτουργικές δυνατότητες της πλατφόρµας. ηλαδή, χρησιµοποιούν τρία βασικά υποσυστήµατα που παρέχει υλοποιηµένα η πλατφόρµα (σχήµα 8): 1. Το υποσύστηµα OzoneServlet που δέχεται αιτήσεις από τους χρήστες της πλατφόρµας. Συγκεκριµένα, εκτελείται όταν λαµβάνεται µια κλήση µεθόδου υπηρεσίας διαδικτύου από την πλατφόρµα. 2. Το υποσύστηµα Deployment System χρησιµοποιείται για να γίνουν deploy οι εφαρµογές PEER MANAGER και WORKFLOW RESOLVER στην πλατφόρµα. Η διαδικασία αυτή είναι διαφορετική όταν έχουµε συσκευή τύπου PC (Intel x86 αρχιτεκτονική επεξεργαστή) και είναι διαφορετική όταν έχουµε συσκευή τύπου PDA (ARM αρχιτεκτονική επεξεργαστή). 3. Το υποσύστηµα SOAP Implementation χρησιµοποιείται για την ανταλλαγή των SOAP µηνυµάτων. Περιλαµβάνει την υλοποίηση του SOAP πρωτοκόλλου για συσκευές τύπου PC (που ονοµάζεται Axis) και την υλοποίηση του για συσκευές τύπου PDA (που ονοµάζεται csoap [4]). Κατά την εκτέλεση των δύο υποσυστηµάτων που υλοποιήσαµε πάνω από την πλατφόρµα µπορεί να κληθεί κάποια από τις µεθόδους των υπηρεσιών PEER MANAGER και WORKFLOW RESOLVER. Αυτό σηµαίνει ότι το υποσύστηµα OzoneServlet δέχεται την κλήση της µεθόδου και στην συνέχεια εκτελεί είτε το υποσύστηµα PEER MANAGER 13

22 Implementation είτε το υποσύστηµα WORKFLOW RESOLVER Implementation. Τα δύο τελευταία υποσυστήµατα συνδέονται αντίστοιχα µε βέλος εξάρτησης (σχήµα 8) µε το υποσύστηµα SOAP Implementation. Η φορά του βέλους δείχνει από που ξεκινά η εξάρτηση. Επιπλέον, οι υπηρεσίες PEER MANAGER και WORKFLOW RESOLVER χρησιµοποιούν τα επόµενα υποσυστήµατα για να επιστρέψουν το αποτέλεσµα στον χρήστη : 1. Το υποσύστηµα Dynamic Service Discovery (FIND COMMUNITY). Χρησιµοποιείται από το υποσύστηµα PEER MANAGER για να ανακαλύπτει δυναµικά τα µέλη των κοινωνιών στο τοπικό δίκτυο. 2. Το υποσύστηµα Communities organization. Χρησιµοποιείται από το υποσύστηµα PEER MANAGER για να οργανώνονται και να αποθηκεύονται τοπικά να µέλη των κοινωνιών. 3. Το υποσύστηµα Join&Leave Community. Χρησιµοποιείται από το υποσύστηµα PEER MANAGER για να προσοµοιώνεται η διαδικασία της άφιξης κόµβου σε κοινωνία ή αντίστοιχα η διαδικασία της αποχώρησής του. 4. Το υποσύστηµα Update Community. Χρησιµοποιείται από το υποσύστηµα PEER MANAGER για να ανανεώνονται τα µέλη των κοινωνιών. Η ανανέωση αυτή υλοποιείται καλώντας το υποσύστηµα Dynamic Service Discovery για να βρεθούν να νέα µέλη και στην συνέχεια καλώντας το υποσύστηµα Communities organization για να αποθηκευτούν. 5. Το υποσύστηµα Parsing&executing the rules. Χρησιµοποιείται από το υποσύστηµα WORKFLOW RESOLVER για να γίνει συντακτική ανάλυση των κανόνων που εισάγει ο χρήστης και για να γίνει η εκτέλεση των κανόνων. Όταν εκτελούνται οι κανόνες συλλέγεται η πληροφορία από τους γειτονικούς κόµβους. Οι κανόνες εκφράζουν τον τύπο της πληροφορίας που ενδιαφέρει τον εκάστοτε χρήστη και αναλύονται δοµικά και σηµασιολογικά στην παράγραφο Το υποσύστηµα Fill table. Χρησιµοποιείται από το υποσύστηµα WORKFLOW RESOLVER για να αποθηκευτεί η πληροφορία που συλλέχθηκε από τους γειτονικούς κόµβους σε εικονικό σχεσιακό πίνακα µε την µορφή εγγραφών. 14

23 SYSTEM SOAP Implementation Axis csoap OzoneServlet Client PEER MANAGER Implementation WORKFLOW RESOLVER Implementation Deployment System Axis plugin csoap plugin PEER MANAGER Tools WORKFLOW RESOLVER Tools JOIN&LEAQVE ND Service Implementation Parsing& Executing the rules FIND COMMUNITY Communities organization Update Community FILL table 2.2 Στατική Περιγραφή Τα δύο υποσυστήµατα που αναπτύξαµε περιγράφονται µε στατικό τρόπο από τις κλάσεις υλοποίησης των υπηρεσιών διαδικτύου PEER MANAGER και WORKFLOW RESOLVER. Η λειτουργία τους υλοποιείται από τις κλάσεις των διακοµιστών τους. Οι κλάσεις υλοποίησης των πελατών χρησιµοποιούνται από τον εκάστοτε χρήστη για να θέσει σε λειτουργία τα υποσυστήµατα Ορισµός των κλάσεων υλοποίησης της υπηρεσίας διαδικτύου PEER MANAGER Η κλάση PEER_MANAGERImpl του διακοµιστή Η κλάση PEER_MANAGERImpl (σχήµα 13) περιέχεται στο αρχείο PEER_MANAGERImpl.java και ανήκει στο ενιαίο πακέτο κλάσεων (package) PEER_MANAGERService. Γενικά, κατά την κλήση µιας µεθόδου της κλάσης, το πρώτο αντικείµενο που θα παραχθεί από την Εικονική Μηχανή της Java (JVM) είναι το αντικείµενο αυτής της κλάσης. Η κλάση PEER_MANAGERImpl υλοποιεί την διεπαφή PEER_MANAGERInterface της υπηρεσίας διαδικτύου PEER_MANAGER. Η διεπαφή αυτή αποτελεί υποκλάση της java.rmi.remote (extends). Αυτό σηµαίνει ότι η διεπαφή ορίζει ότι η υπηρεσία 15

24 PEER_MANAGER µπορεί να χρησιµοποιηθεί από Εικονικές Μηχανές της Java (JVM) σε διαφορετικά µηχανήµατα. Με αυτόν τον τρόπο επιτρέπεται η κλήση µεθόδων αντικειµένων (remotely) που έχουν δηµιουργηθεί και αποθηκευτεί σε αποµακρυσµένα µηχανήµατα (σχήµα 9). Η διεπαφή PEER_MANAGERInterface ορίζει τις τέσσερις µεθόδους της υπηρεσίας : 1) Η µέθοδος FIND COMMUNITY υλοποιεί το υποσύστηµα Dynamic Service Discovery που προαναφέρθηκε στον αρχιτεκτονικό σχεδιασµό. ηλαδή, ανακαλύπτει δυναµικά τα µέλη των κοινωνιών στο τοπικό δίκτυο. Αποθηκεύει τοπικά τους κόµβους µιας κοινωνίας WS στο αρχείο WSServices.txt. Σε αυτό το αρχείο αποθηκεύονται τα τερµατικά σηµεία σύνδεσης (endpoints) των κόµβων για αυτήν την κοινωνία (σχήµα 10). Η αποθήκευση των κόµβων αποτελεί υλοποίηση του υποσυστήµατος Communities organization. Επιπλέον, η µέθοδος επιστρέφει τους κόµβους της κοινωνίας WS είτε αυτοί είναι νεοαφηχθέντες είτε προϋπήρχαν. Η υλοποίηση της µεθόδου ορίζει ως κοινωνία το σύνολο των κόµβων που προσφέρουν υπηρεσίες διαδικτύου µε την ίδια διεπαφή. ηλαδή, εάν ένας κόµβος προσφέρει δύο υπηρεσίες διαδικτύου που έχουν διαφορετική διεπαφή, θα ανήκει σε δύο διαφορετικές κοινωνίες. Επίσης, η µέθοδος FIND COMMUNITY χειρίζεται το αρχείο CONTEXT.txt που υπάρχει στο τοπικό σύστηµα αρχείων. Αυτό το αρχείο περιέχει την ένωση όλων των κοινωνιών που γνωρίζει ο τοπικός κόµβος. Για να είναι συνεπή τα περιεχόµενα του, η µέθοδος FIND COMMUNITY ανανεώνει αυτό το αρχείο ως προς την κοινωνία για την οποία κλήθηκε. 2) Η µέθοδος UPDATE PER PERIOD υλοποιεί το υποσύστηµα Update Community. Ανανεώνει τοπικά τα µέλη των κοινωνιών και εκτελείται περιοδικά υλοποιώντας την πολιτική Periodic Update της πλατφόρµας CONSERV. Συγκεκριµένα, στο τέλος κάθε περιόδου ελέγχει για αφίξεις ή αποχωρήσεις κόµβων. 16

25 3) Η µέθοδος LEAVE COMMUNITY υλοποιεί το πρώτο τµήµα του υποσυστήµατος Join&Leave Community. Προσοµοιώνει την διαδικασία της αποχώρησης ενός κόµβου από µια κοινωνία. Εάν ο κόµβος αποχωρήσει, δεν µπορεί στην συνέχεια να προσφέρει πληροφορία στα υπόλοιπα µέλη της κοινωνίας. Για παράδειγµα, εάν ένας κόµβος µε IP αποχωρήσει από την κοινωνία WS, το αρχείο της κοινωνίας θα έχει τοπικά τα περιεχόµενα του σχήµατος 11. 4) Η µέθοδος JOIN COMMUNITY αποτελεί το δεύτερο τµήµα της υλοποίησης του υποσυστήµατος Join&Leave Community και προσοµοιώνει την διαδικασία της άφιξης ενός κόµβου σε µια κοινωνία. Εάν αυτή η µέθοδος εκτελεστεί για την κοινωνία WS που περιγράφεται στο σχήµα 11 και για τον κόµβο µε IP , το αποτέλεσµα που θα προκύψει τοπικά απεικονίζεται στο σχήµα 12. java.rmi.remote <<PEER_MANAGERInterface>> + FIND_COMMUNITY(java.lang.String) :java.lang.string + LEAVE_COMMUNITY(java.lang.String) :java.lang.string + JOIN_COMMUNITY(java.lang.String) :java.lang.string + UPDATE_PER_PERIOD(java.lang.String):java.lang.String PEER_MANAGERImpl - broker : CoreBroker.BrokerWrapper - wrapper : CoreBroker.BrokerWrapper - nd : NDService.NDPortType - ur : URService.URInterface + IP : String = "" + NEW_file_contents : String = "" + URAddr : String =" + ndaddr : String = " + LocalHost_OF_PEER_MANAGER : String =" + wsami : String = " + address : InetAddress = null + CONTEXT_File : String = "C:\\CONTEXT.txt" + CONTEXT : String = "" + FIND_a_method_from_WSDL_document( String SERVICEName ) : java.lang.string + CHECK_the_existence_OF_FILE_in_C( String FILEName ) : boolean + FIND(String SERVICEName,String param1,string ndaddr,string my_ip,string FILEName) : String + FIND_all_PEERS_MANAGERS(String SERVICEName,String ndaddr,string my_ip,string FILEName) : String + LEAVE( String SERVICEName, String ndaddr, String IP, String FILEName) : String + JOIN ( String SERVICEName, String ndaddr, String IP, String FILEName) : String + CALL_PEER MANAGER ( String EP, String SERVICEName) : String + CALL_PEER_MANAGER_for_WSDL_Document( String EP, String SERVICEName) : String + CALL_SERVICE( String EP, String SERVICEName) : String + REPLACE_token_WITH_other_token( String token, String RULE, String NEW_token ) : String + FIND_total_CONTEXT(String SERVICEName,String param1,string ndaddr,string my_ip,string FILEName ) : String 17

26 Η κλάση PEER_MANAGERClient του πελάτη Η κλάση PEER_MANAGERClient (σχήµα 14) περιέχεται στο αρχείο PEER_MANAGERClient.java και ανήκει στο ενιαίο πακέτο κλάσεων PEER_MANAGERClient. Υλοποιεί την επικοινωνία µε τον χρήστη δίνοντάς του την δυνατότητα να εκτελέσει το υποσύστηµα PEER MANAGER. Προσφέρει στον χρήστη ένα σύνολο από δυνατότητες για να ανακαλύπτει και να χειρίζεται τις κοινωνίες των γειτονικών κόµβων. Υλοποιεί τις επιλογές του χρήστη σχετικά µε το (περιγράφεται αναλυτικά η διεπαφή µε τον χρήστη στην παράγραφο 2.3) : 1) να εισάγει το πλήθος και τα ονόµατα των κοινωνιών για τις οποίες ενδιαφέρεται. Σε αυτήν την περίπτωση καλείται το υποσύστηµα Dynamic Service Discovery τόσες φορές όσες και το πλήθος των κοινωνιών, 2) να ενεργοποιήσει την διαδικασία της άφιξης ενός κόµβου σε κοινωνία, 3) να ενεργοποιήσει την διαδικασία της αποχώρησης ενός κόµβου από κοινωνία, 4) να ενεργοποιήσει την πολιτική Always Update της πλατφόρµας CONSERV. Η πολιτική αυτή ενεργοποιείται όταν έχουµε άφιξη ή αποχώρηση κόµβου και από µια κοινωνία WS και ενηµερώνει για την αλλαγή εκτός από τα τοπικά αρχεία και τα αρχεία που βρίσκονται στο σύστηµα αρχείων των γειτονικών µηχανηµάτων, 5) να εκτυπώνει στην οθόνη τα περιεχόµενα του αρχείου µιας κοινωνίας ή και του αρχείου CONTEXT.txt, 6) να ενεργοποιήσει την πολιτική της περιοδικής ενηµέρωσης, 7) να απενεργοποιήσει την πολιτική της περιοδικής ενηµέρωσης. - broker : CoreBroker.BrokerWrapper - wrapper : CoreBroker.BrokerWrapper - nd : NDService.NDPortType - ur : URService.URInterface + IP : String = "" + param_of_leave_community : String = "" + param_of_join_community : String = "" + NEW_file_contents : String = "" + SE : String = "" + URAddr : String =" + address : InetAddress = null + UPDATE_flag_start : Boolean = false; + lookupthread : Thread = null + period : int = 0 + mode : int = 1 + SERVICES_call : int = 0 + MEMORY : String = "" + FILE_memory_time : String = "" PEER_MANAGERClient + static main(string arg[]) : void + call(string wsami, String ndaddr, String paramval) : java.lang.string + FIND_ALL_SERVICES( String wsami, String ndaddr, String paramval) : void + UPDATE_PERIOD(final String SERVICEName, final String FILE, final String wsami, final String ndaddr, final String paramval, final int period ) : Thread + START_JOIN( String SERVICEName, String ndaddr, String IP, String FILEName) : java.lang.string + START_LEAVE( String SERVICEName, String ndaddr, String IP, String FILEName) : java.lang.string + TAKE_current_time( ) : double + getip( String FILE ) : java.lang.string 18

27 2.2.2 Ορισµός των κλάσεων της υπηρεσίας διαδικτύου WORKFLOW RESOLVER Η κλάση WORKFLOW_RESOLVERImpl του διακοµιστή Η κλάση WORKFLOW_RESOLVERImpl (σχήµα 22) περιέχεται στο αρχείο WORKFLOW_RESOLVERImpl.java και ανήκει στο ενιαίο πακέτο κλάσεων WORKFLOW_RESOLVERService. Η κλάση WORKFLOW_RESOLVERImpl υλοποιεί την διεπαφή WORKFLOW_RESOLVERInterface της υπηρεσίας διαδικτύου WORKFLOW_RESOLVER. Η διεπαφή αυτή αποτελεί υποκλάση της java.rmi.remote (σχήµα 22). Η διεπαφή WORKFLOW_RESOLVERInterface ορίζει τις δύο µεθόδους της υπηρεσίας : 1) Η µέθοδος give_rules_per_table έχει διπλή λειτουργικότητα ανάλογα µε την µορφή της συµβολοσειράς που δέχεται ως παράµετρο. a. Η πρώτη περίπτωση της λειτουργικότητας της µεθόδου εκτελείται όταν ο χρήστης εισάγει τις απαραίτητες πληροφορίες για την δηµιουργία ενός νέου εικονικού σχεσιακού πίνακα (το όνοµα του πίνακα, το πλήθος, τα ονόµατα και ο τύπος δεδοµένων των γνωρισµάτων του). Η µέθοδος δηµιουργεί τον νέο κενό πίνακα και τον αποθηκεύει ως ένα απλό αρχείο δεδοµένων και όχι ως έναν σχεσιακό πίνακα µιας πραγµατικής βάσης δεδοµένων. Σε αυτήν την περίπτωση, η συµβολοσειρά που δέχεται παράµετρο η µέθοδος έχει µία αρχική ετικέτα <TABLE name = > µε το όνοµα του πίνακα και µια τελική ετικέτα </TABLE name = > που δείχνει σε ποιο σηµείο της συµβολοσειράς τελειώνει η περιγραφή του πίνακα. Ανάµεσα σε αυτές τις δύο ετικέτες υπάρχουν ετικέτες τύπου <ATTRIBUTE name = type = > για κάθε γνώρισµα του πίνακα. Με αυτές τις ενδιάµεσες ετικέτες περιγράφουµε το όνoµα και τον τύπο δεδοµένων του γνωρίσµατος (σχήµα 15). 19

28 b. Η δεύτερη περίπτωση της λειτουργικότητας της µεθόδου εκτελείται όταν ο χρήστης εισάγει τους κατάλληλους κανόνες οι οποίοι χρησιµοποιούνται για να γίνει η συλλογή της πληροφορίας. Συγκεκριµένα, κάθε κανόνας πρέπει να έχει τουλάχιστον 4 τµήµατα. Εάν έχει λιγότερα, αγνοείται. Με το πρώτο τµήµα δηλώνουµε την κοινωνία στην οποία θα απευθυνθούµε για την άντληση πληροφορίας. Κάθε κοινωνία προσφέρει διαφορετικού τύπου πληροφορίας και γι αυτό οι κανόνες συνήθως απευθύνονται σε πολλές κοινωνίες. Με το δεύτερο τµήµα δηλώνουµε το όνοµα της µεθόδου που θα κληθεί. Οι κόµβοι της κοινωνίας οι οποίοι θα απαντήσουν, θα επιστρέψουν µια συµβολοσειρά (σχήµα 16). Εποµένως, εάν µια κοινωνία αποτελείται από 2 κόµβους θα επιστραφούν δύο συµβολοσειρές όπως αυτή του σχήµατος 16. Η απάντηση, όπως φαίνεται από το σχήµα 16, µπορεί να περιλαµβάνει πολλά τµήµατα (PARTs). Με το τέταρτο τµήµα του κανόνα δηλώνουµε το όνοµα του γνωρίσµατος του πίνακα το οποίο θα πάρει τιµή από τις απαντήσεις και µε το τρίτο τµήµα δηλώνουµε το τµήµα της απάντησης που θα γίνει τιµή για το γνώρισµα αυτό (σχήµα 17, 1 ος και 2 ος κανόνας). Ένας κανόνας µπορεί να εφαρµόζει την κλειστότητα στο τρίτο και στο τέταρτο τµήµα του κανόνα. ηλαδή, να επαναλαµβάνει ένα γνώρισµα και το τµήµα της απάντησης που του αντιστοιχεί (σχήµα 17, 3 ος κανόνας). Η εκτέλεση του πρώτου κανόνα θα παράγει την εγγραφή του σχήµατος 18. Ο πρώτος κανόνας δίνει τιµή µόνο στο γνώρισµα Velocity του πίνακα, αφήνοντας τα υπόλοιπα γνωρίσµατα για αυτήν την εγγραφή χωρίς τιµή. 20

29 Το σηµαντικό σε αυτό το παράδειγµα είναι ότι ο πρώτος και ο δεύτερος κανόνας αναφέρονται στην ίδια κοινωνία και προσπαθούν να πάρουν τιµή για τα γνωρίσµατα Velocity και Location. Όταν εκτελεστεί και ο δεύτερος κανόνας, τότε η µέθοδος give_rules_per_table αναγνωρίζει ότι αυτοί οι δύο κανόνες πρέπει να παράγουν µαζί µόνο µια εγγραφή γιατί αναφέρονται στην ίδια κοινωνία, είναι διαδοχικοί και προσπαθούν να πάρουν τιµή για διαφορετικά γνωρίσµατα. Εποµένως, η εκτέλεση του πρώτου και του δεύτερου κανόνα θα παράγει την εγγραφή του σχήµατος 19 δίνοντας τιµή στα γνωρίσµατα Velocity και Location του πίνακα, αφήνοντας το τρίτο γνώρισµα χωρίς τιµή. Ο τρίτος κανόνας παράγει µια νέα εγγραφή γιατί αναφέρεται στα µέλη µιας νέας κοινωνίας σχετικά µε τους δύο προηγούµενους κανόνες και δίνει τιµές και στα τρία γνωρίσµατα του πίνακα. Η εκτέλεση και των τριών κανόνων θα παράγει τις δύο εγγραφές του σχήµατος

30 Οι δύο παραπάνω εγγραφές περιέχουν τιµές γνωρισµάτων που προέρχονται µόνο από έναν κόµβο κοινωνίας. Στην γενική περίπτωση για κάθε κόµβο της κοινωνίας παράγεται και µια πανοµοιότυπη εγγραφή αλλά µε διαφορετικές τιµές στα γνωρίσµατα του πίνακα. Αυτό γιατί κάθε κόµβος επιστρέφει διαφoρετική πληροφορία. Το σχήµα 21 δίνει τις τέσσερις εγγραφές που θα προκύψουν από την εκτέλεση των τριών προηγούµενων κανόνων όταν τόσο η κοινωνία CAR1 όσο και η CAR2 έχουν δύο κόµβους. 22

31 Το σχήµα 21 είναι το αποτέλεσµα που επιστρέφει η µέθοδος από την εκτέλεση των τριών κανόνων του σχήµατος 17. Στην γενική περίπτωση, κατά την εκτέλεση της µεθόδου κρατούνται στοιχεία για τον προηγούµενο κανόνα που εκτελέστηκε (σε ποια κοινωνία και σε ποια γνωρίσµατα του πίνακα αναφερόταν ο κανόνας). Αυτό χρησιµεύει γιατί : 23

32 a) εάν δύο ή περισσότεροι κανόνες αναφέρονται στην ίδια κοινωνία, είναι διαδοχικοί, χρησιµοποιούν διαφορετική µέθοδο και αναφέρονται σε διαφορετικό γνώρισµα πίνακα, τότε το αποτέλεσµά τους θα ανήκει στην ίδια εγγραφή, b) εάν δύο ή περισσότεροι κανόνες αναφέρονται στην ίδια κοινωνία, είναι διαδοχικοί, χρησιµοποιούν την ίδια µέθοδο και αναφέρονται σε διαφορετικό γνώρισµα πίνακα, τότε το αποτέλεσµά τους θα ανήκει στην ίδια εγγραφή. Εποµένως, η µέθοδος µπορεί να διακρίνει εάν χρειάζεται για τον τρέχοντα κανόνα να παράγει νέα εγγραφή ή εάν ο κανόνας δίνει τιµές σε επιπλέον γνωρίσµατα της ίδιας εγγραφής που παράχθηκε από τον προηγούµενο κανόνα. Η µέθοδος παράγει διαφορετική εγγραφή για τον τρέχοντα κανόνα όταν : a) δύο ή περισσότεροι κανόνες αναφέρονται σε διαφορετικές κοινωνίες και είναι διαδοχικοί, b) δύο ή περισσότεροι κανόνες αναφέρονται στην ίδια κοινωνία και δεν είναι διαδοχικοί Υπάρχει όµως περίπτωση να αγνοηθεί ο κανόνας και να µην παραχθεί εγγραφή για αυτόν. Αυτό συµβαίνει όταν : a) δύο ή περισσότεροι κανόνες αναφέρονται στην ίδια κοινωνία, είναι διαδοχικοί, χρησιµοποιούν διαφορετική µέθοδο και αναφέρονται στο ίδιο γνώρισµα πίνακα, τότε το αποτέλεσµα του δεύτερου θα αγνοηθεί, b) δύο ή περισσότεροι κανόνες αναφέρονται στην ίδια κοινωνία, είναι διαδοχικοί, χρησιµοποιούν την ίδια µέθοδο και αναφέρονται στο ίδιο γνώρισµα πίνακα και έχουν το ίδιο PART, τότε το αποτέλεσµα του δεύτερου θα αγνοηθεί, c) εάν δύο ή περισσότεροι κανόνες αναφέρονται στην ίδια κοινωνία, είναι διαδοχικοί, χρησιµοποιούν την ίδια µέθοδο και αναφέρονται στο ίδιο γνώρισµα πίνακα αλλά έχουν διαφορετικό PART, τότε το αποτέλεσµα του δεύτερου θα αγνοηθεί. 2) Η δεύτερη µέθοδος FILL_Table υλοποιεί την συντακτική ανάλυση των εγγραφών (σχήµα 21) και την αποθήκευση των τιµών των γνωρισµάτων στον πίνακα. έχεται ως παράµετρο τις εγγραφές και µε την συντακτική ανάλυση βρίσκει το πλήθος των εγγραφών, τα ονόµατα των γνωρισµάτων που θα πάρουν τιµές σε µια εγγραφή και τα 24

33 ονόµατα αυτών που δεν θα πάρουν τιµές. Όταν ένα γνώρισµα δεν παίρνει τιµή τότε στον πίνακα αποθηκεύεται η κενή τιµή. java.rmi.remote <<WORKFLOW_RESOLVERInterface>> + FIND_COMMUNITY(java.lang.String) :java.lang.string + LEAVE_COMMUNITY(java.lang.String) :java.lang.string + JOIN_COMMUNITY(java.lang.String) :java.lang.string + UPDATE_PER_PERIOD(java.lang.String):java.lang.String - broker : CoreBroker.BrokerWrapper - wrapper : CoreBroker.BrokerWrapper - nd : NDService.NDPortType + LEFT_rule : String = "" + LEFT_table : String = "" +LEFT_IPs : String ="" + NEW_used_attributes : String = "" WORKFLOW_RESOLVERImpl + give_rules_per_table(java.lang.string param1) : java.lang.string + FILL_Table(java.lang.String param3) : java.lang.string + Resolver( String param1 ) : java.lang.string + TAKE_the_ATTRIBUTES( String FILE, String answer, String PARTS_ATTRIBUTES ) : java.lang.string + REPLACE_token( String token, String RULE) : java.lang.string + TAKE_part( String SOAP_message ) : java.lang.string + TAKE_next_part( String SOAP_message ) : java.lang.string + FIND_THE_attribute_from_part( String PART, String PARTS_ATTRIBUTES ) : java.lang.string + getip( String FILE ) : java.lang.string + FIND( String paramval ) : void + FILL( String FILEName, String SOAP_message ) : void + FIND_ATTRIBUTES_from_one_rule( String PARTS_ATTRIBUTES ) : java.lang.string + WRITE_file( String FILEName, String text)) : void + NEW_REPLACE_TABS( String RULE ) : java.lang.string + READ_file( String FILEName ) : java.lang.string + Parse_THE_input_RULE( String RULES ) : java.lang.string + Parse_THE_input_RULE_without( String RULES ) : java.lang.string + Parse_THE_IPs_from_FILE( String IPs ) : java.lang.string + Take_FLAG_of_partitipation( String IPs ) : java.lang.string + FIND_Service_Name_from_ENDPOINT( String ENDPOINT, String SERVICEName) : java.lang.string + FIND_IP_from_ENDPOINT( String ENDPOINT, String ServiceName ) : java.lang.string + FIND_IPs_for_A_WEB_Service_from_FILE( String SERVICEName ) : java.lang.string + REPLACE_ALL( String RULE ) : java.lang.string + REPLACE_TABS( String RULE ) : java.lang.string + Parse_THE_TABLES( String RULES ) : java.lang.string + CHECK_the_existence_OF_FILE_in_C( String FILEName) : boolean + REPLACE_token_WITH_other_token( String token, String RULE, String NEW_tiken) : java.lang.string + TAKE_IP_from_SOAP_message( String SOAP_message ) : java.lang.string + TAKE_attribute_from_SOAP_message( String SOAP_message ) : java.lang.string + TAKE_PART_from_SOAP_message( String SOAP_message ) : java.lang.string + TAKE_IP_from_part( String SOAP_message ) : java.lang.string + TAKE_VALUE_from_SOAP_message( String SOAP_message ) : java.lang.string + Distinguish_THE_IPs_foe_SECOND_time( String ATTRIBUTES ) : java.lang.string + RETURN_type_OF_attribute( String ATTRIBUTE ) : java.lang.string + ADD_types_to_attributes( String SOAP_message ) : java.lang.string + CHECK_SOAP_message( String SOAP_message ) : java.lang.string + REPLACE_ALL_white_CHARS( String RULE ) : java.lang.string 25

34 Η κλάση WORKFLOW_RESOLVERClient του πελάτη Η κλάση WORKFLOW_RESOLVERClient (σχήµα 23) περιέχεται στο αρχείο WORKFLOW_RESOLVERClient.java, ανήκει στο ενιαίο πακέτο κλάσεων WORKFLOW_RESOLVERClient και υλοποιεί την επικοινωνία µε τον χρήστη δίνοντάς του την δυνατότητα να εκτελέσει το υποσύστηµα WORKFLOW_RESOLVER. Προσφέρει στον χρήστη ένα σύνολο από δυνατότητες για να συλλέγει πληροφορία από γειτονικούς κόµβους και να την αποθηκεύει τοπικά. Υλοποιεί τις επιλογές του χρήστη σχετικά µε το (περιγράφεται αναλυτικά η διεπαφή µε τον χρήστη στην παράγραφο 3.2) : 1) να εισάγει τις απαραίτητες πληροφορίες για την δηµιουργία ενός νέου εικονικού σχεσιακού πίνακα, 2) να εισάγει τους κανόνες προσδιορίζοντας τον τύπο της πληροφορίας που θέλει να αντλήσει, 3) να ενεργοποιήσει την εκτέλεση των κανόνων, 4) να έχει πρόσβαση για ανάγνωση στις τελικές εγγραφές του εικονικού σχεσιακού πίνακα, 5) να εκτυπώνει στην οθόνη τις εγγραφές του εικονικού σχεσιακού πίνακα. - broker : CoreBroker.BrokerWrapper - wrapper : CoreBroker.BrokerWrapper - nd : NDService.NDPortType - ur : URService.URInterface + SE : String = "" + URAddr : String =" + LEFT_table : String = "" + LEFT_rule : String = "" + LEFT_IPs : String = "" + NEW_used_attributes : String = "" WORKFLOW_RESOLVERClient + static main(string arg[]) : void + call(string wsami, String ndaddr, String paramval) : java.lang.string + call_for_fill(string wsami, String ndaddr, String paramval) : java.lang.string + TAKE_current_time( void ) : double + getip( String FILE ) : java.lang.string 26

35 2.3 υναµική Περιγραφή Μετά την στατική περιγραφή του συστήµατος, ακολουθεί και η δυναµική περιγραφή των υποσυστηµάτων PEER MANAGER και WORKFLOW RESOLVER. Η δυναµική περιγραφή θα δοθεί µε τα ακολουθιακά διαγράµµατα των αντικειµένων (sequence diagram) των υποσυστηµάτων σε UML. Το ακολουθιακό διάγραµµα γενικά περιγράφει την ακολουθία των γεγονότων που συµβαίνουν στο σύστηµα. Επιπλέον, περιγράφει την κλήση µεθόδων σε κάθε αντικείµενο και την σειρά µε την οποία γίνονται αυτές οι κλήσεις. Παράλληλα, µε τα ακολουθιακά διαγράµµατα δίνεται και ο αλγόριθµος ο οποίος υλοποιεί τα παραπάνω υποσυστήµατα Τα ακολουθιακά διαγράµµατα κατά την λειτουργία του υποσυστήµατος PEER MANAGER Η χρήση της υπηρεσίας διαδικτύου PEER MANAGER ξεκινά µε την είσοδο των απαραίτητων πληροφοριών από τον χρήστη. Συγκεκριµένα, ο χρήστης αρχικά έρχεται σε επαφή µε ένα µενού (σχήµα 24) από το οποίο πρέπει να επιλέξει το πλήθος των κοινωνιών που θα χειριστεί. Το σύστηµα χειρίζεται µε διαφορετικό τρόπο περισσότερες από µια κοινωνίες και µε διαφορετικό τρόπο την περίπτωση του να επιλέξει ο χρήστης µόνο µια κοινωνία. Η διαφορά αυτή θα φανεί και στα επόµενα ακολουθιακά διαγράµµατα. 27

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

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

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

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

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

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

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

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

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

7.9 ροµολόγηση. Ερωτήσεις

7.9 ροµολόγηση. Ερωτήσεις 7.9 ροµολόγηση Ερωτήσεις 1. Να δώσετε τον ορισµό της δροµολόγησης; 2. Από τι εξαρτάται η χρονική στιγµή στην οποία λαµβάνονται οι αποφάσεις δροµολόγησης; Να αναφέρετε ποια είναι αυτή στην περίπτωση των

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

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

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

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

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

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

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους

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

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

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

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

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1 Σύστηµα CORBA οµή συστήµατος Μεταβίβαση παραµέτρων Μοντέλα επικοινωνίας υναµικές κλήσεις Αναφορές αντικειµένων Ονόµατα αντικειµένων ιαχείριση αντικειµένων Υλοποίηση συστηµάτων CORBA Κατανεµηµένα Συστήµατα

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

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

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

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

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

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

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

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

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Βάσεις εδοµένων Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης v.vescoukis@cs.ntua.gr ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Συστήµατα ιαχείρισης Βάσεων

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

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Ethernet Ethernet ΙΕΕΕ CSMA/CD Ethernet Τα τοπικά δίκτυα είναι συνήθως τύπου Ethernet ή λέμε ότι ακολουθούν το πρότυπο ΙΕΕΕ 802.3 Ακολουθούν το μηχανισμό CSMA/CD (Πολλαπλή πρόσβαση με Ακρόαση Φέροντος και Ανίχνευση Συγκρούσεων). Πολλαπλή

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

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

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

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

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

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

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

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

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

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

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet. PROXY SERVER Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet. Αποτελεσματικό εργαλείο για την απόκρυψη των εσωτερικών λεπτομερειών και διευθύνσεων IP του δικτύου. Αυξάνει τη συνολική

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

Κάντε κλικ για έναρξη

Κάντε κλικ για έναρξη Σημειώσεις : Χρήστος Μουρατίδης Κάντε κλικ για έναρξη Ορισμός Δίκτυο Υπολογιστών = Mία ομάδα από 2 ή περισσότερους υπολογιστές που είναι συνδεδεμένοι μεταξύ τους. Ο κύριος σκοπός είναι να ανταλλάσσουν

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ιαδίκτυα & Ενδοδίκτυα Η/Υ ιαδίκτυα & Ενδοδίκτυα Η/Υ ΙΑ ΙΚΤΥΑΚΗ ΛΕΙΤΟΥΡΓΙΑ (Kεφ. 16) ΠΡΩΤΟΚΟΛΛΑ ΡΟΜΟΛΟΓΗΣΗΣ Αυτόνοµα Συστήµατα Πρωτόκολλο Συνοριακών Πυλών OSPF ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΥΠΗΡΕΣΙΩΝ (ISA) Κίνηση ιαδικτύου Προσέγγιση

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Remote Method Invocation (RMI) Εισαγωγή Η αποµακρυσµένη επίκληση µεθόδων (RMI), επιτρέπει σε

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

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι Παρτώνας Αλέξανδρος Επιβλέπων: Δρ.

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

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

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

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

ΚΕΦΑΛΑΙΟ Web Services

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

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

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Πλωτάρχης Γ. ΚΑΤΣΗΣ ΠΝ Γιατί χρησιµοποιούµε δίκτυα? Δίκτυο Σύνολο Η/Υ και συσκευών Συνδεδεµένα µε κάποιο µέσο Stand-alone

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

Σκοπιµότητα των firewalls

Σκοπιµότητα των firewalls Σκοπιµότητα των firewalls Παρέχουν προστασία των εσωτερικών δικτύων από απειλές όπως: Μη εξουσιοδοτηµένη προσπέλαση των δικτυακών πόρων: όταν επίδοξοι εισβολείς προσπαθούν να εισχωρήσουν στο δίκτυο και

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

ίκτυα ίκτυο υπολογιστών: Ένα σύνολο από υπολογιστικές συσκευές που συνδέονται µεταξύ τους για σκοπούς επικοινωνίας και χρήσης πόρων. Συνήθως, οι συσκε

ίκτυα ίκτυο υπολογιστών: Ένα σύνολο από υπολογιστικές συσκευές που συνδέονται µεταξύ τους για σκοπούς επικοινωνίας και χρήσης πόρων. Συνήθως, οι συσκε ΙΚΤΥΑ & INTERNET ίκτυα ίκτυο υπολογιστών: Ένα σύνολο από υπολογιστικές συσκευές που συνδέονται µεταξύ τους για σκοπούς επικοινωνίας και χρήσης πόρων. Συνήθως, οι συσκευές συνδέονται µεταξύ τους µε καλώδια

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

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

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

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

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα Μαζική επεξεργασία ή επεξεργασία κατά δέσµες (batch processing) Χώρος χρήστη Εργασίες (Jobs): Πρόγραµµα, δεδοµένα και οδηγίες Αποτελέσµατα Χώρος

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

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

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

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

Χαρακτηρισµός Κατανεµηµένων Συστηµάτων

Χαρακτηρισµός Κατανεµηµένων Συστηµάτων Εισαγωγή Χαρακτηρισµός Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Κύπρου

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

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

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

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

Δροµολόγηση (Routing)

Δροµολόγηση (Routing) Δροµολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναµικός Προγραµµατισµός Dijkstra s Algorithm Αλγόριθµοi Δροµολόγησης Link State Distance Vector Δροµολόγηση σε Κινητά Δίκτυα Δροµολόγηση

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

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

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

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

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

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

Μποχρίνη Σταυρούλα ΑΜ:3173 Σταθόπουλος Αναστάσιος ΑΜ:3220

Μποχρίνη Σταυρούλα ΑΜ:3173 Σταθόπουλος Αναστάσιος ΑΜ:3220 Μποχρίνη Σταυρούλα ΑΜ:3173 Σταθόπουλος Αναστάσιος ΑΜ:3220 Περιγραφή Συστήµατος Κάθε επιστηµονικό έργο αποτελείται από: Από πολλά projects τα οποία χωρίζονται σε πακέτα εργασίας (work packages) που ο αριθµός

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

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

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

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

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

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

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

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

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

Διαγράμματα Κλάσεων στη Σχεδίαση

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

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 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 υπηρεσία επιτρέπει σε έναν

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ > ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να

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

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

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

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

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

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

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

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

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

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

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

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

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

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95 ΚΕΦΑΛΑΙΟ 4 Τεχνική Ανίχνευσης του ICMP Echo Spoofing Πτυχιακή Εργασία Σελίδα 95 Περιεχόμενα ΕΙΣΑΓΩΓΗ 98 ΜΕΡΟΣ Α: Έλεγχος του Icmp Echo Reply Πακέτου 103 A.1. Ανίχνευση του spoofed Icmp Echo Request Πακέτου.

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

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

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

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

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

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

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

Επαναληπτικές Ασκήσεις Μαθήματος

Επαναληπτικές Ασκήσεις Μαθήματος Επαναληπτικές Ασκήσεις Μαθήματος Ερώτηση: EAM1. Ποιο από τα παρακάτω χαρακτηριστικά δεν αποτελεί κριτήριο κατηγοριοποίησης δικτύων. Κλίμακα Τεχνολογία μετάδοσης Πλήθος τερματικών εντός του δικτύου Ερώτηση:

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

MICROSOFT INTERNET LOCATOR SERVER

MICROSOFT INTERNET LOCATOR SERVER MICROSOFT INTERNET LOCATOR SERVER A.S. DRIGAS Applied Technologies Department NCSR DEMOKRITOS Ag. Paraskevi GREECE dr@imm.demokritos.gr http://imm.demokritos.gr Ο Microsoft Internet Locator Server (ILS)

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

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

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

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

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

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

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

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

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

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

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

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 3: Τοπολογίες Δικτύων Εισαγωγή

ΚΕΦΑΛΑΙΟ 3: Τοπολογίες Δικτύων Εισαγωγή ΚΕΦΑΛΑΙΟ 3: Τοπολογίες Δικτύων 3.1. Εισαγωγή Υπάρχουν τέσσερις βασικοί τρόποι διασύνδεσης των μηχανημάτων που απαρτίζουν ένα δίκτυο: διασύνδεση διαύλου, αστέρα, δέντρου και δακτυλίου. Στις παραγράφους

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

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

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

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

ίκτυα - 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) Υπηρεσία

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

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

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

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

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

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

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML για το µάθηµα ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ Ακαδηµαϊκό Έτος 2012-2013 «Αντικειµενοστρεφής Ανάλυση Ηλεκτρονικού Καταστήµατος Προσφορών (e-shop)» Η άσκηση αφορά στη χρήση της

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

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

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

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

7.6 ιευθυνσιοδότηση. Ερωτήσεις

7.6 ιευθυνσιοδότηση. Ερωτήσεις 7.6 ιευθυνσιοδότηση Ερωτήσεις 1. Να εξηγήσετε τους όρους διεύθυνση, όνοµα και διαδροµή στην τεχνολογία TCP/IP και να εξηγήσετε πώς σχετίζονται αυτοί µεταξύ τους. 2. Τι είναι η φυσική διεύθυνση ή διεύθυνση

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο

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

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

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

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

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

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

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή στην Πληροφορική 1 Γενικές πληροφορίες Εισαγωγή στην Πληροφορική ιδασκαλία: Παναγιώτης Χατζηδούκας Email:

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Ποιος πρέπει να ολοκληρώσει αυτή την εργασία? Φοιτητές έτους >=2 που

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

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

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

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

Υποστήριξη Κινητικότητας στο Internet. Σαράντης Πασκαλής <paskalis@di.uoa.gr> Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών

Υποστήριξη Κινητικότητας στο Internet. Σαράντης Πασκαλής <paskalis@di.uoa.gr> Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών Υποστήριξη Κινητικότητας στο Internet Σαράντης Πασκαλής Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών 1 Mobile IP Ιστορικό Το πρωτόκολλο Internet σχεδιάστηκε για στατικούς υπολογιστές.

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

ιαχείριση Τηλεφωνικών Κλήσεων

ιαχείριση Τηλεφωνικών Κλήσεων ιαχείριση Τηλεφωνικών Κλήσεων 1 Διαχει ριση Τηλεφωνικω ν Κλη σεων ΓΕΝΙΚΗ ΠΕΡΙΓΡΑΦΗ... 3 ΔΟΜΗ ΧΡΗΣΤΩΝ ΚΑΙ ΔΙΚΑΙΩΜΑΤΑ ΕΠΙ ΤΩΝ ΤΗΛΕΦΩΝΙΚΩΝ ΚΛΗΣΕΩΝ... 3 ΣΧΗΜΑΤΙΚΗ ΑΠΕΙΚΟΝΙΣΗ... 4 ΕΙΣΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ... 5

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