Αντικειμενοστραφής προγραμματισμός. Κλασικές γλώσσες προγραμματισμού (FORTRAN, C, Pascal) Προσανατολισμός στα δεδομένα

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

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

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

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

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

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

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

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

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

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

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

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

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

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

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

* Enterprise Resource Planning ** Customer Relationship Management

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

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

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Έξη - Συνδετικά Kριτήρια Aντικειµένων και Συστατικών

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

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

Λειτουργικά Συστήματα Η/Υ

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

Κεφάλαιο 1. Βασικά Στοιχεία της Java... 13

Εισαγωγή στην πλατφόρμα κινητών αντιπροσώπων

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

Δίκτυα Υπολογιστών I

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

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

Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

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

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

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

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

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

Υπολογιστική Νέφους Cloud computing

Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο

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

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

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

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

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

Διαδίκτυο των Αντικειμένων - IoT.

Λογισµικό (Software SW) Γλώσσες

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

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1

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

Remote Method Invocation (RMI)

JADE. Java Agent DEvelopment Framework

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

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

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

CORBA. Αρχιτεκτονική και 3-tier 3. εφαρµογές. Β. Φλώρος. Μαρτάκος. Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστιακό Πανεπιστήµιο Αθηνών

Εισαγωγή Middleware. Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης. Κατανεμημένα Συστήματα (Ε) Εισαγωγή: Θέματα S/W 1

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

Σχεδιασμός και ανάπτυξη τεχνικών μέτρησης Πόρων και Υπηρεσιών σε Συστήματα Πλέγματος (Grid) ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Ενότητα 5 (κεφάλαιο 18) Τεχνολογία Λογισμικού για Κατανεμημένα Συστήματα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

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

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

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

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

Έναρξη Ισχύος: 7 Οκτωβρίου 2013

Ταχύτητα, Απλότητα & Αξιοπιστία

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

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Αρχιτεκτονικές Συστημάτων

Διαχείριση Ετερογενών Δικτύων

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

2. JADE Μια Σύντομη Αναφορά

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

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

ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή στα πρωτόκολλα TCP/IP και το INTERNET 2.1. Μέσα μετάδοσης, φυσικές διευθύνσεις

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

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

Παράλληλη Επεξεργασία

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ 1. CORBA (Common Object Request Broker Architecture - Αρχιτεκτονική ιαµεσολάβησης για Αιτήµατα Κοινών Αντικειµένων)

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

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

Πληροφορική 2. Τεχνολογία Λογισμικού

Transcript:

Αντικειμενοστραφής προγραμματισμός Κλασικές γλώσσες προγραμματισμού (FORTRAN, C, Pascal) Προσανατολισμός στα δεδομένα Αντικειμενοστραφείς γλώσσες προγραμματισμού (Java, C++) Προσανατολισμός στα αντικείμενα

Τί είναι αντικείμενο; Αντικείμενο: Μία οντότητα λογισμικού η οποία χαρακτηρίζεται από την κατάσταση και την συμπεριφορά της Κατάσταση: Μέλη του αντικειμένου (ομοιότητα με τις μεταβλητές των κλασικών γλωσσών) Συμπεριφορά: Μέθοδοι του αντικειμένου (ομοιότητα με τις συναρτήσεις των κλασικών γλωσσών) Σχόλιο: Τα αντικείμενα λογισμικού έχουν μεγάλη ομοιότητα με τα αντικείμενα του πραγματικού κόσμου

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

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

Επικοινωνία αντικειμένων σε ένα κατανεμημένο περιβάλλον 1 Τα αντικείμενα τα οποία συνθέτουν την εφαρμογή εκτελούνται σε διαφορετικά περιβάλλοντα εκτέλεσης Το κάθε αντικείμενο έχει ως στόχο του σε μία δεδομένη στιγμή του προγράμματος να εκτελέσει μία συγκεκριμένη εργασία. Το αντικείμενο αυτό χρειάζεται: Να έχει τη γνώση (κώδικα) για το πώς θα εκτελεστεί η εργασία Να έχει πρόσβαση στους απαραίτητους πόρους (π.χ αρχεία, βάσεις δεδομένων κλπ) για την εκτέλεση της εργασίας

