L OCATING M OVING O BJECTS U SING T WO -T IER S CHEME ANAΦΟΡΑ ΤΟΥ PROJECT Βόγκλης Κωνσταντίνος.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
E-Phone. Microsoft Office Communicator και e-phone Επικοινωνία μέσω Video, ανταλλαγή δεδομένων και Instant Messaging μέσω Contact Management Διαχείριση.
Advertisements

Δίκτυα υπολογιστών.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Υλοποίηση Συστήματος Ψηφοφορίας με τη χρήση Java RMI
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
WORDPRESS. Self-Hosting Wordpress • Απαιτείται δικό μας domain, και δικιά μας Web Hosting Υπηρεσία (κατόπιν πληρωμής) • Το λογισμικό του Wordpress κατεβαίνει.
Διαδίκτυο Κίκα Χρυσοστόμου.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Ιστορία του Ιντερνετ.
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Web Services Υπηρεσίες διαδικτύου
Βάσεις Δεδομένων (ΚΒΔ)
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
Λειτουργικά συστήματα ΙΙ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
Ε ΝΤΟΠΙΣΜΟΣ Κ ΙΝΟΥΜΕΝΩΝ Α ΝΤΙΚΕΙΜΕΝΩΝ ΠΑΡΟΥΣΙΑΣΗ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗΣ ΕΡΓΑΣΙΑΣ Βόγκλης Κωνσταντίνος Τσίπουρας Μάρκος.
ΕΝΤΟΠΙΣΜΟΣ ΚΙΝΟΥΜΕΝΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Σύστημα Ονομάτων Περιοχών (Domain Name System, DNS)
Κεφάλαιο 11.2 Sockets.
Υπηρεσίες δικτύων επικοινωνίας
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
Δίκτυα Ηλεκτρονικών Υπολογιστών
Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
Λειτουργικά Συστήματα Πολλών Χρηστών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
FEDORA ARCHITECTURE1 Αρχιτεκτονικές Ψηφιακών Βιβλιοθηκών FEDORA.
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
Κατανεμημένα Συστήματα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Java DataBase Connectivity
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Επεξεργασία Κειμένου Διδακτική προσέγγιση των λογισμικών γενικής χρήσης Ζωγραφική Λογιστικά φύλλα Βάσεις δεδομένων.
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
Ειδικά Θέματα σε Κινητά & Ασύρματα Δίκτυα
Κεφάλαιο 6o. Επίπεδο εφαρμογής
Κεφάλαιο 7: Διαδικτύωση-Internet
Web Services στη C# Εργαστήριο 3
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Το Διαδίκτυο - Internet
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

L OCATING M OVING O BJECTS U SING T WO -T IER S CHEME ANAΦΟΡΑ ΤΟΥ PROJECT Βόγκλης Κωνσταντίνος

Locating moving objects using two-tier schemes Η έννοια του Mobile Computing Χρήστες που μετακινούνται σε διαφορετικές τοποθεσίες Κινητή τηλεφωνία Εφαρμογές mobile IP (ασύρματες ζεύξεις) Λογισμικό και δεδομένα που μετακινούνται σε δίκτυα Ubiquitus computing, το περιβάλλον των χρηστών μεταφέρεται από μια τοποθεσία σε μια άλλη Eνεργή μεταφορά web σελίδων Kινητοί πράκτορες που «περιφέρονται» στο δίκτυο σε αναζήτηση πληροφορίας Mετακινούμενος κώδικας Java αποτελεί τη βάση πολλών εφαρμογών στο Web

Locating moving objects using two-tier schemes Ανάγκες των Mobile Object Κινούμενο αντικείμενο : Κάθε αντικείμενο (λογισμικό, υλικό ή συνδυασμός) που είναι ικανό να αλλάζει θέσεις Ορισμός του προβλήματος: Δεσμός Μόνιμου Ονόματος - Τρέχουσας Διεύθυνσης του αντικειμένου Παρούσα κατάσταση: Τα υπάρχοντα συστήματα ονομασίας (Internet’s Domain Name Server (DNS), DEC’s Global Name Device (GNS), X.500 Directory Service), δεν είναι ικανά να χειριστούν κινούμενα αντικείμενα. Απαίτηση: Ένα σύστημα location management που θα επιτρέπει στο δεσμό ονόματος- διεύθυνσης να αλλάζει συχνά

Locating moving objects using two-tier schemes Χειρισμός Θέσης (Location Management) Δύο βασικές λειτουργίες : Αναζήτηση (lookup) Ενημέρωση (update) Oι τεχνικές αποθήκευσης πληροφορίας θέσης: Ακριβής πληροφορία για κάθε κινούμενο αντικείμενο υπάρχει σε σε κάθε θέση του δικτύου (κόστος αλλαγών, σπατάλη χώρου, γρήγορη αναζήτηση) Καμία πληροφορία δεν αποθηκεύεται στο δίκτυο(πολύ αργή αναζήτηση)

