Σημειώσεις θεωρίας για το μάθημα "Κατανεμημένα Συστήματα Ελέγχου"

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

Download "Σημειώσεις θεωρίας για το μάθημα "Κατανεμημένα Συστήματα Ελέγχου""

Transcript

1 ΤΕΙ ΧΑΛΚΙΔΑΣ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Σημειώσεις θεωρίας για το μάθημα "Κατανεμημένα Συστήματα Ελέγχου" Χειμερινό εξάμηνο Χ. Οικονομάκος 1

2 Κεφάλαιο 1: Τεχνολογίες Λογισμικού Ανοιχτής Αρχιτεκτονικής για Συστήματα SCADA 1.1 Τα Συστήματα SCADA Ο όρος SCADA προέρχεται από τα αρχικά των λέξεων Supervisory Control and Data Acquisition (Εποπτικός Έλεγχος και Συλλογή Δεδομένων). Εχει καθιερωθεί στη διεθνή ορολογία των συστημάτων αυτοματισμού και δηλώνει τα συστήματα εκείνα, που επιτρέπουν στο χειριστή μιας κατανεμημένης στο χώρο διεργασίας να συλλέγει πληροφορίες από διάφορα σημεία σε ένα κεντρικό υπολογιστή, από τον οποίο μπορεί επίσης να εκτελεί χειρισμούς ή να στέλνει εντολές ελέγχου έχοντας εποπτεία (δηλαδή βλέποντας τη συνολική εικόνα) της διαδικασίας. Τα SCADA χρησιμοποιούνται κυρίως στη βιομηχανία για την αυτοματοποίηση της παραγωγής και των σχετικών με αυτή διαδικασιών. Συστήματα SCADA χρησιμοποιούνται ακόμη στα δίκτυα των επιχειρήσεων και οργανισμών κοινής ωφελείας (δίκτυα μεταφοράς και διανομής ηλεκτρικής ενέργειας, νερού ή φυσικού αερίου, δίκτυα αποχέτευσης), στα συστήματα αυτοματισμού πολυώροφων κτιρίων (π.χ. νοσοκομεία, ξενοδοχεία) ή άλλων μεγάλων εγκαταστάσεων (π.χ. αεροδρόμια), στα σιδηροδρομικά δίκτυα, στη γεωργία (δίκτυα άρδευσης, αυτοματοποίηση μεγάλων γεωργικών μονάδων) και αλλού. Ένα πολύ σημαντικό κομάτι ενός συστήματος SCADA είναι το λογισμικό του κέντρου ελέγχου. Η ποιότητα του λογισμικού αυτού είναι καθοριστικής σημασίας για την καλή λειτουργία ολόκληρου του συστήματος. Όταν το λογισμικό του κέντρου ελέγχου είναι απαλλαγμένο από σφάλματα και δυσλειτουργίες, ανταποκρίνεται σωστά και αξιόπιστα σε οτιδήποτε μπορεί να συμβεί κατά τη λειτουργία του συστήματος, είναι εύχρηστο, ευέλικτο και μπορεί να δεχτεί όλες τις απαιτούμενες επεκτάσεις, τότε το σύστημα SCADA είναι ένα πραγματικό εργαλείο, που διευκολύνει τη ζωή των χειριστών και τους επιτρέπει να εκτελούν την εργασία τους πολύ πιο αποδοτικά. Αντίθετα, όταν το λογισμικό του κέντρου ελέγχου δεν έχει τα παραπάνω χαρακτηριστικά, τότε το σύστημα SCADA αδυνατεί να καλύψει τις ανάγκες, για τις οποίες σχεδιάστηκε. Επιπλέον, τυχόν ελλείψεις ή αστοχίες στις συσκευές πεδίου, τους τοπικούς ελεγκτές ή το σύστημα επικοινωνίας μπορούν να διορθωθούν σχετικά εύκολα με απομάκρυνση των βαθμίδων, που δεν λειτουργούν ικανοποιητικά και αντικατάστασή τους από άλλες, διαφορετικής τεχνολογίας ή ανώτερης ποιότητας. Η αντικατάσταση αυτή δεν συνιστά αλλαγή συστήματος SCADA, υπό την προυπόθεση φυσικά ότι το υπάρχον κέντρο ελέγχου υποστηρίζει τις νέες βαθμίδες. Αντίθετα, αν το κέντρο ελέγχου δεν λειτουργεί ικανοποιητικά και πρέπει να αντικατασταθεί από άλλο, τότε δεν μιλάμε για διόρθωση ή αναβάθμιση του υπάρχοντος συστήματος αλλά για προμήθεια νέου συστήματος. Για το λόγο αυτό ο όρος SCADA χρησιμοποιείται συχνά στην πράξη με μια ειδικότερη έννοια και σημαίνει απλώς το λογισμικό του κέντρου ελέγχου και όχι ολόκληρο το σύστημα. Το κέντρο ελέγχου ενός συστήματος SCADA είναι ένα εξαιρετικά πολύπλοκο πρόγραμμα. Χρειάζεται να διαχειρίζεται σωστά έναν όγκο πληροφοριών πραγματικού χρόνου και να τις δρομολογεί σωστά με τέτοιο τρόπο ώστε ο κάθε χρήστης του συστήματος και η κάθε μηχανή, που συνδέεται σε αυτό, να έχει την πληροφορία, που χρειάζεται, τη στιγμή, που τη χρειάζεται και στη μορφή, που τη χρειάζεται. Επιπλέον, καθώς τόσο οι ανάγκες της επιχείρισης όσο και οι διαθέσιμες τεχνολογικές λύσεις δεν παραμένουν σταθερές σε όλη τη διάρκεια της ζωής του συστήματος αλλά μεταβάλλονται με την πάροδο του χρόνου, το λογισμικό του κέντρου ελέγχου πρέπει 2

3 να είναι αρκετά ευέλικτο και επεκτάσιμο, ώστε να μπορεί να προσαρμόζεται εύκολα και ομαλά στις καινούργιες κάθε φορά συνθήκες. Όπως έχει αποδειχτεί στην πράξη, οι απαιτήσεις από το λογισμικό των SCADA είναι πολλές φορές τόσο πολύπλοκες και τόσο πολύ διαφορετικές μεταξύ τους, ώστε να είναι αδύνατον να καλυφθούν από τις δυνατότητες ενός μόνου εργαλείου, όσο πλούσιο και αν είναι αυτό. Για το λόγο αυτό σήμερα θεωρείται πολύ σημαντικό ένα πρόγραμμα SCADA να μπορεί να συνεργάζεται με άλλα προγράμματα και να ενσωματώνει στις εφαρμογές του εξειδικευμένο λογισμικό άλλων κατασκευαστών όποτε χρειαστεί. Η αγορά ζητά κέντρα ελέγχου ανοιχτής αρχιτεκτονικής, βασισμένα σε καθιερωμένα διεθνή πρότυπα, τα οποία επιτέπουν τη συνένωση και τη συνεργασία ανεξάρτητων μεταξύ τους προϊόντων υλικού ή λογισμικού, τα οποία ενδεχομένως προέρχονται από διαφορετικούς κατασκευαστές. Η σύνδεση των διαφορετικών αυτών κοματιών και η ενσωμάτωσή τους σε ένα ολοκληρωμένο σύστημα πραγματοποιείται με τη βοήθεια ειδικών τεχνολογιών, που περιγράφονται συνολικά με τον όρο «τεχνολογίες ολοκλήρωσης» (integration technologies). Στις επόμενες ενότητες θα γνωρίσουμε κάποιες βασικές τέτοιες τεχνολογίες. Πιο συγκεκριμένα, θα δούμε τα κυριότερα χαρακτηριστικά τους και θα κάνουμε μια εισαγωγή στον προγραμματισμό με χρήση αυτών των τεχνολογιών. Πριν ασχοληθούμε όμως με συγκεκριμένες τεχνολογίες ολοκλήρωσης, ας αναφέρουμε λίγα πράγματα για τα χαρακτηριστικά και τις δυνατότητες των κέντρων ελέγχου των συστημάτων SCADA. 1.2 Συνηθισμένα Χαρακτηριστικά του Κέντρου Ελέγχου Ένα σημαντικό κομάτι του κέντρου ελέγχου είναι η βαθμίδα επικοινωνίας με το χειριστή (user interface UI). Σε παλαιότερες εποχές η βαθμίδα αυτή περιλάμβανε μιμικά διαγράμματα, που πολλές φορές ήταν τόσο μεγάλα ώστε κάλυπταν τους τοίχους ενός δωματίου. Τα διαγράμματα αυτά απεικόνιζαν σχηματικά ολόκληρη τη διεργασία και ήταν εφοδιαμένα με ένα μεγάλο αριθμό από ενδεικτικές λυχνίες, όργανα μέτρησης και κουμπιά χειρισμών, με τη βοήθεια των οποίων οι χειριστές έπαιρναν πληροφορίες ή έδιναν εντολές. Τα τελευταία χρόνια τα μιμικά διαγράμματα έχουν αντικατασταθεί από προγράμματα γραφικής απεικόνισης των πληροφοριών στην οθόνη του ηλεκτρονικού υπολογιστή. Οι οθόνες ενός μοντέρνου user interface αποτελούνται γενικά από στατικά και δυναμικά στοιχεία. Στατικά στοιχεία είναι εκείνα, που η εικόνα τους στην οθόνη δεν μεταβάλλεται κατά τη διάρκεια της λειτουργίας του προγράμμτος. Παραδείγματα τέτοιων στοιχείων είναι διάφοροι τίτλοι ή λογότυπα, που μπορεί να εμφανίζονται στις οθόνες και οι γραφικές απεικονίσεις των σταθερών τμημάτων της εγκατάστασης (σωληνώσεων, καλωδίων, λεβήτων, φούρνων, δεξαμενών, κλπ). Δυναμικά στοιχεία είναι αυτά, που η εμφάνισή τους στην οθόνη αλλάζει ανάλογα με τις τιμές των σημάτων της διαδικασίας ή ανάλογα με τις ενέργειες του χειριστή. Συνηθισμένα παραδείγματα δυναμικών στοιχείων είναι η απεικόνιση της κατάστασης ενός διακόπτη, της στάθμης μιας δεξαμενής, της θερμοκρασίας ενός λέβητα, των ωρών λειτουργίας μιας αντλίας, κ.λ.π. 1 1 Μερικές φορές στα δυναμικά στοιχεία της οθόνης συμπεριλαμβάνουμε και όσα αντικείμενα αντιδρούν με κάποιο τρόπο όταν ο χρήστης κάνει «κλικ» πάνω τους με το ποντίκι, έστω και άν η μορφή τους δεν μεταβάλλεται. 3