Κατανεμημένα αντικείμενα σαν RPC Συνήθη συστατικά Γλώσσα περιγραφής διεπαφών (Interface Description Language) Ορίζει την εξωτερική όψη των αντικειμένων Μεταγλωτιστές Προ-μεταγλωτιστές Επεκτάσεις των γλωσσών Σύστημα εκτέλεσης Υπηρεσίες καταλόγου Μετατροπή δεδομένων Ασφάλεια / Επικύρωση Κατηγοριοποίηση Ανεξαρτησία από γλώσσα Ανεξαρτησία από πλατφόρμα Επιπλέον λειτουργίες Ανεκτικότητα σε σφάλματα Δυνατότητες κατά την εκτέλεση

Εξέλιξη των πρωτοκόλλων RPC API based RPC methods IBM: Application-to-application communications (APPC) SUN: SUN RPC/Network File System (NFS) for workstations Open Systems Foundation: Distributed Computing Environment (DCE) RPC Object-Oriented RPC methods Object Management Group: Common Object Request Architecture (CORBA) Microsoft: Distributed Component Object Model (DCOM) RPC using XML SOAP Προς μεγαλύτερη τυποποίηση

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

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

Επικοινωνία αντικειμένων σε ένα κατανεμημένο περιβάλλον 2 Απομακρυσμένη εκτέλεση (Remote Evaluation): To αντικείμενο Α έχει τη γνώση για την εκτέλεση της εργασίας, αλλά δεν έχει πρόσβαση στους απαιτούμενους πόρους Το αντικείμενο Α στέλνει εντολές σε ένα απομακρυσμένο αντικείμενο Β, το οποίο έχει πρόσβαση στους πόρους (αλλά όχι τη γνώση για την εκτέλεση της εργασίας), το Β εκτελεί την εργασία και επιστρέφει το αποτέλεσμα στο Α Κώδικας μετά από ζήτηση (Code on Demand): To αντικείμενο Α έχει πρόσβαση στους απαιτούμενους πόρους, αλλά όχι τη γνώση (κώδικα) για την εκτέλεση της εργασίας. Ο κώδικας μεταφέρεται στη φυσική θέση του Α, αποκτά πρόσβαση στους πόρους, η εργασία εκτελείται και το αποτέλεσμα επιστρέφεται στο Α Κινητοί Πράκτορες (Mobile Agents): To αντικείμενο Α έχει τη γνώση για την εκτέλεση της εργασίας, αλλά δεν έχει πρόσβαση στους απαιτούμενους πόρους Το αντικείμενο Α μεταναστεύει στη φυσική θέση των πόρων ως μία ολόκληρη υπολογιστική οντότητα (κώδικας και κατάσταση), αποκτά πρόσβαση στους πόρους και εκτελείται η εργασία

Αρχιτεκτονικές κατανεμημένων αντικειμένων Αρχιτεκτονική CORBA (Common Object Request Broker Archtecture) Επικοινωνία αντικειμένων με βάση τις διεπαφές που ορίζονται από τη γλώσσα IDL (Interface Definition Language) Υποστήριξη για ανάπτυξη αντικειμένων σε διάφορες γλώσσες προγραμματισμού Βασικό στοιχείο: Το αντικείμενο ORB (Object Request Broker), το οποίο αναλαμβάνει την εκτέλεση μεθόδων απομακρυσμένων αντικειμένων Remote Method Invocation (RMI) Αρχιτεκτονική DCOM (Distributed Component Object Model) Επικιονωνία κατανεμημένων αντικειμένων σε συστήματα με λειτουργικά συστήματα της Microsoft Πλεονέκτημα: Η εκμετάλλευση της ήδη υπάρχουσας υποδομής για την ανάπτυξη κατανεμημένων εφαρμογών Υπηρεσίες Ιστού (Web Services) Κινητοί Πράκτορες (mobile agents) Πλέγμα (Grid)

Τεχνολογίες κατανεμημένων αντικειμένων CORBA 1 Object Management Group Πρότυπο που χρηματοδοτήθηκε από εταιρίες Τα μέλη του group ανέπτυξαν και ψήφισαν για το πρότυπο Τρέχουσες προδιαγραφές συμπεριλαμβάνουν την UML, CORBA Ξεκίνησε τον Απρίλιο του 1989 Βασικά συστατικά Interface Definition Language (IDL) Object Request Broker (ORB) Internet Inter-ORB Protocol (IIOP)