Locating moving objects using two-tier schemes Αρχιτεκτονικές Για Location Management Οι βασικές αρχιτεκτονικές που χρησιμοποιούνται σήμερα για βάσεις δεδομένων θέσεων (Location Databases) είναι : Σχήμα δυο βημάτων (two-tier schemes) Ιεραρχικό σχήμα (δενδρική ιεραρχία) Ιεραρχικό σχήμα (μη δεντρική ιεραρχία, ταίριασμα περιοχών) Κεντρικοποιημένα συστήματα διαχείρισης Βάσεων Δεδομένων

Locating moving objects using two-tier schemes Σχήμα Δυο Βημάτων (Two-Tier) Τοπική Βάση Δεδομένων (Home Location Register - HLR ένας για κάθε ζώνη) Σχετίζεται με κάθε κινούμενο αντικείμενο Προκαθορισμένος για κάθε κινούμενο αντικείμενο Περιέχει την τρέχουσα τοποθεσία του κινούμενου αντικειμένου Όταν το αντικείμενο μετακινηθεί, ενημερώνει τον HLR για την νέα του τοποθεσία Χρησιμοποιείται σε κινητή τηλεφωνία (Αμερικάνικο IS-41, Ευρωπαϊκό GSM ) και mobile IP

Locating moving objects using two-tier schemes Σχήμα Δυο Βημάτων (Two-Tier) Επέκταση - Βελτίωση του HLR (Visitors Location Registers - VLRs) Σχετίζεται με κάθε αντικείμενο που δεν ανήκει στην συγκεκριμένη ζώνη Περιέχει την τρέχουσα τοποθεσία του αντικειμένου Ένα αντικείμενο, εξετάζεται πρώτα αν βρίσκεται στον τοπική VLR και μετά η κλήση πηγαίνει στον HLR. Όταν το αντικείμενο μετακινηθεί διαγράφεται η εγγραφή του στον αρχικό VLR και δημιουργείται μία νέα εγγραφή στον τελικό VLR.

Locating moving objects using two-tier schemes Σχήμα Δυο Βημάτων (Two-Tier) HLR VLR Δίκτυο

Εντοπισμός Κινούμενων Αντικειμένων Σχήμα Δυο Βημάτων - Συμπεράσματα Σύμφωνα με τα παραπάνω καταλήγουμε στα εξής : + Εύκολο στην υλοποίηση - Αντικείμενα με μεγάλο χρόνο παραμονής σε κάποια απομακρυσμένη ζώνη παραμένουν «δεμένα» με τον HLR. - Σε κατανεμημένα συστήματα για να επικοινωνήσεις με ένα αντικείμενο, πρέπει αναγκαστικά να ρωτήσεις τον HLR ακόμα και αν το αντικείμενο που ζητάς είναι σχετικά κοντά σου - Μια μετακίνηση σε κοντινή τοποθεσία από τον HLR του αντικειμένου πρέπει να καταχωρηθεί σε αυτόν σαν αλλαγή θέσης

Locating moving objects using two-tier schemes Σχήμα Δυο Βημάτων (GSM)

Locating moving objects using two-tier schemes Περιγραφή του Voyager Οικογένεια προϊόντων (Java classes) για υλοποίηση κατανεμημένων συστημάτων Παγκοσμιότητα Επικοινωνίες Υπηρεσία μηνυμάτων Υπηρεσία ονομάτων Υπηρεσία καταλόγου Ευκολία ανάπτυξης εφαρμογών Ευελιξία στην αρχιτεκτονική

Locating moving objects using two-tier schemes Περιγραφή του Voyager

Locating moving objects using two-tier schemes Περιγραφή του Voyager

Locating moving objects using two-tier schemes Περιγραφή του Voyager

Locating moving objects using two-tier schemes Βασικά Χαρακτηριστικά Ένα πρόγραμμα σε Voyager μπορεί να λειτουργήσει σαν server (να δέχεται συνδέσεις) ή απλώς σαν client (δεν δέχεται συνδέσεις): Χρησιμοποιώντας το Java API Voyager.startup(String url) Voyager.startup() url = protocol://host:port Χρησιμοποιώντας γραμμή εντολών voyager 8000 voyager Μπορούμε να φορτώσουμε κλάσεις χρησιμοποιώντας την VM του Voyager: Από κατάλογο που δεν βρίσκεται στο CLASSPATH Από κάποιον απομακρυσμένο WEB server Από κάποιο ΗΤΤP-enabled Voyager server ( voyager -c )

Locating moving objects using two-tier schemes Βασικά Χαρακτηριστικά Βασική έννοια του Interface: Ένα απομακρυσμένο αντικείμενο αντιπροσωπεύεται από ένα proxy αντικείμενο, που υλοποιεί το ίδιο interface public interface IStockmarket { int quote( String symbol ); int buy( int shares, String symbol ); int sell( int shares, String symbol ); void news( String announcement ); } H αναφορά σε μια μέθοδο ενός απομακρυσμένου αντικείμενου είναι ακριβώς ίδια με την τοπική κλήση της μεθόδου. IStockmarket market1 = (IStockmarket) Factory.create("Stockmarket" ); Istockmarket market2 = new Stockmarket(); IStockmarket market3 = (IStockmarket) Factory.create("Stockmarket", "//pontus:8000" ); Η μέθοδος Factory.create(), επιστρέφει αυτό το proxy αντικείμενο, είτε το απομακρυσμένο αντικείμενο είναι στην ίδια VM, είτε σε άλλη