4 Προφανώς το μέγεθος μιας οθόνης υπολογιστή είναι πολύ μικρό για να μπορεί να χωρέσει ολόκληρη την εικόνα μιας εγκατάστασης με όλες τις λεπτομέρειες, που μπορεί να χρειαστούν οι χρήστες. Για το λόγο αυτό τα προγράμματα SCADA χρησιμοποιούν διάφορες τεχνικές τμηματικής παρουσίασης της πληροφορίας στην οθόνη. Μια συνηθισμένη τέτοια τεχνική είναι η δημιουργία μιας κεντρικής οθόνης, η οποία εμφανίζει τη συνολική εικόνα της εγκατάστασης, με ελάχιστες πληροφορίες για τα επιμέρους τμήματα. Από την οθόνη αυτή ο χρήστης μπορεί να επιλέξει ένα συγκεκριμένο τμήμα και να καλέσει μια άλλη οθόνη, η οποία εμφανίζει πιο αναλυτικά στοιχεία για τις βαθμίδες του τμήματος αυτού. Αν χρειάζεται, ο χρήστης μπορεί να προχωρήσει σε περισσότερο βάθος, ζητώντας πληροφορίες για μια από τις μηχανές του συγκεκριμένου τμήματος, για έναν από τους αισθητήρες, που βρίσκονται στη συγκλεκριμένη μηχανή, κ.οκ. Υπάρχει δηλαδή ένα ολόκληρο σύνολο από οθόνες, καθεμιά από τις οποίες εμφανίζει ένα διαφορετικό τμήμα της εγκατάστασης και οι οποίες είναι δομημένες ιεραρχικά με τρόπο ώστε τα διαφορετικά επίπεδα της ιεραρχίας να αντιστοιχούν σε διαφορετικά επίπεδα λεπτομέρειας της παρουσίασης. Μια άλλη πολύ συνηθισμένη τεχνική είναι η απεικόνιση τμημάτων της εγκατάστασης με τη βοήθεια ενός «παραθύρου», το οποίο μπορεί να μετακινείται ελεύθερα στο συνολικό διάγραμμα της εγκατάστασης. Στην οθόνη του χειριστή φαίνεται πάντα το περιεχόμενο του παραθύρου. Το μέγεθος του παραθύρου είναι δυνατόν να αυξομειώνεται με χρήση λειτουργιών μεγέθυνσης/σμίκρυνσης (zoom). Η λειτουργία μετακίνησης του παραθύρου αναφέρεται συχνά ως pan ή panning. Πολλά συστήματα SCADA περιλαμβάνουν και το λεγόμενο «χάρτη πλοήγησης» (navigation map). Πρόκειται για μια μικρογραφία του συνολικού διαγράμματος της εγκατάστασης, που εμφανίζεται συνήθως σε μια γωνιά της οθόνης και δείχνει κάθε φορά την τρέχουσα θέση και το μέγεθος του παραθύρου του χρήστη. Μια άλλη λειτουργία, που σχετίζεται με την αλλαγή μεγέθους του παραθύρου (zoom), είναι το λεγόμενο decluttering. Με τον όρο αυτό εννοούμε τη δυνατότητα του συστήματος να εμφανίζει στο χειριστή διαφορετικά επίπεδα λεπτομέρειας, ανάλογα με την ανάλυση της εικόνας. Ακριβέστερα, όσο περισσότερο ο χειριστής επικεντρώνεται σε ένα κομμάτι της εγκατάστασης κάνοντας zoom στην εικόνα, τόσο περισσότερα στοιχεία βλέπει για το κομάτι αυτό. Για παράδειγμα, η συνολική εικόνα μιας εγκατάστασης μπορεί να εμφανίζει κάποιους λέβητες με τις σωληνώσεις, που τους συνδέουν, και να εμφανίζει σχηματικά τη στάθμη του υγρού σε κάθε λέβητα. Κάνοντας zoom σε ένα τμήμα μπορεί να βλέπουμε επιπλέον και τις βαλβίδες, που υπάρχουν στο τμήμα αυτό. Μεγαλώνοντας περισσότερο την ανάλυση μπορεί να βλέπουμε επιπλέον και τη ροή κάθε βαλβίδας. Αν συνεχίσουμε να μεγαλώνουμε την ανάλυση μπορεί να δούμε κατά σειρά και τις ενδείξεις πίεσης και θερμοκρασίας, τα τεχνικά χαρακτηριστικά των βαλβίδων, κ.λ.π. 2 Όπως προαναφέραμε, σε ένα σύγχρονο SCADA, τα προγράμματα του κέντρου ελέγχου δεν κατασκευάζονται από το μηδέν αλλά συνθέτονται από προκατασκευασμένα κομάτια λογισμικού, που υποστηρίζουν τυποποιημένους τρόπους διασύνδεσης. Οι κατασκευαστές δεν παράγουν έτοιμες λύσεις αλλά ευέλικτες πλατφόρμες, που μπορούν να προσαρμόζονται στις ανάγκες και τις απαιτήσεις της κάθε εφαρμογής. Η τελική λύση δημιουργείται για κάθε πρόβλημα ξεχωριστά, διαμορφώνοντας, συμπληρώνοντας ή διασυνδέοντας τμήματα από τις βασικές αυτές πλατφόρμες. Οι εργασία αυτή μπορεί να γίνεται είτε από τον ίδιο τον κατασκευαστή της πλατφόρμας είτε από μια ξεχωριστή εταιρεία ανάπτυξης 2 Το παράδειγμα αυτό περιλαμβάνεται στο πρόγραμμα επίδειξης του Genesis, που χρησιμοποιείται στο εργαστήριο του μαθήματος. 4

5 ολοκληρωμένων συστημάτων (system integrator) είτε από τον τελικό χρήστη. Έτσι το κέντρο ελέγχου (και κατ επέκταση το όλο σύστημα SCADA) μπορεί να «χτίζεται» κατά παραγγελία για κάθε εφαρμογή, επιλέγοντας κάθε φορά από ένα σύνολο των υπαρχόντων τμημάτων εκείνα, τα οποία απαιτούνται για την κάλυψη των αναγκών της συγκεκριμένης εφαρμογής. Για το λόγο αυτό όλα τα προγράμματα SCADA (π.χ. το Genesis της εταιρείας Iconics, που παρουσιάζεται στο εργαστήριο του μαθήματος, το WinCC της εταιρείας Siemens κ.οκ.) περιλαμβάνουν και ένα περιβάλλον ανάπτυξης εφαρμογών, με το οποίο μπορεί να γίνει η σύνθεση και η διαμόρφωση των οθονών του κάθε συγκεκριμένου συστήματος. Το περιβάλλον ανάπτυξης επιτρέπει στο σχεδιαστή να τοποθετεί και να διαμορφώνει τα διάφορα στατικά και δυναμικά στοιχεία της κάθε οθόνης. Επιπλέον είναι συνήθως εφοδιασμένο με κάποιο είδος γλώσσας προγραμματισμού, με τη βοήθεια της οποίας μπορούν να υλοποιούνται σύνθετες δυναμικές συμπεριφορές, να προγραμματίζονται αυτόματες ενέργειες του συστήματος και να εκτελούνται αλγόριθμοι ελέγχου. Χάρη στις δυνατότητές τους αυτές τα προγράμματα SCADA επιτρέπουν στο σχεδιαστή της κάθε εφαρμογής να δημιουργεί με εύκολο και γρήγορο τρόπο εκείνες ακριβώς τις οθόνες, που χρειάζονται οι χειριστές της συγκεκριμένης εφαρμογής. 1.3 Ανάγκη για Τεχνολογίες Ολοκλήρωσης στα SCADA Τα SCADA είναι συνήθως εξειδικευμένα συστήματα, που σχεδιάζονται για να εξυπηρετούν πολύ συγκεκριμένες εφαρμογές (π.χ. την αυτοματοποίηση ενός εργοστασίου κατασκευής χαρτιού). Είναι σπάνιες οι περιπτώσεις, που ένα σύστημα μπορεί να εξυπηρετήσει και άλλες εφαρμογές εκτός από αυτή, για την οποία σχεδιάστηκε, χωρίς να υποστεί αλλαγές ή τροποποιήσεις. Από την άλλη μεριά, το λογισμικό του κέντρου ελέγχου ενός SCADA χρειάζεται συχνά να είναι εξαιρετικά πολύπλοκο, καθώς πρέπει να παρακολουθεί σύνθετες διαδικασίες, να λαμβάνει υπόψιν όλες τις περιπτώσεις, που μπορεί να συμβούν στην πράξη και να δίνουν στον κάθε χρήστη την πληροφορία, που χρειάζεται, τη στιγμή, που τη χρειάζεται και με τέτοιο τρόπο ώστε να μπορεί να την καταλάβει και να την αξιοποιήσει. Για παράδειγμα, δεν έχει νόημα να παρουσιάζει κανείς στον υπεύθυνο ασφαλείας μιας εγκατάστασης μια ατέλειωτη σειρά από αριθμούς, που παριστάνουν τις μετρήσεις όλων των μεταβλητών ανά πεντάλεπτο και να περιμένει από αυτόν να δεί αν κάποια τιμή έχει ξεφύγει από τα όρια ασφαλούς λειτουργίας. Για να είναι πραγματικά χρήσιμο ένα αυτόματο σύστημα θα πρέπει να ελέγχει τις τιμές, που μετράει και να ενημερώνει το προσωπικό μόνο όταν εντοπίσει κάποιο πρόβλημα. Ένα άλλο χαρακτηριστικό των SCADA είναι ότι πρέπει να μπορούν να υποστηρίζουν ένα μεγάλο αριθμό από διαφορετικές συσκευές πεδίου, που συναντούνται στην πράξη (PLC, ενσωματωμένα συστήματα, βιομηχανικά δίκτυα, προηγμένα αισθητήρια όργανα, κ.λ.π). Οι διαφορετικές αυτές συσκευές μπορεί να έχουν ποικίλα τεχνικά χαρακτηριστικά και να χρησιμοποιούν διάφορα πρωτόκολλα επικοινωνίας. Επιπλέον ένα σύστημα SCADA πρέπει να μπορεί να τροποποιείται εύκολα ώστε να παρακολουθεί τις τεχνολογικές εξελίξεις και να προσαρμόζεται κάθε φορά στα καινούργια δεδομένα της αγοράς (νέα τεχνολογικά πρότυπα ή πρωτόκολλα επικοινωνίας, καινούργιοι κανονισμοί ασφαλείας, κ.λ.π.). Κάτι πολύ σημαντικό είναι οι τροποποιήσεις και οι προσαρμογές αυτές να μπορούν να γίνονται με όσο το δυνατόν λιγότερες επεμβάσεις στον κώδικα λογισμικού του συστήματος. Οι αλλαγές του λογισμικού είναι διαδικασία δαπανηρή και χρονοβόρα καθώς απαιτούν ανθρώπους με πολύ εξειδικευμένες γνώσεις και μεγάλο αριθμό δοκιμών προκειμένου 5

6 να αποφευχθούν ανεπιθύμητες παρενέργειες όπως η εισαγωγή λογικών σφαλμάτων, που μπορεί να προκαλέσουν προβλήματα στην αξιοπιστία και την ασφαλή λειτουργία του συστήματος. Από την παραπάνω ανάλυση είναι προφανές ότι όσο καλή και αν είναι μια εφαρμογή λογισμικού (δηλαδή ένα πρόγραμμα φτιαγμένο για να λειτουργεί με ένα συγκεκριμένο τρόπο) δεν μπορεί να εξυπηρετήσει από μόνη της τις ανάγκες ενός SCADA κάποιας πολυπλοκότητας. Για να μπορεί ένα λογισμικό να χρησιμεύσει ως κέντρο ελέγχου ενός τέτοιου SCADA και ταυτόχρονα να έχει ένα λογικό κόστος, είναι πολύ σημαντικό να συγκροτείται από ανεξάρτητες μονάδες, καθεμιά από τις οποίες (α) εξυπηρετεί μια συγκεκριμένη λειτουργία, (β) μπορεί να τροποποιηθεί αλλάζοντας κάποιες παραμέτρους και όχι τον κώδικα και (γ) συνεργάζεται με τις άλλες μονάδες χρησιμοποιώντας γνωστά πρωτόκολλα και διαδικασίες. Όπως αναφέραμε και στην εισαγωγή, αυτό επιτυγχάνεται με τη χρήση κατάλληλων τεχνολογιών ολοκλήρωσης. Στο χώρο των Windows οι πιο διαδεδομένες τέτοιες τεχνολογίες είναι αυτές, που βασίζονται στο πρότυπο COM της Microsoft (OLE, Automation, ActiveX). Οι τεχνολογίες αυτές είναι γενικής χρήσεως, μπορούν δηλαδή να χρησιμοποιηθούν σε διάφορα είδη λογισμικού. Ειδικά για τα συστήματα SCADA έχει αναπτυχθεί και η τεχνολογία OPC (OLE for Process Control), η οποία βασίζεται επίσης στο πρότυπο COM. Ένα κοινό χαρακτηριστικό των τεχνολογιών αυτών είναι ότι επιτρέπουν σε ετερογενείς μονάδες υλικού ή λογισμικού από διάφορους κατασκευαστές να συνδέονται μεταξύ τους και να σχηματίζουν ολοκληρωμένα συστήματα. Αυτό έχει ως αποτέλεσμα να απλοποιείται σημαντικά η κατασκευή των συστημάτων, καθώς μεγάλο μέρος των εργασιών σχεδίασης και υλοποίησης ανάγεται στην αναζήτηση και επιλογή των κατάλληλων έτοιμων μονάδων από το εμπόριο. Έτσι είναι δυνατόν να κατασκευαστούν σε σύντομο χρονικό διάστημα και με μικρό σχετικά κόστος πολύπλοκα και εξειδικευμένα συστήματα, τα οποία λειτουργούν με ασφάλεια και αξιοπιστία και είναι πλήρως προσαρμοσμένα στις ανάγκες και τις ιδιαιτερότητες της κάθε εφαρμογής. 1.4 Η Τεχνολογία COM Η τεχνολογία COM συνδυάζει δύο βασικές φιλοσοφίες, που κυριαρχούν στην τεχνολογία του λογισμικού την τελευταία δεκαπενταετία: τον αντικειμενοστρεφή προγραμματισμό και τη δημιουργία επαναχρησιμοποιήσιμου κώδικα. Οι δύο αυτές φιλοσοφίες εντάσσονται στα πλαίσια μιας γενικότερης προσπάθειας για την αντιμετώπιση της αύξησης της πολυπλοκότητας των εφαρμογών, η οποία μεγαλώνει πολύ το κόστος των προγραμμάτων ενώ ταυτόχρονα μειώνει και την αξιοπιστία τους. Με τον αντικειμενοστρεφή προγραμματισμό προσπαθούμε να λύσουμε ένα σύνθετο πρόβλημα χωρίζοντάς το σε απλούστερα υποπροβλήματα, καθένα από τα οποία αντιστοιχεί σε ένα ανεξάρτητο αντικείμενο λογισμικού. Ο επαναχρησιμοποιήσιμος κώδικας, από την άλλη μεριά, αφορά τμήματα λογισμικού, που έχουν κατασκευαστεί με συγκεκριμένη τυποποίηση, η οποία τους επιτρέπει να χρησιμοποιούνται από πολλές διαφορετικές εφαρμογές. Οι δύο αυτές φιλοσοφίες δεν είναι εντελώς ανεξάρτητες μεταξύ τους καθώς ο επαναχρησιμοποιήσιμος κώδικας αποτελείται συνήθως από αντικείμενα. Το COM (Component Object Model) είναι η πιο καθιερωμένη από τις αντικειμενοστρεφείς τεχνολογίες επαναχρησιμοποιήσιμου κώδικα. Με απλά λόγια 6