Τεχνολογίες κατανεμημένων αντικειμένων CORBA 1

Τεχνολογίες κατανεμημένων αντικειμένων CORBA 1

Τεχνολογίες κατανεμημένων αντικειμένων CORBA 2

Remote Method Invocation - RMI

Web Services Simple Object Access Protocol 1 «Ελαφρύ» πρωτόκολλο για την ανταλλαγή πληροφοριών με έναν αποκεντρωμένο τρόπο σε ένα κατανεμημένο περιβάλλον Σχεδιασμένο σαν ένας απλός μηχανισμός για την πρόσβαση σε αντικείμενα ή συστατικά που βρίσκονται σε απομακρυσμένους κόμβους δικτύου (Επικοινωνία εφαρμογής με εφαρμογή) Το SOAP είναι ένα σύστημα μηνυμάτων για αίτηση υπηρεσιών Η εφαρμογή-πελάτης στέλνει μια αίτηση σε μορφή XML και παίρνει απάντηση επίσης σε μορφή XML Τα αντικείμενα σεριοποιούνται και κωδικοποιούνται σύμφωνα με το σχήμα κωδικοποίησης του SOAP Ανεξάρτητο του ΛΣ, γλώσσας προγραμματισμού και συστατικών Μόνη απαίτηση ο πελάτης και ο εξυπηρετητής να μπορούν να επεξεργαστούν κείμενα XML (marshalling / unmarshalling) Ανεξάρτητο από το δίκτυο και το πρωτόκολλο επικοινωνίας το HTTP έχει γίνει το πιο συνηθισμένο εργαλείο

Web Services Simple Object Access Protocol 2 Firewalls προφυλάσσουν τα Intranet Με το SOAP, όλη η μεταφέρσιμη πληροφορία μετασχηματίζεται σε XML και αποστέλλεται πάνω από το HTTP Στυλ επικοινωνίας του SOAP Η Κλήση Απομακρυσμένης Διαδικασίας (Remote Procedure Call) καλεί μια μέθοδο ενός αντικείμενο που βρίσκεται σε ένα απομακρυσμένο κόμβο δικτύου, και επιστρέφει το αποτέλεσμα Επικοινωνία είτε μέσω εγγράφων είτε μέσω μηνυμάτων, όπου οι παράμετροι και η απάντηση μπορούν να είναι οποιοδήποτε κείμενο XML

Web Services Simple Object Access Protocol 4 Application Middleware SOAP HTTP My App Request Reply Error Application Middleware SOAP HTTP www.weather.com

Web Services Simple Object Access Protocol 4 REQUEST Example POST /Temperature HTTP/1.1 Host: www.weather.com Content-Type: text/xml Content-Length: <whatever> SOAPMethodName: <some-uri>#currenttemp Http Header Soap Extensions <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1"> <SOAP:Body> <m:currenttemp xmlns:m="some-uri"> <zip_code>37919</zip_code> <m:currenttemp> </SOAP:BODY> <SOAP:Envelope> Xml Payload URI- Uniform Resource Identifier some-uri -> www.netsolve.com or www.globus.com

Web Services Simple Object Access Protocol 5 RESPONSE Example HTTP/1.1 200 OK Content-Type: text/xml Content-Length: <whatever> Http Header <SOAP:Envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1"> <SOAP:Header> <t:transaction xmlns:t="some-uri"> 5 </t:transaction> </SOAP:Header> <SOAP:Body> <m:currenttempresponse xmlns:m="some-uri"> <return>42</return> </m:currenttempresponse> </SOAP:Body> </SOAP:Envelope> Xml Payload

Κινητοί πράκτορες (mobile agents) 1 Ένας πράκτορας είναι μία οντότητα λογισμικού η οποία βοηθά το χρήστη, δρώντας εκ μέρους του. Η λειτουργία του είναι να επιτρέπει στους χρήστες να αναθέτουν τις εργασίες, τις οποίες θα έκαναν οι ίδιοι, στο ίδιο το λογισμικό. Πιο αυστηρά, ένας πράκτορας είναι ένα αντικείμενο με προσωπικό νήμα εκτέλεσης (thread), με άλλα λόγια ένα ενεργό αντικείμενο το οποίο έχει τη μοναδική ικανότητα να μεταφέρεται αυτόνομα από μία δικτυακή τοποθεσία σε μία άλλη. Χαρακτηριστικά Αυτόνομος (autonomous) Οδηγούμενος απ το στόχο (goal-driven) Αντιδραστικός (reactive) Κοινωνικός (social) Προσαρμοστικός (adaptive) Αξιόπιστος (reliable) Κινητός (mobile)