Locating moving objects using two-tier schemes Βασικά Χαρακτηριστικά Η υπηρεσία καταλόγου του Voyager, επιτρέπει στον χρήστη να εγγράψει ένα αντικείμενο σε μια ιεραρχική (και όχι μόνο) δομή καταλόγου : Directory symbols = new Directory(); Ένας persistent κατάλογος, είναι μια ειδική μορφή του καταλόγου που αποθηκεύει τα περιεχόμενα του σε ένα αρχείο στο τοπικό σύστημα αρχείων: PersistentDirectory symbols = new PersistentDirectory( "symbols.db" ); Μέθοδοι που υποστηρίζονται :  put(String key, Object value)  get(String key)  remove(String key):  getValues():  getKeys():  clear():

Locating moving objects using two-tier schemes Βασικά Χαρακτηριστικά Τρία είδη μηνυμάτων : Συγχρονισμένα: Ο αποστολέας περιμένει απάντηση, Result res= Sync.invoke(object, “method”, new Object [] {args}) Από το res μπορώ να πάρω τιμή ή εξαίρεση: int x = res.readInt(); One-way: Ο αποστολέας δεν περιμένει κανένα αποτέλεσμα OneWay.invoke(object, “method”, new Object [] {args}) Μελλοντικά: O αποστολέας δεν περιμένει το αποτέλεσμα, συνεχίζει την επεξεργασία και μόλις η απάντηση φτάσει δημιουργείται ένα event και ο αποστολέας παίρνει την απάντησή του Result res = Future.invoke(object, “method”, new Object []{args}) Είναι δυνατό να καθορίσουμε και το timeout Result res = Future.invoke(object, “method”, new Object [] {args}, false, millisecs, null)

Locating moving objects using two-tier schemes Βασικά Χαρακτηριστικά Κινητικότητα Είναι απαραίτητη για να φέρνει πιο κοντά τα μέλη που επικοινωνούν (αύξηση throughput, μείωση της κίνησης στο δίκτυο) Για να μετακινήσουμε ένα αντικείμενο πρέπει πρώτα να καλέσουμε τη Mobility.of(Object) Το αντικείμενο μετακινείται σε άλλο URL με την μέθοδο moveTo(String url). IStockMarket market = (IStockMarket) Factory.create( "StockMarket", "//pontus:8000" ); market.news( "at first location" ); IMobility mobility = Mobility.of( market ); mobility.moveTo( "//euryalus:9000" ); market.news( "at second location" );

Locating moving objects using two-tier schemes Βασικά Χαρακτηριστικά Κινητικότητα Το Voyager παρέχει στα αντικείμενα ειδοποιήσεις ανάλογα σε πιο στάδιο της μετακίνησης βρίσκονται preDeparture(String source, String destination) preArrival() postArrival() postDeparture() Agents, πρέπει να καλέσουμε την μέθοδο Agent.of() moveTo(String url, String callback [,Object[] args]) setAutonomous(boolean flag) (δεν σβήνεται από την μνήμη ποτέ) isAutonomous() getHome()

Locating moving objects using two-tier schemes Υλοποίηση-Μηχανήματα Ζώνη 1 Ζώνη 2 Ζώνη 3 HLR2 VLR2 HLR1 VLR1 HLR3 VLR3 pontus deucalion halimedes

Locating moving objects using two-tier schemes Υλοποίηση-Λογισμικό Υλοποιήθηκαν δυο κλάσεις σε Java, μια για τα κινούμενα αντικείμενα και μια για τα αντικείμενα που αλλάζουν τα HLR/VLR Επίσης υλοποιήθηκε και μια βασική κλάση (public static void main(String [] args)) κινούμενο αντικείμενο public String lookup(String mob){ result = Sync.invoke(VLR, “lookupVLR”, new Object [] {mob)); if (result.readObject()==null) { result = Sync.invoke(mob_HLR, “lookupHLR”, new Object [] {mob}); print(“Found “+ mob +” on HLR”); } else { print(“Found “+ mob +” on VLR”); } return ((String)result.readObject()); }

Locating moving objects using two-tier schemes Υλοποίηση-Λογισμικό κινούμενο αντικείμενο public void preDeparture( String source, String destination ) { My_destination = new String(30); System.out.println(" preDeparture( " + source + ", " + destination + " )"); OneWay.invoke(local_VLR, “removeVLR”, new Object[] {My_name}); } public void postArrival() { System.out.println(" postArrival()" ); OneWay.invoke(VLR, “addVLR”, new Object[] {My_name, destination}); OneWay.invoke(HLR, “update”, new Object[] {My_name, destination}); }

Locating moving objects using two-tier schemes Υλοποίηση-Λογισμικό αντικείμενο που αλλάζει HLR/VLR