7 μπορούμε να πούμε ότι το COM είναι ένας τυποποιημένος τρόπος για να φτιάχνουμε αντικείμενα λογισμικού, τα οποία να μπορούν να συνεργάζονται μεταξύ τους έστω και αν έχουν γραφτεί σε διαφορετικές γλώσσες προγραμματισμού ή διαφορετικά περιβάλλοντα ανάπτυξης. Το COM αναπτύχθηκε από τη Microsoft για τα λειτουργικά συστήματα της οικογένειας των Windows. Αντίστοιχες τεχνολογίες, που έχουν σχεδιαστεί από διεθνείς οργανισμούς τυποποίησης ή ενώσεις χρηστών δεν θέτουν περιορισμούς ως προς το λειτουργικό σύστημα (π.χ. μπορούν να χρησιμοποιηθούν και στο Unix). Η πιο γνωστή από τις τεχνολογίες αυτές είναι το CORBA (Component Object Request Broker Architecture) του οργανισμού Object Management Group. Στην πράξη όμως το COM έχει κατορθώσει να καθιερωθεί πολύ περισσότερο από τις άλλες τεχνολογίες. Αυτό δεν οφείλεται μόνο στα τεχνικά χαρακτηριστικά του αλλά και στη συστηματική προσπάθεια της Microsoft να το προωθήσει εμπορικά και να το υποστηρίξει ενσωματώντάς το σε όλα τα προϊόντα της. Η μεγάλη επιτυχία του COM ανάγκασε πολλούς κατασκευαστές να αναπτύξουν προϊόντα, που επιτρέπουν σε εφαρμογές άλλων λειτουργικών συστημάτων να συνεργάζονται με αντικείμενα Windows βασισμένα στο COM. Τέτοια προϊόντα υπάρχουν, για παράδειγμα, για τα λειτουργικά συστήματα ΑΙΧ και OS/400 της IBM, Solaris της SUN, OpenVMS, HP/UX, SINIX της Siemens Nixdorf, Linux κ.α. Αν και αποτελεί πνευματική ιδιοκτησία της Microsoft, το COM είναι ένα ανοιχτό πρότυπο, που μπορεί να χρησιμοποιηθεί από οποιονδήποτε. Οι πλήρεις προδιαγραφές του υπάρχουν στο διαδίκτυο και είναι στη διάθεση του κάθε ενδιαφερόμενου. Οι προδιαγραφές αυτές απευθύνονται κυρίως σε προγραμματιστές και περιγράφουν με λεπτομέρειες τα χαρακτηριστικά, που θα πρέπει να έχει ένα αντικείμενο λογισμικού για να μπορεί να συνεργαστεί με άλλα αντικείμενα σύμφωνα με τους κανόνες του COM. Η ιδέα του να διασυνδέονται διαφορετικές εφαρμογές των Windows έτσι ώστε να αποτελούν ένα ολοκληρωμένο σύστημα είναι αρκετά παλιά. Πριν εμφανιστεί το COM η Microsoft είχε εισάγει την τεχνολογία OLE (Object Linking and Embedding). Το OLE επιτρέπει στο χρήστη να τοποθετεί "αντικείμενα περιεχομένου" (content objects), που έχουν δημιουργηθεί από μια εφαρμογή μέσα σε "έγγραφα" (documents) μιας άλλης εφαρμογής. Για παράδειγμα, το OLE επιτρέπει την ενσωμάτωση ενός φύλλου εργασίας του Excel μέσα σε ένα κείμενο του Word. Στην περίπτωση αυτή το Excel ενεργεί ως εξυπηρετητής OLE (OLE server), που προσφέρει το αντικείμενο περιεχομένου "φύλλο εργασίας" και το Word ενεργεί ως "περίβλημα OLE" (OLE container), που "φιλοξενεί" (host) το αντικείμενο. Το πρωτόκολλο του OLE είναι αρκετά πολύπλοκο και περιγράφει πώς ένας εξυπηρετητής OLE μπορεί να μιλάει με ένα περίβλημα OLE και αντίστροφα. Η αρχική μορφή του OLE (έκδοση 1.0) βασιζόταν στην τεχνολογία DDE (Dynamic Data Exchange). Το DDE ήταν ένας μηχανισμός των Windows, που επέτρεπε σε μια εφαρμογή να στέλνει δεδομένα ή εντολές σε μια άλλη εφαρμογή (υπό την προϋπόθεση φυσικά ότι και οι δύο εφαρμογές είχαν σχεδιαστεί έτσι ώστε να υποστηρίζουν το DDE). Με τον καιρό αποδείχτηκε ότι το DDE δεν ήταν όσο ισχυρό χρειαζόταν. Οι δυνατότητές του ήταν πολύ περιορισμένες και δεν μπορούσαν να καλύψουν τις ανάγκες της αγοράς. Για το λόγο αυτό οι ειδικοί της Microsoft επινόησαν το COM. Ταυτόχρονα εμφάνισαν και μια νέα έκδοση του OLE (έκδοση 2.0), που δεν χρησιμοποιούσε DDE για την επικοινωνία μεταξύ των διαφορετικών εφαρμογών αλλά στηριζόταν στο καινούργιο πρότυπο COM. Για αρκετό καιρό μάλιστα η Microsoft επέμενε να χρησιμοποιεί τον όρο OLE για κάθε νέα τεχνολογία, που βασιζόταν στο COM. Έτσι μιλούσε για OLE 7

8 Automation, OLE Controls 3, κ.ο.κ. Σύμφωνα με τα τότε λεγόμενα της Microsoft το OLE δεν ήταν πια ένα ακρώνυμο αλλά ένας νέος τεχνικός όρος, ο οποίος περιέγραφε συνολικά όλες τις τεχνολογίες, που χρησιμοποιούσαν το πρότυπο COM. Η κατάσταση άλλαξε γύρω στο 1995 οπότε η Microsoft καθιέρωσε τα ActiveX και δήλωσε ότι o όρος OLE επανέρχεται στην αρχική του σημασία (Object Linking and Embedding). Αποτέλεσμα όλης αυτής της ιστορίας ήταν να δημιουργηθεί μια σύγχυση και πολλοί τεχνικοί να χρησιμοποιούν εσφαλμένα τον όρο OLE σαν συνώνυμο του COM. Για να ξεκαθαρίσουμε λοιπόν την κατάσταση τονίζουμε ότι OLE και COM είναι δύο διαφορετικά πράγματα. Το COM είναι ένα μοντέλο αντικειμένων (object model), δηλαδή μια τυποποίηση, στην οποία στηρίζονται τεχνολογίες όπως το Automation ή το ActiveX. To OLE είναι ο μηχανισμός, που μας επιτρέπει να ενσωματώνουμε π.χ. ένα φύλλο εργασίας του Excel μέσα σε ένα κείμενο του Word. Κάθε αντικείμενο COM παρέχει στις διάφορες εφαρμογές, που θέλουν να το χρησιμοποιήσουν, έναν αριθμό από μεθόδους. Όπως είναι γνωστό, ο όρος "μέθοδοι" στον αντικειμενοστρεφή προγραμματισμό δηλώνει τα υποπρογράμματα (συναρτήσεις), που υλοποιούν τις λειτουργίες ενός αντικειμένου. Οι μέθοδοι ενός αντικειμένου COM είναι οργανωμένες σε μια ή περισσότερες ομάδες, που ονομάζονται interfaces. Συνήθως οι μέθοδοι, που ανήκουν στο ίδιο interface, υλοποιούν λειτουργίες, που έχουν κάποιο κοινό χαρακτηριστικό (π.χ. ένα interface μπορεί να περιλαμβάνει τις μεθόδους, που εκτελούν αριθμητικές πράξεις, ένα άλλο interface τις μεθόδους, που ζωγραφίζουν κάτι στην οθόνη, κ.ο.κ.). Σχηματικά τα interfaces ενός αντικειμένου COM παριστάνονται με τον τρόπο, που δείχνει το σχ. 1. Interfaces Αντικείμενο COM Σχήμα 1: Ένα αντικείμενο COM και τα interfaces του Η Microsoft έχει προκαθορίσει πάνω από 100 διαφορετικά interfaces, που μπορούν να υποστηρίζονται από οποιοδήποτε αντικείμενο COM. Τα interfaces αυτά ονομάζονται standard interfaces. Επιπλέον οι προγραμματιστές COM είναι ελεύθεροι να ορίζουν και οτιδήποτε άλλα interfaces χρειάζονται για την εφαρμογή τους. Τα interfaces αυτά ονομάζονται custom interfaces. Ένα αντικείμενο COM μπορεί να χρησιμοποιεί είτε standard interfaces είτε custom interfaces είτε ένα συνδυασμό από standard και custom interfaces. Όλα τα αντικείμενα COM πρέπει να υλοποιούν ένα ειδικό standard interface, που ονομάζεται IUnknown 4. To IUnknown περιλαμβάνει τρείς μεθόδους: την QueryInterface, την AddRef και την Release. H QueryInterface μας επιστρέφει ένα δείκτη (pointer) προς ένα άλλο interface του αντικειμένου. Με απλά λόγια μπορούμε να πούμε ότι ο δείκτης αυτός δεν είναι τίποτε άλλο παρά η διεύθυνση μιας περιοχής μνήμης, στην οποία μπορούμε να βρούμε τις διευθύνσεις του κώδικα των μεθόδων του interface ώστε να μπορέσουμε να τις καλέσουμε. Οι μέθοδοι AddRef και Release 3 Οι τεχνολογίες αυτές περιγράφονται συνοπτικά παρακάτω. 4 Το να ξεκινούν τα ονόματα των interfaces με ένα κεφαλαίο I αποτελεί τη συνηθισμένη πρακτική στον προγραμματισμό των αντικειμένων COM. 8

9 διαχειρίζονται ένα μετρητή, που μας δείχνει σε κάθε στιγμή πόσα προγράμματα χρησιμοποιούν το συγκεκριμένο αντικείμενο COM. Όταν ο μετρητής αυτός φτάσει στο μηδέν σημαίνει ότι το αντικείμενο COM δεν χρησιμοποιείται από κανένα πρόγραμμα και συνεπώς μπορεί να απομακρυνθεί από τη μνήμη του υπολογιστή. Κάθε interface χαρακτηρίζεται από ένα μοναδικό αριθμό 128 bit, που ονομάζεται IID (Interface Identifier). Επίσης κάθε κλάση (class 5 ) αντικειμένων COM χαρακτηρίζεται από έναν παρόμοιο αριθμό 128 bit, που ονομάζεται CLSID (class ID). Στη βιβλιογραφία του προγραμματισμού COM χρησιμοποιείται ακόμη ο όρος GUID (globally unique identifier), ο οποίος δηλώνει γενικά έναν αριθμό 128 bit, που χρησιμεύει ως ταυτότητα (identifier) για κάποιο είδος οντοτήτων. Με άλλα λόγια τόσο τα IID όσο και τα CLSID είναι ειδικές περιπτώσεις GUID. Το πρότυπο COM βασίζεται στην αρχιτεκτονική πελάτη/εξυπηρετητή (client/server). Το αντικείμενο COM είναι ο εξυπηρετητής ενώ το πρόγραμμα, που καλεί τις μεθόδους του COM, είναι ο πελάτης. Ακριβέστερα, η Microsoft ορίζει ως εξυπηρετητή COM ένα εκτελέσιμο αρχείο, που υλοποιεί ένα αντικείμενο COM. To registry των windows και συγκεκριμένα η περιοχή HKEY_CLASSES_ROOT\CLSID περιέχει πληροφορίες, που συσχετίζουν τα CLSID με τα εκτελέσιμα αρχεία των αντικειμένων COM. Υπάρχουν δύο βασικές παραλλαγές εξυπηρετητών COM: οι inprocess servers και οι out-of-process servers. Οι in-process servers είναι αρχεία τύπου DLL (dynamically linked libraries). Ονομάζονται in-process διότι εκτελούνται στην ίδια διαδικασία (process 6 ) με τον πελάτη (με άλλα λόγια δηλαδή μοιράζονται τον ίδιο χώρο μνήμης με τον πελάτη). Αντίθετα, οι out-of-process servers είναι αρχεία EXE, που εκτελούνται σε ξεχωριστή διαδικασία από τον πελάτη. Οι in-process servers είναι συνήθως πολύ πιο γρήγοροι από τους out-of-process servers. Η κλήση μιας μεθόδου ενός in-process server δεν διαφέρει πολύ από την κλήση μιας υπορουτίνας του πελάτη. Αντίθετα, η κλήση μιας μεθόδου ενός out-of-process server μπορεί να είναι μέχρι και 1000 φορές πιο αργή, καθώς για να πραγματοποιηθεί πρέπει να ενεργοποιηθούν διάφορες ρουτίνες του λειτουργικού συστήματος, που διαχειρίζονται την επικοινωνία μεταξύ διαφορετικών διαδικασιών. Από την άλλη μεριά, οι out-ofprocess servers παρέχουν μεγαλύτερη ασφάλεια καθώς ο πελάτης και ο εξυπηρετητής χρησιμοποιούν διαφορετικές περιοχές της μνήμης. Η έκδοση 4.0 των Windows NT εισήγαγε μια νέα τεχνολογία, που ονομάστηκε Distributed COM (DCOM). Το DCOM επιτρέπει στους out-of-process εξυπηρετητές COM να εκτελούνται σε διαφορετικούς υπολογιστές από αυτόν του πελάτη. Αργότερα το service pack 2 των Windows NT 4.0 επέτρεψε και στους οι in-process εξυπηρετητές COM να εκτελούνται σε διαφορετικούς υπολογιστές χρησιμοποιώντας έναν μηχανισμό, ο οποίος βασίζεται σε κάποια ειδικά αρχεία EXE, που ονομάζονται "τοποτηρητές" (surrogate) και επιτρέπουν την εκτέλεση DLLs από απομακρυσμένους υπολογιστές. Για να διακρίνουν τους out-of-proc servers, που εκτελούνται στον ίδιο υπολογιστή με τον πελάτη από αυτούς, που εκτελούνται σε διαφορετικό υπολογιστή, οι προγραμματιστές COM χρησιμοποιούν συχνά του όρους τοπικός εξυπηρετητής (local server) και απομακρυσμένος εξυπηρετητής (remote server). Έτσι λοιπόν έχουμε τρείς κατηγορίες εξυπηρετητών COM: 5 Η έννοια του class θεωρείται γνωστή από τον αντικειμενοστρεφή προγραμματισμό. 6 Υπενθυμίζεται ότι στην ορολογία του λογισμικού μια διαδικασία (process) είναι ένα πρόγραμμα, που έχει φορτωθεί στη μνήμη του υπολογιστή. 9