Κινητοί πράκτορες (mobile agents) 1 Computer Agent Agent Computer Network Agent Computer

Χαρακτηριστικά κινητών πρακτόρων Principals Κατάσταση (state): απαραίτητη για την συνέχιση των υπολογισμών του αντιπρόσωπου έπειτα από τη μετανάστευση Υλοποίηση (implementation): απαραίτητη για την εκτέλεση του πράκτορα ανεξάρτητα από την τοποθεσία (π.χ if state=1 then) Interface Implementation State Identifier Διεπαφή (interface): απαραίτητη nγια την επικοινωνία μεταξύ των πρακτόρων (π.χ Class myagent implements IAgentServer) Ταυτότητα (Identifier): απαραίτητη για την αναγνώριση, διαχωρισμό και εντοπισμό των μετακινούμενων πρακτόρων Αρχές (Principals): απαραίτητη για τον προσδιορισμό ηθικών υπευθυνοτήτων από την πλευρά των πρακτόρων

Το περιβάλλον εκτέλεσης των κινητών πρακτόρων Engine: Η εικονική μηχανή που υποστηρίζει μία ή περισσότερες τοποθεσίες (places) Agents Host Resources: Βάσεις δεδομένων, επεξεργαστές, καθώς και άλλες υπηρεσίες που μπορεί να παρέχονται από το σύστημα Place Engine Resources Place: Η δικτυακή διεύθυνση μίας δεδομένης τοποθεσίας Principals: Είναι υπεύθυνες για τη λειτουργία μίας τοποθεσίας

Τα πλεονεκτήματα από τη χρήση των κινητών πρακτόρων 1 1) Μειώνουν το φορτίο του δικτύου App Service RPC-based approach Host A Host B App Mobile Agent-based approach Service 2) Αντιμετωπίζουν τη δικτυακή καθυστέρηση Συστήματα πραγματικού χρόνου όπως είναι π.χ τα κατασκευαστικά ρομπότ χρειάζεται να μπορούν να αντιδράσουν σε εντολές εισόδου σε πραγματικό χρόνο. Οι κινητοί πράκτορες προσφέρουν λύση, αφού αποστέλλονται από ένα κεντρικό ελεγκτή και δρούν τοπικά εκτελώντας τις διαταγές του ελεγκτή.

Τα πλεονεκτήματα από τη χρήση των κινητών πρακτόρων 2 3) Ενσωματώνουν πρωτόκολλα Καθώς τα πρωτόκολλα εξελίσσονται για να ενσωματώσουν καινούργιες απαιτήσεις όπως π.χ ασφάλεια, καθίσταται πολύ δύσκολη η αναβάθμιση του πρωτοκόλλου. Οι κινητοί πράκτορες είναι ικανοί να μεταναστεύσουν σε απομακρυσμένους υπολογιστές προκειμένου να τους καταστήσουν ικανούς να επεξεργαστούν τα δεδομένα σύμφωνα με το εκάστοτε πρωτόκολλο. 4) Εκτελούνται ασύγχρονα και αυτόνομα App Send agent Service App Disconnect Service App Reconnect and return Service

Τα πλεονεκτήματα από τη χρήση των κινητών πρακτόρων 2 5) Προσαρμόζονται δυναμικά Οι κινητοί πράκτορες έχουν την ικανότητα να αντιλαμβάνονται το περιβάλλον εκτέλεσής τους και να αντιδρούν αυτόνομα στις αλλαγές. Πολλαπλοί πράκτορες έχουν τη μοναδική ικανότητα να κατανέμουν τους εαυτούς τους μεταξύ των διαθέσιμων υπολογιστών του δικτύου προκειμένου να πετύχουν το βέλτιστο τρόπο για την επίλυση ενός προβλήματος. 6) Είναι ετερογενείς από τη φύση τους Η δικτυακή επεξεργασία είναι από τη φύση της ετερογενής, συχνά τόσο από την πλευρά του υλικού όσο και λογισμικού. Καθώς οι κινητοί πράκτορες είναι ανεξάρτητοι από το επίπεδο συστήματος και το επίπεδο μεταφοράς (transport layer) και εξαρτώνται μόνο από το περιβάλλον εκτέλεσής τους, παρέχουν τις κατάλληλες συνθήκες για την ολοκλήρωση των ετερογενών μερών του συστήματος. 7) Παρουσιάζουν ευρωστία και αντοχή σε σφάλματα Η ικανότητα των κινητών πρακτόρων να αντιδρούν σε ανεπιθύμητες καταστάσεις και γεγονότα είναι πιο εύκολη η δημιουργία εύρωστων συστημάτων. Εάν ένας υπολογιστής σταματήσει να λειτουργεί, οι πράκτορες που τρέχουν σε αυτόν είναι δυνατό να ενημερωθούν έγκαιρα, να μεταναστεύσουν και να συνεχίσουν την εργασία τους από το σημείο που είχε σταματήσει.

Εφαρμογές που επωφελούνται από τη χρήση των κινητών πρακτόρων Εφαρμογές ελέγχου ροής (Workflow applications) Ηλεκτρονικό εμπόριο (E-Commerce) Κατανεμημένη ανάκτηση πληροφοριών Διάδοση πληροφοριών Απομακρυσμένη εκτέλεση και παρακολούθηση διεργασιών Παράλληλη επεξεργασία

Παραμετρική εκτέλεση υπολογιστικών κωδίκων

Κατανεμημένη παράλληλη επεξεργασία Αποσύνθεση υπολογιστικού χώρου (Domain decomposition) 1-D και 2-D επίλυση των εξισώσεων Laplace και Poisson Με τη μέθοδο Jacobi Με τη μέθοδο SOR 2-D επίλυση προβλήματος σκέδασης με τη μέθοδο FDTD

Η απήχηση της Java 1 Ανεξαρτησία από πλατφόρμα Η Java είναι σχεδιασμένη να λειτουργεί σε ετερογενή περιβάλλοντα. Επιτρέπει τη δημιουργία ενός αντιπρόσωπου που μπορεί να εκτελεστεί σε οποιαδήποτε πλατφόρμα που έχει εγκατεστημένη την εικονική μηχανή της Java. Ασφαλής εκτέλεση H Java έχει ένα μοντέλο δεικτών (pointers) που εξαφανίζει την πιθανότητα της εγγραφής θέσεων της μνήμης ή την καταστροφή δεδομένων Η αρχιτεκτονική ασφάλειας της Java επιτρέπει την ασφαλή εκτέλεση ενός μηέμπιστου αντιπρόσωπου διότι ο πράκτορας δε μπορεί να έχει πρόσβαση σε απόρρητες πληροφορίες. Δυναμικό φόρτωμα κλάσεων Η εικονική μηχανή μπορεί να φορτώνει και να ορίζει κλάσεις κατά την διάρκεια εκτέλεσης ενός προγράμματος. Πολυνηματικός προγραμματισμός (Multithreaded programming) Οι αντιπρόσωποι είναι εξ ορισμού αυτόνομοι Η Java όχι μόνο υποστηρίζει πολυνηματικό προγραμματισμό, αλλά υποστηρίζει επίσης ένα σύνολο από δυνατότητες συγχρονισμού (synchronization primitives) δομημένες στην ίδια τη γλώσσα.

Η απήχηση της Java 2 Σειριοποίηση αντικειμένων Ένα βασικό χαρακτηριστικό των κινητών πρακτόρων είναι η δυνατότητά τους για σειριοποίηση και αποσειριοποίηση. Η Java παρέχει ένα ενδογενή μηχανισμό σειριοποίησης ο οποίος αναπαριστά την κατάσταση ενός αντικειμένου σε σειριοποιημένη μορφή με αρκετά λεπτομερή τρόπο ώστε το αντικείμενο να μπορεί να ανακατασκευαστεί αργότερα.