10 (α) in-process servers, που εκτελούνται στην ίδια διαδικασία με τον πελάτη (δηλαδή μοιράζονται τον ίδιο χώρο μνήμης). (β) τοπικούς out-of-process servers, που εκτελούνται σε διαφορετική διαδικασία του ίδιου υπολογιστή. (γ) απομακρυσμένους out-of-process servers, που εκτελούνται σε διαφορετικό υπολογιστή. Ένα άλλο σημείο, που θα πρέπει να τονιστεί είναι ότι η δομή ενός τοπικού εξυπηρετητή out-of-process δεν διαφέρει σε τίποτα από αυτή ενός απομακρυσμένου. Αντίθετα ένας εξυπηρετητής τύπου in-process διαφέρει σημαντικά από έναν εξυπηρετητή τύπου out-of-process. Όπως προαναφέραμε, η κλήση μιας μεθόδου ενός εξυπηρετητή in-process δεν διαφέρει πολύ από την κλήση μιας υπορουτίνας του πελάτη. Αντίθετα, όταν ένας πελάτης καλεί μια μέθοδο ενός εξυπηρετητή out-of-process, ενεργοποιούνται οι μηχανισμοί του COM, οι οποίοι καθιστούν δυνατή την επικοινωνία μεταξύ των διαφορετικών διαδικασιών. Η βασική ιδέα των μηχανισμών αυτών εικονίζεται στο σχ. 2. Χώρος μνήμης διαδικασίας πελάτη Χώρος μνήμης διαδικασίας εξυπηρετητή Πελάτης Proxy Stub Εξυπηρετητής Σχήμα 2: Ο βασικός μηχανισμός κλήσης μιας μεθόδου ενός out-of-process εξυπηρετητή COM Όπως βλέπουμε, στο χώρο μνήμης της διαδικασίας του πελάτη υπάρχει ένα αντικείμενο proxy, που έχει τα ίδια interfaces με τον εξυπηρετητή. Αντίστοιχα, στο χώρο μνήμης της διαδικασίας του εξυπηρετητή, υπάρχει ένα άλλο αντικείμενο (stub), που επικοινωνεί με τον proxy χρησιμοποιώντας κάποιο μηχανισμό IPC (inter-process communication). Όταν ο πελάτης θέλει να χρησιμοποιήσει κάποια από τις μεθόδους του εξυπηρετητή, καλεί την αντίστοιχη μέθοδο του proxy. Ο proxy μεταβιβάζει την κλήση στο stub, το οποίο καλεί τη μέθοδο του εξυπηρετητή. Μετά την ολοκλήρωση της μεθόδου το stub επιστρέφει το αποτέλεσμα στον proxy και ο proxy στον πελάτη. Το COM περιέχει έτοιμα αντικείμενα proxy και stub για όλα τα standard interfaces. Στην περίπτωση, που ο εξυπηρετητής υλοποιεί κάποια custom interfaces, τα αντικείμενα proxy και stub πρέπει να δημιουργηθούν από τον προγραμματιστή. Για το σκοπό αυτό η Microsoft χρησιμοποιεί μια ειδική γλώσσα, που ονομάζεται IDL (Interface Definition Language). 1.5 Η Τεχνολογία Automation Όπως γίνεται φανερό από την παραπάνω παρουσίαση, το βασικό πρόβλημα του COM είναι ότι είναι αρκετά δύσχρηστο. Για να το χρησιμοποιήσει κανείς χρειάζεται να ξέρει ένα πλήθος τεχνικές λεπτομέρειες για ένα αριθμό από interfaces, καθένα από τα οποία αποτελείται από πολλές διαφορετικές συναρτήσεις. Για το λόγο αυτό η Microsoft έχει δημιουργήσει μια ολόκληρη οικογένεια από τεχνολογίες, που 10

11 βασίζονται στο COM αλλά είναι πιο φιλικές προς το χρήστη. Οι τεχνολογίες αυτές επιτρέπουν στους προγραμματιστές των εφαρμογών να χρησιμοποιούν το COM χωρίς να γνωρίζουν όλες τις τεχνικές του λεπτομέρειες. Η βασική τεχνολογία της κατηγορίας αυτής είναι το automation. Το automation επιτρέπει στους προγραμματιστές να επικοινωνούν με αντικείμενα COM χρησιμοποιώντας απλές εντολές σε συνηθισμένες γλώσσες προγραμματισμού. Αρχικά η μόνη τέτοια γλώσσα προγραμματισμού, που συνεργαζόταν με την τεχνολογία automation ήταν η Visual Basic 7. Σήμερα η τεχνολογία automation υποστηρίζεται από τις περισσότερες γλώσσες και περιβάλλοντα προγραμματισμού, που χρησιμοποιούνται στα Windows 8 (Delphi, APL, Java, JScript, VBScript, Perl, Php, Python, Ruby, Matlab, κ.λ.π.). Επιπλέον μπορεί κανείς να χρησιμοποιήσει το automation και από τις γλώσσες C ή С++. Κάτι τέτοιο όμως δεν συνιστάται, καθώς η σύνταξη των εντολών είναι αρκετά περίπλοκη και απαιτεί εξιδεικευμένες γνώσεις και εμπειρία ανάλογη με αυτή του COM. Αντίθετα, οι γλώσσες και τα περιβάλλοντα, που προαναφέραμε, αποκρύπτουν την πολυπλοκότητα και προσφέρουν στον προγραμματιστή έναν εύκολο τρόπο για να χρησιμοποιεί τις δυνατότητες των εξυπηρετητών automation 9. Οι εξυπηρετητές automation είναι στην πραγματικότητα εξυπηρετητές COM, που μπορεί να είναι είτε in-process είτε out-of-process. Το ιδιαίτερο χαρακτηριστικό τους είναι ότι υλοποιούν ένα συγκεκριμένο interface, που ονομάζεται IDispatch. H σημαντικότερη από της μεθόδους του IDispatch είναι η Invoke, η οποία επιτρέπει στους πελάτες να καλούν μεθόδους ή να διαχειρίζονται ιδιότητες του εξυπηρετητή. Για το σκοπό αυτό κάθε μέθοδος και κάθε ιδιότητα ενός εξυπηρετητή automation χαρακτηρίζεται από έναν ακέραιο αριθμό, που ονομάζεται dispatch ID (ή dispid). Έτσι όταν ο πελάτης θέλει να επικοινωνήσει με τον εξυπηρετητή, καλεί τη μέθοδο Invoke δίνοντάς της σαν παράμετρο το dispid της συγκεκριμένης μεθόδου ή ιδιότητας, που θέλει να χρησιμοποιήσει. Μια άλλη παράμετρος της Invoke oρίζει αν ο πελάτης θέλει να καλέσει μια μέθοδο του εξυπηρετητή, να διαβάσει μια ιδιότητα ή να γράψει μια ιδιότητα. Τα dispid των διαφόρων μεθόδων και ιδιοτήτων μπορούν να βρεθούν από μια άλλη μέθοδο του IDispatch interface, που ονομάζεται GetIDsOfNames. H μέθοδος αυτή δέχεται σαν παράμετρο το συμβολικό όνομα μιας μεθόδου ή μιας μεταβλητής και επιστρέφει σαν αποτέλεσμα το αντίστοιχο dispid. Το πλεονέκτημα της τεχνολογίας automation είναι ότι ο συνηθισμένος προγραμματιστής δεν χρειάζεται να ξέρει τίποτα για όλη αυτή τη διαδικασία. Όλος ο χειρισμός των interfaces και των μεθόδων του COM γίνεται αυτόματα από τo περιβάλλον της γλώσσας προγραμματισμού. Όπως είπαμε, η τεχνολογία COM είναι καθαρά αντικειμενοστρεφής (χρησιμοποιεί αποκλειστικά και μόνον αντικείμενα λογισμικού). Το ίδιο ισχύει και για όλες τις τεχνολογίες, που στηρίζονται στο COM. Βασική λοιπόν προϋπόθεση για 7 Και η VBA (Visual Basic for Applications), μια έκδοση της Visual Basic, που είναι ενσωματωμένη σε άλλες εφαρμογές (π.χ. Excel, Word, Powerpoint, κλπ) και χρησιμεύει για τον προγραμματισμό μακρο-εντολών, που αυτοματοποιούν την εκτέλεση διαφόρων εργασιών με τις εφαρμογές αυτές. Από αυτή τη δυνατότητα αυτοματοποίησης της λειτουργίας των διαφόρων εφαρμογών πήρε και το όνομά της η τεχνολογία automation. 8 Σε κάποια από τα περιβάλλοντα αυτά η δυνατότητα υποστήριξης της τεχνολογίας Automation μπορεί να απαιτεί την εγκατάσταση πρόσθετου λογισμικού. Ειδικά στη Java, η απευθείας ενσωμάτωση μιας τεχνολογίας των Windows (ή οποιουδήποτε άλλου λειτουργικού συστήματος) θα ερχόταν σε αντίθεση με τη βασική φιλοσοφία της γλώσσας, που είναι η ανεξαρτησία από τις ιδιαιτερότητες της πλατφόρμας, στην οποία εκτελείται το πρόγραμμα. 9 Δηλαδή των εξυπηρετητών СOM, που υποστηρίζουν πρόσβαση μέσω της τεχνολογίας automation. 11

12 να μπορεί μια γλώσσα (ή ένα περιβάλλον) προγραμματισμού να υποστηρίζει τεχνολογίες COM είναι να επιτρέπει το χειρισμό αντικειμένων. Πρέπει δηλαδή να είναι αντικειμενοστρεφής ή τουλάχιστον να έχει κάποια αντικειμενοστρεφή χαρακτηριστικά. Ειδικότερα, όλα τα περιβάλλοντα, που χρησιμοποιούν automation, επιτρέπουν στον προγραμματιστή (α) να δημιουργεί και να διαχειρίζεται αντικείμενα, (β) να καλεί μεθόδους των αντικειμένων αυτών (γ) να χρησιμοποιεί ιδιότητες.των αντικειμένων αυτών και (δ) να χρησιμοποιεί «συλλογές» (collections) από αντικείμενα. Στη συνέχεια θα παρουσιάσουμε αναλυτικότερα τις λειτουργίες αυτές χρησιμοποιώντας συγκεκριμένα παραδείγματα από δύο περιβάλλοντα ανάπτυξης: τη Visual Basic και το Matlab. Επιλέξαμε τα συγκεκριμένα περιβάλλοντα διότι η μεν Visual Basic είναι μια από τις πιο απλές και πιο συνηθισμένες γλώσσες προγραμματισμού για εφαρμογές Windows, το δε Matlab είναι ιδιαίτερα οικείο στους σπουδαστές του Τμήματος Αυτοματισμού καθώς χρησιμοποιείται σε πολλά εργαστηριακά μαθήματα. Στα παραδείγματα, που θα παρουσιάσουμε, η σύνταξη των εντολών αφορά τις εκδόσεις 6.3 της Visual Basic (η έκδοση, που περιλαμβάνεται στην έκδοση 7 του Genesis, που χρησιμοποιείται στο εργαστήριο του μαθήματος) και 7.1 του Matlab. Αλλες εκδόσεις των προγραμμάτων ενδέχεται να χρειάζονται λίγο διαφορετική σύνταξη, η οποία περιγράφεται επακριβώς στα εγχειρίδια των κατασκευαστών Δημιουργία και διαχείριση αντικειμένων Όλα τα περιβάλλοντα προγραμματισμού, που υποστηρίζουν την τεχνολογία automation, επιτρέπουν στον προγραμματιστή να δημιουργεί αντικείνενα, που αντιστοιχούν σε εξυπηρετητές και να ορίζει μεταβλητές, για να αναφέρεται στα αντικείμενα αυτά. Μια από τις ευκολίες του automation είναι ότι οι κλάσεις των αντικειμένων μπορούν να προσδιορίζονται με συμβολικά ονόματα αντί για τους αριθμούς 128 bit (CLSID) του COM. Τα συμβολικά αυτά ονόματα ονομάζονται progid και ορίζονται για κάθε κλάση αντικειμένων από τον κατασκευαστή της. Τα progid όλων των κλάσεων, που έχουν εγκατασταθεί σε ένα σύστημα Windows, φυλάσσονται στο registry μαζί με τα αντίστοιχα CLSID. Για παράδειγμα, το progid του excel είναι excel.application, το progid του Matlab είναι matlab.application, ενώ το progid του GraphWorx είναι GWX32.Display. Στη Visual Basic, ο πιο απλός τρόπος για να δημιουργήσουμε ένα αντικείμενο automation είναι να χρησιμοποιήσουμε την εντολή CreateObject με παράμετρο το progid του αντικειμένου. Συνήθως δηλώνουμε και μια μεταβλητή τύπου object για να αναφερόμαστε στο αντικείμενο. Η δήλωση της μεταβλητής γίνεται με την εντολή Dim και η σύνδεσή της με το αντικείμενο γίνεται με την εντολή Set. Για παράδειγμα, αν θέλουμε να δημιουργήσουμε ένα αντικείμενο Excel (δηλαδή να ξεκινήσουμε το Excel ως εξυπηρετητή automation) και να το συνδέσουμε με μια μεταβλητή a θα πρέπει να δώσουμε τις εντολές Dim a as Object Set a = CreateObject("excel.application") Όταν ολοκληρώσουμε την εργασία μας με το Excel μπορούμε να δώσουμε την εντολή Set a = Nothing 12

13 για να απελευθερώσουμε τη μνήμη, που είχε δεσμευθεί για την επικοινωνία με τον εξυπηρετητή automation, ώστε να μπορεί να χρησιμοποιηθεί από άλλα προγράμματα. Στο Matlab η δημιουργία του αντικειμένου (και η σύνδεσή του με μια μεταβλητή, αν θέλουμε) γίνεται με την εντολή actxserver. Έτσι, το παράδειγμα, που είδαμε προηγουμένως, υλοποιείται στο Matlab με την εντολή a = actxserver('excel.application') Επιπλέον το Matlab έχει τη δυνατότητα, μέσω της τεχνολογίας automation, να τοποθετεί αντικείμενα άλλων εφαρμογών μέσα σε παράθυρα εικόνων του (figure). Αυτό επιτυγχάνεται με την εντολή actxcontrol. Για παράδειγμα, η εντολή a = actxcontrol('gwxswitch.gwxswitchctrl.1') ανοίγει ένα νέο παράθυρο εικόνας του Matlab και τοποθετεί σε αυτό ένα αντικείμενο από τη κλάση, που έχει το progid GWXSWITCH.GWXSwitchCtrl.1. (Το συγκεκριμένο αντικείμενο είναι ο διακόπτης on-off, που χρησιμοποιούμε στις οθόνες του GraphWorx σε κάποιες εργαστηριακές ασκήσεις, δηλαδή ένα αντικείμενο του Genesis). Αν θέλουμε, μπορούμε να αναφερόμαστε σε ένα αντικείμενο και με περισσότερες από μία μεταβλητές. Για παράδειγμα, αν η μεταβλητή a έχει σαν τιμή ένα αντικείμενο, τότε η εντολή b = a κάνει και τη μεταβλητή b να αναφέρεται στο ίδιο αντικείμενο. Σημειώνεται ότι στο Matlab δεν χρειάζεται να δώσουμε κάποια ειδική εντολή για να απελευθερώσουμε τη μνήμη, που έχει δεσμευθεί για κάποιο αντικείμενο 10. Η μνήμη αυτή απελευθερώνεται αυτόματα μόλις το αντικείμενο πάψει να είναι προσβάσιμο. Για παράδειγμα, αν η μόνη μεταβλητή, που μας δίνει πρόσβαση στο συγκεκριμένο αντικείμενο είναι η a και δώσουμε την εντολή a = 5 τότε η μεταβλητή a παίρνει μια νέα τιμή (το 5) και δεν έχουμε πια κανένα τρόπο για να ανφερόμαστε στο αντικείμενο. Στην περίπτωση αντικειμένων, που τοποθετούνται σε παράθυρα εικόνας με την εντολή actxcontrol, η πρόσβαση στο αντικείμενο χάνεται όταν κλείσουμε το παράθυρο εικόνας Κλήση μεθόδων Όπως είναι γνωστό από τον αντικειμενοστρεφή προγραμματισμό, οι μέθοδοι ενός αντικειμένου μπορούν να παίρνουν ορίσματα (παραμέτρους) και/ή να επιστρέφουν κάποιο αποτέλεσμα. Οι προδιαγραφές του automation καθορίζουν τους τύπους δεδομένων, που μπορούν να λαμβάνουν ως παραμέτρους ή να επιστρέφουν ως αποτέλεσμα οι διάφορες μέθοδοι. Από εκεί και πέρα το κάθε περιβάλλον προγραμματισμού έχει τους δικούς του κανόνες σχετικά με το ποιούς από αυτούς τους τύπους δεδομένων υποστηρίζει καθώς και για το πώς γίνεται η μετατροπή από τους τύπους δεδομένων της συγκεκριμένης γλώσσας προγραμματισμού στους τύπους δεδομένων της τεχνολογίας automation και αντίστροφα. 10 Τέτοια εντολή υπάρχει (είναι η εντολή clear) αλλά δεν είναι απαραίτητο να τη δώσουμε, αν δεν έχουμε κάποιο άλλο λόγο να καθαρίσουμε τη μνήμη. 13

14 Γενικά για να καλέσουμε μια μέθοδο γράφουμε το αντικείμενο ακολουθούμενο από μια τελεία και μετά το όνομα της μεθόδου και τις τυχόν παραμέτρους μέσα σε παρένθεση. Η σύνταξη αυτή μπορεί να χρησιμοποιηθεί σε όλα σχεδόν τα περιβάλλοντα προγραμματισμού, συμπεριλαμβάνοντας τη Visual Basic και το Matlab 11. Ας δούμε μερικά παραδείγματα 12. (α) Κλήση μεθόδου χωρίς παραμέτρους, που δεν επιστρέφει κάποιο αποτέλεσμα Ας υποθέσουμε ότι η μεταβλητή a αναφέρεται σε ένα αντικείμενο (εξυπηρετητή) automation, που αντιστοιχεί στο Excel (ένα στιγμιότυπο της κλάσης, που έχει το progid Excel.application, όπως είδαμε παραπάνω). Η εντολή a.quit (στη Visual Basic, στο Matlab ή σε κάποιο άλλο περιβάλλον προγραμματισμού) καλεί τη μέθοδο Quit, η οποία τερματίζει την εφαρμογή (ισοδυναμεί δηλαδή με την επιλογή File Exit από το μενού του προγράμματος). Αντίστοιχα, η εντολή a.findfile εμφανίζει το γνωστό παράθυρο των εφαρμογών Windows, από το οποίο επιλέγουμε το αρχείο, που θέλουμε να ανοίξουμε (ισοδυναμεί δηλαδή με την επιλογή File Open του μενού). (β) Κλήση μεθόδου χωρίς παραμέτρους, που επιστρέφει κάποιο αποτέλεσμα. Έστω ότι η μεταβλητή a αναφέρεται σε μια οθόνη του GraphWorx (ένα στιγμιότυπο της κλάσης με progid GWX32.Display, όπως αναφέραμε παραπάνω). Η μέθοδος GetNumberOfTopLevelVisibles μας λέει πόσα σχεδιαστικά αντικείμενα (γραμμές, τετράγωνα, κύκλοι κ.λ.π) 13 έχουμε τοποθετήσει στην οθόνη. Έτσι, η παρακάτω εντολή Matlab μας εμφανίζει στην οθόνη το πλήθος των αντικειμένων αυτών. a.getnumberοftoplevelvisibles Φυσικά μπορούμε να αποθηκεύσουμε το αποτέλεσμα της μεθόδου σε μια μεταβλητή n, χρησιμοποιώντας τη σύνταξη n = a.getnumberοftoplevelvisibles Η ίδια αυτή σύνταξη ισχύει και στη Visual Basic (όπως και σε όλα σχεδόν τα περιβάλλοντα προγραμματισμού, που υποστηρίζουν automation). Σύμφωνα με τα εγχειρίδια (Help files) του Genesis, το αποτέλεσμα, που επιστρέφει η μέθοδος GetNumberOfTopLevelVisibles, είναι τύπου Long (ακέραιος αριθμός 32 bit). Αυτό θα πρέπει να το λαμβάνουμε υπόψη όταν χρησιμοποιούμε κάποιο περιβάλλον, που 11 Υπάρχουν και εναλλακτικοί τρόποι σύνταξης, με τους οποίους όμως δεν θα ασχοληθούμε για λόγους απλότητας της παρουσίασης και οικονομίας χώρου. Για περισσότερες πληροφορίες ο αναγνώστης παραπέμπεται στα εγχειρίδια των αντίστοιχων προγραμμάτων. 12 Εδώ θα παραθέσουμε απλώς ενδεικτικά μερικές περιπτώσεις χρήσης κάποιων μεθόδων. Αναλυτική περιγραφή των μεθόδων αυτών καθώς και όλων των μεθόδων, που υποστηρίζουν τα αντίστοιχα αντικείμενα, υπάρχουν στα εγχειρίδια και τα help files των προγραμμάτων. 13 Στο περιβάλλον του Genesis όλα αυτά τα αντικείμενα θεωρούνται ότι ανήκουν σε μια κλάση με όνομα GWXVisible. 14

15 απαιτεί να δηλώνουμε τον τύπο των μεταβλητών. Για παράδειγμα, στη Visual Basic χρειάζεται να έχουμε δηλώσει τη μεταβλητή n στην αρχή του προγράμματος δίνοντας την εντολή Dim n as Long (γ) Κλήση μεθόδου με παραμέτρους, που δεν επιστρέφει κάποιο αποτέλεσμα Όπως και στο προηγούμενo παράδειγμα, ας υποθέσουμε ότι η μεταβλητή a αναφέρεται σε ένα στιγμιότυπο της κλάσης GWX32.Display (μια οθόνη του GraphWorx). Η μέθοδος CreateLayer παίρνει σαν παράμετρο μια συμβολοσειρά (string) και δημιουργεί ένα καινούργιο επίπεδο σχεδίασης (Layer 14 ) με όνομα τη συμβολοσειρά αυτή. Η σύνταξη της αντίστοιχης εντολής στο Matlab είναι a.createlayer('new Layer') όπου υποθέσαμε ότι το όνομα του νέου επιπέδου είναι New Layer. Στη Visual Basic η εντολή θα ήταν ακριβώς η ίδια, με τη διαφορά ότι η συμβολοσειρά θα γραφόταν με διπλά και όχι με μονά εισαγωγικά, σύμφωνα με τους κανόνες της γλώσσας. Φυσικά θα μπορούσαμε εναλλακτικά να είχαμε βάλει τη συμβολοσειρά New Layer σε μια μεταβλητή (π.χ. s) και να δίναμε την εντολή (Matlab, Visual basic, ή άλλο περιβάλλον) a.createlayer(s) Όπως εξηγήσαμε και παραπάνω, στην περίπτωση της Visual Basic χρειάζεται να δηλώσουμε τον τύπο της μεταβλητής s στην αρχή του προγράμματος με την εντολή Dim s as String (δ) Κλήση μεθόδου με παραμέτρους, που επιστρέφει κάποιο αποτέλεσμα Στο παράδειγμα αυτό ας υποθέσουμε ότι η μεταβλητή a αναφέρεται σε έναν εξυπηρετητή automation, που αντιστοιχεί στο Matlab. Η μέθοδος Execute δέχεται ως παράμετρο μια συμβολοσειρά, που παριστάνει μια οποιαδήποτε εντολή του Matlab, και επιστρέφει ως αποτέλεσμα μια άλλη συμβολοσειρά, που παριστάνει το αποτέλεσμα της εκτέλεσης της εντολής, όπως θα εμφανιζόταν στη γραμμή εντολών του Matlab. Για παράδειγμα, υποθέτοντας ότι s είναι μια μεταβλητή τύπου String, η εντολή Visual Basic s = a.execute("2+2") μας επιστρέφει στη μεταβλητή s τη συμβολοσειρά ans = 4. Ως δεύτερο παράδειγμα ας θεωρήσουμε ότι η μεταβλητή a αναφέρεται σε μια οθόνη του GraphWorx (δηλαδή έναν εξυπηρετητή automation με progid GWX32.Display, όπως προαναφέραμε). Έστω ότι η οθόνη αυτή περιέχει ν σχεδιαστικά αντικείμενα. Η μέθοδος GetVisibleObjectFromIndex δέχεται ως παράμετρο έναν αριθμό από το 0 έως το ν 1 και επιστρέφει ως αποτέλεσμα το 14 Η έννοια των επιπέδων σχεδίασης του GraphWorx θεωρείται γνωστή από το εργαστήριο του μαθήματος. 15