Μειονεκτήματα της Java Ανεπαρκής υποστήριξη ελέγχου πόρων Δυστυχώς, η Java δεν παρέχει τρόπους περιορισμού των πόρων του επεξεργαστή και της μνήμης που διατίθεται σε κάποιο αντικείμενο ή νήμα. Παρόμοιο θέμα είναι η ικανότητα ενός πράκτορα να δεσμεύει πόρους εξωτερικούς του προγράμματος, για παράδειγμα με το να ανοίγει αρχεία και διόδους επικοινωνίας (sockets), και παράγοντας παράθυρα. Δεν υπάρχει προστασία των αναφορών ενός αντικειμένου Οι public μέθοδοι ενός Java αντικειμένου είναι διαθέσιμες σε κάθε άλλο αντικείμενο που έχει αναφορά σε αυτό. Δεν υπάρχει τρόπος σε κάποιον πράκτορα να επιβλέπει και να ελέγχει τα αντικείμενα (πράκτορες) που έχουν πρόσβαση στις μεθόδους του. Δεν υπάρχει υποστήριξη για διατήρηση και επανάκτηση της κατάστασης εκτέλεσης Είναι προς το παρόν αδύνατη η επανάκτηση της πλήρους κατάστασης εκτέλεσης ενός αντικειμένου με τη Java. Πληροφορίες όπως η κατάσταση του μετρητή προγράμματος (program counter) και της στοίβας ετολών είναι απαγορευτικές για προγράμματα της Java (γλώσσα υψηλού επιπέδου).

Κινητοί πράκτορες το πρότυπο MASIF 1 Περιοχή (Region): Διευκολύνει τη διαχείριση των πρακτορείων (agencies), τοποθεσιών (places) και πρακτόρων (agents). Μία περιοχή περιέχει μία μόνον περιοχή καταχώρησης (region registry) και πολλά πρακτορεία. Agency Agents Place Host Resources Περιοχή Καταχώρησης (Region Registry): Παρέχει τη βάση δεδομένων με πληροφορία σχετική για τις πρακτορεία, τοποθεσίες και τους πράκτορες μιας περιοχής. Region Engine

Κινητοί πράκτορες - το πρότυπο MASIF 1 Πρακτορείο (Αgency): Παρέχει το περιβάλλον εκτέλεσης των κινητών πρακτόρων. Κάθε πρακτορείο εκτελείται σε ξεχωριστή εικονική μηχανή της Java και αποτελείται μία ή περισσότερες τοποθεσίες. Το πρακτορείο παρέχει τις βασικές λειτουργίες, όπως διαχείριση του κύκλου ζωής του πράκτορα, μεταφορά, επικοινωνία και ασφάλεια. Τοποθεσία (Place): Επιτρέπει την οργάνωση των πρακτόρων, που παρέχουν ίδιες υπηρεσίες. Οι τοποθεσίες ανήκουν στα πρακτορεία. Κάθε τοποθεσία μπορεί να συσχετιστεί με μια πολιτική ασφάλειας (security policy), για τη διευκόλυνση της διαχείρισης της ασφάλειας. Πράκτορας (agent): Οντότητα λογισμικού, που έχει τη δυνατότητα να δρα αυτόνομα, αποτελούμενη από μία ή περισσότερες Java κλάσεις. Υπάρχουν δύο είδη πρακτόρων: οι κινητοί (mobile) και οι στάσιμοι (stationary).

Ο κύκλος ζωής του κινητού πράκτορα

Πλατφόρμα WebMΑges Agency Region Place Application (i.e. servlets) Agent Services Mediators Agency Services Region Services Web Management Communication Channel SOAP/HTTP

Πλέγμα (Grid) 1 Κεντρική ιδέα η δημιουργία ενός δικτύου το οποίο θα επιτρέπει το διαμερισμό των πόρων στους χρήστες του δικτύου Τρείς τύποι Computational Grids Data Grids Service Grids Τρείς γενιές

Πλέγμα (Grid) 2 Τρεις γενιές συστημάτων Πρώτη γενιά Προγράμματα για να συνδέσουν περιοχές με δυνατότητες supercomputing FAFNER, Ι-WAY Δεύτερη γενιά Τρία κύρια ζητήματα Ετερογένεια Εξελιξιμότητα Προσαρμοστικότητα Μεσισμικό Παραλλαγές π.χ. φύλαξη δημοφιλούς πληροφορίας σε πολλούς κόμβους

Πλέγμα (Grid) 3 Τρίτη γενιά Στόχος: e-science Αρχιτεκτονικές βασισμένες στις υπηρεσίες Διαδοχική μετάβαση Web services Open Grid Services Architecture (OGSA) WS-Resource Framework (WS-RF)

OGSA/OGSI