16 αντίστοιχο σχεδιαστικό αντικείμενο 15. Έτσι, π.χ. στη Visual Basic, υποθέτοντας ότι o είναι μια μεταβλητή τύπου object, η εντολή 16 Set o = a.getvisibleobjectfromindex(1) κάνει τη μεταβλητή o να αναφέρεται στο δεύτερο στη σειρά σχεδιαστικό αντικείμενο της οθόνης. Η ίδια δουλειά μπορεί να γίνει και στο Matlab με την εντολή o = a.getvisibleobjectfromindex(1) (ε) Κλήση μεθόδου πάνω σε αντικείμενο, που επιστρέφει άλλη μέθοδος Σε όλα τα παραδείγματα, που είδαμε μέχρι τώρα, χρησιμοποιούσαμε μια μεταβλητή για να αναφερόμαστε στο αντικείμενο, του οποίου τις μεθόδους καλούσαμε. Αυτό δεν είναι απαραίτητο. Υπάρχουν περιπτώσεις, που το αντικείμενο αυτό μας το επιστρέφει ως αποτέλεσμα μια μέθοδος, που καλούμε σε κάποιο άλλο αντικείμενο. Για παράδειγμα, ας υποθέσουμε ότι δίνουμε την παρακάτω εντολή Visual Basic μέσα από το περιβάλλον του Genesis. n = ThisDisplay.GetVisibleObjectFromIndex(0).GetNumberOfDynamics Για να καταλάβουμε τί κάνει αυτή η εντολή, ας την εξετάσουμε κομμάτι-κομμάτι. Η έκφραση ThisDisplay είναι μια μεταβλητή του GraphWorx, η οποία χρησιμεύει για να αναφερόμαστε κάθε φορά στο αντικείμενο GWX32.Display, που αντιστοιχεί στην οθόνη, που χρησιμοποιούμε. Επομένως, σύμφωνα με όσα αναφέραμε στο προηγούμενο παράδειγμα, η έκφραση ThisDisplay.GetVisibleObjectFromIndex(0) μας επιστρέφει το πρώτο στη σειρά σχεδιαστικό αντικείμενο της οθόνης. Επομένως η έκφραση ThisDisplay.GetVisibleObjectFromIndex(0).GetNumberOfDynamics σημαίνει κλήση της μεθόδου GetNumberOfDynamics στο πρώτο σχεδιαστικό αντικείμενο της οθόνης. Η μέθοδος αυτή είναι μια μέθοδος, που έχουν όλα τα αντικείμενα της κλάσης GWXVisible και μας επιστρέφει έναν ακέραιο αριθμό 32 bit (τύπος δεδομένων long), ο οποίος δηλώνει το πλήθος των δυναμικών συμπεριφορών, που έχουμε συνδέσει με το συγκεκριμένο αντικείμενο (αν δεν έχουμε συνδέσει καμία δυναμική συμπεριφορά τοτε η μέθοδος επιστρέφει τον αριθμό 0). Έτσι, η εντολή n = ThisDisplay.GetVisibleObjectFromIndex(0).GetNumberOfDynamics 15 Όλα τα σχεδιαστικά αντικείμενα, που βάζουμε στις οθόνες του GraphWorx παίρνουν μια αύξουσα αρίθμηση, που ξεκινάει από το 0. Η αρίθμηση αυτή μπαίνει αυτόματα από το πρόγραμμα και μεταβάλλεται όταν κάποια αντικείμενα μετακινούνται μπροστά από άλλα. Κάθε αντικείμενο έχει μικρότερο αύξοντα αριθμό από αυτά, που βρίσκονται μπροστά του. Το αντικείμενο με αύξοντα αριθμό 0 είναι πάντα αυτό, που βρίσκεται πιο πίσω από όλα. 16 Στην έκδοση 6 της Visual Basic, που χρησιμοποιεί το GraphWorx, για να δώσουμε τιμή σε μια μεταβλητή τύπου object πρέπει οπωσδήποτε να χρησιμοποιούμε την εντολή set. Μια απλή εντολή ανάθεσης της μορφής o=a.getvisibleobjectfromindex(1) δεν γίνεται δεκτή. Τέτοιες εντολές ανάθεσης μπορούν να χρησιμοποιηθούν μόνο για αριθμητικά δεδομένα και συμβολοσειρές. Νεότερες εκδόσεις της Visual Basic χρησιμοποιούν εντολές ανάθεσης και για αντικείμενα. 16

17 βάζει στη μεταβλητή n τον αριθμό των δυναμικών συμπεριφορών, που έχουμε συνδέσει με το πρώτο στη σειρά σχεδιαστικό αντικείμενο της οθόνης. (Φυσικά η μεταβλητή n θα πρέπει να έχει δηλωθεί τύπου Long στην αρχή του προγράμματος). Η ίδια τεχνική μπορεί να χρησιμοποιηθεί και στο Matlab. Πολλά τέτοια παραδείγματα θα δούμε στην ενότητα 1.8.3, σε συνδυασμό με την τεχνολογία OPC 17. Θα ολοκληρώσουμε το θέμα των μεθόδων αναφέροντας ότι το Matlab μας προσφέρει μια σειρά από εντολές, με τις οποίες μπορούμε να βλέπουμε ποιές μεθόδους υποστηρίζει το κάθε αντικείμενο. Η πιο χρήσιμη ίσως από τις εντολές αυτές είναι η invoke με παράμετρο το αντικείμενο. Για παράδειγμα, αν η μεταβλητή a του Matlab αναφέρεται σε ένα αντικείμενο και δώσουμε την εντολή invoke(a) τότε θα εμφανιστεί στην οθόνη μια λίστα με τις μεθόδους, που υποστηρίζει το αντικείμενο αυτό, όπου θα αναγράφονται αναλυτικά για κάθε μέθοδο το όνομά της και οι τύποι δεδομένων, που δέχεται ως παραμέτρους και/ή επιστρέφει ως αποτελέσμα. Μια ιδιαιτερότητα της εντολής invoke είναι ότι σε κάθε μέθοδο εμφανίζει ως πρώτη παράμετρο ένα αντικείμενο (που στο Matlab παριστάνεται με τον τύπο δεδομένων handle). Η παράμετρος αυτή δηλώνει το ίδιο το αντικείμενο, του οποίου τη μέθοδο θέλουμε να καλέσουμε και χρησιμοποιείται μόνο όταν θέλουμε να καλέσουμε μεθόδους σε αντικείμενα με χρήση της εντολής invoke 18. Οταν εργαζόμαστε με τον τρόπο, που περιγράψαμε στην ενότητα αυτή, μπορούμε να την αγνοήσουμε Χρήση ιδιοτήτων Στον αντικειμενοστρεφή προγραμματισμό με τον όρο «ιδιότητες» εννοούμε τις μεταβλητές, στις οποίες τα αντικείμενα αποθηκεύουν τα δεδομένα τους 19. Η δυνατότητα άμεσης πρόσβασης σε ιδιότητες είναι μια επιπλέον ευκολία, που παρέχει στους προγραμματιστές η τεχνολογία automation. Στο COM ο πελάτης μπορεί να επικοινωνεί με τον εξυπηρετητή αποκλειστικά και μόνο καλώντας μεθόδους. Αντίθετα, οι εξυπηρετητές automation επιτρέπουν στους πελάτες τους να διαβάζουν ιδιότητες των αντικειμένων, ή να δίνουν τιμές σε αυτές. Αυτή η δυνατότητα 17 Το συγκεκριμένο παράδειγμα, που είδαμε εδώ, δεν μπορεί να μεταφέρθεί απευθείας στο Matlab. Ο λόγος είναι ότι η κλάση αντικειμένων GWXVisible (και οι υπόλοιπες κλάσεις αντικειμένων του GraphWorx, εκτός από την GWX32.Display) δεν έχουν δηλωθεί στο registry των Windows σαν κλάσεις COM αλλά σαν interfaces. Αυτό έχει σαν αποτέλεσμα η απλή σύνταξη αντικείμενο.μέθοδος, που είδαμε ως τώρα να μην δουλεύει στο Matlab για τα αντικείμενα αυτά. Τονίζεται ότι αυτό ισχύει μόνο για τα αντικείμενα του ίδιου του GraphWorx (στατικά στοιχεία και δυναμικές συμπεριφορές) και όχι για τυχόν άλλα αντικείμενα ActiveX, που μπορούμε να ενσωματώσουμε σε οθόνες του GraphWorx (π.χ. o διακόπτης με το progid GWXSwitch.GWXSwitchCtrl.1, που αναφέραμε στην ενότητα 1.5.1). Για να καλέσουμε μεθόδους αντικειμένων του GraphWorx από το Matlab θα πρέπει να χρησιμοποιήσουμε την εντολή invoke με πρώτο όρισμα το αντικείμενο και δεύτερο όρισμα το όνομα της μεθόδου. Για περισσότερες λεπτομέρειες σχετικά με αυτή τη χρήση της εντολής invoke παραπέμπουμε τον αναγνώστη στα εγχειρίδια του Matlab. 18 Αυτός είναι ένας άλλος τρόπος κλήσης μεθόδων, που μπορεί να χρησιμοποιηθεί μόνο στο Matlab. Επιλέξαμε να μην τον περιγράψουμε στην σημειώσεις αυτές και να επικεντρωθούμε στη συνηθισμένη σύνταξη αντικείμενο.μέθοδος, που χρησιμοποιείται σε όλα τα αντικειμενοστρεφή περιβάλλοντα. προγραμματισμού. Σε ορισμένες περιπτώσεις όμως είναι χρήσιμος (βλ. προηγούμενη υποσημείωση). 19 Τα δεδομένα αυτά μπορούν γενικά να αφορούν είτε την κατάσταση του αντικειμένου (π.χ. η τελευταία τιμή, που διαβάσαμε από έναν αισηθτήρα) είτε τις παραμέτρους λειτουργίας του (π.χ. πόσο συχνά θα διαβάζεται ο αισθητήρας, σε τι χρώμα θα απεικονίζεται η ένδειξη στην οθόνη ή ποιά γραμματοσειρά θα χρησιμοποιείται). 17

18 απλουστεύει σημαντικά τη σύνταξη των προγραμμάτων σε πολλές περιπτώσεις. Οι προδιαγραφές του automation ορίζουν τους τύπους δεδομένων, που μπορούν να έχουν οι τιμές των ιδιοτήτων. Από εκεί και πέρα, το κάθε περιβάλλον προγραμματισμού έχει τους δικούς του κανόνες, όσον αφορά το ποιούς από τους τύπουςς αυτούς υποστηρίζει και πώς γίνεται η μετατροπή από τους τύπους δεδομένων της γλώσσας προγραμματισμού στους τύπους δεδομένων του automation και αντίστροφα. Γενικά τα αντικειμενοστρεφή περιβάλλοντα προγραμματισμού αναφέρονται στις ιδιότητες των αντικειμένων χρησιμοποιώντας τη σύνταξη αντικείμενο.ιδιότητα. Για παράδειγμα, το αντικείμενο, που αντιστοιχεί στο Excel (progid excel.application ) έχει μια ιδιότητα, που ονομάζεται Visible και είναι τύπου Bolean. Οταν η ιδιότητα αυτή έχει τιμή True, τότε το παράθυρο του Excel φαίνεται στην οθόνη του υπολογιστή. Αντίθετα, όταν η ιδιότητα Visible έχει τιμή False, τότε το παράθυρο του Excel είναι κρυμμένο αν και το πρόγραμμα συνεχίζει να εκτελείται κανονικά. Έτσι, υποθέτοντας ότι η μεταβλητή a έχει ως τιμή ένα αντικείμενο Excel, η εντολή a.visible = true εμφανίζει το παράθυρο του Excel στην οθόνη ενώ η εντολή a.visible = false το εξαφανίζει. Η εντολή b = a.visible αντιγράφει στην μεταβλητή b την τιμή της ιδιότητας Visible. Οι παραπάνω εντολές μπορεί να χρησιμοποιηθούν είτε στη Visual Basiс είτε στο Matlab. Όπως και στα παραδείγματα της προηγούμενης ενότητας, στην περίπτωση της Visual Basic η τρίτη εντολή προϋποθέτει να έχουμε δηλώσει προηγουμένως τη μεταβλητή b ως Boolean. Μια ιδιότητα είναι δυνατόν να έχει ως τιμή ένα αντικείμενο. Για παράδειγμα, η ιδιότητα ActiveCell του αντικειμένου Excel.Application έχει ως τιμή ένα αντικείμενο τύπου Range 20, που αντιστοιχεί στο εκάστοτε επιλεγμένο κελί του φύλλου εργασίας του Excel. Έτσι, υποθέτοντας όπως και προηγουμένως ότι η μεταβλητή a έχει ως τιμή ένα αντικείμενο Excel, η έκφραση a.activecell παριστάνει το αντικείμενο Range, που αντιστοιχεί στο επιλεγμένο κελί του φύλλου εργασίας και μπορούμε να τη χρησιμοποιήσουμε για να προσπελάσουμε μεθόδους και ιδιότητες του αντικειμένου. Για παράδειγμα, η εντολή a.activecell.clear καλεί τη μέθοδο Clear της κλάσης Range, η οποία καθαρίζει το περιεχόμενο του επιλεγμένου κελιού. Αντίστοιχα, η εντολή 20 Η κλάση Range είναι μια από τις κλάσεις αντικειμένων, που συμμετέχουν σε ένα φύλλο εργασίας του Excel. Παριστάνει μια περιοχή κελιών. Αναλυτικές πληροφορίες για όλες τις κλάσεις αντικειμένων του Excel, καθώς και για τις μεθόδους και ιδιότητες καθενός από αυτά, υπάρχουν στα εγχειρίδια και τα help files του προγράμματος. 18

19 s = a.activecell.address μεταφέρει στη μεταβλητή s την τιμή της ιδιότητας Address του αντικειμένου Range, δηλαδή μια συμβολοσειρά, που παριστάνει την διεύθυνση του επιλεγμένου κελιού (π.χ. A2 ). Με τον ίδιο τρόπο εργαζόμαστε και όταν θέλουμε να χρησιμοποιήσουμε ιδιότητες ενός αντικειμένου, που το παίρνουμε ως αποτέλεσμα από την κλήση μιας μεθόδου ενός άλλου αντικειμένου. Για παράδειγμα, είδαμε στην προηγούμενη ενότητα ότι η μέθοδος GetVisibleObjectFromIndex της κλάσης GWX32.Display μας επιστρέφει ένα στιγμιότυπο της κλάσης GWXVisible, που αντιστοιχεί σε ένα από τα σχεδιαστικά αντικείμενα της οθόνης. Σύμφωνα με τα εγχειρίδια του Genesis, κάθε αντικείμενο από την κλάσης GWXVisible έχει μια ιδιότητα με όνομα isfilled, η οποία είναι τύπου Boοlean και μας προσδιορίζει εάν το σχήμα του αντικειμένου στην οθόνη είναι γεμάτο με χρώμα ή αν φαίνεται μόνο το περίγραμμα. Έτσι, αν μια οθόνη του GraphWorx έχει τρία σχεδιαστικά αντικείμενα, η εντολή Visual Basic ThisDisplay.GetVisibleObjectFromIndex(1).isFilled = False μέσα από το περιβάλλον του GraphWorx θα έχει ως αποτέλεσμα το δεύτερο κατά σειρά από τα τρία αντικείμενα να εμφανιστεί στην οθόνη με μόνο το περίγραμμα. Επίσης, η εντολή b = ThisDisplay.GetVisibleObjectFromIndex(2).isFilled μεταφέρει στη μεταβλητή b (που θα πρέπει να έχει δηλωθεί Boolean) την τιμή της ιδιότητας isfilled του τρίτου κατά σειρά από τα αντικείμενα της οθόνης. Ας σημειωθεί ότι κάποιες ιδιότητες των αντικειμένων automation μπορεί να έχουν το χαρακτηρισμό read-only. Αυτό σημαίνει ότι οι προγραμματιστές μπορούν να χρησιμοποιήσουν την τιμή αυτών των ιδιοτήτων στα προγράμματά τους, αλλά δεν επιτρέπεται να την αλλάξουν. Παράδειγμα τέτοιας ιδιότητας είναι η ιδιότητα ActiveCell του αντικειμένου Excel.Application, που είδαμε παραπάνω. Το περιβάλλον του Matlab μας δίνει μια σειρά από εντολές, με τις οποίες μπορούμε να βλέπουμε ποιές ιδιότητες έχουν τα αντικείμενα automation, που χρησιμοποιούμε. Μια τέτοια εντολή είναι η εντολή get. Αν a είναι μια μεταβλητή του Matlab, που έχει ως τιμή ένα αντικείμενο, τότε η εντολή get(a) εμφανίζει στην οθόνη ένα πίνακα με τα ονόματα όλων των ιδιοτήτων του αντικειμένου και τις τρέχουσες τιμές τους Χρήση συλλογών Στην ορολογία της τεχνολογίας Automation μια συλλογή (collection) είναι μια ομάδα από ομοειδή αντικείμενα (δηλαδή αντικείμενα, που ανήκουν στην ίδια κλάση). Οι συλλογές αντικειμένων χρησιμοποιούνται ευρύτατα στα Windows. Για παράδειγμα, μπορεί να μιλάμε για τη συλλογή των ανοιχτών παραθύρων μιας εφαρμογής, τη συλλογή των χειριστηρίων μιας φόρμας, ή τη συλλογή των κόμβων (υπολογιστών) ενός δικτύου. Κάθε συλλογή πρέπει υποχρεωτικά να υποστηρίζει: 19

20 (1) μια ιδιότητα με όνομα count, η οποία επιστρέφει το πλήθος των αντικειμένων της συλλογής. Η ιδιότητα αυτή είναι τύπου read-only (επιτρέπει πρόσβαση μόνο για ανάγνωση), πράγμα που σημαίνει ότι οι πελάτες μπορούν μόνο να διαβάσουν την τιμή της αλλά όχι και να την αλλάξουν. (2) μια μέθοδο με όνομα item, η οποία επιστρέφει ένα από τα αντικείμενα της συλλογής. Η μέθοδος αυτή χρειάζεται πάντα ως παράμετρο εισόδου έναν αριθμό, που δηλώνει τη θέση του αντικειμένου, που θέλουμε να ανακτήσουμε. Αν δηλαδή θέλουμε το πρώτο αντικείμενο της συλλογής δίνουμε item(1), αν θέλουμε το δεύτερο δίνουμε item(2), κ.ο.κ. Οι περισσότερες συλλογές έχουν ακόμη μια μέθοδο με όνομα add (ή μερικές φορές additem), η οποία δημιουργεί ένα νέο αντικείμενο και το προσθέτει στο τέλος της συλλογής. Η μέθοδος αυτή, αν και πολύ σημαντική, δεν είναι υποχρεωτική σύμφωνα με τις προδιαγραφές της τεχνολογίας Automation. Πρόσβαση στις συλλογές αποκτάμε συνήθως μέσω μιας ιδιότητας τύπου readonly ή μέσω μιας μεθόδου, που μας επιστρέφει μια συλλογή. Για παράδειγμα, to αντικείμενο Excel.Application έχει μια ιδιότητα read-only με όνομα Workbooks, η τιμή της οποίας είναι μια συλλογή από αντικείμενα Workbook 21, καθένα από τα οποία αντιστοιχεί σε ένα ανοιχτό αρχείο Excel. Έτσι, αν η μεταβλητή a έχει ως τιμή ένα αντικείμενο Excel.Application, η εντολή n = a.workbooks.count γράφει στη μεταβλητή n το πλήθος των αρχείων Excel, που έχουμε ανοίξει. Η εντολή s = a.workbooks.item(1).fullname μεταφέρει στη μεταβλητή s την τιμή της ιδιότητας FullName του πρώτου από τα αντικείμενα Workbook της συλλογής (το όνομα του πρώτου από τα αρχεία Excel, που έχουμε ανοίξει) ενώ η εντολή a.workbooks.item(2).close καλεί τη μέθοδο Close στο δεύτερο από τα αντικείμενα Workbook της συλλογής (κλείνει δηλαδή το δεύτερο από τα αρχεία Excel, που έχουμε ανοίξει). Παραδείγματα μεθόδων, που επιστρέφουν συλλογές θα δούμε στην ενότητα 1.8.3, σε συνδυασμό με την τεχνολογία OPC. 1.6 ActiveX Ο όρος ActiveX πρωτοχρησιμοποιήθηκε από τη Microsoft το 1995, όταν η εταιρεία αποφάσισε να στρέψει την προσοχή της στο διαδίκτυο. Τότε η Microsoft χαρακτήρισε ως ActiveX μια ολόκληρη οικογένεια από τεχνολογίες, που σκοπό είχαν να κάνουν τις διαδικτυακές εφαρμογές και ειδικώτερα τις εφαρμογές του παγκόσμιου ιστού (World Wide Web) περισσότερο διαδραστικές (interactive). Η πιο γνωστή από 21 Η κλάση Workbook είναι μια ακόμη από τις κλάσεις, που χρησιμοποιούνται στο Excel. Παριστάνει ένα αρχείο Excel, το οποίο έχουμε ανοίξει. Από το αντικείμενο αυτό χρησιμοποιούμε εδώ μόνο την ιδιότητα FullName, η οποία μας επιστρέφει το πλήρες όνομα του αρχείου και τη μέθοδο Close, η οποία κλείνει το αρχείο. Πλήρης περιγραφή όλων των ιδιοτήτων και των μεθόδων του αντικειμένου υπάρχει στα εγχειρίδια και τα Help files του Excel. 20

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

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΤΗΛΕΜΕΤΡΙΑ ΚΑΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΕΛΕΓΧΟΣ ΣΕ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΜΕ ΧΡΗΣΗ ΥΠΗΡΕΣΙΩΝ ΔΙΑΔΙΚΤΥΟΥ Web-Based OPC Client ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του

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

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Σενάριο 17: Παιχνίδι μνήμης με εικόνες Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

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

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

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

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

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 6 Λογισμικό Εφαρμογών Καραμαούνας Πολύκαρπος 1 Λογισμικό Εφαρμογών (application software) Είναι όλα τα προγράμματα που μετατρέπουν τον ΗΥ σε εξειδικευμένο μηχάνημα για συκεκριμένες εργασίες. Περιέχει

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή

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

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

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

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. POWERPOINT 2003 1. Τι είναι το PowerPoint (ppt)? Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. 2. Τι δυνατότητες έχει? Δημιουργία παρουσίασης. Μορφοποίηση παρουσίασης. Δημιουργία γραφικών. Δημιουργία

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

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

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

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

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

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

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

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

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

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

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

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

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

Ενημέρωση σε Windows 8.1 από τα Windows 8

Ενημέρωση σε Windows 8.1 από τα Windows 8 Ενημέρωση σε Windows 8.1 από τα Windows 8 Τα Windows 8.1 και τα Windows RT 8.1 είναι βασισμένα στα Windows 8 και στα Windows RT, για να σας προσφέρουν βελτιώσεις στην εξατομίκευση, την αναζήτηση, τις εφαρμογές,

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

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

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

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

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

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

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

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Όπως έχουμε ήδη αναφέρει, τα δίκτυα τεχνολογίας / χρησιμοποιούν διεύθυνση 32 bits, προκειμένου να δρομολογήσουν ένα αυτοδύναμο πακέτο στο προορισμό του. Κατά σύμβαση έχει επικρατήσει οι διευθύνσεις να

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

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE...2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ...3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ...4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)...5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ...6 Κεντρικό μενού

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

Συστήματα Αυτομάτου Ελέγχου

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

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

-I/O-SYSTEM 750 BMS ΕΛΕΓΧΟΣ ΚΤΙΡΙΑΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΚΛΙΜΑΤΙΣΜΟΥ

-I/O-SYSTEM 750 BMS ΕΛΕΓΧΟΣ ΚΤΙΡΙΑΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΚΛΙΜΑΤΙΣΜΟΥ VER.DATE: 10/04/2014 -I/O-SYSTEM 750 BMS ΕΛΕΓΧΟΣ ΚΤΙΡΙΑΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΚΛΙΜΑΤΙΣΜΟΥ η φιλοσοφία To σύστημα ελέγχου WAGO έχει σχεδιαστεί με σκοπό την ευκολία στην σχεδίαση και στην εκτέλεση ενός project

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

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

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

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

SIMATIC MANAGER SIMATIC MANAGER

SIMATIC MANAGER SIMATIC MANAGER 1 Προγραμματισμός του PLC. 1. Γενικά Μια προσεκτική ματιά σε μια εγκατάσταση που θέλουμε να αυτοματοποιήσουμε, μας δείχνει ότι αυτή αποτελείται από επιμέρους τμήματα τα οποία είναι συνδεδεμένα μεταξύ τους

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 7ο X Window System Μιχαηλίδης Παναγιώτης Tι είναι παραθυρικό σύστημα; Ένα παραθυρικό σύστημα (window system) είναι μια γραφική διεπαφή χρήστη (Graphical

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

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

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΥΠΟΔΕΙΓΜΑΤΟΣ ΓΙΑ ΤΟΝ ΙΣΟΛΟΓΙΣΜΟ ΚΑΙ ΤΗΝ ΚΑΤΑΣΤΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΧΡΗΣΕΩΝ (BSD16) ΙΟΥΛΙΟΣ 2008 Ηλεκτρονική υποβολή στοιχείων

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

Εγχειρίδιο Χρήσης Εφαρμογής TRS Client

Εγχειρίδιο Χρήσης Εφαρμογής TRS Client Εγχειρίδιο Χρήσης Εφαρμογής TRS Client Transaction Reporting System (TRS) Πίνακας Περιεχομένων 1. Γενικά... 3 1.1 Έλεγχος Διαθεσιμότητας... 4 1.2 Επιλογή Αρχείου... 4 1.3 Υπογραφή Αποστολή Δεδομένων...

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Κουμπί Κενή βάση δεδομένων Κουμπί του Office Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στο κουμπί «Κενή βάση δεδομένων»

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

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

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

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

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

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

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

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

Η ΑΞΙΟΠΟΙΗΣΗ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ COACH 5 ΣΤΗΝ ΔΙΔΑΣΚΑΛΙΑ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΟΜΕΑ ΤΩΝ Τ.Ε.Ε. 2 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 485 Η ΑΞΙΟΠΟΙΗΣΗ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ COACH 5 ΣΤΗΝ ΔΙΔΑΣΚΑΛΙΑ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΟΜΕΑ ΤΩΝ Τ.Ε.Ε. Μπουλταδάκης Στέλιος Εκπαιδευτικός

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

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Επεξήγηση web site με λογικό διάγραμμα «Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr» Web : www.e-base.gr E-mail : support@e-base.gr Facebook : Like Twitter : @ebasegr Πολλοί άνθρωποι

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

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

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

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

Μοντελοποίηση Συστημάτων

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

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στην επιλογή «Κενή βάση δεδομένων» στο Παράθυρο Εργασιών. Θα εμφανιστεί το

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

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Απόδοση των οδηγών αποθηκευτικών µέσων Μέσος χρόνος πρόσβασης (Average Access Time) Ταχύτητα µεταφοράς δεδοµένων (Data-Transfer

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

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

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

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

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

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

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

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

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

Α.2 Μαθησιακά Αποτελέσματα Έχοντας ολοκληρώσει επιτυχώς το μάθημα οι εκπαιδευόμενοι θα είναι σε θέση να:

Α.2 Μαθησιακά Αποτελέσματα Έχοντας ολοκληρώσει επιτυχώς το μάθημα οι εκπαιδευόμενοι θα είναι σε θέση να: ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ Τίτλος Μαθήματος Μεθοδολογίες και Συστήματα Βιομηχανικής Αυτοματοποίησης Κωδικός Μαθήματος Μ3 Θεωρία / Εργαστήριο Θεωρία + Εργαστήριο Πιστωτικές μονάδες 4 Ώρες Διδασκαλίας 2Θ+1Ε Τρόπος/Μέθοδοι

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

Interactive Power Point

Interactive Power Point Interactive Power Point Οι περισσότεροι χρήστες γνωρίζουν τη χρήση του Microsoft Power Point για τη δημιουργία παρουσιάσεων. Αυτό όμως που λίγοι γνωρίζουν, είναι ότι το πρόγραμμα αυτό, έχει δυνατότητες

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

Δημιουργία Active Directory DNS στα Windows Server 2008. Τεχνικός Δικτύων & Τηλεπικοινωνιών - Διαχείριση Δικτύων ΙΙ

Δημιουργία Active Directory DNS στα Windows Server 2008. Τεχνικός Δικτύων & Τηλεπικοινωνιών - Διαχείριση Δικτύων ΙΙ Δημιουργία Active Directory DNS στα Windows Server 2008 Τεχνικός Δικτύων & Τηλεπικοινωνιών - Διαχείριση Δικτύων ΙΙ Τι είναι το Active Directory; Το Active Directory είναι ουσιαστικά μια βάση δεδομένων

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

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

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

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

Δημιουργία παρουσιάσεων (Power Point)

Δημιουργία παρουσιάσεων (Power Point) Δημιουργία παρουσιάσεων (Power Point) Το πρόγραμμα PowerPoint είναι η «αίθουσα προβολών» του Office. Μια προβολή (παρουσίασης) του PowerPoint μπορεί να έχει ως στόχο να ενημερώσει, να διδάξει ή και να

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

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

ΚΑΤΑΓΡΑΦΗ ΓΝΩΣΕΩΝ & ΕΝΔΙΑΦΕΡΟΝΤΩΝ

ΚΑΤΑΓΡΑΦΗ ΓΝΩΣΕΩΝ & ΕΝΔΙΑΦΕΡΟΝΤΩΝ ΚΑΤΑΓΡΑΦΗ ΓΝΩΣΕΩΝ & ΕΝΔΙΑΦΕΡΟΝΤΩΝ Αυτό το ερωτηματολόγιο αποσκοπεί στη συγκέντρωση στοιχείων που αφορούν τόσο τις γνώσεις όσο και τα ενδιαφέροντά σας. Χωρίζεται σε τρία μέρη: το πρώτο έχει ερωτήσεις για

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

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) Καλλονιάτης Χρήστος Επίκουρος Καθηγητής Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας, Πανεπιστήμιο Αιγαίου http://www.ct.aegean.gr/people/kalloniatis

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

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

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

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

2. Περιγραφή Προιόντος 2.1. Εγκατάσταση της συσκευής προγραμματισμού 2.2. Εγκατάσταση του λογισμικού 2.3. Εισαγωγή μπαταριών

2. Περιγραφή Προιόντος 2.1. Εγκατάσταση της συσκευής προγραμματισμού 2.2. Εγκατάσταση του λογισμικού 2.3. Εισαγωγή μπαταριών 1. Περιεχόμενα 1. Περιεχόμενα 2. Περιγραφή Προιόντος 2.1. Εγκατάσταση της συσκευής προγραμματισμού 2.2. Εγκατάσταση του λογισμικού 2.3. Εισαγωγή μπαταριών 3. Πως να χρησιμοποιήσετε το λογισμικό καταλόγου

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

SGA Διαχείριση Πρωτόκολλου

SGA Διαχείριση Πρωτόκολλου SGA Διαχείριση Πρωτόκολλου SGA Διαχείριση Πρωτόκολλου 1. SGA Διαχείριση Πρωτοκόλλου... 2 1.1. Καινοτομία του προσφερόμενου προϊόντος... 2 1.2. Γενικές αρχές του προσφερόμενου συστήματος... 2 1.3. Ευκολία

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 20130510 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εγκατάσταση προγράμματος DCAD 2 2. Ενεργοποίηση Registration 2 3. DCAD 3 3.1 Εισαγωγή σημείων 3 3.2 Εξαγωγή σημείων 5 3.3 Στοιχεία ιδιοκτησίας

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

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

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

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

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

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

Υδρόμετρα. Συστήματα Ανάγνωσης Μετρητών από Απόσταση AMR

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

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

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

XAMPP Apache MySQL PHP javascript xampp

XAMPP Apache MySQL PHP javascript xampp XAMPP Το xampp είναι ένα δωρεάν πρόγραμμα με το οποίο μπορούμε να κάνουμε εγκατάσταση τον Apache, τη MySQL και την PHP. Apache. Ο Apache είναι ένας Web Server. Είναι δηλαδή πρόγραμμα το οποίο τρέχει μόνιμα

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

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

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

Σενάριο 16: Ο κόσμος του Robby

Σενάριο 16: Ο κόσμος του Robby Σενάριο 16: Ο κόσμος του Robby Φύλλο Εργασίας Τίτλος: Ο κόσμος του Robby Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές εργασίες.

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

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

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

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

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

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

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0 Δομές Δεδομένων 5ο εξάμηνο Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse v1.0 Τις σημειώσεις κράτησαν και διαμόρφωσαν σε word οι: Κονδύλη Γαλήνη, ΑΜ 5576 Μάλλιου Χριστίνα, ΑΜ 5413

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

Παρουσίαση υπηρεσιών Τηλεδιάσκεψης και Aσύγχρονης εξ αποστάσεως εκπαίδευσης στο Πανελλήνιο Σχολικό Δίκτυο

Παρουσίαση υπηρεσιών Τηλεδιάσκεψης και Aσύγχρονης εξ αποστάσεως εκπαίδευσης στο Πανελλήνιο Σχολικό Δίκτυο Παρουσίαση υπηρεσιών Τηλεδιάσκεψης και Aσύγχρονης εξ αποστάσεως εκπαίδευσης στο Πανελλήνιο Σχολικό Δίκτυο Δρ. Αύγουστος Τσινάκος ΠΛΗΝΕΤ Δυτικής Θεσ/νίκης tsinakos@uom.gr Παν. Μακεδονίας Ομάδα Εργασίας

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

Ο ArcCatalog χρησιμοποιείται για την πλοήγηση / διαχείριση χωρικών δεδοµένων.

Ο ArcCatalog χρησιμοποιείται για την πλοήγηση / διαχείριση χωρικών δεδοµένων. ΕΡΓΑΣΤΗΡΙΟ 3 ο : ArcCatalog Πηγές δεδομένων Γεωβάση Τι είναι ο ArcCatalog? Ο ArcCatalog χρησιμοποιείται για την πλοήγηση / διαχείριση χωρικών δεδοµένων. Η εφαρμογή του ArcCatalog παρέχει τη δυνατότητα

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

Μάθημα 4.2 Η μητρική πλακέτα

Μάθημα 4.2 Η μητρική πλακέτα Μάθημα 4.2 Η μητρική πλακέτα - Εισαγωγή - Οι βάσεις του επεξεργαστή και της μνήμης - Οι υποδοχές της μητρικής πλακέτας - Άλλα μέρη της μητρική πλακέτας - Τυποποιήσεις στην κατασκευή μητρικών πλακετών Όταν

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014. Σωτήρης Γυφτόπουλος

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014. Σωτήρης Γυφτόπουλος Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων 2013-2014 Σωτήρης Γυφτόπουλος Κανόνες του Facility Game (1/4) Στο Facility Game υπάρχει ένα σύνολο κόμβων που συνδέονται «σειριακά» και κάθε κόμβος

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

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

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

ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ 2 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 351 ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ Τζουμάκας Βασίλης Καθηγητής Πληροφορικής στο Παπαστράτειο Γυμνάσιο Αγρινίου vtzoum@sch.gr

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

Οδηγίες Εγκατάστασης

Οδηγίες Εγκατάστασης Οδηγίες Εγκατάστασης Εισάγετε το DVD στη μονάδα ανάγνωσης DVD του υπολογιστή σας. Περιμένετε λίγα δευτερόλεπτα να εμφανιστεί το παράθυρο εγκατάστασης. Σε περίπτωση που αυτό δεν γίνει αυτόματα, από την

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

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

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ -Για τους Φοιτητές- Έκδοση 1.2 Οκτώβριος 2015 Υπεύθυνος Σύνταξης: Χρήστος Λάζαρης (lazaris@aueb.gr) Πίνακας Περιεχομένων Εισαγωγή...

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΘΕΜΑ Α Α1. Να χαρακτηρίσετε καθεμιά από τις προτάσεις που ακολουθούν γράφοντας στο τετράδιό σας, δίπλα από τον αριθμό κάθε πρότασης, το γράμμα Σ, αν αυτή

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

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2009 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΤΑΞΗ : Β ΗΜΕΡΟΜΗΝΙΑ: Τετάρτη, 3 Ιουνίου 2009 ΩΡΑ: 07:45 10:15 ΟΔΗΓΙΕΣ: Το εξεταστικό δοκίμιο αυτό αποτελείται

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

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ ΟΔΗΓΟΣ ΣΥΝΔΕΣΗΣ ΣΤO ΔΙΚΤΥΟ ΤΟΥ ΤΠΚ ΜΕΣΩ ΤΗΣ ΥΠΗΡΕΣΙΑΣ ΑΠΟΜΑΚΡΥΣΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ VPN ΥΣΠΤ Η υπηρεσία πρόσβασης στο δίκτυο δεδομένων του ΤΠΚ μέσω εικονικού ιδιωτικού δικτύου

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική

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

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

ΛΟΓΙΣΜΙΚΟ ΜΕΛΕΤΩΝ ΗΛΕΚΤΡΙΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΥΠΟΣΤΑΘΜΩΝ ΜΕΣΗΣ ΤΑΣΗΣ ΛΟΓΙΣΜΙΚΟ ΜΕΛΕΤΩΝ ΗΛΕΚΤΡΙΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΥΠΟΣΤΑΘΜΩΝ ΜΕΣΗΣ ΤΑΣΗΣ Βασίλης Τσέτογλου, Ηλεκτρολόγος Μηχ/κός ΑΠΘ (Φρυγίας 30 Καβάλα, τηλ. 2510-241735, e-mail:vatset@panafonet.gr) ΠΕΡΙΛΗΨΗ Η συνεχής και

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11 Περιεχόμενα Πρόλογος... 11 Μέρος 1: Βασικές έννοιες της πληροφορικής... 13 1.1 Windows XP... 15 1.2 Επιφάνεια εργασίας... 19 1.3 Γραμμή εργασιών... 24 1.4 Χειρισμός παραθύρων... 30 1.5 Μενού... 36 1.6

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