A Platform for Personalized Geographic Information Systems on the Web

Published on January 2019 | Categories: Documents | Downloads: 14 | Comments: 0 | Views: 230
of 108
Download PDF   Embed   Report

Comments

Content

Πολυτεχνείο Κρήτης Τµήµα Ηλεκτρονικών Μηχανικών & Μηχανικών Ηλεκτρονικών Υπολογιστών

Σύστηµ Σύστηµα για την Ανάπτυξη Προσωπικοποιηµ Προσωπικοποιηµένων Εφαρµ Εφαρµογών Χαρτών στο Web

Χωριανόπουλος Κώστας ∆ιπλωµατική Εργασία 1999

ΕΙΣΑΓΩΓΗ

Περίληψη Η παρούσα διπλωµ διπλωµατική εργασία διαπραγµ διαπραγµατεύεται τη σχεδίαση και  υλοποίηση ενός ολοκληρωµ ολοκληρωµένου συστήµ συστήµατος πληροφόρησης, πληροφόρησης, πλοήγησης και συνεργασίας χρηστών στο Web, χρησιµ χρησιµοποιώντας σαν κύριο µέσο διεπικοινωνίας δυναµ δυναµικούς χάρτες, χάρτες, που µπορούν  να λαµ λαµβάνουν  υπ’  υπ’ όψη τους στους  υπολογισµ  υπολογισµούς και στη παρουσίαση τα ενδιαφέροντα των χρηστών. χρηστών. Το σύστηµ σύστηµα είναι βασισµ βασισµένο στην αρχιτεκτονική πελάτηπελάτη-εξυπηρετητή (client-server) και περιλαµ περιλαµβάνει αλληλεπιδραστικό χάρτη, χάρτη, σαν µέσο επικοινωνίας χρηστώνχρηστών-συστήµ συστήµατος. ατος. Παρέχεται λειτουργικότητα Τουριστικού Συστήµ Συστήµατος Πληροφόρησης (Tourist Information System-TIS) µε µ ε στοιχεία Γεωγραφικού Συστήµ Συστήµατος Πληροφόρησης (Geographic Information System-GIS). Ακόµ Ακόµη, διαχειρίζεται δυναµ δυναµική (warm-µε (warm-µε την έννοια ότι βρίσκεται σε συνεχή διαδικασία ανανέωσης από τους χρήστες) χρήστες) πληροφορία, πληροφορία, που τη παρουσιάζει µε χρήση χάρτη. χάρτη.

2

ΕΙΣΑΓΩΓΗ

ΠΕΡΙΕΧΟΜΕΝΑ 1

ΕΙΣΑΓΩΓΗ ....................................................................................................................................8

1.1

2

1.1.1

World Wide Web ................................................ .................................................... ...........9

1.1.2

Campiello........................................................................................................................10

1.2

ΠΡΟ∆ΙΑΓΡΑΦΕΣ .......................................................................................................................... 11

1.3

ΣΕΝΑΡΙΑ ΧΡΗΣΗΣ ...................................................................................................................... 12

1.4

∆ΟΜΗ ΤΟΥ Κ ΕΙΜΕΝΟΥ ΕΙΜΕΝΟΥ .............................................................................................................. 13

ΣΧΕΤΙΚΗ ΕΡΓΑΣΙΑ..................................................................................................................15 ΕΡΓΑΣΙΑ..................................................................................................................15

2.1 2.1

Hardware  Εφαρ µογές   µογές ......................................................................................................16  ......................................................................................................16 

2.1.2

 Εφαρ µογές   µογές σε σε CD-ROM ................................................... ...............................................18

2.1.3

Τουριστικά Συστή Τουριστικά  Συστή µατα  µατα Πληροφόρησης   Πληροφόρησης ............................................................................20 ............................................................................20

2.1.4

 Συστή µατα  µατα στο World Wide Web.....................................................................................21

ΤΕΧΝΟΛΟΓΙΕΣ ...........................................................................................................................24

2.2.1

Active Data Objects ........................................................... .............................................24

2.2.2

Active Server Pages ...................................................... ..................................................26 

2.2.3

Οικογένεια Εφαρ Οικογένεια  Εφαρ µογών  µογών Map Studio................................................................................32

2.2.4

Cascading Style Sheets.................................................. ..................................................34

2.2.5

Dynamic HTML .......................................................... ....................................................36 

2.2.6

Scripting..........................................................................................................................40

2.3

Α ΝΑΚΕΦΑΛΑΙΩΣΗ  ΝΑΚΕΦΑΛΑΙΩΣΗ .....................................................................................................................43

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ ............................................44

3.1 3.1

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ................................................................................................................45

3.1.1

 Η  µερολόγιο  µερολόγιο Χρήστη  Χρήστη (Travel Diary).................................................................................45

3.1.2

 Προσαρ µογή  µογή στις  Προσωπικές   Προσωπικές  Προτι  Προτι µήσεις   µήσεις (Personalization) (Personalization) .......................................45

3.1.3

 Παρουσία Άλλων  Παρουσία  Άλλων Χρηστών  Χρηστών (User Awareness) ................................................... .............45

3.1.4

 Μοντέλο Αλληλεπίδρασης   Μοντέλο  Αλληλεπίδρασης ................................................................................................45 ................................................................................................45

3.2

ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ .........................................................................................................46

3.2.1

 Χάρτης (Map)  Χάρτης  (Map) .................................................... ........................................................ ......46 

3.2.2

 Αντικεί  µενο  µενο (Item) ........................................................... ................................................47 

3.2.3

 Κατηγορία (Context)........................................................................................................47 

3.2.4

 Μονοπάτι (Path)..............................................................................................................48

3.2.5

 Χρήστης (User)................................................................................................................51  Χρήστης  (User)................................................................................................................51

3.2.6 

 Προτι µήσεις   µήσεις  Χάρτη  Χάρτη (Pushpins)........................................................................................52

3.2.7 

 Προτάσεις  του Συστή του  Συστή µατος   µατος (Hot (Hot Items)...........................................................................53

3.3 4

ΠΑΡΟΜΟΙΑ ΣΥΣΤΗΜΑΤΑ ........................................................................................................... 16

2.1.1

2.2

3

Α ΝΑΓΚΑΙΟΤΗΤΑ ..........................................................................................................................9

Α ΝΑΚΕΦΑΛΑΙΩΣΗ  ΝΑΚΕΦΑΛΑΙΩΣΗ .....................................................................................................................53

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ ................................................................................................................54

4.1 4.1

ΜΟΝΤΕΛΟ Ο ΝΤΟΤΗΤΑΣ-ΣΧΕΣΗΣ (E NTITY-R ELATIONSHIP ELATIONSHIP).......................................................55

4.1.1

Οντότητες ........................................................................................................................55 Οντότητες  ........................................................................................................................55

4.1.2

 Σχέσεις ............................................................................................................................56   Σχέσεις  ............................................................................................................................56 

4.2

ΦΥΣΙΚΗ ΣΧΕ∆ΙΑΣΗ ....................................................................................................................59

4.2.1

 ∆εδο µένα  µένα (Data)..............................................................................................................62

3

ΕΙΣΑΓΩΓΗ

4.3 5

ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ ..............................................63

5.1 5.1

 Χάρτης (Map)  Χάρτης  (Map) .................................................... ........................................................ ......64

5.1.2

 Κλί  µακα  µακα Χάρτη  Χάρτη (Legend).................................................................................................64

5.1.3

 Αποτελέσ  µατα  µατα (Results) .................................................... ...............................................65

5.1.4

 Βοήθεια Εφαρ  Βοήθεια  Εφαρ µογής   µογής (Help) (Help) ....................................................... ......................................65

5.1.5

 Εργαλεία (Tools) ...................................................... .......................................................65

ΑΠΕΙΚΟΝΙΣΗ ΤΟΥ ΜΟΝΤΕΛΟΥ ΠΛΗΡΟΦΟΡΙΑΣ ΣΤΟ USER I NTERFACE ........................................66

5.2.1

Items................................................................................................................................66 

5.2.2

Path.................................................................................................................................66 

5.2.3

Pushpins..........................................................................................................................67 

5.2.4

Users - Position........................... ....................................................................... .............67 

5.3

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ........................................................................................................................67

5.3.1

 Ανάδραση (Feedback) ............................................... ......................................................67 

5.3.2

 Κωδικοποίηση µε  Χρώ µα  µα (Color Coding).......................................................................68

5.3.3

 Ευκολία στην Εκ  στην  Εκ  µάθηση  µάθηση /  Χρήση (Ease of Learning/Use) ................................................ 68

5.3.4

 Αυτό µατη  µατη Συ  Συ µπλήρωση  µπλήρωση (Auto Complete) ................................................. .......................68

5.3.5

 Συνέπεια (Consistency) ..................................................... ..............................................69

5.3.6 

 Συ µ βατότητα (Compatibility) .............................................................. ............................69

5.4

Α ΝΑΚΕΦΑΛΑΙΩΣΗ  ΝΑΚΕΦΑΛΑΙΩΣΗ .....................................................................................................................69

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ....................................................................................70 ΕΦΑΡΜΟΓΗΣ ....................................................................................70

6.1 6.1

ΑΛΛΗΛΕΠΙ∆ΡΑΣΗ ΜΕ ΤΟ ΣΥΣΤΗΜΑ ...........................................................................................7 1

6.1.1

 Εισαγωγή στο Σύστη στο  Σύστη µα  µα ....................................................................................................71

6.1.2

 Αποτελέσ  µατα  µατα ..................................................................................................................72

6.1.3

 Αλληλεπίδραση µε το Χάρτη το  Χάρτη.............................................................................................75 .............................................................................................75

6.1.4

 Αναπαράσταση  ∆έντρου Κατηγοριών  ∆έντρου  Κατηγοριών...............................................................................77  ...............................................................................77 

6.1.5

 Παράθυρα ∆ιαλόγου  Παράθυρα  ∆ιαλόγου ........................................................................................................77 

6.1.6 

 Μενού Επιλογών  Μενού  Επιλογών (Menus) ................................................ ...............................................78

6.1.7 

 Βοήθεια στη Χρήση στη  Χρήση της  Εφαρ  Εφαρ µογής   µογής .................................................................................81 .................................................................................81

6.1.8

 Σενάρια Χρήσης   Σενάρια  Χρήσης ...............................................................................................................81 ...............................................................................................................81

6.2 7

∆ΙΕΥΘΕΤΗΣΗ (LAYOUT) .................................................... ....................................................... .64

5.1.1

5.2

6

Α ΝΑΚΕΦΑΛΑΙΩΣΗ  ΝΑΚΕΦΑΛΑΙΩΣΗ .....................................................................................................................62

ΣΥΝΟΛΙΚΑ.................................................................................................................................82

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ....................................................84

7.1 7.1

ΥΠΟΣΥΣΤΗΜΑΤΑ.......................................................................................................................85

7.1.1

Client...............................................................................................................................85

7.1.2

Server ....................................................... ........................................................ ...............85

7.1.3

Client - Server Communication.................................... ...................................................85

7.1.4

 Λειτουργίες  στον Client....................................................................................................86 

7.1.5

 Λειτουργίες  στον Server...................................................................................................86 

7.2

ΥΛΟΠΟΙΗΣΗ ..............................................................................................................................87

7.2.1

Root.................................................................................................................................87 

7.2.2

Content............................................................................................................................88

7.2.3

Data .................................................. ............................................................ ..................93

7.2.4

Include ............................................ .................................................... ............................93

4

ΕΙΣΑΓΩΓΗ

8

9

7.2.5

JScript ...................................................... ........................................................ ...............94

7.2.6

Styles ........................................................ ........................................................... ............96 

7.2.7

VBScript ..................................................... ........................................................ .............97 

ΕΠΙΛΟΓΟΣ ...............................................................................................................................101

8.1 8.1

Α ΝΑΚΕΦΑΛΑΙΩΣΗ  ΝΑΚΕΦΑΛΑΙΩΣΗ ................................................................................................................... 101

8.2

ΣΥΜΠΕΡΑΣΜΑΤΑ ..................................................................................................................... 102

8.3

ΜΕΤΑΤΡΟΠΕΣ ΚΑΙ ΕΠΕΚΤΑΣΕΙΣ ............................................................................................... 102

8.3.1

 Χρήστες ..........................................................................................................................102 ..........................................................................................................................102

8.3.2

 Παρουσίαση Αντικει  Παρουσίαση  Αντικει µένου  µένου .............................................................................................103

8.3.3

 Πολλαπλοί  Χάρτες .........................................................................................................103  Χάρτες .........................................................................................................103

8.3.4

 Νέες Τεχνολογίες   Νέες  Τεχνολογίες ...........................................................................................................103 ...........................................................................................................103

ΒΙΒΛΙΟΓΡΑΦΙΑ .......................................................................................................................105

9.1 9.1

WORLD WIDE WEB ................................................................................................................. 106

9.2

ΒΙΒΛΙΑ .................................................................................................................................... 106

5

ΕΙΣΑΓΩΓΗ

ΣΧΗΜΑΤΑ Σχήµ Σχήµα 1 Το StreetPilot είναι ένα Information Appliance, µια µ ια ολοκληρωµ ολοκληρωµένη συσκευή που σχεδιάστηκε για ένα σκοπό και µόνο. όνο. .......................................................... ................................. 17 Σχήµ Σχήµα 2 Οι κάρτες µε  νέους χάρτες και δεδοµ δεδο µένα είναι ένας τρόπος επέκτασης για τα συστήµ συστήµατα που βασίζονται σε hardware, δεν παυουν όµως να ως  να περιορίζουν και δεν έχουν την αµεσότητα του internet........................................................................................................................................... 17 Σχήµ Σχήµα 3 Η λειτουργία FIND επιτρέπει το ψάξιµ ψάξιµο της βάσης δεδοµ δεδοµένων για ένα σηµ σηµείο ενδιαφέροντος ή µια τοποθεσία µιας πόλης........................................................................................................... πόλης........................................................................................................... 17 Σχήµ Σχήµα 4 Το StreetPilot επιτρέπει να επιτρέπει  να δούµ δούµε τις πόλεις µε κριτήριο την απόσταση τους από τη θέση µας ή µε κριτήριο το όνοµ όνοµα τους. τους. ................................................... ..................................................... 17 Σχήµ Σχήµα 5 Η σελίδα πληροφόρησης για µια πόλη δείχνει το όνοµ όνοµα της πόλης και το παράθυρο του χάρτη δείχνει τη περιοχή γύρω από τη πόλη. πόλη. ......................................................... ....................... 18 Σχήµ Σχήµα 6 Η βασική λειτουργικότητα του StreetPilot είναι η σελίδα χάρτη που δείχνει τη παρούσα θέση µας πάνω στον χάρτη. χάρτη. ∆ιαλέγοντας προορισµ προορισµό η διαδροµ διαδρο µή το StreetPilot δείχνει τη σωστή κατεύθυνση µε βέλη, βέλη,  υποδεικνύοντας ταυτόχρονα υπολειπό ταυτόχρονα  υπολειπόµ µενη απόσταση και χρόνο.............. χρόνο..............1 18 Σχήµ Σχήµα 7 Το Trip Planner προτείνει Planner προτείνει γραφικές ή ιστορικού ενδιαφέροντος διαδροµ διαδρο µές. ές. Σε κάθε µία διαδροµ διαδρο µή περιέχονται ιστορικά και άλλα στοιχεία, στοιχεία, χάρτες, χάρτες, ταξιδιωτικό ηµερολόγιο και σηµ σηµεία ενδιαφέροντος. ενδιαφέροντος. ..................................................... ............................................................ ............. 18 Σχήµ Σχήµα 8 Αφού καθορίσουµ καθορίσουµε τη διαδροµ διαδρο µή και τη ταχύτητα οδήγησης, οδήγησης, ο βοηθός διαδροµ διαδρο µής θα  υπολογίσει το χρόνο διαδροµ διαδρο µής και θα µας πει πότε να πότε  να σταµ σταµατήσουµ ατήσουµε για βενζίνη. βενζίνη. Ακόµ Ακόµη, θα προτείνει µια διαδροµ διαδρο µή που βασίζεται στις προσωπικές προτιµ προτιµήσεις µας. ας. Ο καθορισµ καθορισµός της προτίµ προτίµησης γίνεται µεταξύ τεσσάρων προκαθορισµ προκαθορισµένων επιλογών............................................. επιλογών............................................. 19 Σχήµ Σχήµα 9 Με το εργαλείο αναζήτησης µπορούµ πορούµε  να δούµ δούµε πάνω στο χάρτη τη θέση τοποθεσιών και δρόµ δρόµων. ων. ...................................................... ........................................................... ........................ 19 Σχήµ Σχήµα 10 Αν τονίσουµ τονίσουµε µε αντίστοιχο εργαλείο µια διαδροµ διαδρο µή θα µάθουµ άθουµε πόση είναι η απόσταση ανάµ ανά µεσα στην αρχή και το τέλος...................................................................................................20 τέλος...................................................................................................20 Σχήµ Σχήµα 11 Η φόρµ φόρµα εισαγωγής αρχικού και τελικού σηµ σηµείου -προαιρετικά και ενδιάµ ενδιάµεσων σηµ σηµείωνείωνκαι καθορισµ καθορισµός του τύπου µονοπατιού ανά ανάµ µεσα σε Quickest, Shortest, Scenic...........................22 Σχήµ Σχήµα 12 Οι οδηγίες για τη µετάβαση από σηµ σηµείο σε σηµ σηµείο, είο, δίνονται σε πίνακα, πίνακα, που βρίσκεται σε ξεχωριστή σελίδα, σελίδα, χωρίς την υποστήριξη την  υποστήριξη χάρτη, χάρτη, στο ίδιο παράθυρο. παράθυρο. Ο πίνακας περιλαµ περιλαµβάνει πληροφορίες απόστασης, απόστασης, χρόνου διαδροµ διαδρο µής και αναλυτική λίστα µε τους δρόµ δρόµους, ους, τις οδηγίες πλοήγησης. πλοήγησης. .......................................................... ............................................................ ..............22 Σχήµ Σχήµα 13 Εκτός από το φωτισµ φωτισµένο µονοπάτι από την αρχή µέχρι το τέλος του, του, έχουµ έχουµε και δύο µικρότερους χάρτες που δείχνουν σε µεγένθυση και περισσότερες λεπτοµ λεπτοµέρειες το αρχικό και τελικό σηµ σηµείο. είο. ..................................................... ............................................................ ..............23 Σχήµ Σχήµα 14 Στη σελίδα µε τις οδηγίες πλοήγησης, πλοήγησης, εκτός από το φωτισµ φωτισµένο µονοπάτι πάνω στο χάρτη, χάρτη, παίρνουµ παίρνουµε και και οδηγίες µε κείµ κείµενο...........................................................................................23 ενο...........................................................................................23 Σχήµ Σχήµα 15 Το αντικείµ αντικείµενο Connection του µοντέλου Active Data Objects και τα αντικείµ αντικείµενα που ανήκουν σε αυτό............................................................................................................................24 αυτό............................................................................................................................24 Σχήµ Σχήµα 16 Η τεχνολογία Active Server Pages επεκτείνει το πρωτόκολλο HTTP και δεν απαιτεί αλλαγές στους browser, αφού λειτουργεί εξολοκλήρου στον server. .............................................. ...........26 Σχήµ Σχήµα 17 Οι οντότητες του µοντέλου πληροφορίας και οι µεταξύ τους σχέσεις. σχέσεις. Error!

Bookmark not

defined.

Σχήµ Σχήµα 18 Το διάγραµµ διάγραµµα α Entity-Relationship (E-R) ......................................................... .....................58 Σχήµ Σχήµα 19 Ο πίνακας Items.....................................................................................................................59 Σχήµ Σχήµα 20 Ο πίνακας ItemsContext. .................................................... ...................................................59

6

ΕΙΣΑΓΩΓΗ

Σχήµ Σχήµα 21 Ο πίνακας Context.................................................................................................................59 Σχήµ Σχήµα 22 Ο πίνακας ItemsData. .................................................... ........................................................60 Σχήµ Σχήµα 23 Ο πίνακας Data. .......................................................... ...........................................................60 Σχήµ Σχήµα 24 Ο πίνακας Pushpins. ....................................................... .......................................................60 Σχήµ Σχήµα 25 Ο πίνακας Profiles. ....................................................... .........................................................6 1 Σχήµ Σχήµα 26 Ο πίνακας HotItems...............................................................................................................6 1 Σχήµ Σχήµα 27 Ο πίνακας MapObjects ............................................................... ...........................................6 1 Σχήµ Σχήµα 28 Ο πίνακας Streets...................................................................................................................6 1 Σχήµ Σχήµα 29 Ο πίνακας MapStreets. ........................................................ ..................................................62 Σχήµ Σχήµα 30 Το πρότυπο µε βάση το οποίο σχεδιάστηκε το user interface της εφαρµ εφαρµογής. ογής. Το παράθυρο της εφαρµ εφαρµογής χωρίζεται σε τέσερα µέρη, έρη, όπου το µεγαλύτερο καταλαµ καταλαµβάνει ο χάρτης............64 χάρτης............64 Σχήµ Σχήµα 31 Dialog box για την ανάκληση των στοιχείων χρήστη µε βάση το email του. του. ............. .................... ..........7 ...71 1 Σχήµ Σχήµα 32 Τα αποτελέσµ αποτελέσµατα επεκτείνονται -προαιρετικάπροαιρετικά- σε σύντοµ σύντοµο κείµ κείµενο και δυνατότητα µετάβασης σε αναλυτική πληροφορία...........................................................................................73 πληροφορία...........................................................................................73 Σχήµ Σχήµα 33 Τα waypoints παρουσιάζονται σύµ σύµφωνα µε τη φορά διαγραφής του µονοπατιού και µπορούµ πορούµε  να δούµ δούµε τη θέση τους στο χάρτη.................................................................................73 χάρτη.................................................................................73 Σχήµ Σχήµα 34 Αν το µονοπάτι περιέχει αντικείµ αντικείµενα, ενα, τότε εκτός από τις οδηγίες πλοήγησης έχουµ έχουµε δυνατότητα επέκτασης στη λίστα των αντικειµ αντικειµένων κάθε δρόµ δρόµου και εν συνεχεία δυνατότητα επέκτασης στις πληροφορίες για κάθε αντικείµ αντικείµενο.......................................................................74 ενο.......................................................................74 Σχήµ Σχήµα 35 Η λίστα µε τα pushpins παρουσιάζει τα ονόµ ονόµατα που έχει θέσει ο χρήστης για τα pushpins, καθώς και τα default του συστήµ συστήµατος. ατος. Κάθε pushpin έχει τη συµ συµπεριφορά που ορίζει το µοντέλο της παρουσίασης αποτελεσµ αποτελεσµάτων. άτων. ................................................. ...............................................75 Σχήµ Σχήµα 36 Η λίστα των χρηστών παρουσιάζει τα ονόµ ονόµατα των ενεργών χρηστών και επιτρέπει να επιτρέπει  να δούµ δούµε το σύντοµ σύντοµο κείµ κείµενο -που έχει εισάγει ο κάθε χρήστης για τον εαυτό του-, του-, καθώς και δυνατότητα µετάβασης σε µια σελίδα που περιέχει πληροφορίες για το χρήστη. χρήστη. ............. .................... ...........75 ....75 Σχήµ Σχήµα 37 Η επιλογή κατηγορίας γίνεται µε το πολύ οικείο, οικείο, τύπου windows windows explorer, user interface, όπου φαίνεται παραστατικά η ιεραρχία των κατηγοριών και µπορούµ πορούµε  να επεκτείνουµ επεκτείνουµε (expand) ή  να συµ συµπτύξουµ πτύξουµε (collapse) κατά προτίµ προτίµηση. ηση. ................................................. ............................76 Σχήµ Σχήµα 38 Η εγγραφή και η αλλαγή των στοιχείων του χρήστη γίνεται από το ίδιο dialog box, που στη δεύτερη περίπτωση έχει συµ συµπληρωµ πληρωµένα τα στοιχεία του χρήστη από τη βάση δεδοµ δεδοµένων..........77 ένων..........77 Σχήµ Σχήµα 39 Ο ορισµ ορισµός ενός νέου ενός  νέου pushpin και η αλλαγή ενός υπάρχοντος ενός  υπάρχοντος γίνεται από το ίδιο dialog box, που στη δεύτερη περίπτωση έχει γεµ γεµάτα τα αντίστοιχα πεδία από τη βάση δεδοµ δεδοµένων...............77 ένων...............77 Σχήµ Σχήµα 40 Μπορούµ Μπορούµε  να ψάξουµ ψάξουµε για ένα αντικείµ αντικείµενο µε βάση το όνοµ όνοµα ή τη κατηγορία του. του. Ακόµ Ακόµη, µπορούµ πορούµε  να ορίσουµ ορίσουµε τη µέγιστη απόσταση από τη θέση µας, ας, ή  να επιλέξουµ επιλέξουµε συγκεκριµ συγκεκριµένες περιοχές του χάρτη. χάρτη. ................................................... ........................................................ ............78 Σχήµ Σχήµα 41 Η οµάδα εργαλείων µε τις επιλογές για τον παρόντα χρήστη διακρίνεται µε τίτλο το όνοµ όνοµα του. του. Το µενού pushpins γίνεται pop up. .................................................... ....................................78 Σχήµ Σχήµα 42 Η οµάδα εργαλείων για τη σχεδίαση µονοπατιού περιέχει ένα πεδίο όπου εµφανίζεται ο τίτλος της κατηγορίας ενδιαφέροντος για µονοπάτι. ονοπάτι. Ακόµ Ακόµη,  υπάρχει το pull down µενού µ ενού για τα waypoints. ................................................... ............................................................ ......................80 Σχήµ Σχήµα 43 Μπορούµ Μπορούµε  να δούµ δούµε ποιοι χρήστες είναι ενεργοί και που βρίσκονται πάνω στο χάρτη. χάρτη. Προαιρετικά µπορούµ πορούµε  να δούµ δούµε µόνο αυτούς που βρίσκονται κοντά µας. ας. .................................80 Σχήµ Σχήµα 44 Το ολοκληρωµ ολοκληρωµένο User Interface της εφαρµ εφαρµογής. ογής. ....................................................... .........83 Σχήµ Σχήµα 45 Η αρχιτεκτονική των τεχνολογιών στον client και στον server. Βλέπουµ Βλέπουµε την ιεραρχία καθώς και τη διασύνδεση των επιµ επιµέρους τµηµάτων. άτων. ................................................. ...................85

7

ΕΙΣΑΓΩΓΗ

1 ΕΙΣΑΓΩΓΗ Η παρούσα διπλωµ διπλωµατική εργασία διαπραγµ διαπραγµατεύεται τη σχεδίαση και  υλοποίηση ενός ολοκληρωµ ολοκληρωµένου συστήµ συστήµατος πληροφόρησης, πληροφόρησης, πλοήγησης και συνεργασίας χρηστών στο Web, χρησιµ χρησιµοποιώντας σαν κύριο µέσο διεπικοινωνίας δυναµ δυναµικούς χάρτες, χάρτες, που µπορούν  να λαµ λαµβάνουν  υπ’  υπ’ όψη τους στους  υπολογισµ  υπολογισµούς και στη παρουσίαση τα ενδιαφέροντα των χρηστών. χρηστών. Το σύστηµ σύστηµα είναι βασισµ βασισµένο στην αρχιτεκτονική πελάτηπελάτη-εξυπηρετητή (client-server) και περιλαµ περιλαµβάνει αλληλεπιδραστικό χάρτη, χάρτη, σαν µέσο επικοινωνίας χρηστώνχρηστών-συστήµ συστήµατος. ατος. Παρέχεται λειτουργικότητα Τουριστικού Συστήµ Συστήµατος Πληροφόρησης (Tourist Information System-TIS) µε µ ε στοιχεία Γεωγραφικού Συστήµ Συστήµατος Πληροφόρησης (Geographic Information System-GIS). Ακόµ Ακόµη, διαχειρίζεται δυναµ δυναµική (warm-µε (warm-µε την έννοια ότι βρίσκεται σε συνεχή διαδικασία ανανέωσης από τους χρήστες) χρήστες) πληροφορία, πληροφορία, που τη παρουσιάζει µε χρήση χάρτη. χάρτη. Ιδιαίτερη έµφαση έχει δοθεί στην διασύνδεση σύγχρονων τεχνολογιών από το χώρο του δικτύου (Internet) και του παγκόσµ παγκόσµιου ιστού (World Wide Web-WWW). 8

ΕΙΣΑΓΩΓΗ

Συνοπτικά, Συνοπτικά, δοκιµ δοκιµάστηκαν, άστηκαν, στη πλευρά του πελάτη (client), πάνω στην πλατφόρµ πλατφόρµα του Internet Explorer 4 (IE4), τεχνολογίες όπως το Map ActiveX Control, Dynamic HTML (DHTML). Στη πλευρά του εξυπηρετητή (server) λειτουργεί ο Internet Information Server 4 (IIS4) µε µε Active Server Pages (ASP) και πρόσβαση σε σχεσιακή βάση δεδοµ δεδοµένων (RDBMS) µε µε ActiveX Data Objects (ADO). Για την αλληλεπίδραση µε το χρήστη σχεδιάστηκαν µια σειρά από εργαλεία και µοντέλα για την είσοδο και αναπαράσταση των δεδοµ δεδοµένων, ένων, όπως οι προτιµ προτιµήσεις χάρτη (pushpins), τα κοµ κοµβικά σηµ σηµεία µονοπατιού (waypoints). Τα αποτελέσµ αποτελέσµατα των ερωτήσεων του χρήστη είτε είναι αντικείµ αντικείµενα, ενα, είτε είναι µονοπάτια, ονοπάτια, είτε µονοπάτια που περιέχουν αντικείµ αντικείµενα παρουσιάζονται µε τρόπο οµοιόµ οιόµορφο. ορφο. Τα αντικείµ αντικείµενα της βάσης δεδοµ δεδοµένων είναι συνδεµ συνδεµένα µε το χάρτη και απεικονίζονται σε αυτόν. αυτόν. Κάθε αντικείµ αντικείµενο είναι επίσης συνδεµ συνδεµένο µε µια ή περισσότερες κατηγορίες. κατηγορίες. Τα δεδοµ δεδοµένα της βάσης δεδοµ δεδοµένων καθώς και ο χάρτης αφορούν τα Χανιά, Χανιά, αλλά το σύστηµ σύστηµα είναι γενικό, γενικό, ώστε  να µπορεί  να εφαρµ εφαρµοστεί σε οποιαδήποτε πόλη ή ευρύτερη γεωγραφική περιοχή. περιοχή. Από αυτή τη σκοπιά το σύστηµ σύστηµα ανήκει στη κατηγόρια των γεωγραφικών συστηµ συστηµάτων πληροφόρησης (GIS), αλλά το βάρος της εργασίας είναι στη χρήση του δηµ δηµοφιλούς δικτύου internet και στη δυναµ δυναµικότητα που δίνει αυτό, αυτό, τόσο στους χρήστες όσο και στους παροχείς πληροφορίας. πληροφορίας. Η λειτουργικότητα του ενεργού χάρτη παρέχεται από το Map ActiveX Control του εργαστηρίου MU.S.I.C., που δίνει τη δυνατότητα στο χρήστη  να επιλέγει και  να βλέπει ενεργές περιοχές πάνω σε γεωγραφικό χάρτη τοποθεσίας. τοποθεσίας. Ο χάρτης λειτουργεί στο περιβάλλον του IE4, που παρέχει εξελιγµ εξελιγµένες δυνατότητες για συγγραφή πολυµ πολυµέσων όπως Scripting, Cascaded Style Sheets, Document Object Model, Cookies.  Ένα µέρος της πληροφορίας εµπεριέχεται στο χάρτη, χάρτη, το µεγαλύτερο όµως δηµ δηµιουργείται κατά την επικοινωνία µε τον εξυπηρετητή. εξυπηρετητή. Εδώ φτάνουν οι αιτήσεις του πελάτη, πελάτη, γίνονται οι ερωτήσεις στη βάση δεδοµ δεδοµένων και τα αποτελέσµ αποτελέσµατα µορφοποιούνται κατάλληλα, κατάλληλα , για την παρουσίαση τους. τους. Αν και η τεχνολογία που χρησιµ χρησιµοποιήθηκε τόσο στον client όσο και στον server είναι server είναι αυτή του world wide web, µπορού µ πορούµ µε  να µιλάµ ιλάµε για µια εφαρµ εφαρµογή (Web Application), αφού τέτοια είναι η εµπειρία και η εντύπωση που δίνει στο χρήστη. χρήστη.

1.1 Αναγκαιότητα Η αναγκαιότητα του συστήµ συστήµατος  υπαγορεύεται από τις τελευταίες εξελίξεις στο χώρο της τεχνολογίας του world wide web, καθώς και απο το ευρωπαϊκό ερευνητικό πρόγραµµ πρόγραµµα α Campiello, στα πλαίσια του οποίου πραγµ πραγµατοποιείται αυτή η εργασία. εργασία.

1.1.1 World Wide Web Η πλοήγηση χρήστη σε µια πόλη, πόλη, η πληροφόρηση µε χάρτη και η συνεργασία χρηστών δεν είναι καινούριες έννοιες. έννοιες. Αυτό που είναι νέο είναι  νέο όµως, ως, είναι η ολοκλήρωση τους σε ένα σύστηµ σύστηµα που λειτουργεί στο δηµ δηµοφιλές, οφιλές, άµεσο και δυναµ δυναµικό χώρο του world wide web.

9

ΕΙΣΑΓΩΓΗ

Οι παραδοσιακές εφαρµ εφαρµογές, ογές, ακόµ ακόµα και οι πιο µοντέρνες σε CDROM, έχουν περιορισµ περιορισµένη ποσότητα πληροφορίας και αναπόφευκτα µικρό χρόνο ζωής, ζωής, µε τη διάθεση στην αγορά  νέων εκδόσεων. εκδόσεων. Η έννοια αυτή δεν  υπάρχει στο www, όπου ο χρήστης έχει πάντα την πιο πρόσφατη έκδοση, έκδοση, µε διορθωµ διορθωµένα τα bugs, µε µε τα  νέα χαρακτηριστικά και το κυριότερο, κυριότερο, µε τρόπο διαφανή για αυτόν. αυτόν. Η ποσότητα των δεδοµ δεδοµένων που µπορούν  να αποθηκευτούν σε ένα κεντρικό σύστηµ σύστηµα είναι ασύγκριτα µεγαλύτερη από αυτήν σε ένα CDROM. Καθώς  νέοι χάρτες, χάρτες, ενηµ ενηµερωµ ερωµένα δεδοµ δεδοµένα και εκδόσεις λογισµ λογισµικού προστίθενται στο web site, ο τελικός χρήστης τα έχει όλα στη διάθεση του άµεσα. εσα. Το περιβάλλον λειτουργίας της εφαρµ εφαρµογής είναι το internet, που επιτρέπει τη διασύνδεση της τοπικής πληροφορίας µε πληροφορία σε άλλες τοποθεσίες, τοποθεσίες, δίνοντας τελικά µια θολή εικόνα για το που τελειώνει η παρεχόµ παρεχόµενη πληροφορία. πληροφορία. Αναπόφευκτα, Αναπόφευκτα, αναπτύσσοντας µια εφαρµ εφαρµογή σε αυτό το περιβάλλον µας δίνονται  νέες δυνατότητες, δυνατότητες, που οφείλονται στη διασύνδεση µε άλλα συστήµ συστήµατα. ατα. Καµ Καµία εφαρµ εφαρµογή από µόνη της δεν µπορεί  να περιέχει όλη την επιθυµ επιθυµητή πληροφορία, πληροφορία, ειδικά για κάθε χρήστη χωριστά. χωριστά. Στη καλύτερη περίπτωση µπορεί  να ικανοποιήσει µια οµάδα χρηστών. µπορεί  να έχει αναφορές σε άλλα και χρηστών. Στο www κάθε web site µπορεί επεκτείνοντας κάθε χρήστης ενός web site µπορεί µπορεί να  να συνδέσει τη τοπική πληροφορία µε εξωτερική. εξωτερική. Συνολικά, Συνολικά, σχηµ σχηµατίζεται µια εφαρµ εφαρµογή όπου η πληροφορία είναι δυναµ δυναµική µε την έννοια ότι επεκτείνεται από όλους τους χρήστες. χρήστες.

1.1.2 Campiello Το ευρωπαϊκό ερευνητικό πρόγραµµ πρόγραµµα α Campiello αποσκοπεί στο σχεδιασµ σχεδιασµό και  υλοποίηση καινοτοµ καινοτοµικών µεθόδων για την επικοινωνία µεταξύ των κατοίκων µιας πόλης τουριστικού ενδιαφέροντος και των επισκεπτών της. της. Θα κατασκευαστούν τα κατάλληλα εργαλεία για την  υποστήριξη των  υπαρχόντων αναγκών και για τη δηµ δηµιουργία νέων ιουργία  νέων καναλιών επικοινωνίας. επικοινωνίας.

Τεχνολογίες Αλληλεπίδρασης Το Campiello περιλαµ περιλαµβάνει τη χρήση παραδοσιακών και  νεότερων µεθόδων αλληλεπίδρασης. αλληλεπίδρασης. Στις τελευταίες ανήκουν το active wall και το active paper. Πέρα από αυτά, αυτά, χρησιµ χρησιµοποιείται η τεχνολογία των προσωπικών  υπολογιστών και του δικτύου internet για τη κατασκευή ενός πλήρους συστήµ συστήµατος πληροφόρησης που θα περιλαµ περιλαµβάνει χάρτες, χάρτες, εικονικούς τρισδιάστατους χώρους, χώρους, θέµ θέµατα συζήτησης, συζήτησης, εφηµ εφηµερίδα, ερίδα, συνεργασία χρηστών. χρηστών. Τµήµα της λειτουργικότητας αυτής καλείται  να σχεδιάσει και  να  υλοποιήσει η παρούσα εργασία. εργασία. Αν και η εργασία αυτή ευσταθεί από µόνη της, της, µπορούµ πορούµε  να τη περιγράψουµ περιγράψουµε και  να την αντιληφθούµ αντιληφθούµε καλύτερα µέσα από τις προδιαγραφές και τη προβλεπόµ προβλεπόµενη λειτουργικότητα του Campiello. Κλάσεις Χρηστών και Σενάρια Λειτουργίας Ορίζονται τρεις βασικές κλάσεις χρηστών, χρηστών, οι ντόπιοι οι  ντόπιοι,, οι τουρίστες και οι διαχειριστές πολιτιστικής πληροφορίας. πληροφορίας. Η έµφαση δίνεται στη δηµ δηµιουργία καναλιού επικοινωνίας ανάµ ανά µεσα σε αυτούς τους χρήστες. χρήστες. Η επικοινωνία πραγµ πραγµατοποιείται µε διάφορες συσκευές και  υποστηρίζεται από τη βάση δεδοµ δεδοµένων µε τη µορφή δεδοµ δεδοµένων που περιγράφουν τις προτιµ προτιµήσεις και σχόλια που προέρχονται από τους χρήστες. χρήστες. Σε συντοµ συντοµία τα βασικά σενάρια του συστήµ συστήµατος είναι τα παρακάτω: παρακάτω :

10

ΕΙΣΑΓΩΓΗ

Κοντινή Επικοινωνία (Close Communication): Υποστηρίζει τη δηµ δηµιουργία συνδέσµ συνδέσµων µεταξύ των χρηστών και απλοποιεί την ανταλλαγή πληροφορίας σχετικά µε ένα αντικείµ αντικείµενο ή τοποθεσία. τοποθεσία. Ο χρήστης θα µπορεί  να παίρνει συµ συµβουλές για αντικείµ αντικείµενα από χρήστες που έχουν τα ίδια ενδιαφέροντα µε αυτόν. αυτόν. Ακόµ Ακόµη, θα είναι ενήµ ενήµερος για την παρουσία άλλων χρηστών κοντά, κοντά, µε σκοπό  να επικοινωνήσει µαζί τους. τους. Θα έχει ένα προσωπικό ηµερολόγιο για την αποθήκευση σηµ σηµειώσεων σχετικά µε τοποθεσίες και χρήστες. χρήστες. Ενεργό Μουσείο (Active Museum): Θα παρέχεται πληροφορία σύµ σύµφωνα µε τις προτιµ προτιµήσεις του κάθε χρήστη. χρήστη. Θα καταγράφεται η επίσκεψη και τα σχόλια του κάθε χρήστη, χρήστη, µε µε σκοπό την ανάλυση τους από τους ειδικούς, ειδικούς, καθώς και σαν συµ συµβουλές για άλλους ενδιαφερόµ ενδιαφερόµενους επισκέπτες. επισκέπτες. Τοπική Εφηµ Εφηµερίδα (Your Local Paper): Μια εφηµ εφηµερίδα σχεδιασµ σχεδιασµένη για κάθε χρήστη ξεχωριστά, ξεχωριστά, σύµ σύµφωνα µε τις προσωπικές προτιµ προτιµήσεις του, του, που ενηµ ενηµερώνει σχετικά µε τα γεγονότα που λαµ λαµβάνουν χώρα σε µια πόλη. πόλη.

Βασικές Οντότητες Η βασική οντότητα στο σύστηµ σύστηµα Campiello είναι το αντικείµ αντικείµενο. ενο.  Ένα αντικείµ αντικείµενο αναπαριστά µια τοποθεσία ή ένα γεγονός -που λαµ λαµβάνει χώρα σε κάποια τοποθεσία. τοποθεσία. Τα αντικείµ αντικείµενα µπορούν  να οργανωθούν ιεραρχικά, ιεραρχικά, σε ένα δέντρο από γενικότερα αντικείµ αντικείµενα -όπως η παλιά πόλη στα Χανιά-, Χανιά-, σε πιο συγκεκριµ συγκεκριµένα και µικρότερα όπως το αρχαιολογικό µουσείο, ουσείο, τα δωµ δωµάτια και τα εκθέµ εκθέµατα σε κάθε δωµ δωµάτιο. άτιο. Κάθε αντικείµ αντικείµενο ανήκει σε µια ή περισσότερες κατηγορίες. κατηγορίες. Οι κατηγορίες οργανώνονται σε µια ιεραρχία, ιεραρχία, όπου για παράδειγµ παράδειγµα µια παραδοσιακή ταβέρνα είναι εστιατόριο, εστιατόριο, το οποίο είναι διατροφή, διατροφή, το οποίο είναι διευκόλυνση. διευκόλυνση. Παροχή Προσωπικής Πληροφόρησης (Personalization of Information) Τα ενδιαφέροντα του χρήστη χρησιµ χρησιµοποιούνται για τη παροχή της κατάλληλης πληροφορίας. πληροφορίας. Για παράδειγµ παράδειγµα, όταν παρουσιάζεται ένα ξενοδοχείο σε ένα χρήστη που του αρέσει το τένις, τένις, τότε δίνεται έµφαση στην ύπαρξη στην  ύπαρξη γηπέδου τένις. τένις. Αναζήτηση Ο χρήστης θα µπορεί  να αναζητήσει πληροφορία σύµ σύµφωνα µε τα προσωπικά του ενδιαφέροντα και τις προτάσεις άλλων χρηστών µε παρόµ παρόµοια ενδιαφέροντα. ενδιαφέροντα. Η αναζήτηση αναφέρεται στην ανεύρεση τοποθεσιών ενδιαφέροντος µε βάση τη θεµ θεµατική ή φυσική γειτνίαση. γειτνίαση. Μπορεί  να είναι προσωπική (personalized) ή όχι. όχι. Η αναζήτηση περιλαµ περιλαµβάνει κατάταξη, κατάταξη , ώστε  να επιτρέπει στους χρήστες  να αποφασίζουν ευκολότερα για τα αντικείµ αντικείµενα που τους ενδιαφέρουν. ενδιαφέρουν.

1.2 Προδιαγραφές Οι προδιαγραφές του συστήµ συστήµατος καθορίζουν το είδος, είδος, το χαρακτήρα και τη σκοπιµ σκοπιµότητα της εφαρµ εφαρµογής. ογής. Ζητήθηκε  να σχεδιαστεί ένα σύστηµ σύστηµα γεωγραφικής πληροφόρησης που  να λειτουργεί πάνω στο δίκτυο internet, βασισµ βασισµένο στις τελευταίες τεχνολογίες του World Wide Web (WWW), τόσο στη πλευρά του web server, όσο και στην πλευρά του web browser.

11

ΕΙΣΑΓΩΓΗ

Η εργασία πραγµ πραγµατοποιείται στα πλαίσια του ευρωπαϊκού ερευνητικού προγράµµ προγράµµατος ατος Campiello από όπου δανείζεται πολλά χαρακτηριστικά. χαρακτηριστικά. Τα σενάρια λειτουργίας, λειτουργίας, το σχήµ σχήµα της βάσης δεδοµ δεδοµένων είναι  υποσύνολα αυτών που καθορίζονται στο Campiello. Το ολοκληρωµ ολοκληρωµένο σύστηµ σύστηµα θα πρέπει  να περιλαµ περιλαµβάνει ένα σύνολο από εργαλεία για την πληροφόρηση, πληροφόρηση, πλοήγηση και συνεργασία χρηστών µε χρήση αλληλεπιδραστικού χάρτη. χάρτη. Η λειτουργικότητα του συστήµ συστήµατος απευθύνεται σε χρήστες  υπολογιστών γραφείου, γραφείου, αλλά και σε κινητούς χρήστες -µε -µε την προϋπόθεση της ύπαρξης της  ύπαρξης ασύρµ ασύρµατου τοπικού δικτύου (wireless LAN). Ο κάθε χρήστης θα πρέπει  να αναγνωρίζεται και  να διακρίνεται από τους άλλους χρήστες, χρήστες, ώστε  να  υπάρχει άµεση δυνατότητα για την προσφορά εξατοµ εξατοµικευµ ικευµένης πληροφόρησης. πληροφόρησης. Επίσης ο κάθε χρήστης θα µπορεί  να τοποθετεί προσωπικές σηµ σηµειώσεις πάνω στο χάρτη, χάρτη, που το σύστηµ σύστηµα θα θυµ θυµάται. άται. Οι σηµ σηµειώσεις αυτές θα πρέπει  να εκ µεταλλεύονται τη φύση του WWW, που επιτρέπει τη διασύνδεση εγγράφων. εγγράφων. Ο προσανατολισµ προσανατολισµός του πάνω στο χάρτη θα πρέπει  να διευκολύνεται από εργαλεία που σηµ σηµαδεύουν τοποθεσίες καθώς και από ορατά και αναγνωρίσιµ αναγνωρίσιµα σηµ σηµεία (Landmarks). Για την εξυπηρέτηση των κινητών χρηστών απαιτείται ένα  υποσύστηµ  υποσύστηµα που  να περιλαµ περιλαµβάνει θέση, θέση, ερωτήσεις γειτνίασης, γειτνίασης,  υπολογισµ  υπολογισµό µονοπατιών από σηµ σηµείο σε σηµ σηµείο και πλοήγηση πάνω στα µονοπάτια. ονοπάτια. Εκτός από συντοµ συντοµότερο µονοπάτι θα  υπάρχουν και µονοπάτια µε παράµ παράµετρο κατηγορία ενδιαφέροντος. ενδιαφέροντος. Για µια δεδοµ δεδοµένη κατηγορία ενδιαφέροντος το σύστηµ σύστηµα θα πρέπει  να  υπολογίζει,  υπολογίζει,  να απεικονίζει και  να δίνει οδηγίες για την πλοήγηση πάνω σε σε αυτό και στα αντικείµ αντικείµενα που περιλαµ περιλαµβάνει. βάνει. Το µονοπάτι που επιστρέφεται σε αυτή τη περίπτωση είναι βέλτιστο από την άποψη της ποιότητας και του πλήθους των αντικειµ αντικειµένων που περιέχει. περιέχει. Και για τις δύο κατηγορίες χρηστών απαιτείται ένα  υποσύστηµ  υποσύστηµα ερωτήσεων για αντικείµ αντικείµενα ενδιαφέροντος. ενδιαφέροντος. Θα πρέπει  να περιλαµ περιλαµβάνει παραδοσιακές ερωτήσεις µε βάση το όνοµ όνοµα και τη κατηγορία, κατηγορία, αλλά και γεωγραφικά κριτήρια όπως η γειτνίαση και οι επιλεγµ επιλεγµένες από το χρήστη περιοχές του χάρτη. χάρτη. Μια πιθανή ερώτηση θα µπορεί  να είναι τα εστιατόρια που βρίσκονται σε συγκεκριµ συγκεκριµένες περιοχές -πιθανόν λόγω καλής θέσης ή θέαςθέας- και που απέχουν 500 µέτρα µέτρα από τη παρούσα θέση χρήστη γιατί µπορεί να πορεί  να µη θέλει να θέλει  να αποµ αποµακρυνθεί. ακρυνθεί. Ο αλληλεπιδραστικός χάρτης θα είναι αυτός που δηµ δηµιουργήθηκε στο εργαστήριο MU.S.I.C., ένα εργαλείο πολύπλευρο που επιτρέπει τη δηµ δηµιουργία χαρτών και ανάπτυξη εφαρµ εφαρµογών µε αντικειµ αντικειµενοστραφή τρόπο. τρόπο . Από µια οικογένεια εφαρµ εφαρµογών µε το όνοµ όνοµα Map Studio Family, χρησιµ χρησιµοποιείται το Map ActiveX Control, που προσφέρει παρουσίαση και αλληλεπίδραση µε χάρτες σχεδιασµ σχεδιασµένους για την εν λόγο οικογένεια εφαρµ εφαρµογών. ογών.

1.3 Σενάρια Χρήσης Σε αυτή την ενότητα περιγράφονται µερικά σενάρια χρήσης του συστήµ συστήµατος. ατος . Τα σενάρια αυτά χρησιµ χρησιµοποιήθηκαν για τη σχεδίαση του συστήµ συστήµατος. ατος.

12

ΕΙΣΑΓΩΓΗ

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

1.4 ∆οµή του Κειµένου Το κείµ κείµενο είναι χωρισµ χωρισµένο σε έξι ενότητες. ενότητες. Στη πρώτη, πρώτη, γίνεται µια σύντοµ σύντοµη παρουσίαση σύγχρονων συστηµ συστηµάτων µε παρόµ παρόµοια χαρακτηριστικά. χαρακτηριστικά. Το βάρος δίνεται σε συστήµ συστήµατα λογισµ λογισµικού, ικού , αλλά δε λείπουν και τα συστήµ συστήµατα  υλικού.  υλικού. Σκοπός δεν είναι τόσο η διεξοδική παρουσίαση τους, τους, όσο η µελέτη των χαρακτηριστικών που έχουν ή θα έπρεπε  να έχουν, έχουν, ώστε  να είναι χρήσιµ χρήσιµα. Τα χαρακτηριστικά αυτά εξάγονται για να για  να συγκριθούν µε εκείνα της εφαρµ εφαρµογής που σχεδιάστηκε. σχεδιάστηκε. Στη συνέχεια περιγράφεται το θεωρητικό µοντέλο της αρχιτεκτονικής του. του. ∆ίνεται µια πρώτη εικόνα της λειτουργικότητας του συστήµ συστήµατος, ατος, κάποια πιθανά σενάρια χρησιµ χρησιµότητας και η διασύνδεση των επιµ επιµέρους τµηµάτων. άτων. Ο σχεδιασµ σχεδιασµός της βάσης δεδοµ δεδοµένων µελετάται στο τρίτο µέρος. έρος. Τα µοντέλα που συζητήθηκαν και σχεδιάστηκαν στο προηγούµ προηγούµενο µέρος αντιπροσωπεύονται

13

ΕΙΣΑΓΩΓΗ

σύµ σύµφωνα µε το µοντέλο οντότηταςοντότητας-σχέσης (entity-relationship model) και ορίζονται τα χαρακτηριστικά τους. τους. Τα διαγράµµ διαγράµµατα ατα E-R  θα  υλοποιηθούν στη σχεσιακή βάση δεδοµ δεδοµένων Microsoft Access όπου περιγράφονται οι αντίστοιχοι πίνακες. πίνακες. Στο τέταρτο µέρος σχεδιάζουµ σχεδιάζουµε το user interface της εφαρµ εφαρµογής. ογής. Το user interface αντικατοπτρίζει το µοντέλο της πληροφορίας στη οθόνη του χρήστη. χρήστη. Η µεθοδολογία που ακολουθήθηκε και οι βασικές αρχές που διέπουν τη σχεδίαση user interfaces σε συστήµ συστήµατα λογισµ λογισµικού παρουσιάζονται και εφαρµ εφαρµόζονται. όζονται. Ακολουθεί µια αναλυτική περιγραφή της λειτουργικότητας στην πέµ πέµπτη ενότητα, ενότητα, που πιστοποιεί την αποτελεσµ αποτελεσµατικότητα της σχεδίασης του µοντέλου πληροφορίας και του user  interface. Η  υλοποίηση της αρχιτεκτονικής του συστήµ συστήµατος µε τα εργαλεία που παρουσιάστηκαν στο πρώτο µέρος αποτελούν το αντικείµ αντικείµενο της έκτης ενότητας. ενότητας . Το κείµ κείµενο συνοδεύεται από µικρά τµήµατα κώδικα πηγής, πηγής, και αναλύονται οι σηµ σηµαντικότερες από τις λειτουργίες του συστήµ συστήµατος. ατος. Το κείµ κείµενο κλείνει µε την αποτίµ αποτίµηση του ολοκληρωµ ολοκληρωµένου πλέον συστήµ συστήµατος. ατος. Εδώ, Εδώ, εκτιµ εκτιµάται ο βαθµ βαθµός εκπλήρωσης των απαιτούµ απαιτούµενων από τις προδιαγραφές. προδιαγραφές. Επιπλέον αναφέρονται οι πιθανές επεκτάσεις και η ευκολία  υλοποίησης τους, τους, καθώς και η γενικότητα του συστήµ συστήµατος. ατος. Τη ροή του κειµ κειµένου διακόπτουν αναφορές στην ιστορία, ιστορία, στην επικαιρότητα , στις επιχειρήσεις, επιχειρήσεις, όλα από το χώρο της τεχνολογίας που σχετίζεται µε την παρούσα εργασία. εργασία. Οι λύσεις που δόθηκαν στα προβλήµ προβλήµατα της εργασίας δεν ήταν µονόδροµ ονόδροµος, ος, αλλά επιλογές που έγιναν ανά ανάµ µεσα σε διαφορετικές, διαφορετικές, ανταγωνιστικές τεχνολογίες. τεχνολογίες. Η ταυτόχρονη παρουσίαση της ιστορίας, ιστορίας, της επικαιρότητας, επικαιρότητας, των επιχειρήσεων τοποθετεί καλύτερα την εργασία στην ροή της τεχνολογικής εξέλιξης και επιτρέπει την εκτίµ εκτίµηση της στο πλαίσιο αυτών των δεδοµ δεδοµένων. ένων. Οι παράγοντες αυτοί επηρέασαν τις επιλογές και εποµ εποµένως φωτίζουν περισσότερο την ανάγνωση του κυρίως κειµ κειµένου. ένου.

14

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

2 ΣΧΕΤΙΚΗ ΕΡΓΑΣΙΑ Το κεφάλαιο αυτό χωρίζεται σε δύο µέρη, έρη, στο πρώτο παρουσιάζουµ παρουσιάζουµε παρόµ παρόµοια συστήµ συστήµατα και στο δεύτερο τεχνολογίες που χρησιµ χρησιµοποιούνται ή θα µπορούσαν  να χρησιµ χρησιµοποιηθούν για τη σχεδίαση και  υλοποίηση της εργασίας. εργασίας. Στα παρόµ παρόµοια συστήµ συστήµατα µελετάµ ελετάµε  υπάρχουσες εφαρµ εφαρµογές στον ευρύτερο χώρο της λειτουργικότητας που απαιτείται από τη παρούσα εργασία για  να διαπιστώσουµ διαπιστώσουµε τη χρησιµ χρησιµότητα και αποτελεσµ αποτελεσµατικότητα των χαρακτηριστικών τους. τους. Κάνουµ Κάνουµε επίσης µια σύντοµ σύντοµη αναφορά στα τουριστικά συστήµ συστήµατα πληροφόρησης, πληροφόρησης, εκτός από παρουσίαση δύο σηµ σηµαντικών εκπροσώπων. εκπροσώπων. Στο µέρος της τεχνολογίας µελετάµ ελετάµε τις δυνατότητες και τη δυνατότητα διασύνδεσης τεχνολογιών που αποτελούν πρότυπα ή προέρχονται από µεγάλες εταιρίες, εταιρίες, όπως η Microsoft. Ακόµ Ακόµη, γίνεται µια εισαγωγή στις δυνατότητες της οικογένειας εφαρµ εφαρµογών Map Studio, που σχεδιάστηκαν και  υλοποιήθηκαν στο εργαστήριο MUSIC.

15

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

2.1 Παρόµοια Συστήµατα Τα  υπάρχοντα online συστήµ συστήµατα προσφέρουν δυνατότητες εύρεσης πληροφορίας σχετικά µε τοποθεσίες, τοποθεσίες, την παρουσίαση τους πάνω στον αντίστοιχο τοπογραφικό χάρτη και ανάλογα µε την εφαρµ εφαρµογή, ογή, γραπτές οδηγίες για τη µετάβαση από σηµ σηµείο σε σηµ σηµείο ή το κλείσιµ κλείσιµο θέσεων σε εκδηλώσεις, εκδηλώσεις, µέσα µεταφοράς και τόπους διαµ διαµονής. ονής. Η αλληλεπίδραση µε το χάρτη, χάρτη, περιορίζεται στον ορισµ ορισµό περιοχής θέασης µε τα εργαλεία zoom-in/out και µετατόπισης. ετατόπισης. Από την άλλη πλευρά, πλευρά, τα συστήµ συστήµατα πλοήγησης και  υπόδειξης θέσης βασίζονται σε περιφερειακά όπως πυξίδα και GPS, για την ακριβή πλοήγηση του χρήστη σε µια γεωγραφική περιοχή. περιοχή. Τις πιο πολλές φορές δεν έχουν δυνατότητα πληροφόρησης του χρήστη ή για δυναµ δυναµική ανανέωση της πληροφορίας που παρέχουν. παρέχουν. Γενικά, Γενικά, βασίζονται σε ιδιόκτητες τεχνολογίες και για αυτό δεν είναι εύκολα και οικονοµ οικονοµικά επεκτάσιµ επεκτάσιµα. Υπάρχει και µια ενδιάµ ενδιάµεση κατηγορία, κατηγορία, αυτή των CDROM που προσφέρουν κάποιους συγκεκριµ συγκεκριµένους χάρτες και πληροφορία πάνω σε αυτούς και προαιρετικά τη σύνδεση µε συσκευή GPS, online web site.

2.1.1 Hardware Εφαρµογές Street Pilot Το προϊόν StreetPilot GPS της εταιρίας Garmin συνδυάζει τη δορυφορική τεχνολογία εντοπισµ εντοπισµού θέσης (GPS) µε µε ηλεκτρονικούς χάρτες για  να δώσει οδηγίες πλοήγησης σε αυτοκίνητα. αυτοκίνητα. Είναι µια ολοκληρωµ ολοκληρωµένη συσκευή µε την οθόνη του χάρτη, χάρτη, το δέκτη GPS (Global Positioning System) και τα χειριστήρια στο ίδιο κουτί. κουτί. Περιέχει ενσωµ ενσωµατωµ ατωµένο ένα γενικό χάρτη των Η.Π.Α, Καναδά, Καναδά, Μεξικού, Μεξικού, καθώς και τις βασικές αρτηρίες των µεγάλων πόλεων. πόλεων. Με τις προαιρετικές κάρτες (MetroGuides) ο χρήστης µπορεί  να έχει απεικόνιση σε επίπεδο οδού πόλης, πόλης, σηµ σηµεία ενδιαφέροντος και επιχειρήσεις. επιχειρήσεις. ∆ιαλέγοντας ένα σηµ σηµείο ενδιαφέροντος ή το όνοµ όνοµα µιας οδού το σύστηµ σύστηµα απεικονίζει

16

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

τη θέση του πάνω στον χάρτη. χάρτη. Η θέση του χρήστη είναι πάντα πάνω στο χάρτη, χάρτη, µέσω µέσω της συσκευής GPS. Οι κάρτες MetroGuide περιέχουν  νέους χάρτες περιοχών και επιτρέπουν τη µεγέθυνση σε κλίµ κλίµακα 20 µιλιών. ιλιών. Ακόµ Ακόµη, περιέχουν βάση δεδοµ δεδοµένων µε σηµ σηµεία τουριστικού ενδιαφέροντος, ενδιαφέροντος, εστιατόρια, εστιατόρια, βενζινάδικα, βενζινάδικα, τράπεζες καθώς και τις οδούς της αντίστοιχης πόλης. πόλης.

Σχήµ Σχήµα 1 Το StreetPilot είναι ένα Information Appliance, µια µια ολοκληρωµ ολοκληρωµένη συσκευή που σχεδιάστηκε για ένα σκοπό και µόνο. όνο.

Σχήµ Σχήµα 3 Η λειτουργία FIND επιτρέπει το ψάξιµ ψάξιµο της βάσης δεδοµ δεδοµένων για ένα σηµ σηµείο ενδιαφέροντος ή µια τοποθεσία µιας πόλης. πόλης.

Σχήµ Σχήµα 2 Οι κάρτες µε νέους χάρτες και δεδοµ δεδοµένα είναι ένας τρόπος επέκτασης για τα συστήµ συστήµατα που βασίζονται σε hardware, δεν παυουν όµως να περιορίζουν και δεν έχουν την αµεσότητα του internet.

Σχήµ Σχήµα 4 Το StreetPilot επιτρέπει να δούµ δούµε τις πόλεις µε κριτήριο την απόσταση τους από τη θέση µας ή µε κριτήριο το όνοµ όνοµα τους. τους.

17

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

Σχήµ Σχήµα 5 Η σελίδα πληροφόρησης για µια πόλη δείχνει το όνοµ όνοµα της πόλης και το παράθυρο του χάρτη δείχνει τη περιοχή γύρω από τη πόλη. πόλη.

Σχήµ Σχήµα 6 Η βασική λειτουργικότητα του StreetPilot είναι η σελίδα χάρτη που δείχνει τη παρούσα θέση µας πάνω στον χάρτη. χάρτη.  ∆ιαλέγοντας προορισµ προορισµό η διαδροµ διαδροµή το StreetPilot δείχνει τη σωστή κατεύθυνση µε βέλη, βέλη, υποδεικνύοντας ταυτόχρονα υπολειπόµ υπολειπόµενη απόσταση και χρόνο. χρόνο.

2.1.2 Εφαρµογές σε CD-ROM Το πλήθος και η ποικιλία των εφαρµ εφαρµογών γεωγραφικής πληροφορίας είναι µεγάλο. εγάλο. Αντί  να επιχειρήσουµ επιχειρήσουµε µια διεξοδική ανάλυση της κάθε µιας, ιας, θα επικεντρώσουµ επικεντρώσουµε το ενδιαφέρον µας στα ιδιαίτερα χαρακτηριστικά που έχουν κάποιες από αυτές. αυτές. Οι περισσότερες επιτρέπουν τη σύνδεση µε συσκευή GPS, καθώς και τη σύνδεση µε το αντίστοιχο web site για περισσότερη πληροφορία. πληροφορία. Και στις δύο περιπτώσεις όµως δεν πρόκειται για συστήµ συστήµατα που βασίζουν τη λειτουργία τους σε αυτή τη δυνατότητα. δυνατότητα. Αν έπρεπε  να τις κατατάξουµ κατατάξου µε θα τις χαρακτηρίζαµ χαρακτηρίζαµε σαν σύνολο εφαρµ εφαρµογές πολυµ πολυµέσων για γεωγραφική πληροφόρηση που βασίζονται σε CDROM, το οποίο αναβαθµ αναβαθµίζεται κάθε χρόνο. χρόνο.

Microsoft Trip Planner 

Σχήµ Σχήµα 7 Το Trip Planner προτείνει Planner προτείνει γραφικές ή ιστορικού ενδιαφέροντος διαδροµ διαδροµές. ές. Σε κάθε µία διαδροµ διαδροµή περιέχονται ιστορικά και άλλα στοιχεία, στοιχεία, χάρτες, χάρτες, ταξιδιωτικό ηµερολόγιο και σηµ σηµεία ενδιαφέροντος. ενδιαφέροντος.

18

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

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

Microsoft Streets

Σχήµ Σχήµα 9 Με το εργαλείο αναζήτησης µπορούµ πορούµε να δούµ δούµε πάνω στο χάρτη τη θέση τοποθεσιών και δρόµ δρόµων. ων.

19

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

Σχήµ Σχήµα 10  Αν τονίσουµ τονίσουµε µε αντίστοιχο εργαλείο µια διαδροµ διαδροµή θα µάθουµ άθουµε πόση είναι η απόσταση ανάµ ανάµεσα στην αρχή και το τέλος. τέλος.

2.1.3 Τουριστικά Συστήµατα Πληροφόρησης Τα τουριστικά συστήµ συστήµατα πληροφόρησης (Tourist Information Systems-TIS) συνδυάζουν αποδοτικά τη γνώση, γνώση, την εµπειρία και τις µεθοδολογίες των ταξιδιωτικών πρακτόρων, πρακτόρων, µε δοκιµ δοκιµασµ ασµένες τεχνικές βάσεων δεδοµ δεδοµένων και µηχανισµ ηχανισµούς ανάκτησης πληροφορίας, πληροφορίας, για  να τα προσφέρουν µε καταληπτό τρόπο στον υποψήφιο στον  υποψήφιο ταξιδιώτη. ταξιδιώτη.

Λειτουργικότητα Τα περισσότερα TIS προσφέρουν παρόµ παρόµοια λειτουργικότητα. λειτουργικότητα. Σε αυτή την ενότητα θα παραθέσουµ παραθέσουµε και θα περιγράψουµ περιγράψουµε τη λειτουργικότητα που τυπικά παρέχεται ή απαιτείται για τα συστήµ συστήµατα αυτού του είδους και η οποία σχετίζεται µε τη παρούσα εργασία. εργασία. Η σύγκριση των TISs που θα παρουσιαστούν, παρουσιαστούν, θα βασιστεί σε αυτές τις απαιτήσεις λειτουργικότητας. λειτουργικότητας. Ταξινόµ Ταξινόµηση των ∆εδοµ ∆εδοµένων Η ποσότητα των δεδοµ δεδοµένων που διαχειρίζονται τα TISs είναι πολύ µεγάλη. εγάλη. Για αυτό το λόγο απαιτείται η ταξινόµ ταξινόµηση τους σε ένα ικανό αριθµ αριθµό αντιπροσωπευτικών κατηγοριών. κατηγοριών. Για παράδειγµ παράδειγµα τα εστιατόρια µπορούν  να ταξινοµ ταξινοµηθούν µε βάση την προσφερόµ προσφερόµενη κουζίνα. κουζίνα. Συνήθως χρησιµ χρησιµοποιείται µια ιεραρχία από κατηγορίες για την απλοποίηση της ανάκτησης δεδοµ δεδοµένων. ένων. Τα Expedia, MapQuest έχουν παρόµ παρόµοια λειτουργικότητα. λειτουργικότητα. Προσαρµ Προσαρµογή στις Προσωπικές Προτιµ Προτιµήσεις (Personalization)

20

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

Η προσαρµ προσαρµογή στις προσωπικές προτιµ προτιµήσεις µπορεί  να αντιµ αντιµετωπιστεί σαν ένα µέσο για την αυτοµ αυτοµατοποίηση της ανάκτησης πληροφορίας. πληροφορίας. Το σύστηµ σύστηµα αποθηκεύει τα ενδιαφέροντα του χρήστη σαν µια οντότητα που ονοµ ονοµάζουµ άζουµε προφίλ  (profile). Το σύστηµ σύστηµα µπορεί  να χρησιµ χρησιµοποιήσει αυτή τη πληροφορία για  να φτιάξει ερωτήσεις και  να παρουσιάσει τα αποτελέσµ αποτελέσµατα στο χρήστη σαν προσαρµ προσαρµοσµ οσµένες στις προτιµ προτιµήσεις του προτάσεις. προτάσεις. Άλλη µια µορφή προσαρµ προσαρµογής είναι  να επιτρέπεται στο χρήστη  να εισάγει προσωπικό περιεχόµ περιεχόµενο στο σύστηµ σύστηµα. Η διαδικασία αυτή περιλαµ περιλαµβάνει τη πρόσθεση περιεχοµ περιεχοµένου που µπορεί  να είναι χρήσιµ χρήσιµο στους άλλους χρήστες και τη δηµ δηµιουργία συνδέσµ συνδέσµων (links) σε πληροφορία που ενδιαφέρει το χρήστη. χρήστη. Τέτοια λειτουργικότητα παρέχουν τα Expedia, MapQuest. Επεκτείνοντας, Επεκτείνοντας, το profile ενός χρήστη µπορεί  να περιλαµ περιλαµβάνει τις προσωπικές του προτιµ προτιµήσεις, ήσεις, όπως τις έχει δηλώσει ο ίδιος ή όπως αυτές προκύπτουν χρησιµ χρησιµοποιώντας το ιστορικό του, του, δηλαδή τις σελίδες που έχει δει µέχρι τώρα. τώρα. Τέτοια λειτουργία παρέχει το Expedia.

Ψηφιακοί  Χάρτες Οι χάρτες είναι ένας φυσικός τρόπος για την τοποθέτηση δεικτών (indexing) και παρουσίαση τουριστικής πληροφορίας. πληροφορίας. Οι ταξιδιώτες χρησιµ χρησιµοποιούν χάρτες για  να πλοηγηθούν κατά τη διάρκεια των επισκέψεων τους και για  να προετοιµ προετοιµάσουν τη διαδροµ διαδροµή τους. τους. Ακόµ Ακόµη, οι χάρτες παρουσιάζουν την πληροφορία µε συµ συµπαγή και εύκολο να εύκολο  να διαβαστεί τρόπο. τρόπο. Στατικοί, Στατικοί , Προσαρµ Προσαρµοζόµ οζόµενοι και Αλληλεπιδραστικοί Χάρτες Στην πλειονότητα των TISs, οι χάρτες είναι στατικοί -συνήθως σαρωµ σαρωµένες (scanned) εικόνες χαρτών. χαρτών. Οι χάρτες αυτοί  υστερούν σε ακρίβεια και σπάνια προσφέρουν τη πληροφορία που επιθυµ επιθυµεί ο κάθε χρήστης. χρήστης. Μεγάλο µέρους της έρευνας συγκεντρώνεται στην δηµ δηµιουργία χαρτών µε ακρίβεια και δυνατότητα προσαρµ προσαρµογής στις ανάγκες του χρήστη. χρήστη.

Ερωτήσεις Γειτνίασης Μια από τις πιο συνηθισµ συνηθισµένες ερωτήσεις είναι η ανάκτηση πληροφορίας σχετικά µε περιοχές ενδιαφέροντος, ενδιαφέροντος, που βρίσκονται κοντά σε κάποιο σηµ σηµείο. είο. Οι ερωτήσεις αυτές ονοµ ονοµάζονται ερωτήσεις γειτνίασης (proximity queries). Οι απαντήσεις που παίρνει κανείς µπορούν να πορούν  να φανούν χρήσιµ χρήσιµες σε σύντοµ σύντοµες επισκέψεις και διαδροµ διαδροµές. ές. Οδηγίες Πλοήγησης, Πλοήγησης, Τοποθεσίες και Προορισµ Προορισµοί  Τα συστήµ συστήµατα γεωγραφικής πληροφόρησης, πληροφόρησης, εκτός από τη λειτουργικότητα γειτνίασης, γειτνίασης, παρέχουν οδηγίες πλοήγησης για µια διαδροµ διαδροµή µε γνωστά αρχικό και τελικό σηµ σηµείο. είο. Άλλη µια  υπηρεσία αφορά τον εντοπισµ εντοπισµό µιας διεύθυνσης πάνω στο χάρτη. χάρτη.

2.1.4 Συστήµατα στο World Wide Web Microsoft Expedia

21

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

Το web site Microsoft Expedia είναι ένα ολοκληρωµ ολοκληρωµένο σύστηµ σύστηµα για τον προγραµµ προγραµµατισ ατισµ µό, αγορά τουριστικών  υπηρεσιών.  υπηρεσιών. Ανάµ Ανάµεσα στις λειτουργίες κράτησης θέσεων σε ξενοδοχεία και µέσα µεταφοράς, εταφοράς,  υπάρχουν οι χάρτες και ο  υπολογισµ  υπολογισµός µονοπατιών από σηµ σηµείο σε σηµ σηµείο, είο, τα οποία θα µελετήσουµ ελετήσουµε ξεχωριστά. ξεχωριστά. Άλλωστε το ίδιο το web site όπως και αυτό του Map Quest δε συνδέει άµεσα τη λειτουργικότητα των χαρτών µε αυτή των τουριστικών  υπηρεσιών.  υπηρεσιών. Μελετώντας τα screen shots θα πάρουµ πάρου µε µια ιδέα των λειτουργιών που µας ενδιαφέρουν. ενδιαφέρουν.

Σχήµ Σχήµα 11 Η φόρµ φόρµα εισαγωγής αρχικού και τελικού σηµ σηµείου προαιρετικά και ενδιάµ ενδιάµεσων σηµ σηµείωνείων- και καθορισµ καθορισµός του τύπου µονοπατιού ανάµ ανάµεσα σε Quickest, Shortest, Scenic.

Σχήµ Σχήµα 12 Οι οδηγίες για τη µετάβαση από σηµ σηµείο σε σηµ σηµείο, είο, δίνονται σε πίνακα, πίνακα, που βρίσκεται σε ξεχωριστή σελίδα, σελίδα, χωρίς την υποστήριξη χάρτη, χάρτη, στο ίδιο παράθυρο. παράθυρο. Ο πίνακας περιλαµ περιλαµβάνει πληροφορίες απόστασης, απόστασης, χρόνου διαδροµ διαδροµής και αναλυτική λίστα µε τους δρόµ δρόµους, ους, τις οδηγίες πλοήγησης. πλοήγησης.

22

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

Map Quest Το web site Map Quest είναι παρόµ παρόµοιο µε το Expedia, αν και συνολικά δε δίνει την ίδια εντύπωση πληρότητας. πληρότητας . Στο θέµ θέµα χαρτών και  υπολογισµ  υπολογισµού µονοπατιών παρέχει τα ίδια εργαλεία και µε τον ίδιο τρόπο γίνεται η είσοδος και η παρουσίαση των αποτελεσµ αποτελεσµάτων. άτων. Και σε αυτή τη περίπτωση µελετάµ ελετάµε τα αντίστοιχα screen shots.

Σχήµ Σχήµα 13 Εκτός από το φωτισµ φωτισµένο µονοπάτι από την αρχή µέχρι το τέλος του, του, έχουµ έχουµε και δύο µικρότερους χάρτες που δείχνουν σε µεγένθυση και περισσότερες λεπτοµ λεπτοµέρειες το αρχικό και τελικό σηµ σηµείο. είο.

Σχήµ Σχήµα 14 Στη σελίδα µε τις οδηγίες πλοήγησης, πλοήγησης, εκτός από το φωτισµ φωτισµένο µονοπάτι πάνω στο χάρτη, χάρτη, παίρνουµ παίρνουµε και και οδηγίες µε κεί µενο. ενο.

23

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

2.2 Τεχνολογίες Η  υλοποίηση αυτής της εργασίας δε θα ήταν δυνατή χωρίς ένα σύνολο από τεχνολογίες λιγότερο ή περισσότερο πρόσφατες. πρόσφατες. Μερικές από αυτές, αυτές, όπως τα Cascaded Style Sheets και η Dynamic HTML, δεν έχουν ακόµ ακόµη οριστεί επίσηµ επίσηµα από κάποιο ανεξάρτητο φορέα. φορέα.  Όπου δεν  υπήρχε πρότυπο χρησιµ χρησιµοποιήθηκε η προδιαγραφή της Microsoft για την αντίστοιχη τεχνολογία, τεχνολογία, που άλλωστε σαν εταιρία ανήκει στο σώµ σώµα των οργανισµ οργανισµών που κάνουν προτάσεις για ένα πρότυπο και εποµ εποµένως η επίσηµ επίσηµη προδιαγραφή δεν απέχει πολύ από την τεχνολογία της. της.

Σχήµ Σχήµα 15 Το αντικεί µενο Connection του µοντέλου Active Data Objects και τα αντικεί µενα που ανήκουν σε αυτό. αυτό.

2.2.1 Active Data Objects Η τεχνολογία Active Data Objects (ADO) παρέχει ένα προγραµµ προγραµµατιστικό ατιστικό µοντέλο για µια πηγή δεδοµ δεδοµένων τύπου OLE-DB. Είναι το µοντέλο που χρησιµ χρησιµοποιείται από την τεχνολογία Active Server Pages για τη πρόσβαση σε βάσεις δεδοµ δεδοµένων. ένων. Υποστηρίζονται τα αντικείµ αντικείµενα Command, Connection, Recordset, Field, και Error. Οι πιο πρόσφατες πληροφορίες µπορούν  να βρεθούν στη διεύθυνσή http://www.microsoft.com/data/ado/.

Αντικεί µενο Connection Το αντικείµ αντικείµενο Connection (Σύνδεσης (Σύνδεσης)) αναπαριστά µια ανοιχτή (open) σύνδεση µε µια πηγή δεδοµ δεδοµένων (data source) τύπου OLE-DB. Στη περίπτωση ενός client-server  συστήµ συστήµατος data base, είναι ισοδύναµ ισοδύναµη µε µια πραγµ πραγµατική δικτυακή σύνδεση στον server. Αντικεί µενο Recordset  Ένα αντικείµ αντικείµενο Recordset αντιπροσωπεύει το σύνολο των εγγραφών από ένα πίνακα ή τα αποτελέσµ αποτελέσµατα µιας ερώτησης SQL. Σε µια δεδοµ δεδοµένη στιγµ στιγµή το αντικείµ αντικείµενο Recordset δείχνει µία εγγραφή. εγγραφή. Μπορούµ Μπορού µε  να δηµ δηµιουργήσουµ ιουργήσουµε αντικείµ αντικείµενα Recordset από ένα ορισµ ορισµένο αντικείµ αντικείµενο Connection. Ακόµ Ακόµη, ανεξάρτητα δίνοντας σαν παράµ παράµετρο ένα connection στη µέθοδο Open. Σε αυτή τη περίπτωση το ADO δηµ δηµιουργεί ένα αντικείµ αντικείµενο Connection αυτόµ αυτόµατα, ατα, αλλά δεν αναθέτει αυτό το αντικείµ αντικείµενο σε κάποια µεταβλητή. εταβλητή. Εάν χρησιµ χρησιµοποιούµ οποιούµε πολλά Recordsets για την ίδια σύνδεση είναι σκόπιµ σκόπιµο  να αναθέσουµ αναθέσουµε το αντικείµ αντικείµενο Connection σε κάποια µεταβλητή, εταβλητή, γιατί διαφορετικά το ADO θα δηµ δηµιουργεί ένα καινούριο Connection, για κάθε Recordset, κάτι που είναι χρονοβόρο και µη αποδοτικό. αποδοτικό.

24

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

Χρησιµ Χρησιµοποιούµ οποιούµε τα αντικείµ αντικείµενα Recordset για  να διαχειριστούµ διαχειριστούµε δεδοµ δεδοµένα από κάποιο παροχέα στο επίπεδο εγγραφής. εγγραφής. Υπάρχουν τέσσερις διαφορετικοί τύποι δείκτη εγγραφής για  να ανοίξουµ ανοίξουµε ένα αντικείµ αντικείµενο Recordset. Ο δυναµ δυναµικός (dynamic) δείκτης επιτρέπει  να βλέπουµ βλέπουµε τις προσθέσεις, προσθέσεις, αλλαγές, αλλαγές, διαγραφές των εγγραφών από άλλους χρήστες και επιτρέπει κίνηση µε όλους τους δυνατούς τρόπους µέσα στο αντικείµ αντικείµενο Recordset. O δείκτης keyset συµ συµπεριφέρεται όπως ο dynamic, εκτός του ότι δεν επιτρέπει  να δούµ δούµε τις αλλαγές των άλλων χρηστών. χρηστών. Ο στατικός (static) δείκτης παρέχει ένα στατικό αντίγραφο των δεδοµ δεδοµένων. ένων. Ο Forward-only δείκτης συµ συµπεριφέρεται όπως ο στατικός, στατικός, εκτός του ότι επιτρέπει µόνο την προς τα εµπρός πλοήγηση στις εγγραφές. εγγραφές. Στις περιπτώσεις που αυτό είναι το ζητούµ ζητού µε παρέχει το πλεονέκτηµ πλεονέκτηµα της καλύτερης απόδοσης. απόδοσης. Θέτουµ Θέτουµε τον τύπο του δείκτη πριν ανοίξουµ ανοίξουµε ένα αντικείµ αντικείµενο Recordset. Εάν δεν καθορίσουµ καθορίσουµε κάποιον τότε το ADO ανοίγει έναν forward-only δείκτη. δείκτη. Στο ADO, το αντικείµ αντικείµενο Recordset είναι ο βασικός τρόπος διασύνδεσης µε τα δεδοµ δεδοµένα. ένα. Αν και τα άλλα αντικείµ αντικείµενα είναι χρήσιµ χρήσιµα για τη διαχείριση των συνδέσεων, συνδέσεων, τη συλλογή πληροφορίας σφαλ µάτων, άτων, τη συνέπεια, συνέπεια, στο µεγαλύτερο µέρος της αλληλεπίδρασης µε το ADO ανα µιγνύεται το αντικείµ αναµ αντικείµενο Recordset. Παρακάτω βλέπουµ βλέπουµε τον ελάχιστο κώδικα σε Microsoft® Visual Basic® Scripting Edition για τη δηµ δηµιουργία ενός Recordset από µια πηγή δεδοµ δεδοµένων τύπου ODBC. set rstMain rstMain = CreateOb CreateObject ject("AD ("ADODB. ODB.Reco Recordse rdset")r t")rstMa stMain.O in.Open pen "SELECT "SELECT * FROM authors" authors", , _ "DATABAS "DATABASE=pu E=pubs;U bs;UID=s ID=sa;PW a;PWD=;D D=;DSN=P SN=Publi ublisher shers" s"

Αυτό δηµ δηµιουργεί ένα forward-only, read-only Recordset αντικείµ αντικείµενο. ενο. set rstMain rstMain = CreateOb CreateObject ject("AD ("ADODB. ODB.Reco Recordse rdset")r t")rstMa stMain.O in.Open pen "SELECT "SELECT * FROM authors" authors", , _ "DATABAS "DATABASE=pu E=pubs;U bs;UID=s ID=sa;PW a;PWD=;D D=;DSN=P SN=Publi ublisher shers", s", adOpenKeyset, adOpenKeyset, adLockBatchOptimistic adLockBatchOptimistic

Αυτό δηµ δηµιουργεί ένα fully scrollable και batch-updatable Recordset. Και στις δύο περιπτώσεις η βάση δεδοµ δεδοµένων που χρησιµ χρησιµοποιείται για την εκτέλεση της SQL ερώτησης καθορίζεται από τη παράµ παράµετρο Data Source Name (DSN), που µε µοναδικό τρόπο καθορίζει τις βάσεις δεδοµ δεδοµένων ενός συστήµ συστήµατος. ατος. Μπορούµ Μπορούµε  να δηµ δηµιουργήσουµ ιουργήσουµε όσα αντικείµ αντικείµενα Recordset χρειάζονται. χρειάζονται. ∆ιαφορετικά Recordset µπορούν µπορούν να  να έχουν πρόσβαση στους ίδιους πίνακες χωρίς συγκρούσεις. συγκρούσεις.  Όταν δηµ δηµιουργούµ ιουργούµε ένα αντικείµ αντικείµενο Recordset, η θέση του δείκτη είναι τοποθετηµ τοποθετηµένη στη πρώτη εγγραφή και οι ιδιότητες BOF, EOF είναι False. Αν δεν  υπάρχουν εγγραφές η ιδιότητα RecordCount είναι µηδέν και τα BOF, EOF είναι True. Μπορούµ Μπορούµε  να χρησιµ χρησιµοποιήσουµ οποιήσουµε τις µεθόδους MoveFirst, MoveLast, MoveNext, και MovePrevious, Move, AbsolutePosition, AbsolutePage, Filter  για  να αλλάξουµ αλλάξουµε τη θέση του δείκτη, δείκτη, εάν ο παροχέας  υποστηρίζει τις αντίστοιχες λειτουργίες. λειτουργίες. Τα Recordset τύπου Forward-only  υποστηρίζουν µόνο τη µέθοδο MoveNext.  Όταν χρησιµ χρησιµοποιούµ οποιού µε τη Move για  να επισκεφθούµ επισκεφθούµε τις εγγραφές, εγγραφές, µπορούµ πορούµε  να χρησιµ χρησιµοποιούµ οποιού µε τις ιδιότητες BOF, EOF για τον έλεγχο του τέλους των εγγραφών. εγγραφών. Τα αντικείµ αντικείµενα Recordset µπορούν µπορούν  να  υποστηρίζουν δύο τύπους ενηµ ενηµέρωσης, έρωσης, immediate και batched. Στην άµεση ενηµ ενηµέρωση (immediate updating), όλες οι αλλαγές στα δεδοµ δεδοµένα γράφονται άµεσα στην  υποκείµ  υποκείµενη πηγή δεδοµ δεδοµένων όταν

25

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

καλέσουµ καλέσουµε τη µέθοδο Update. Μπορούµ Μπορού µε ακόµ ακόµη  να περάσουµ περάσουµε πίνακες τιµ τιµών σαν παραµ παραµέτρους στις µεθόδους AddNew, Update για  να ενηµ ενηµερώσουµ ερώσουµε πολλαπλά πεδία σε µια εγγραφή. εγγραφή. Εάν ένας παροχέας  υποστηρίζει batch updating, µπορού µπορούµ µε  να αποθηκεύουµ αποθηκεύουµε (cache) στον παροχέα τις αλλαγές για περισσότερες από µια εγγραφές και να και  να της στείλουµ στείλουµε µε µια κλήση στη βάση δεδοµ δεδοµένων µε τη µέθοδο UpdateBatch.

Σχήµ Σχήµα 16 Η τεχνολογία Active Server Pages επεκτείνει το πρωτόκολλο HTTP και δεν απαιτεί αλλαγές απαιτεί  αλλαγές στους browser, αφού λειτουργεί εξολοκλήρου λειτουργεί  εξολοκλήρου στον server.

2.2.2 Active Server Pages Η τεχνολογία Microsoft® Active Server Pages (ASP) είναι ένα περιβάλλον serverside scripting για τη δηµ δηµιουργία δυναµ δυναµικών, ικών, αλληλεπιδραστικών web server  εφαρµ εφαρµογών. ογών. Με το ASP µπορού µπορούµ µε  να συνδυάσουµ συνδυάσουµε HTML σελίδες, σελίδες, script, ActiveX.

Αναγκαιότητα του ASP Το πρωτόκολλο µεταφοράς  υπερκείµ  υπερκείµενου (hyper text transfer protocol - http) δεν έχει µ νήµ  νήµη (stateless). Αυτό σηµ σηµαίνει πως ο εξυπηρετητής  υπερκείµ  υπερκείµενου (web server), διαχειρίζεται την κάθε αίτηση ανεξάρτητα από τις άλλες, άλλες, χωρίς  να διατηρεί γνώση των προηγούµ προηγούµενων, ενων, ακόµ ακόµα και αν συνέβησαν µερικά δευτερόλεπτα πριν. πριν. Αυτή η έλλειψη µ νήµ  νήµης κάνει δύσκολη τη συγγραφή εφαρµ εφαρµογών, ογών, όπως καταλόγου, καταλόγου, όπου θα πρέπει  να καταγράφονται τα αντικείµ αντικείµενα που έχουν επιλεχτεί, επιλεχτεί, καθώς ο χρήστης περνάει από διάφορες σελίδες του καταλόγου. καταλόγου. µ ε τη Η τεχνολογία των Active Server Pages (ASP) δίνει λύση σε αυτό το πρόβληµ πρόβληµα, µε χρήση του αντικειµ αντικειµένου Session, το οποίο διατηρεί µοναδικό αναγνωριστικό (ID) και επιπλέον παρέχει δοµ δοµές για την αποθήκευση πληροφορίας για τον κάθε χρήστη της εφαρµ εφαρµογής. ογής. Με τη σειρά του το Session Object χρησιµ χρησιµοποιεί την τεχνολογία των Cookies, που στέλνονται στο χρήστη και συλλέγονται σε κάθε αίτηση, αίτηση, ώστε  να γίνει η αναγνώριση του. του. Τη πρώτη φορά που ο χρήστης θα ζητήσει ένα αρχείο µε κατάληξη .asp, -µέσα -µέσα σε µια δοθείσα εφαρµ εφαρµογήογή- παράγεται ένα αναγνωριστικό (SessionID). Ο αριθµ αριθµός αυτός δηµ δηµιουργείται από ένα πολύπλοκο αλγόριθµ αλγόριθµο και αποτελεί ένα µοναδικό αναγνωριστικό για το session του κάθε χρήστη. χρήστη. Στην αρχή του κάθε  νέου session, ο

26

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

εξυπηρετητής αποθηκεύει το SessionID, στο web browser  του χρήστη, χρήστη, σαν ένα cookie. Το SessionID cookie είναι σαν ένα κλειδί, κλειδί, για µια προσωπική θυρίδα και καθώς ο µε µια εφαρµ χρήστης αλληλεπιδρά -στη διάρκεια ενός session- µε εφαρµογή, ογή, η τεχνολογία ASP µπορεί µπορεί  να αποθηκεύσει πληροφορία για το χρήστη σε µια "θυρίδα" θυρίδα" στον εξυπηρετητή. εξυπηρετητή. Το SessionID cookie του χρήστη, χρήστη, στέλνεται µε την επικεφαλίδα (header) µιας µιας http αίτησης, αίτησης, και επιτρέπει πρόσβαση στη πληροφορία, πληροφορία , όπως ένα κλειδί επιτρέπει πρόσβαση στα περιεχόµ περιεχόµενα µιας θυρίδας. θυρίδας. Κάθε φορά που  υπάρχει µια αίτηση, αίτηση, η ASP, ελέγχει το header για header για ένα SessionID cookie. Αφού αποθηκευτεί το SessionID cookie στον browser  του χρήστη, χρήστη, αυτό επαναχρησιµ επαναχρησιµοποιείται για όλο το session, ακόµ ακόµα και όταν ο χρήστης ζητήσει ένα άλλο .asp αρχείο. αρχείο. Το ίδιο cookie χρησιµ χρησιµοποιείται ακόµ ακόµα και αν το session περάσει την ηµεροµ εροµηνία λήξης ή αν ο χρήστης αποφασίσει  να τo τερµ τερµατίσει. ατίσει.  Ένα  νέο cookie στέλνεται µόνο στη περίπτωση που ο διαχειριστής του εξυπηρετητή κάνει επανεκκίνηση, επανεκκίνηση, ή αν ο χρήστης επανεκκινήσει τον browser. Με αυτό το τρόπο, τρόπο, η τεχνολογία των active server pages ελαχιστοποιεί τον αριθµ αριθµό των cookies που στέλνονται στο χρήστη. χρήστη.

Cookies Τα cookies είναι ένα χρήσιµ χρήσιµο εργαλείο για τη διατήρηση µεταβλητών κατάστασης στο web. Επειδή το http πρωτόκολλο δεν  υποστηρίζει διατήρηση κατάστασης (stateless), είναι αδύνατο να αδύνατο  να διαφοροποιηθούν οι επισκέψεις σε web site, εκτός και αν ο web server µπορεί µπορεί  να "µαρκάρει "µαρκάρει", ", τον επισκέπτη. επισκέπτη. Αυτό γίνεται αποθηκεύοντας πληροφορία στο web browser του browser του χρήστη. χρήστη. Η πληροφορία αυτή αποθηκεύεται µε τη µορφή των cookies. Τα cookies µπορούν µπορούν  να αποθηκεύουν πληροφορίες από µια βάση δεδοµ δεδοµένων, ένων, προσωπικές επιλογές και γενικά κάνουν ένα web site, περισσότερο προσωπικό και ελεγχόµ ελεγχόµενο. ενο. Στην πιο απλή µορφή τους, τους, είναι σαν ένας σελιδοδείκτης που επιτρέπει να επιτρέπει  να συνεχίσουµ συνεχίσουµε από εκεί που είχαµ είχαµε σταµ σταµατήσει. ατήσει.  Ένα cookie τοποθετείται στο http header, σαν ένα text string. Αυτό το string περιέχει το domain, το path, την ηµεροµ εροµηνία λήξης και τις τιµ τιµές στις µεταβλητές που του έχουµ έχουµε αναθέσει. αναθέσει. Αν η διάρκεια ζωής του cookie είναι µεγαλύτερη από το χρόνο που δαπανά ένας χρήστης στο δεδοµ δεδοµένο web site, τότε αποθηκεύεται σε ένα αρχείο του λειτουργικού συστήµ συστήµατος για µελλοντικές αναφορές. αναφορές. To cookie και το magic cookie είναι ορολογία που  χρησι µοποιήθηκε  µοποιήθηκε παλιότερα από unix hackers. Το  λεξικό New Hacker's Dictionary ορίζει ένα magic cookie σαν " κάτι κάτι που µεταβιβάζεται ανά µεσα  µεσα σε ρουτίνες  σε  ρουτίνες  ή προγρά µµατα  µµατα και επιτρέπει στον αποδέκτη να πραγ µατοποιήσει  µατοποιήσει κάποιες  ενέργειες  -ένα εισιτήριο δικαιω µάτων  µάτων ή ένα µοναδικό αναγνωριστικό. αναγνωριστικό. µικρά αντικεί  µενα  µενα δεδο µένων  µένων που περιέχουν κωδικοποιη µένα  µένα δεδο µένα  µένα , µε µε τρόπο διαφορετικό ή εξαρτώ µενο  µενο από τη µηχανή."  ηχανή."  To cookie αντίστοιχα , σύ µφωνα  µφωνα µε το συγγραφέα του παραπάνω λεξικού παραπάνω  λεξικού , ση µαίνει  µαίνει «µια «µια σύνδεση , ένα αναγνωριστικό µιας  συναλλαγής  , ή ένα νό µισ   µισ  µα  µα συ µφωνίας   µφωνίας  ανά µεσα  µεσα σε συνεργαζό µενα  µενα προγρά µµατα  µµατα.. Το µόνο πράγ µα  µα για το οποίο είναι  χρήσι µο  µο , είναι για να συσχετίσου µε  µε µια µελλοντική συναλλαγή µε την τωρινή."  τωρινή." 

27

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

Αρχικά τα cookies δηµ δηµιουργήθηκαν σαν ένας απλός µηχανισµ ηχανισµός, ός, για την ευκολότερη πρόσβαση των χρηστών στα επιθυµ επιθυµητά web sites (τοποθεσία (τοποθεσία στο παγκόσµ παγκόσµιο ιστό), ιστό), αποφεύγοντας την επαναλαµ επαναλαµβανόµ βανόµενη διαδικασία αναγνώρισης ταυτότητας (authentication). Για παράδειγµ παράδειγµα, κατά τη πρώτη επίσκεψη σε ένα web site ζητείται η συµ συµπλήρωση µια φόρµ φόρµας µε στοιχεία όπως όνοµ όνοµα και email ή ακόµ ακόµη πιο προσωπικά στοιχεία. στοιχεία. Στο τέλος, τέλος, το web site τοποθετεί ένα cookie, µε µε αυτή τη πληροφορία -ή ένα δείκτη σε αυτήαυτή- στο σύστηµ σύστηµα του χρήστη και κάθε φορά που ο χρήστης θα επιστρέφει, επιστρέφει, αναγνωρίζεται άµεσα η ταυτότητα του και του αναθέτονται τα κατάλληλα δικαιώµ δικαιώµατα πρόσβασης. πρόσβασης. Η χρήση των cookies, µε µε το καιρό πήρε άλλη κατεύθυνση και χρησιµ χρησιµοποιείται πλέον για την καταγραφή των κινήσεων του χρήστη και αποθήκευση των επιλογών του σε βάση δεδοµ δεδοµένων. ένων. Τα στοιχεία αυτά δίνουν µια ολοκληρωµ ολοκληρωµένη εικόνα για τα ενδιαφέροντα του, του, τη καταναλωτική του συµ συµπεριφορά και το τρόπο ζωής του. του. µεταφέρονται από τον server στον server στον client και αντιστρόφως στο http header. Τα cookies µεταφέρονται Οι προδιαγραφές για αυτόν τον header  παρουσιάζονται λεπτοµ λεπτοµερώς στο RFC 21 2109.  Όταν ένα cookie στέλνεται από τον server  στον client, µια µια επιπλέον γραµµ γραµµή ή προστίθεται στο http header. Για παράδειγµ παράδειγµα: Content-type: Content-type: text/html Set-Co Set -Cooki okie: e: foo foo=ba =bar; r; pat path=/ h=/; ; exp expire ires s Fri Fri, , 0909-De Dec-9 c-96 6 13: 13:46: 46:00 00 GMT

header  θα δηµ µε όνοµ Αυτή η εισαγωγή στo στo header θα δηµιουργήσει ένα cookie µε όνοµα foo και τιµ τιµή bar. Επιπλέον το cookie έχει path /, που σηµ σηµαίνει ότι ισχύει για ολόκληρο το site, και έχει ηµεροµ εροµηνία λήξης 9 ∆εκεµ ∆εκεµβρίου 1996. Οταν το ίδιο cookie στέλνεται από τον  browser στον  browser στον web server, το header είναι header είναι κάπως διαφορετικό. διαφορετικό. Content-type: Content-type: text/html Cookie: Cookie: foo=bar foo=bar

Ενα cookie έχει συνολικά 6 παραµ παραµέτρους, έτρους, που µπορούµ πορούµε  να περάσουµ περάσουµε. Το όνοµ όνοµα του, του, τη τιµ τιµή του, του, την ηµεροµ εροµηνία λήξης, λήξης, το µονοπάτι και το domain για το οποίο ισχύει και τέλος, τέλος, την ανάγκη για ασφαλή σύνδεση ώστε  να µπορεί  να χρησιµ χρησιµοποιηθεί. οποιηθεί.

Η ροή των δεδοµ δεδοµένων από τη DB στο ASP 1. Το ASP κάνει µια κλήση στον παροχέα OLE-DB. 2. Ο παροχέας OLE-DB εξυπηρετεί την αίτηση κάνοντας την ερώτηση στη βάση δεδοµ δεδοµένων. ένων. Στην περίπτωση του παροχέα OLE-DB για πηγές δεδοµ δεδοµένων ODBC, γίνεται µια κλήση προς το ODBC. 3. Ο εξυπηρετητής επεξεργάζεται την αίτηση και επιστρέφει τα δεδοµ δεδοµένα στον παροχέα δεδοµ δεδοµένων. ένων. 4. Ο παροχέας δεδοµ δεδοµένων επιστρέφει τα δεδοµ δεδοµένα στο αιτών λογισµ λογισµικό, ικό, που στη περίπτωση µας είναι το ASP. 5. Τα δεδοµ δεδοµένα µορφοποιούνται σε µια web σελίδα που παρουσιάζεται στον χρήστη. χρήστη.

Οι ενέργειες ενός ASP

28

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

1. Ο χρήστης συνδέεται σε ένα site, όπου η default σελίδα έχει τη κατάληξη .asp. 2. Ο browser του browser του χρήστη ζητάει το αρχείο ASP από τον web server. 3. Το server side script ξεκινάει να ξεκινάει  να τρέχει µε το ASP. 4. Το ASP επεξεργάζεται το αρχείο που ζητήθηκε από πάνω προς τα κάτω, κάτω, εκτελώντας όσες script εντολές βρει και παράγει µια HTML σελίδα. σελίδα. 5. Η web σελίδα στέλνεται στο browser. Επειδή το script εκτελείται στο server, ο web server  κάνει όλη την επεξεργασία, επεξεργασία, δίνοντας απλές HTML σελίδες για τον browser. Αυτό σηµ σηµαίνει πως οι web σελίδες περιορίζονται µόνο από τις δυνατότητες του server  και είναι ανεξάρτητες από τον  browser  που χρησιµ χρησιµοποιείται. οποιείται.  Ένα ακόµ ακόµη πλεονέκτηµ πλεονέκτηµα, του  να βρίσκεται το script στον server, είναι πως οι χρήστες δεν µπορούν να πορούν  να δουν τον source κώδικα. κώδικα.

Ενσωµ Ενσω µατωµ ατωµένα Αντικεί µενα Η τεχνολογία ASP περιέχει 5 αντικείµ αντικείµενα. ενα. 1. Request, για να για  να παίρνουµ παίρνουµε δεδοµ δεδοµένα από το χρήστη. χρήστη. 2. Response, για να για  να στέλνουµ στέλνουµε δεδοµ δεδοµένα στον χρήστη. χρήστη. 3. Server, για να για  να ελέγχουµ ελέγχουµε τον IIS. 4. Session, για  να αποθηκεύουµ αποθηκεύουµε δεδοµ δεδοµένα σχετικά µε τη παρούσα σύνδεση του κάθε χρήστη. χρήστη. 5. Application, για  να διαµ διαµοιράζουµ οιράζουµε δεδοµ δεδοµένα σε όλους τους χρήστες και  να ελέγχουµ ελέγχουµε την κατάσταση της εφαρµ εφαρµογής συνολικά. συνολικά.

Αντικεί µενο Request Χρησιµ Χρησιµοποιείται για  να πάρουµ πάρουµε δεδοµ δεδοµένα από ένα χρήστη, χρήστη, µέσω ενός HTTP request. Υπάρχουν οι παρακάτω συλλογές. συλλογές. 1. QueryString, που περιέχει τα δεδοµ δεδοµένα που έχουν σταλεί µε τη µέθοδο get του HTTP. 2. Form, που περιέχει τα δεδοµ δεδοµένα που έχουν σταλεί µε τη µέθοδο post του HTTP. 3. Cookies, που περιέχει τα cookies στον browser του browser του χρήστη. χρήστη.

Αντικεί µενο Response Χρησιµ Χρησιµοποιείται για  να στείλει δεδοµ δεδοµένα στο χρήστη. χρήστη.  Έχει µόνο µια συλλογή, συλλογή, τα cookies για  να θέτουµ θέτουµε τιµ τιµές στα cookies του browser  του χρήστη. χρήστη. Υπάρχουν µια σειρά από µεθόδους και ιδιότητες. ιδιότητες. Οι παρακάτω µέθοδοι υποστηρίζονται έθοδοι  υποστηρίζονται αυτή τη στιγµ στιγµή στο αντικείµ αντικείµενο Response: 1. Clear, καθαρίζει τον buffer. 2. End, σταµ σταµατάει την εκτέλεση του script, πριν το τέλος του αρχείου .asp. 3. Flush, στέλνει όλα τα περιεχόµ περιεχόµενα του buffer στον buffer στον χρήστη. χρήστη. 4. Redirect, ανακατευθύνει τον browser σε browser σε ένα διαφορετικό URL.

29

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

5. Write, για να για  να γράψουµ γράψουµε κάτι στο HTML που παράγεται. παράγεται. Οι ιδιότητες που υποστηρίζοντα που  υποστηρίζονταιι αυτή τη στιγµ στιγµή είναι: είναι: 1. Buffer, όπου αποφασίζουµ αποφασίζουµε εάν µια σελίδα θα γίνεται buffer  στον server. Αν τη θέσουµ θέσουµε True, τότε ο server θα server θα στείλει τη σελίδα που παράγει µέσω ενός asp, όταν θα έχει τελειώσει η εκτέλεση όλων των script, ή µέχρι  να γίνει κλήση των µεθόδων Flush, End. Αν τη θέσουµ θέσουµε True, τότε η HTML σελίδα καθώς παράγεται στέλνεται άµεσα στον χρήστη. χρήστη. 2. ContentType, όπου θέτουµ θέτουµε τον τύπο των περιεχοµ περιεχοµένων. ένων. 3. Expires, όπου θέτουµ θέτουµε την ηµεροµ εροµηνία λήξης της σελίδας, σελίδας, στον browser  του χρήστη. χρήστη. Αν θέσουµ θέσουµε την τιµ τιµή µηδέν η σελίδα, σελίδα, λήγει άµεσα και κάθε αίτηση για αυτήν φτάνει στον server. Αν θέσουµ θέσουµε 10, τότε ο browser  του χρήστη θα ελένξει για  νέα έκδοση της σελίδας σε 10 ηµέρες. έρες. Για τις ενδιάµ ενδιάµεσες αιτήσεις θα εξυπηρετήση τον χρήστη µε τη σελίδα που βρίσκεται στην cache.

Αντικεί µενο Server  Υποστηρίζει τις παρακάτω µεθόδους: εθόδους: CreateObject, για τη δηµ δηµιουργία ενός αντικειµ αντικειµένου στον server. Αυτό το αντικείµ αντικείµενο µπορεί να πορεί  να οποιοδήποτε, οποιοδήποτε, που είναι εγκατεστηµ εγκατεστηµένο στον server, όπως ένα ActiveX. MapPath, για την αντιστοιχήσει του παρόντος εικονικού path σε ένα πραγµ πραγµατικό κατάλογο του συστήµ συστήµατος αρχείων. αρχείων. Αυτό επιτρέπει  να κάνουµ κάνουµε την εφαρµ εφαρµογή µας µεταφέρσιµ εταφέρσιµη.

Αντικεί µενο Session Το αντικείµ αντικείµενο Session χρησιµ χρησιµοποιείται για την αποθήκευση δεδοµ δεδοµένων σχετικά µε παρούσα επικοινωνία του χρήστη µε τον web server. Οι µεταβλητές που αποθηκεύονται σε αυτό το αντικείµ αντικείµενο  υπάρχουν όσο είναι ενεργή η σύνδεση του χρήστη. χρήστη. Υποστηρίζεται µια µέθοδος, έθοδος, η Abandon, ή οποία λήγει τη σύνδεση όταν κληθεί, κληθεί, καταστρέφοντας ότι αντικείµ αντικείµενα ήταν αποθηκευµ αποθηκευµένα. ένα. Ακόµ Ακόµη,  υποστηρίζει δύο ιδιότητες, ιδιότητες, το SessionID, που περιέχει το αναγνωριστικό της παρούσας σύνδεσης, σύνδεσης, και την Timeout, που καθορίζει το χρόνο λήξης της σύνδεσης. σύνδεσης. Αντικεί µενο Application Μπορεί  να αποθηκεύσει δεδοµ δεδοµένα που διατηρούνται σε όλη τη διάρκεια της εφαρµ εφαρµογής. ογής. Εδώ µπορούµ πορού µε  να αποθηκεύσουµ αποθηκεύσουµε δεδοµ δεδοµένα που αφορούν περισσότερους από ένα χρήστες, χρήστες, όπως ένα µετρητή σελίδων. σελίδων. ASP Scripting Οι εντολές script διαφοροποιούνται από το  υπόλοιπο αρχείο µε τα αναγνωριστικά <%, %>, στην αρχή και το τέλος κάθε οµάδας εντολών. εντολών. Το παρακάτω παράδειγµ παράδειγµα είναι ενδεικτικό: ενδεικτικό: <HTML> <BODY> This This page page was was last last refr refres eshe hed d on <%= <%= Now Now %>. %>. </BODY>

30

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

</HTML>

Το αποτέλεσµ αποτέλεσµα στο browser του browser του χρήστη θα είναι: είναι: This This page page was was last last refr refres eshe hed d on 8/1/ 8/1/97 97 2:20 2:20:0 :00 0 PM. PM.

Συνδυασµ Συνδυασµός Client/Server Side Scripting Αν και το ASP χρησιµ χρησιµοποιείται κυρίως για τη δηµ δηµιουργία server-side scripts, µπορούµ πορούµε  να επεκτείνουµ επεκτείνουµε την αποτελεσµ αποτελεσµατικότητα του, του, αν προσθέσουµ προσθέσουµε client-side scripts, που θα εκτελεστούν στον browser  του χρήστη. χρήστη. Αυτό γίνεται συνδυάζοντας client-side scripts, που κλείνουµ κλείνουµε µέσα σε HTML σχόλια, σχόλια, µε µ ε server-side scripts µέσα µέσα στα γνωστά αναγνωριστικά (<%, %>). <SCRIPT LANGUAGE="VBScript"> LANGUAGE="VBScript"> <!-client client script script <% ser serve ver r scri script pt

%>

client client script script <% ser serve ver r scri script pt

%>

client client script script ... --> </SCRIPT>

Με αυτό το τρόπο µπορούµ πορού µε  να δηµ δηµιουργήσουµ ιουργήσουµε δυναµ δυναµικές σελίδες, σελίδες, όπου ακόµ ακόµη και τα client scripts παράγονται δυναµ δυναµικά στον server.

Global.asa Το αρχείο αυτό είναι προαιρετικό. προαιρετικό. Μπορούµ Μπορούµε  να ορίσουµ ορίσουµε event handlers και αντικείµ αντικείµενα. ενα. ∆εν είναι ένα αρχείο περιεχοµ περιεχοµένου που θα δουν οι χρήστες. χρήστες. Το αρχείο πρέπει  να ονοµ ονοµαστεί Global.asa και  να αποθηκευτεί στο κατάλογο ρίζα. ρίζα.  Όταν σώζουµ σώζουµε αλλαγές στο Global.asa, ο server  ολοκληρώνει τις  υπάρχουσες αιτήσεις, αιτήσεις, αρνούµ αρνούµενος κάθε  νέα σύνδεση. σύνδεση. Στη συνέχεια διαγράφει τις ενεργές συνδέσεις καλώντας τη διαδικασία Session_OnEnd, και µετά κλείνει την εφαρµ εφαρµογή αφού καλέσει την Application_OnEnd. Το αρχείο Global.asa γίνεται recompile, και στην πρώτη αίτηση ενός χρήστη η εφαρµ εφαρµογή ξεκινάει καλώντας πρώτα τη διαδικασία Application_OnStart και στη συνέχεια τη Session_OnStart. ASP Εφαρµ Εφαρµογές Μια ASP εφαρµ εφαρµογή είναι µια συλλογή από ASP σελίδες. σελίδες. Για τον ορισµ ορισµό µιας εφαρµ εφαρµογής χρησιµ χρησιµοποιούµ οποιού µε το εργαλείο Internet Service Manager  του ISS, για  να θέσουµ θέσουµε το αρχικό directory της εφαρµ εφαρµογής. ογής. Κάθε αρχείο, αρχείο, σε κάθε  υποκατάλογο θεωρείται ότι ανήκει στην εφαρµ εφαρµογή. ογή. Η εφαρµ εφαρµογή ξεκινάει όταν ένας χρήστης ζητήσει για πρώτη φορά ένα από τα αρχεία που περιέχονται στο µονοπάτι της εφαρµ εφαρµογής. ογής. Ταυτόχρονα εκτελείται η διαδικασία Application_OnStart του αρχείου Global.asa. Αρχή και Τέλος ενός Session

31

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

 Όταν ένας χρήστης ζητήσει ένα URL, ενός .asp αρχείου µιας εφαρµ εφαρµογής τότε δηµ δηµιουργείται ένα αντικείµ αντικείµενο Session για αυτό το χρήστη και εκτελείται η διαδικασία Session_OnStart του αρχείου Global.asa. Ένα Global.asa.  Ένα Session τελειώνει αυτόµ αυτόµατα µετά από 20 λεπτά, λεπτά, εκτός και αν έχουµ έχουµε θέσει κάποια διαφορετική τιµ τιµή στην ιδιότητα Session.Timeout. Στο τέλος ενός Session εκτελείται η διαδικασία Session_OnEnd του αρχείου Global.asa.

2.2.3 Οικογένεια Εφαρµογών Map Studio Τα περισσότερα GIS συστήµ συστήµατα είναι περισσότερο πολύπλοκα και προχωρηµ προχωρηµένα από όσο ο συνήθης συγγραφέας τουριστικών εφαρµ εφαρµογών θα µπορούσε  να χρησιµ χρησιµοποιήσει. οποιήσει. Για αυτό το λόγο αναπτύχθηκε η οικογένεια εφαρµ εφαρµογών Map Studio. Το Map Studio Family αποτελείται από τρία µέλη. έλη. Το Map Studio, όπου δηµ δηµιουργούνται και διατηρούνται οι χάρτες. χάρτες. Το Map ActiveX Control, ένα ανεξάρτητο κοµµ κοµµάτι άτι λογισµ λογισµικού που µπορεί εύκολα  να ενσωµ ενσωµατωθεί σε εφαρµ εφαρµογές σύµ σύµφωνα µε τη τεχνολογία ActiveX. Τέλος το Map Data Base Association Manager, που βοηθάει στη διαδικασία αντιστοίχησης δεδοµ δεδοµένων µιας σχεσιακής βάσης δεδοµ δεδοµένων µε αντικείµ αντικείµενα χάρτη. χάρτη. Το Map Studio  υποστηρίζει τόσο διανύσµ διανύσµατα, ατα, όσο και raster γραφικά raster γραφικά.. Το Control επιτρέπει την εύκολη ενσωµ ενσωµάτωση σε εφαρµ εφαρµογές TIS.

Χάρτες Το βασικό αντικείµ αντικείµενο που ορίζεται είναι ο χάρτης, χάρτης, που αποτελείται από µια στοίβα από επίπεδα. επίπεδα. Κάθε επίπεδο µπορεί  να περιέχει είτε διανυσµ διανυσµατικά δεδοµ δεδοµένα, ένα, είτε raster εικόνες raster εικόνες.. Κάθε επίπεδο ορίζεται σαν ένα σύνολο από µη επικαλυπτόµ επικαλυπτόµενα γεωγραφικά αντικείµ αντικείµενα που λέγονται LayerObjects. Αυτά τα αντικείµ αντικείµενα συνδέονται έτσι ώστε  να συνιστούν ένα δυσδιάστατο γράφο. γράφο. Κάθε Layer Object ανήκει σε µια από τις τρεις παρακάτω κατηγορίες. κατηγορίες. Positions, που είναι σηµ σηµεία και συµ συµπεριφέρονται σαν κόµ κόµβοι του γράφου. γράφου. Routes, που είναι γραµµ γραµµές ές που συνδέουν δύο Positions. Regions, που είναι πολυγωνικές περιοχές που ορίζονται από τα διαδοχικά Routes που τις περικλείουν. περικλείουν.

Map ActiveX Control Το Map Control εκθέτει τη λειτουργικότητα του και τα αντικείµ αντικείµενα των χαρτών µε βάση το πρότυπο Object Linking and Embending (OLE), που ονοµ ονοµάζεται OLE Automation και παρέχει ένα σύνολο από ιδιότητες και µεθόδους. εθόδους. Μπορούµ Μπορούµε  να αντιστοιχήσουµ αντιστοιχήσουµε αντικείµ αντικείµενα χάρτη µε εξωτερικές σχεσιακές βάσεις δεδοµ δεδοµένων. ένων. Μπορούµ Μπορούµε  να προσθέσουµ προσθέσουµε και  να αφαιρέσουµ αφαιρέσουµε επίπεδα και LayerObjects. Ακόµ Ακόµη, µπορούµ πορούµε  να αλλάξουµ αλλάξουµε την εµφάνιση επιπέδων και αντικειµ αντικειµένων. ένων. Τέλος, Τέλος, µπορού µ πορούµ µε -όπως την αλληλεπίδραση του χρήστη  να διαχειριστούµ διαχειριστούµε διάφορα γεγονότα (events) -όπως µε το χάρτηχάρτη- γράφοντας κώδικα που καλείται όταν πραγµ πραγµατοποιηθεί κάποιο συγκεκριµ συγκεκριµένο γεγονός. γεγονός. Αρχικοποίηση (Initialization) Μια εφαρµ εφαρµογή µπορεί  να ξεκινήσει  να διαχειρίζεται το χάρτη όταν λάβει το γεγονός MapLoaded. Αυτή είναι η κατάλληλη στιγµ στιγµή για την αρχικοποίηση παραµ παραµέτρων στο

32

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

περιβάλλον της εφαρµ εφαρµογής που εξαρτόνται από τον ενεργό χάρτη και παραµ παραµέτρων του χάρτη. χάρτη.

Αλλαγή της Εµφάνισης των Αντικειµ Αντικειµένων Επιπέδου  Ένα τυπικό και χρήσιµ χρήσιµο εφέ είναι η αλλαγή της εµφάνισης µιας περιοχής του χάρτη ενός αντικειµ αντικειµένου επιπέδου (LayerObject)- σαν αποτέλεσµ αποτέλεσµα της µετακίνησης του δείκτη πάνω από αυτή, αυτή, µε σκοπό  να  υποδείξουµ  υποδείξουµε ότι είναι ενεργή. ενεργή. Αυτό επιτυγχάνεται µε τα γεγονότα (events) EnterObject, LeaveObject. ' mapP mapPan ane e is an inst instan ance ce of Map Map Cont Contro rol l on a Form Form Sub map mapPan Pane_E e_Ente nterOb rObjec ject( t(ByV ByVal al obj As Obj Object ect, , ByVal ByVal Shi Shift ft As Int Intege eger) r) If obj. obj.Cl Clas assI sID D <> mcOL mcOLE E Then Then _  Set obj.Properties.Style obj.Properties.Style = Me.mapPane.Map.Styles( Me.mapPane.Map.Styles("Highlighted "Highlighted") ") End End Sub Sub Sub map mapPan Pane_L e_Leav eaveOb eObjec ject( t(ByV ByVal al obj As Obj Object ect, , ByVal ByVal Shi Shift ft As Int Intege eger) r) If obj. obj.Cl Clas assI sID D <> mcOL mcOLE E Then Then _  Set obj.Prop obj.Properti erties.S es.Style tyle = obj.Prop obj.Properti erties.O es.OldSt ldStyle yle End End Sub Sub

Αποθήκευση Προσωρινών Τιµ Τιµών Χρήστη Τα αντικείµ αντικείµενα Map, Layer, Position, Route, Region παρέχουν ένα µηχανισµ ηχανισµό που µπορεί να πορεί  να χρησιµ χρησιµοποιηθεί για την προσωρινή αποθήκευση µεταβλητών χρήστη. χρήστη. Αυτό γίνεται µε την ιδιότητα UserProperties, που είναι ένας πίνακας συσχέτισης συµ συµβολοσειρών (strings) σε τιµ τιµές οποιουδήποτε τύπου (αριθµ αριθµοί, οί, αντικείµ αντικείµενα). ενα). ' mapP mapPan ane e is an inst instan ance ce of Map Map Cont Contro rol l on a Form Form Sub mapPane_MapLoaded() mapPane_MapLoaded() Dim Dim L As Laye Layer, r, obj obj As Obje Object ct For Eac Each h L In Me. Me.map mapPa Pane. ne.Map Map.La .Layer yers s For Eac Each h obj In L.L L.Laye ayerOb rObjec jects ts If obj obj.Cl .Class assID ID = mcP mcPosi ositio tion n Or obj obj.Cl .Class assID ID = mcR mcRegi egion on The Then n obj.UserProperties("Mo obj.UserProperties("MousePointer") usePointer") = mcHand Set obj.User obj.UserProp Properti erties(" es("Acti ActiveSt veStyle" yle") ) = _  Me.mapPane.Map.Styles("Highlighted") Else obj.UserProperties("Mo obj.UserProperties("MousePointer") usePointer") = mcDefault Set obj.UserProperties("Ac obj.UserProperties("ActiveStyle") tiveStyle") = obj.Properties.Style obj.Properties.Style End End If Next Nex t obj Next Next L End End Sub Sub

Η ετικέτα <OBJECT> της HTML

33

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

Τα ActiveX Controls ενσωµ ενσωµατώνονται σε µια HTML σελίδα χρησιµ χρησιµοποιώντας την ετικέτα <OBJECT> της HTML. Οι σηµ σηµαντικότερες ιδιότητες της ετικέτας αυτής είναι το ID, που είναι µοναδικό και χρησιµ χρησιµοποιείται για  να αναφερόµ αναφερόµαστε στο control, το CLASSID που αναγνωρίζει µοναδικά το control στο λειτουργικό σύστηµ σύστηµα και το CODEBASE, που είναι το URL της θέσης του αρχείου εγκατάστασης του Control. <OBJECT <OBJECT ID="mapP ID="mapPane" ane" WIDTH="1 WIDTH="100%" 00%" HEIGHT=" HEIGHT="80%" 80%" CLASSID="CLSID:223EFAC9-FD1F-11CF-A4D1-444553540000" CODEBASE="http://www.foo.com/ActiveX/MapCtl.cab#Version=1,0,98, 11"> <PARAM NAME="BackColor" NAME="BackColor" VALUE="16769476"> VALUE="16769476"> <PARAM NAME="BorderStyle" NAME="BorderStyle" VALUE="1"> <PARAM NAME="MapUrl" NAME="MapUrl" VALUE="/Maps/Chania.ms VALUE="/Maps/Chania.msm"> m"> <PARAM NAME="DoubleBufferedDra NAME="DoubleBufferedDrawing" wing" VALUE="-1"> <PARAM NAME="ViewBkgndImage" NAME="ViewBkgndImage" VALUE="0"> </OBJECT>

2.2.4 Cascading Style Sheets Η τεχνολογία Cascading Style Sheets (CSS) είναι ένα σύνολο από ιδιότητες που CSS1 ορίζει ιδιότητες και µια ορίζουν την εµφάνισης µιας σελίδας. σελίδας. Η προδιαγραφή CSS1 γλώσσα για τη συσχέτιση τους µε τα στοιχεία της σελίδας. σελίδας. Ο οργανισµ οργανισµός W3C (www.w3.org) καθορίζει και διανέµ διανέµει την πιο πρόσφατη πληροφορία σχετικά µε την εξέλιξη των CSS. Τα style sheets είναι µια αφαίρεση κατά την οποία το στιλ  µιας σελίδας ορίζεται ξεχωριστά από τα περιεχόµ περιεχόµενα και τη δοµ δοµή. Υπάρχουν τρεις τεχνικές για  να προσθέσουµ προσθέσουµε style sheets σε µια σελίδα. σελίδα. Η πρώτη είναι  να χρησιµ χρησιµοποιήσουµ οποιήσουµε ένα inline style sheet. Το στιλ  αυτό ορίζεται µέσα στο ίδιο το HTML στοιχείο. στοιχείο. Ο παρακάτω HTML κώδικας παραγραφοποιεί µια συγκεκριµ συγκεκριµένη ετικέτα <P>. <P STYLE="m STYLE="margi argin-le n-left: ft: 0.5in; 0.5in; margin-r margin-right ight: : 0.5in"> 0.5in"> This This line line will will be inde indent nted ed on the the left left and and righ right. t. <P> This Thi s lin line e wil will l rec receiv eive e no ind indent entati ation. on.

Η δεύτερη τεχνική είναι  να χρησιµ χρησιµοποιήσουµ οποιήσουµε ένα καθολικό (global) style sheet για τον ορισµ ορισµό των στιλ , στην αρχή µιας σελίδας. σελίδας. <BODY>, <H1>, <H1>, Το παρακάτω παρακάτω παράδειγ παράδειγµα ορίζ ορίζει ει στιλ στιλ για για τις τις ετικ ετικέτ έτες ες <BODY>, <H2>, και <P>. <HTML> <STYLE TYPE="text/css"> TYPE="text/css"> <!-BODY BOD Y {fo {font: nt: 10p 10pt t "Ar "Aria ial"} l"} H1 {font: {font: 15pt/17p 15pt/17pt t "Arial"; "Arial"; font-wei font-weight: ght: bold; bold;

34

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

color: color: maroon} maroon} H2 {font: {font: 13pt/15p 13pt/15pt t "Arial"; "Arial"; font-wei font-weight: ght: bold; bold; color: color: blue} blue} P

{fon {font: t: 10pt 10pt/1 /12p 2pt t "Ari "Arial al"; "; color: color: black} black}

--> </STYLE> <BODY> ... </BODY> </HTML>

Η τρίτη και περισσότερη αφαιρετική τεχνική είναι  να χρησιµ χρησιµοποιήσουµ οποιήσουµε ένα συνδεµ συνδεµένο style sheet (linked style sheet), για  να ορίσουµ ορίσουµε ένα στιλ  σε ένα άλλο αρχείο. αρχείο. Για παράδειγµ παράδειγµα, εάν το αρχείο style sheet λέγεται mystyles.css και βρίσκεται στη διεύθυνση http://internet-name/mystyles.css, θα προσθέταµ προσθέταµε τα παρακάτω στη web σελίδα, µέσα στην ετικέτα <HEAD>. σελίδα, µέσα <HEAD> <TITLE>T <TITLE>Title itle of article< article</TIT /TITLE> LE> <LINK REL=STYLESHEET REL=STYLESHEET HREF="http://internet-n HREF="http://internet-name/mystyle ame/mystyles.css" s.css" TYPE="text/css"> </HEAD>

Τα inline styles δεν προσφέρουν πολλά περισσότερα από τη παραδοσιακή HTML. Με τα inline styles δεν µπορεί να πορεί  να αλλάξει εύκολα η εµφάνιση µιας σελίδας. σελίδας. Η χρήση των global style sheets ξεχωρίζει τη παρουσίαση από τα περιεχόµ περιεχόµενα και επιτρέπει τη γρήγορη αλλαγή στο στιλ  της σελίδας. σελίδας. Τα linked style sheets προσφέρουν το µεγαλύτερο πλεονέκτηµ πλεονέκτηµα, επιτρέποντας σε ένα σύνολο σελίδων ενός web site,  να ορίσουν την εµφάνιση τους από ένα αρχείο CSS, που συνδέεται µε κάθε σελίδα. σελίδα.

Ο όρος ∆ιαδοχικά (Cascading) Ο όρος cascading στο CSS αναφέρεται στη δυνατότητα να δυνατότητα  να συγχωνεύσουµ συγχωνεύσουµε πολλαπλά style sheets για το σχηµ σχηµατισµ ατισµό του ορισµ ορισ µού ενός style, για ένα στοιχείο ή για όλη τη σελίδα. σελίδα. Αυτό το χαρακτηριστικό επιτρέπει στο style sheet ενός web site  να συγχωνευτεί µε προβλέψιµ προβλέψιµο τρόπο µε το style sheet µιας µιας σελίδας και µε τα inline styles. Ελεγχος του δείκτη του mouse Η ιδιότητα cursor  επιτρέπει την επιλογή του δείκτη mouse, όταν αυτός βρίσκεται πάνω από κάποιο στοιχείο. στοιχείο. για παράδειγµ παράδειγµα, όταν ο δείκτης βρίσκεται πάνω από µια επιλέξιµ επιλέξιµη περιοχή, περιοχή, τότε είναι χρήσιµ χρήσιµο  να αλλάζουµ αλλάζου µε το δείκτη σε χεράκι, χεράκι, για  να  υποδείξουµ  υποδείξουµε την ιδιότητα της εν λόγο περιοχής. περιοχής. Κατηγορίες (Classes)

35

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

Με το χαρακτηριστικό της κατηγορίας µπορούµ πορούµε  να δηµ δηµιουργήσουµ ιουργήσουµε τρία διαφορετικά στιλ  για την ίδια ετικέτα. ετικέτα. Για παράδειγµ παράδειγµα µπορούµ πορούµε  να έχουµ έχουµε τρία χρώµ χρώµατα για µια παράγραφο. παράγραφο. P.gr P.gree een n { colo color: r: gree green n } P.pu P.purp rple le { colo color: r: purp purple le } P.gr P.gray ay { colo color: r: gray gray }

Και ο HTML κώδικας θα είναι, είναι, <P CLA CLASS= SS=gre green> en>The The fir first st par paragr agraph aph, , wit with h a cla class ss nam name e of "gr "green een".< ".</P> /P> <P CLA CLASS= SS=pur purple ple>Th >The e sec second ond par paragr agraph aph, , wit with h a class class nam name e of "purple".</P> <P CLA CLASS= SS=gra gray>T y>The he thi third rd par paragr agraph aph, , wit with h a cla class ss nam name e of "gr "gray" ay".</ .</P> P>

Ακόµ Ακόµη µπορούµ πορούµε  να δηµ δηµιουργήσουµ ιουργήσουµε κατηγορίες που δεν είναι συνδεµ συνδεµένες σε κάποια συγκεκριµ συγκεκριµένη HTML ετικέτα. ετικέτα. .gre .green en { colo color: r: gree green n }

Αυτή η προσέγγιση είναι περισσότερο ευέλικτη, ευέλικτη, γιατί τώρα µπορούµ πορούµε  να χρησιµ χρησιµοποιήσουµ οποιήσουµε τη δήλωση CLASS=green σε οποιαδήποτε HTML ετικέτα. ετικέτα.

Το διακριτικό #  Όταν θέλουµ θέλουµε χρησιµ χρησιµοποιήσουµ οποιήσουµε ξεχωριστό στιλ  για κάθε περιοχή της σελίδας, σελίδας, µπορούµ πορούµε, αντί  να γεµ γεµίσουµ ίσουµε τις ετικέτες µε δηλώσεις inline CSS,  να χρησιµ χρησιµοποιήσουµ οποιήσουµε ένα αναγνωριστικό, αναγνωριστικό, όπως αυτό ορίζεται από το document object model, και θέτοντας το σύµ σύµβολο # µπροστά από το όνοµ όνοµα του αναγνωριστικού  να κάνουµ κάνουµε την CSS δήλωση σε ένα global style sheet ή ακόµ ακόµη και σε ένα linked.

2.2.5 Dynamic HTML Οι προτάσεις του οργανισµ οργανισµού προτύπων για το web HTML 4.0 Working Draft (http://www.w3.org/TR/WD-html40 (http:// www.w3.org/TR/WD-html40// ) CSS1 CSS1 Recommendation (http://www.w3.org/TR/REC-CS (http:// www.w3.org/TR/REC-CSS S1 ) CSS Positioning Working Draft (http://www.w3.org/TR/WD-positioning ) Η Dynamic HTML (DHTML) είναι ένα σύνολο από τεχνολογίες που επεκτείνουν την απλή HTML, επιτρέποντας πρόσβαση σε όλα τα στοιχεία µιας web σελίδας. σελίδας. Η έκδοση DHTML του Internet Explorer 4.0, παρέχει dynamic styles, dynamic content, Cascading Style Sheets (CSS) positioning, και data binding.

Μοντέλο Εγγράφου - Document Object Model Το Document Object Model (DOM) είναι το θεµ θεµέλιο της DHTML. Κάνει καθένα από µα. Μια ποικιλία τα στοιχεία µιας σελίδας ή όλα µαζί σαν συλλογή προγραµµ προγραµµατίσι ατίσιµ από άλλες συλλογές  υποστηρίζονται όπως all, anchors, children, forms, frames, scripts, styleSheets. Το DOM είναι ένα υπερσύνολο ένα  υπερσύνολο του JavaScript object model του Netscape Navigator, που σηµ σηµαίνει ότι τµήµατα από αυτό το µοντέλο είναι συµ συµβατά και µε άλλους  browsers, ακόµ ακόµα και αν δεν υποστηρίζουν δεν  υποστηρίζουν την DHTML.

36

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

Το document object model επιτρέπει άµεση πρόσβαση στα στοιχεία που συνθέτουν µια σελίδα στο web, από τα διακριτά µέχρι αυτά που περιέχουν άλλα. άλλα. Αυτή η πρόσβαση σε συνδυασµ συνδυασµό µε το event model, επιτρέπει στον browser  να browser  να αλληλεπιδρά µε την είσοδο του χρήστη, χρήστη,  να εκτελεί άµεσα scripts, και  να παρουσιάζει  νέα δεδοµ δεδοµένα, ένα, χωρίς ανάκληση νέων ανάκληση  νέων σελίδων από τον server. Το document object model (DOM) είναι το χαρακτηριστικό που κάνει την τεχνολογία dynamic HTML προγραµµ προγραµµατίσι ατίσιµ µη. ∆εν απαιτεί την εκ µάθηση  νέων HTML ετικετών, ετικετών, ούτε εισάγει  νέες τεχνολογίες συγγραφής. συγγραφής. Στη πράξη το µοντέλο επεκτείνει τη λειτουργικότητα που χρησιµ χρησιµοποιούταν µέχρι τώρα. τώρα. Το  να θέσουµ θέσουµε τη τιµ τιµή ενός πεδίου σε µια φόρµ φόρµα ή  να κάνουµ κάνουµε ένα εφέ mouse over, είναι  υποσύνολο της λειτουργικότητας που προσφέρεται µε το DOM. Αυτό που αλλάζει µε το καινούριο µοντέλο είναι πως κάθε αντικείµ αντικείµενο HTML είναι προγραµµ προγραµµατίσι ατίσιµ µο, που σηµ σηµαίνει ότι καθένα από αυτά µπορεί  να είναι συνδεµ συνδεµένο µε script κώδικα, κώδικα, που αλληλεπιδρά µε τις ενέργειες του χρήστη και αλλάζει τα περιεχόµ περιεχόµενα της σελίδας δυναµ δυναµικά. ικά. Το µοντέλο γεγονότων (event model) επιτρέπει στη σελίδα  να καταλαβαίνει πότε ο χρήστης έφερε το mouse πάνω από κάποια περιοχή, περιοχή, πάτησε ένα κουµ κουµπί, πί, ή εισήγαγε πληροφορία σε πεδίο φόρµ φόρµας. ας. Κάθε γεγονός µπορεί  να συνδεθεί µε ένα script (event handler), που  υλοποιεί την κατάλληλη λειτουργικότητα. λειτουργικότητα. Οι  νέες καταστάσεις που είναι προγραµµ προγραµµατισ ατισµ µένες µέσα στο script κώδικα των event handlers, αλλάζουν δυναµ δυναµικά τα περιεχόµ περιεχόµενα της σελίδας, σελίδας, χωρίς επίσκεψη στον web server, αυξάνοντας έτσι τη ταχύτητα και βελτιώνοντας την εµπειρία του χρήστη. χρήστη. Για κάθε HTML στοιχείο µπορεί  να γραφτεί script, χρησιµ χρησιµοποιώντας το δικό του µεθόδους και γεγονότα. σύνολο από ιδιότητες, ιδιότητες, µεθόδους γεγονότα. Το DOM, είναι προσανατολισµ προσανατολισµένο γύρω από συλλογές στοιχείων, στοιχείων, µια ιεραρχία από οµάδες στις οποίες ανήκουν τα στοιχεία. στοιχεία. Οι σηµ σηµαντικότερες από αυτές τις συλλογές είναι η all και η children. Μια σελίδα σε DHTML είναι µια δοµ δοµηµένη διαρρύθµ διαρρύθµιση των στοιχείων. στοιχείων. Στο παρακάτω παράδειγµ παράδειγµα, κάθε στοιχείο έχει µια εµβέλεια επιρροής που εξαρτάται από τη διαδοχή των ετικετών της σελίδας. σελίδας. <HTML> <BODY> <DIV> <P>Som <P> Some e tex text t in a <B> <B>par paragr agraph aph</B </B> > <IMG id=image id=image1 1 src="myg src="mygif.g if.gif"> if"> </DIV> <IMG id=image id=image2 2 src="myg src="mygif.g if.gif"> if"> </BODY> </HTML>

Το στοιχείο DIV περιέχει (και είναι πατέρας) πατέρας) το στοιχείο P, και το στοιχείο IMG, που λέγεται image1 image1. Αντιστρόφως, Αντιστρόφως, το image1 image1 και το P είναι παιδιά του στοιχείου DIV. Το

37

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

στοιχείο image2 όµως είναι παιδί του στοιχείου BODY.  Όλα τα στοιχεία είναι παιδιά του στοιχείου HTML. Για κάθε στοιχείο  υπάρχει µια συλλογή all που περιέχει όλα τα στοιχεία που είναι ένθετα σε αυτό και µια συλλογή children, που περιέχει µόνο τα στοιχεία που είναι άµεση απόγονοι αυτού του στοιχείου. στοιχείου. Στο παραπάνω παράδειγµ παράδειγµα το B περιέχεται στην συλλογή all του DIV, αλλά όχι στην συλλογή children.  Όµ  Όµοια το DIV είναι µέλος της συλλογής children του BODY, αλλά το P δεν είναι. είναι. Εκτός από αυτές τις συλλογές για κάθε αντικείµ αντικείµενο, ενο, το αντικείµ αντικείµενο document έχει ένα αριθµ αριθµό από συλλογές που περιέχουν ή δεν περιέχουν στοιχεία. στοιχεία. Η πιο σηµ σηµαντική είναι µια συλλογή all που περιέχει όλα τα στοιχεία της σελίδας. σελίδας. Αυτή η συλλογή είναι ο κυρίως τρόπος πρόσβασης στα στοιχεία µέσα από τα script. Η πρόταση της Microsoft για (http://www.microsoft.com/workshop/author/om/dom.asp)

το

DOM

Η πρόταση του οργανισµ οργανισµού θέσπισης προδιαγραφών του WWW για το DOM (http://www.w3.org/TR/REC-DOM-Level-1 (http://www.w3.org/TR/REC-DOM-Level1/ και http://www.microsoft.com/standards/standards.asp)

Μοντέλο Γεγονότων - Event Model Η DHTML παράγει γεγονότα (events) για κάθε στοιχείο σε µια σελίδα. σελίδα. Κάθε στοιχείο παρέχει τα παρακάτω γεγονότα. γεγονότα. Keyboard: onkeypress, onkeypress , onkeydown, onkeyup Mouse: onmouseover, onmouseout, onmousedown, onmouseup, onmousemove, onclick, ondblclick 

Event Bubbling Η DHTML  υποστηρίζει το event bubbling, ένα  νέο τρόπο για τη διαχείριση των γεγονότων στην HTML. Πρώτα καλείται ο διαχειριστής του γεγονότος (event handler), για το στοιχείο πηγή του γεγονότος. γεγονότος. Ανεξάρτητα από το αν το γεγονός διαχειρίστηκε, διαχειρίστηκε, αυτόµ αυτόµατα καλείται ο event handler του handler του στοιχείου πατέρα, πατέρα, µέχρι µέχρι που το γεγονός φτάνει στο αντικείµ αντικείµενο παραθύρου ή ακυρωθεί από κάποιον event handler  στην πορεία. πορεία. Καθορισµ Καθορισµός Θέσης - Positioning Ο καθορισµ καθορισµός θέσης, θέσης, απαιτούσε τη κατασκευή πολύπλοκων πινάκων και γενικά ήταν δύσκολος ο ακριβής καθορισµ καθορισµός της θέσης ενός στοιχείου. στοιχείου. Η DHTML  υποστηρίζει το CSS Positioning working draft, επιτρέποντας τον εύκολο και ακριβή καθορισµ καθορισµό της θέσης. θέσης. Ο καθορισµ καθορισµός θέσης µε τη τεχνολογία CSS, επιτρέπει τη τοποθέτηση στοιχείων χρησιµ χρησιµοποιώντας τα χαρακτηριστικά top, left, z-order. Αναθέτοντας διαφορετικά z-orders, µπορού µπορούµ µε  να επιτύχουµ επιτύχουµε επικάλυψη στοιχείων και  να καθορίσουµ καθορίσουµε ποια στοιχεία θα είναι πάνω από ποια. ποια.  Έχουµ  Έχουµε δύο τύπους posiotioning: Absolute positioning, όπου η θέση του στοιχείου είναι σχετική µε το σηµ σηµείο αναφοράς της σελίδας, σελίδας, οπότε οι τιµ τιµές που αναθέτονται στα left, top είναι σχετικές µε την επάνω αριστερά γωνία της σελίδας. σελίδας.

38

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

Relative positioning, που βασίζεται στη φυσική θέση του στοιχείου, στοιχείου, η οποία καθορίζεται από το στοιχείο πατέρα και τα στοιχεία που ακολουθούν και έπονται. έπονται.

∆υναµ ∆υναµικά Στιλ - Dynamic Styles Στο παρελθόν η αλλαγή του στιλ  ενός στοιχείου σήµ σήµαινε ανανέωση της σελίδας από τον web server. Με τη DHTML οποιοδήποτε χαρακτηριστικό στιλ , οποιουδήποτε στοιχείου της σελίδας µπορεί να πορεί  να ενηµ ενηµερωθεί οποιαδήποτε στιγµ στιγµή. Το DOM κάνει όλα τα χαρακτηριστικά του CSS προγραµµ προγραµµατίσι ατίσιµ µ α. <HTML> <HEAD><TITLE>Dynamic <HEAD><TITLE>Dynamic Styles</TITLE> Styles</TITLE> <SCRIPT LANGUAGE="JScript"> LANGUAGE="JScript"> function function doChange doChanges() s() { window.event.srcElemen window.event.srcElement.style.colo t.style.color r = "green"; window.event.srcElemen window.event.srcElement.style.font t.style.fontSize Size = "20px"; } </SCRIPT> <BODY> <H3 ID=heading onmouseover="doChanges()" onmouseover="doChanges()" STYLE="color:black;fon STYLE="color:black;fonttsize:18" size:18">Wel >Welcome come to Dynamic Dynamic HTML!</H HTML!</H3> 3> <P>Y <P>You ou can can do the the most most amaz amazin ing g thin things gs with with the the leas least t bit bit of effo effort rt. . </BODY> </HTML>

Στο παραπάνω παράδειγµ παράδειγµα η συνάρτηση (event handler), εκτελείται όταν ο δείκτης του mouse µετακινηθεί µετακινηθεί πάνω από µια HTML ετικέτα που περιέχει τη δήλωση onmouseover. Ο handler  χρησιµ χρησιµοποιεί την ιδιότητα srcElement, του αντικειµ αντικειµένου event, για  να καθορίσει ποιο στοιχείο είναι η πηγή του event (σε (σε αυτή τη περίπτωση το στοιχείο Η3). Στη συνέχεια χρησιµ χρησιµοποιεί τις ιδιότητες color  και fontSize. Αλλάζοντας αυτές τις ιδιότητες, ιδιότητες, ο browser ενη browser  ενηµ µερώνει το αντίστοιχο στοιχείο µε τα  νέα χαρακτηριστικά. χαρακτηριστικά. Χρησιµ Χρησιµοποιώντας µόνο στιλ , µπορούµ πορούµε  να δηµ δηµιουργήσουµ ιουργήσουµε µια σελίδα, σελίδα, όπως η παρακάτω, παρακάτω , όπου όλα τα στοιχεία σε µια λίστα είναι κρυµµ κρυµµένα ένα,, µέχρι που ο χρήστης κάνει κλικ µ κλικ  µε το mouse. <HTML> <HEAD><TITLE>Dynamic <HEAD><TITLE>Dynamic Styles</TITLE> Styles</TITLE> <SCRIPT LANGUAGE="JScript"> LANGUAGE="JScript"> functi fun ction on sho showMe wMe() () { document.all.MyHeading document.all.MyHeading.style.color .style.color = "red"; document.all.MyList.st document.all.MyList.style.display yle.display = ""; } </SCRIPT> <BODY onclick="showMe()"> onclick="showMe()">

39

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

<H3 ID=MyHea ID=MyHeading ding>Wel >Welcome come to Dynamic Dynamic HTML!</H HTML!</H3> 3> <P>Y <P>You ou can can do the the most most amaz amazin ing g thin things gs with with the the leas least t bit bit of effo effort rt. . Just Just clic click k and and see! see! <UL ID=MyList STYLE="display:none"> STYLE="display:none"> <LI>Ch <LI >Chang ange e the col color, or, size, size, and typ typefa eface ce of tex text t <LI>Sh <LI >Show ow and hid hide e tex text t <LI>An <LI >And d muc much, h, muc much h mor more e </UL> <P>And <P> And thi this s is jus just t the beg beginn inning ing! ! </BODY> </HTML>

µε αποτέλεσµ Στο παραπάνω παράδειγµ παράδειγµα, η ιδιότητα display έχει τιµ τιµή "none", µε αποτέλεσµα η λίστα  να είναι κρυµµ κρυµµένη ένη..  Όταν ο χρήστης κάνει κλικ , ο event handler  αλλάζει την τιµ τιµή της ιδιότητας, ιδιότητας, ώστε να ώστε  να φαίνεται η λίστα. λίστα.

2.2.6 Scripting Το scripting χρησιµ χρησιµοποιήθηκε πρώτη φορά στο λειτουργικό σύστηµ σύστηµα UNIX µε µε τη µορφή του shell script για τη διευκόλυνση λειτουργιών που είχαν  να κάνουν µε τη διαχείριση του συστήµ συστήµατος. ατος. Γενικά οι scripting γλώσσες δεν παρέχουν πολλές δυνατότητες και άλλωστε δεν είναι αυτός ο σκοπός τους. τους. Τα τελευταία χρόνια το scripting γίνεται δηµ µού δηµοφιλές σαν µια απλή µέθοδος προγραµµ προγραµµατισ ατισµ αλληλεπιδραστικών σελίδων στο web, ενώ παράλληλα γίνεται προσπάθεια γενίκευσης της χρήσης τους σαν εργαλείο διαχείρισης αντικειµ αντικειµένων που έχουν γραφτεί σε παραδοσιακές γλώσσες προγραµµ προγραµµατισ ατισµ µού. ού.

Scripting στον Client Το scripting µας µας επιτρέπει  να θέσουµ θέσουµε και  να αποθηκεύσουµ αποθηκεύσουµε µεταβλητές και  να δουλέψουµ δουλέψουµε µε δεδοµ δεδοµένα στον HTML κώδικα. κώδικα. Το scripting χρησιµ χρησιµοποιείται για την αναγνώριση του browser  του χρήστη, χρήστη, για την επικύρωση της εισόδου, εισόδου, για τη χρήση Java Applets και ActiveX Controls, για την επικοινωνία µε το χρήστη. χρήστη. Scripting στον Server  Τα server-side scripts, που τρέχουν στον server, επιτρέπουν τη πρόσβαση σε διαµ διαµοιραζόµ οιραζό µενα δεδοµ δεδοµένα. ένα. Για παράδειγµ παράδειγµα ο κάθε χρήστης µπορεί  να έχει µια προσωπική παρουσίαση της προσφερόµ προσφερόµενης πληροφορίας, πληροφορίας, ανάλογα µε τις επιλογές που είχε κάνει νωρίτερα κάνει  νωρίτερα και που διατηρούνται σε βάση δεδοµ δεδοµένων. ένων. Τα server-side scripts  υλοποιούνται µε τη χρήση των Active Server Pages (ASP). Η τεχνολογία ASP είναι ενσωµ ενσωµατωµ ατωµένη στους web servers της Microsoft. Το scripting  δεν είναι µόνο για το Internet  πλέον , µετά από την προσφορά του  Microsoft Scripting Host, που επιτρέπει την εκτέλεση scripts σε όλα τα  λειτουργικά συστή µατα  µατα της  Microsoft.  Η  τεχνολογία αυτή είναι ιδανική για την εκτέλεση  λειτουργιών διαχείρησης  του συστή µατος   µατος  και µοιάζει µε τα batch shell scripts του UNIX.

40

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

 PERL ση µαίνει  µαίνει Practical Extraction and Report Language, εφευρέθηκε από τον Larry Wall για Wall  για την αντι µετώπιση  µετώπιση προβλη µάτων  µάτων στο UNIX, όπου η  χρήση C και C  και Shell Scripts δεν ήταν ικανή. ικανή. Θεωρείται ο πατέρας  των ση µερινών  µερινών scripting  γλωσσών. γλωσσών.  Επειδή η  PERL, είναι open source εργασία , υπάρχουν διάφορες  εκδόσεις  για Windows.  ActivePerl (www.activestate.com), PScript (www.mks.com). (www.mks.com). Τα scripts µπορούν µπορούν  να περιέχονται σε ένα εξωτερικό αρχείο και  να συσχετίζονται µε οποιοδήποτε πλήθος HTML αρχείων. αρχείων. Αυτό το χαρακτηριστικό επιτρέπει τη συγγραφή βιβλιοθηκών script, που διαµ διαµοιράζονται σε πολλές σελίδες. σελίδες. Ανάλογα µε τον browser αυτά browser αυτά τα script αρχεία µπορούν να πορούν  να αποθηκευτούν στην cache, αυξάνοντας την απόδοση. απόδοση. Ακόµ Ακόµη µε αυτό το τρόπο ενισχύεται ο διαχωρισµ διαχωρισµός περιεχοµ περιεχοµένου και συµ συµπεριφοράς, περιφοράς, παρουσίασης, παρουσίασης, αφού το αρχείο HTML είναι διαφορετικό από το script αρχείο που καθορίζει την αλληλεπίδραση. αλληλεπίδραση. <SCRIPT LANGUAGE="JavaScript" LANGUAGE="JavaScript" SRC="genericFile.js"> SRC="genericFile.js"> /* Opt Option ionall ally y wri write te code code her here e for bro browse wsers rs that that don don't 't suppor sup port t the SRC att attrib ribute ute. . */ // The The clos closin ing g SCRI SCRIPT PT tag tag is alwa always ys requ requir ired ed. . </SCRIPT>

Πολλαπλές γλώσσες Scripting ταυτόχρονα  Ένα HTML αρχείο µπορεί  να περιέχει και  να εκτελεί πολλές διαφορετικές γλώσσες scripting. Για παράδειγµ παράδειγµα στον Microsoft Internet Explorer, µια µια σελίδα µπορεί  να περιέχει και JScript και VBScript κώδικα. κώδικα. Επιπλέον, Επιπλέον, είναι δυνατόν η µια γλώσσα  να καλεί συναρτήσεις και  να έχει πρόσβαση στις µεταβλητές που είναι ορισµ ορισµένες στην άλλη γλώσσα script. <SCRIPT LANGUAGE="VBScript"> LANGUAGE="VBScript"> ` Simp Simple le subr subrou outi tine ne that that pops pops up a mess messag age e box box sub MyAlert( MyAlert(str) str) msgBox(str) end end sub sub </SCRIPT> <SCRIPT LANGUAGE="JavaScript"> LANGUAGE="JavaScript"> // Cal Call l the VBS VBScri cript pt sub subrou routin tine, e, MyA MyAler lert, t, defin defined ed abo above. ve. MyAlert("Hello, MyAlert("Hello, World!"); window win dow.My .MyAle Alert( rt("My "MyAle Alert rt is a met method hod of the win window dow obj object ect.") ."); ; </SCRIPT>

Επιλογή Scripting γλώσσας Οι τεχνολογίες ASP, DHTML, ActiveX Control, είναι ανεξάρτητες από τη γλώσσα script που χρησιµ χρησιµοποιείται. οποιείται. Η επιλογή γίνεται µε βάση τη προτίµ προτί µηση του προγραµµ προγραµµατιστή ατιστή.. Στη παρούσα εργασία, εργασία, τα server-side scripts γράφτηκαν αποκλειστικά σε VBScript. Η τεχνολογία ASP, είναι µια εφεύρεση της Microsoft και τα διαθέσιµ διαθέσιµα εγχειρίδια χρήσης είχαν παραδείγµ παραδείγµατα σε VBScript, που είναι επίσης µια τεχνολογία της Microsoft. Ο ίδιος λόγος  υπαγόρευσε τη χρήση VBScript στον

41

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

 browser, σε όποιο σηµ σηµείο είχαµ είχαµε επικοινωνία µε το ActiveX Control. Στη διαχείρηση της σελίδας του χρήστη στον browser  χρησιµ χρησιµοποιήθηκαν και οι δύο γλώσσες, γλώσσες, ανάλογα µε πρόβληµ πρόβληµα και µε τη διαθέσιµ διαθέσιµη βοήθεια από διάφορες πηγές του δικτύου. δικτύου. Η εµπειρία δείχνει πως η JScript σαν παλιότερη, παλιότερη, έχει χρησιµ χρησιµοποιηθεί περισσότερο στο σχεδιασµ σχεδιασµό user interfaces και σε πολλά σηµ σηµεία  υπερέχει έναντι της VBScript, σαν γενική γλώσσα scripting.

Microsoft JScript Η JScript είναι η κατά Microsoft  υλοποίηση της γλώσσας προγραµµ προγραµµατισ ατισµ µού που περιγράφεται από την τυποποίηση ECMA-262 (European Computer Manufacturers Association). Είναι µια πλήρης  υλοποίηση και επιπρόσθετα µερικές βελτιώσεις που αξιοποιούν τις δυνατότητες του Microsoft Internet Explorer. Το πρότυπο ECMA-262 βασίζεται σε προτάσεις από τη Microsoft και τη Netscape. Η JavaScript είναι η πρόταση της Netscape και προυπήρχε του πρότυπου ECMA. Η JScript είναι µια interpreted, αντικειµ αντικειµενοστραφής scripting γλώσσα. γλώσσα. Αν και έχει λιγότερες δυνατότητες από µια πλήρη γλώσσα προγραµµ προγρα µµατισ ατισµ µού, ού, όπως η C++ και η Java, η JScript ικανοποιεί τις προδιαγραφές για τις οποίες σχεδιάστηκε. σχεδιάστηκε. Η JScript δεν είναι ένα  υποσύνολο ή µια απλοποίηση µιας άλλης γλώσσας προγραµµ προγραµµατισ ατισµ µού. ού. Παρόλα αυτά  υπάρχουν περιορισµ περιορισµοί, οί, όπως ότι δεν µπορεί  να γραφτεί µια standalone εφαρµ εφαρµογή, ογή, και έχει λίγες δυνατότητες για το διάβασµ διάβασµα και γράψιµ γράψιµο αρχείων. αρχείων. Επιπλέον, Επιπλέον, τα script της JScript µπορούν µπορούν και εκτελούνται µόνο υπό όνο  υπό την παρουσία ενός interpreter, είτε στον web server, είτε στον web browser. Η JScript δεν είναι µια strongly typed γλώσσα. γλώσσα. Αυτό σηµ σηµαίνει ότι δε χρειάζεται  να δηλώνουµ δηλώνουµε τον τύπο δεδοµ δεδοµένων µια µεταβλητής. εταβλητής. Επιπλέον, Επιπλέον, σε πολλές περιπτώσεις η JScript πραγµ πραγµατοποιεί αυτόµ αυτόµατα µετατροπές, ετατροπές, όποτε χρειάζονται. χρειάζονται. Για παράδειγµ παράδειγµα, αν προσπαθήσουµ προσπαθήσουµε  να προσθέσουµ προσθέσουµε ένα αριθµ αριθµό και µια συµ συµβολοσειρά, βολοσειρά, ο αριθµ αριθµός µετατρέπεται σε συµ συµβολοσειρά και το αποτέλεσµ αποτέλεσµα είναι η συνένωση. συνένωση.

Microsoft Visual Basic Scripting Edition Η Microsoft Visual Basic Scripting Edition είναι το  νεότερο µέλος της οικογένειας γλωσσών προγραµµ προγρα µµατισ ατισµ µού της Visual Basic. Επιτρέπει το scripting σε ένα µεγάλο φάσµ φάσµα εφαρµ εφαρµογών, ογών, όπως ο Microsoft Internet Explorer, ο Microsoft Internet Information Server, ο Microsoft Windows Scripting Host, και γενικά όπου  υποστηρίζεται active scripting. To active scripting είναι µια τεχνολογία που επιτρέπει την εύκολη διασύνδεση γλωσσών scripting σε εφαρµ εφαρµογές. ογές. Η µορφή, ορφή, δοµ δοµή, και γραµµ γραµµατική ατική του κώδικα της VBScript είναι παρόµ παρόµοια µε αυτά της Visual Basic. Το αντικείµ αντικείµενο dictionary είναι µια πολύ ευέλικτη δοµ δοµή δεδοµ δεδοµένων, ένων, που µαζί µε τις παρεχόµ παρεχόµενες µεθόδους, εθόδους, καλύπτει οµοιόµ οιόµορφα µεγάλο µέρος των αναγκών  υλοποίησης ενός συστήµ συστήµατος σε πίνακες, πίνακες, πίνακες συσχέτισης, συσχέτισης, λίστες. λίστες. Το αντικείµ αντικείµενο dictionary είναι το ισοδύναµ ισοδύναµο του associative array στη παραδοσιακή γλώσσα scripting PERL. Αντικείµ Αντικείµενα, ενα, τα οποία µπορούν  να είναι οποιουδήποτε τύπου, τύπου, αποθηκεύονται στον πίνακα. πίνακα . Κάθε αντικείµ αντικείµενο είναι συσχετισµ συσχετισµένο µε µοναδικό κλειδί. κλειδί. Το κλειδί χρησιµ χρησιµοποιείται για την ανάκτηση µεµονωµ ονωµένων αντικειµ αντικειµένων και είναι συνήθως ένας ακέραιος ή µια συµ συµβολοσειρά, βολοσειρά, αλλά θεωρητικά µπορεί  να είναι

42

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

οτιδήποτε, οτιδήποτε, εκτός από πίνακας. πίνακας. Ο παρακάτω κώδικας δείχνει τη δηµ δηµιουργία ενός απλού αντικειµ αντικειµένου τύπου dictionary. Dim d

'Create a variable

Set d = CreateOb CreateObject ject("Sc ("Script ripting. ing.Dict Dictiona ionary") ry") d.Add .Add "a", a", " "A Athen thens" s"

'Add 'Add some ome k ke eys and item tems

d.Add d.Add "b", "Belgrad "Belgrade" e"

2.3 Ανακεφαλαίωση Σε αυτή την ενότητα µελετήσαµ ελετήσαµε πρώτα εφαρµ εφαρµογές που παρέχουν παρόµ παρόµοια λειτουργικότητα και στη συνέχεια µερικές τεχνολογίες κλειδιά για την  υλοποίηση ενός σύγχρονου συστήµ συστήµατος. ατος. Ανάµ Ανάµεσα στα σχετικά συστήµ συστήµατα κάναµ κάναµε µια εισαγωγή στα TIS, που έχουν τα περισσότερα κοινά χαρακτηριστικά µε τη παρούσα εργασία, εργασία, από την άποψη ότι λειτουργούν στο WWW και παρέχουν πληροφορίες σε τουρίστες µε χρήση χάρτη και γενικότερα µε στοιχεία GIS. Η σύγκριση µεταξύ των εφαρµ εφαρµογών οδηγεί σε συµ συµπεράσµ περάσµατα για τη λειτουργικότητα ενός  νέου συστήµ συστήµατος, ατος , που µε γνώση των δυνατοτήτων της προσφερόµ προσφερόµενης τεχνολογίας θα µοντελοποιήσουµ οντελοποιήσουµε στην επόµ επόµενη ενότητα. ενότητα.

43

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

3 ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ Το κεφάλαιο αυτό χωρίζεται σε δύο ενότητες, ενότητες, στη πρώτη διευκρινίζουµ διευκρινίζουµε τις βασικές απαιτήσεις λειτουργικότητας του συστήµ συστήµατος, ατος, έτσι ώστε  να ικανοποιεί τα σενάρια χρήσης, χρήσης, όπως αυτά ορίστηκαν στις προδιαγραφές. προδιαγραφές. Στην επόµ επόµενη ενότητα σχεδιάζουµ σχεδιάζουµε σύµ σύµφωνα µε τις προδιαγραφές τις οντότητες του συστήµ συστήµατος. ατος . Στο τέλος του κεφαλαίου αντιµ αντιµετωπίζουµ ετωπίζουµε το σύστηµ σύστηµα στο σύνολο του και βλέπουµ βλέπουµε τη διασύνδεση και τα υποσυστή τα  υποσυστήµ µατα που το αποτελούν. αποτελούν.

44

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

3.1 Βασικές Απαιτήσεις Για τα σενάρια CloseCommunication και ActiveMuseum του Campiello απαιτούνται ορισµ ορισµένες λειτουργίες, λειτουργίες, η ανάλυση των οποίων είναι το αντικείµ αντικείµενο αυτής της ενότητας. ενότητας.

3.1.1 Ηµερολόγιο Χρήστη (Travel Diary) Κάθε χρήστης του συστήµ συστήµατος έχει τη δυνατότητα  να αποθηκεύει δεδοµ δεδοµένα σχετικά µε τις τοποθεσίες που επισκέπτεται. επισκέπτεται. Τα δεδοµ δεδοµένα αυτά µπορούν  να ανακληθούν όποτε χρειάζεται, χρειάζεται,  να αλλάξουν ή  να διαγραφούν. διαγραφούν. Ο σκοπός του ηµερολογίου είναι να είναι  να κρατάει τις σύντοµ σύντοµες σηµ σηµειώσεις του χρήστη και  να τις συνδέει προαιρετικά µε επιπλέον πληροφορία. πληροφορία. Για παράδειγµ παράδειγµα ένας χρήστης µπορεί  να καταγράψει την επίσκεψη που έκανε σε ένα µουσείου και  να αντιστοιχίσει τα εκθέµ εκθέµατα που είδε και του άρεσαν σε σηµ σηµειώσεις (memos), µε µε σκοπό τη µελλοντική χρήση τους σαν συµ συµβουλές για άλλους χρήστες αλλά και για τον ίδιο σαν υπενθύ σαν  υπενθύµ µιση. ιση.

3.1.2 Προσαρµογή στις (Personalization)

Προσωπικές

Προτιµήσεις

Η πληροφορία παρουσιάζεται στο χρήστη µε βάση της προσωπικές του προτιµ προτιµήσεις. ήσεις. Αυτό σηµ σηµαίνει πως το σύστηµ σύστηµα παρουσιάζει στο χρήστη τα αποτελέσµ αποτελέσµατα των ερωτήσεων του µε βάση τα ενδιαφέροντα του, του, τη θέση στο χάρτη, χάρτη, τη τεχνολογία που χρησιµ χρησιµοποιεί και το µονοπάτι που ακολουθεί. ακολουθεί. Αν για παράδειγµ παράδειγµα ο χρήστης ενδιαφέρεται για ψώνια στη διάρκεια ενός περιπάτου µέσα σε µια πόλη, πόλη, το σύστηµ σύστηµα θα πρέπει  να µπορεί  να του προτείνει διαδροµ διαδροµές που περιέχουν τα αντίστοιχα µαγαζιά, αγαζιά, καθώς και οδηγίες πλοήγησης που θα µπορεί  να εκτυπώσει και  να πάρει µαζί του σαν µια µορφή personalized τουριστικού οδηγού. οδηγού. Ακόµ Ακόµη, στη περίπτωση που ενδιαφέρεται για φαγητό θα µπορεί  να ρωτήσει για εστιατόρια που βρίσκονται κοντά του, του,  να τα δει στο χάρτη, χάρτη,  να µελετήσει αναλυτική περιγραφή τους και να και  να πάρει το συντοµ συντοµότερο µονοπάτι για ένα από αυτά. αυτά.

Παρουσία  Άλλων Χρηστών (User Awareness) 3.1.3 Παρουσία Άλλων Κάθε χρήστης µπορεί  να αναζητήσει άλλους χρήστες που βρίσκονται κοντά του και αν το επιθυµ επιθυµεί να εί  να έρθει σε επαφή µαζί τους. τους. Εκτός από τη δυνατότητα για απεικόνιση όλων των ενεργών χρηστών, χρηστών, µπορεί  να αναζητήσει χρήστες µε βάση την γειτνίαση τους από τη παρούσα θέση του. του.

3.1.4 Μοντέλο Αλληλεπίδρασης Για την αποτελεσµ αποτελεσµατική επικοινωνία των χρηστών µε το σύστηµ σύστηµα απαιτείται ο σχεδιασµ σχεδιασµός ενός οµοιόµ οιόµορφου και συνεπούς µοντέλου αλληλεπίδρασης. αλληλεπίδρασης. Το σύστηµ σύστηµα θα πρέπει  να προσφέρει ένα απλό και εύχρηστο τρόπο παρουσίασης των αποτελεσµ αποτελεσµάτων στις ερωτήσεις των χρηστών καθώς και ένα  υποσύστηµ  υποσύστηµα βοήθειας στη χρήση των εργαλείων της εφαρµ εφαρµογής. ογής.

Αποτελέσµ Αποτελέσ µατα Ερώτησης

45

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

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

Βοήθεια στη Χρήση του Συστήµ Συστήµατος Για κάθε λειτουργία του συστήµ συστήµατος ορίζεται προαιρετικά, προαιρετικά, µε τρόπο συνεπή και επεκτάσιµ επεκτάσιµο η βοήθεια της αντίστοιχης λειτουργίας. λειτουργίας. Ο χρήστης µπορεί εύκολα  να παίρνει σύντοµ σύντοµη πληροφορία για κάποια λειτουργία, λειτουργία, πάνω στην οθόνη της εφαρµ εφαρµογής, ογής, χωρίς  να χρειάζεται  να ανατρέξει σε κάποιο µεγάλο εξωτερικό κείµ κείµενο βοήθειας είτε αυτό είναι στον υπολογιστή στον  υπολογιστή είτε σε κάποιο εγχειρίδιο. εγχειρίδιο. Η βοήθεια αυτής της µορφής χαρακτηρίζεται short help, και τη συναντάµ συναντάµε στα λειτουργικά συστήµ συστήµατα µε τη µορφή του tool tip, ή του baloon help.

3.2 Μοντέλο Πληροφορίας Σε αυτή την ενότητα µελετάµ ελετάµε τις οντότητες που σχεδιάστηκαν σύµ σύµφωνα µε τις βασικές απαιτήσεις του συστήµ συστήµατος. ατος. Επειδή η µελέτη έχει περισσότερο θεωρητικό χαρακτήρα εκτός από την ανάλυση που µας οδήγησε στο σχεδιασµ σχεδιασµό, παραθέτουµ παραθέτουµε και παραδείγµ παραδείγµατα λειτουργικότητας που θα µπορούσε η εν λόγω οντότητα  να  υποστηρίξει.  υποστηρίξει. Με αυτό το τρόπο συνδέουµ συνδέουµε την ενότητα αυτή µε όσα θα ακολουθήσουν σχετικά µε την αλληλεπίδραση του χρήστη µε το σύστηµ σύστηµα.

3.2.1 Χάρτης (Map) Ο χάρτης αποτελεί τον πυρήνα του συστήµ συστήµατος, ατος, αφού οι σηµ σηµαντικότερες έννοιες έχουν αναπαράσταση πάνω στον χάρτη. χάρτη. Ακόµ Ακόµη, η αλληλεπίδραση του χρήστη µε το σύστηµ σύστηµα γίνεται µε το χάρτη. χάρτη. Το σύστηµ σύστηµα µπορεί  να “φορτώσει” φορτώσει” οποιοδήποτε γεωγραφικό χάρτη και να και  να τον αντιµ αντιµετωπίσει µε τον ίδιο οµοιόµ οιόµορφο τρόπο. τρόπο. Ο χάρτης είναι “κτισµ κτισµένος” ένος” σε πολλαπλά επίπεδα. επίπεδα. Κάθε επίπεδο αντιπροσωπεύει κάποια έννοια του φυσικού χώρου. χώρου. Για παράδειγµ παράδειγµα µπορούµ πορούµε  να έχουµ έχουµε επίπεδο δρόµ δρόµου και επίπεδο κτηρίων. κτηρίων. Τα δοµ δοµικά στοιχεία κάθε χάρτη είναι τα σηµ σηµεία (positions), οι ακ µές (routes) ανά µεσα σε δύο σηµ ανάµ σηµεία και οι περιοχές ή οικοδοµ οικοδοµικά τετράγωνα (regions). Ο χάρτης είναι διανυσµ διανυσµατικός (vector), αλλά το µοντέλο επιτρέπει και τη χρήση raster  επιπέδων. επιπέδων. ∆ιεξοδική ανάλυση του χάρτη γίνεται στη σχετική εργασία του Μανόλη Αναστασιάδη για το εργαλείο του εργαστηρίου MUSIC, µε µε τίτλο Map Studio Family.  Μέσα σε παρένθεση παρουσιάζεται η αγγλική ορολογία , όχι τόσο για  λόγους   µετάφρασης   µετάφρασης  και κατανόησης  του κει µένου  µένου , όσο για µια εισαγωγή στην ορολογία και ονο µατολογία  µατολογία που  χρησι µοποιήθηκε  µοποιήθηκε στην υλοποίηση του συστή µατος   µατος .  Η   χρήση των αγγλικών όρων διευκολύνει την επικοινωνία του κει µένου  µένου µε τον αναγνώστη και αποτελεί γέφυρα αποτελεί  γέφυρα για τη µελέτη του κώδικα. κώδικα.

46

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

Γειτνίαση (Proximity) Η γειτνίαση αποτελεί µια σηµ σηµαντική έννοια στο σχεδιασµ σχεδιασµό του συστήµ συστήµατος. ατος. Με βάση ένα δοµ δοµικό στοιχείο και το λόγο πραγµ πραγµατικής απόστασης προς την απόσταση µ πορούµ µε  να πάρουµ χάρτη (κλίµ κλίµακα χάρτη) χάρτη) µπορού πάρουµε όλα, όλα, ή κάποιου τύπου δοµ δοµικά στοιχεία του χάρτη, χάρτη, που βρίσκονται σε συγκεκριµ συγκεκριµένη απόσταση από το εν λόγω δοµ δοµικό στοιχείο θέσης. θέσης. Η έννοια αυτή χρησιµ χρησιµοποιείται στη παρούσα εργασία σαν παράµ παράµετρος στις ερωτήσεις σχετικά µε οντότητες που έχουν απεικόνιση στον χάρτη όπως τα αντικείµ αντικείµενα, ενα, καθώς και οι ενεργοί χρήστες, χρήστες, που θα µελετήσουµ ελετήσουµε παρακάτω. παρακάτω . Μπορούµ Μπορούµε για παράδειγµ παράδειγµα  να ζητήσουµ ζητήσουµε τους χρήστες ή τα αντικείµ αντικείµενα που βρίσκονται εντός µιας δεδοµ δεδοµένης απόστασης που ορίζουµ ορίζουµε εµείς. είς.

3.2.2 Αντικεί µενο (Item) Αντικείµ Αντικείµενο είναι µια έννοια που χρησιµ χρησιµοποιείται για  να αντιµ αντιµετωπιστεί µε συνέπεια ένα σύνολο από κατηγορίες γεωγραφικών τοποθεσιών, τοποθεσιών, όπως διευκολύνσεις (facilities), αξιοθέατα, αξιοθέατα, γεγονότα. γεγονότα. Για παράδειγµ παράδειγµα ένα αντικείµ αντικείµενο µπορεί  να είναι ένα ξενοδοχείο ή η το φρούριο του Φιρκά. Φιρκά . Χαρακτηρίζεται από το τίτλο, τίτλο, τη θέση πάνω στο χάρτη, χάρτη, µια σύντοµ σύντοµη περιγραφή. περιγραφή. Περισσότερα από ένα αντικείµ αντικείµενα µπορεί  να έχουν την ίδια θέση πάνω στο χάρτη. χάρτη. Κάθε αντικείµ αντικείµενο µπορεί  να ανήκει σε µία ή περισσότερες κατηγορίες, κατηγορίες, µε διαφορετικό βάρος για κάθε µία από τις κατηγορίες. κατηγορίες. Κάθε αντικείµ αντικείµενο έχει µία ή περισσότερες εικόνες και αναλυτικές περιγραφές, περιγραφές, που χρησιµ χρησιµοποιούνται προαιρετικά στην παρουσίαση αν ζητηθούν. ζητηθούν. Τα αντικείµ αντικείµενα παρουσιάζονται σύµ σύµφωνα µε το µοντέλο των αποτελεσµ αποτελεσµάτων και λαµ λαµβάνοντας  υπόψιν τη βαρύτητα τους. τους.

3.2.3 Κατηγορία (Context) Η κατηγορία είναι µια έννοια που ορίσαµ ορίσαµε για  να ταξινοµ ταξινοµήσουµ ήσουµε τα αντικείµ αντικείµενα του συστήµ συστήµατος, ατος, ώστε  να είναι ευκολότερη η αναζήτηση µε βάση το είδος τους. τους. Για παράδειγµ παράδειγµα κάποιος χρήστης µπορεί  να αναζητήσει αντικείµ αντικείµενα που  να ανήκουν στην κατηγορία διαµ διαµονή, ονή, για  να πάρει σαν αποτέλεσµ αποτέλεσµα ότι αντικείµ αντικείµενο σχετίζεται µε διαµ διαµονή. ονή. Οι κατηγορίες οργανώνονται σε µια ιεραρχία µε σχέσεις “πατέραπατέρα-παιδιού”. παιδιού”. Κάθε κατηγορία έχει πατέρα µια  υπερκατηγορία.  υπερκατηγορία. Κάθε κατηγορία έχει µηδέν ή περισσότερες  υποκατηγορίες.  υποκατηγορίες. Μια κατηγορία που είναι φύλλο του δέντρου δεν έχει καθόλου παιδιά. παιδιά. Η κατηγορία που είναι ρίζα του δέντρου, δέντρου, έχει µόνο παιδιά. παιδιά.  Όταν µια ερώτηση περιλαµ περιλαµβάνει κατηγορία πατέρα, πατέρα, τότε χρησιµ χρησιµοποιούνται στην ερώτηση όλες οι  υποκατηγορίες µέχρι τα φύλλα του δέντρου. δέντρου. Αν για παράδειγµ παράδειγµα ζητηθούν τα αντικείµ αντικείµενα της κατηγορίας διαµ διαµονή, ονή, τότε θα επιστραφούν όλα τα αντικείµ αντικείµενα που είναι αντιστοιχισµ αντιστοιχισµένα στην κατηγορία διαµ διαµονή καθώς και αυτά που είναι αντιστοιχισµ αντιστοιχισµένα στα παιδιά της. της. ∆ηλαδή τα ξενοδοχεία, ξενοδοχεία, τα δωµ δωµάτια, άτια, οι πανσιόν, πανσιόν, οι ξενώνες  νέων καθώς και τα παιδιά αυτών, αυτών, αν  υπήρχαν,  υπήρχαν, αναδροµ αναδροµικά µέχρι τα φύλλα του  υποδέντρου που σχηµ σχηµατίζεται µε πατέρα τη κατηγορία διαµ διαµονή. ονή. Κάθε κατηγορία έχει ένα τίτλο. τίτλο. Η παρουσίαση και επιλογή των κατηγοριών γίνεται δυναµ δυναµικά εµφανίζοντας την αντιπροσωπευτική δεντρική δοµ δοµή. Η προβολή τυχών αλλαγών ή επεκτάσεων είναι άµεσα ορατή στο χρήστη. χρήστη.  Ένα αντικείµ αντικείµενο µπορεί  να ανήκει σε περισσότερες από µια κατηγορίες. κατηγορίες. Κάθε κατηγορία έχει σχετικό βάρος µε τις  υπόλοιπες του ίδιου πατέρα. πατέρα .

47

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

Ο όρος  Context  είναι δανεισ  µένος   µένος  από το project Campiello, όπου το δέντρο δεν περιορίζεται στις  διευκολύνσεις .  Στη παρούσα εργασία όπου ε µφανίζεται  µφανίζεται το context  εννοού µε  µε κατητόρια και αντίστροφα. αντίστροφα. Κάθε κατηγορία, κατηγορία, εκτός από τη ρίζα, ρίζα, έχει εκτός από την ιδιότητα πατέρα και την ιδιότητα σχετικό βάρος κατηγορίας. κατηγορίας.

Σχετικό Βάρος Κατηγορίας Για κάθε κατηγορία ορίζεται ένα βάρος που δηλώνει τη σχετική σηµ σηµασία αυτής της κατηγορίας σε σχέση µε τις  υπόλοιπες του ίδιου πατέρα. πατέρα. Το σχετικό βάρος επιτρέπει τη διαφοροποίηση, διαφοροποίηση, ανά ανάµ µεσα σε κατηγορίες του ίδιου πατέρα και σε συνδυασµ συνδυασµό µε το βάρος αντικειµ αντικειµένου την καλύτερη παρουσίαση των αποτελεσµ αποτελεσµάτων και αξιολόγηση των ερωτήσεων του χρήστη. χρήστη. Αν για παράδειγµ παράδειγµα ζητηθούν οι διευκολύνσεις που έχουν  να κάνουν µε τη διαµ διαµονή κάποιου σε µια πόλη, πόλη, τότε η απάντηση θα πρέπει  να περιλαµ περιλαµβάνει τα ξενοδοχεία, ξενοδοχεία, τα δωµ δωµάτια, άτια, τις πανσιόν, πανσιόν, τους ξενώνες  νέων.  νέων. Η προσφερόµ προσφερόµενη ποιότητα διαµ διαµονής είναι διαφορετική για κάθε µία από αυτές τις  υποκατηγορίες.  υποκατηγορίες. Τη διαφοροποίηση αυτή εκφράζει το σχετικό βάρος κατηγορίας. κατηγορίας .  Όπως και στην περίπτωση του βάρους αντικειµ αντικειµένου κατηγορίας, κατηγορίας , έτσι και εδώ είναι δυνατόν τα σχετικά βάρη  να ορίζονται δυναµ δυναµικά ανάλογα µε την απήχηση που έχει µια δεδοµ δεδοµένη κατηγορία, κατηγορία, σε σχέση µε τα “αδέλφια” αδέλφια” της. της. Στη παρούσα εργασία θεωρούµ θεωρούµε ότι τα σχετικά βάρη τα έχει ορίσει κάποιος ειδικός και είναι στατικά. στατικά. Βάρος Αντικειµ Αντικειµένου για µια Κατηγορία Για κάθε σχέση αντικειµ αντικειµένου κατηγορίας, κατηγορίας , ορίζεται ένα βάρος. βάρος. Το βάρος αυτό διαφοροποιεί αντικείµ αντικείµενα της ίδιας κατηγορίας και επιτρέπει τη πραγµ πραγµατοποίηση ερωτήσεων και παρουσίαση των αποτελεσµ αποτελεσµάτων µε βάση τη σηµ σηµαντικότητα των αντικειµ αντικειµένων. ένων. Ο ορισµ ορισµός του βάρους αντικειµ αντικειµένου που ανήκει σε µια κατηγορία, κατηγορία, µπορεί  να γίνει είτε στατικά -όπως στη παρούσα εργασία-, εργασία-, είτε δυναµ δυναµικά. ικά. Αν για παράδειγµ παράδειγµα ένας χρήστης ρωτήσει ποια είναι τα ξενοδοχεία σε µια πόλη θα πάρει σαν απάντηση όλα τα ξενοδοχεία κατά σειρά ποιότητας. ποιότητας. Υποθέτουµ Υποθέτουµε ότι µια οµάδα από ειδήµ ειδήµονες έχουν αποφασίσει για τη σηµ σηµασία του κάθε αντικειµ αντικειµένου και πιθανόν µπορούν  να τη µεταβάλλουν ανάλογα µε τις περιστάσεις. περιστάσεις. Στη περίπτωση της δυναµ δυναµικής ανανέωσης, ανανέωσης, θα µπορούσε  να γίνεται από ένας είδος ψηφοφορίας των χρηστών που τα επισκέπτονται. επισκέπτονται. Η τιµ τιµή του βάρους µπορεί  να είναι 1, 2, και 3 το καλύτερο. καλύτερο. Η επιλογή αυτή έγινε λαµ λαµβάνοντας  υπόψιν το συνολικό πλήθος των αντικειµ αντικειµένων που θα χρησιµ χρησιµοποιήσουµ οποιήσουµε στη τελική εφαρµ εφαρµογή και το πλήθος των κατηγοριών που ανήκει κάθε ένα από αυτά. αυτά.

3.2.4 Μονοπάτι (Path) Το µονοπάτι ορίζεται σαν ένα σύνολο από διαδοχικούς δρόµ δρόµουςους-πλευρές (routes) οικοδοµ οικοδοµικών τετραγώνων. τετραγώνων. Για τον  υπολογισµ  υπολογισµό του µονοπατιού απαιτούνται αρχικό και τελικό σηµ σηµείο. είο. Προαιρετικά, Προαιρετικά, µπορούν  να οριστούν και απεριόριστα ενδιάµ ενδιάµεσα σηµ σηµείαεία-σταθµ σταθµοί. οί. Για  να εξυπηρετηθούν οι προδιαγραφές του συστήµ συστήµατος ορίζονται δύο είδη µονοπατιών. ονοπατιών. Το απλό µονοπάτι είναι το συντοµ συντοµότερο ανά ανάµ µεσα στα διαδοχικά σηµ σηµεία, εία, από όπου θέλουµ θέλουµε  να περνάει. περνάει. Το µονοπάτι προτίµ προτίµησης, ησης, µπορεί µπορεί να  να είναι διαφορετικό για τα ίδια κοµ κοµβικά σηµ σηµεία, εία, ανάλογα µε τη κατηγορία ενδιαφέροντος που έχουµ έχουµε επιλέξει. επιλέξει. Για τον  υπολογισµ  υπολογισµό του προχωρηµ προχωρηµένου

48

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

µονοπατιού, ονοπατιού, λαµ λαµβάνεται  υπόψιν το πλήθος και το βάρος των αντικειµ αντικειµένων που ανήκουν σε ένα πιθανό µονοπάτι, ονοπάτι, καθώς και το σχετικό βάρος των κατηγοριών που ανήκουν τα αντικείµ αντικείµενα, ενα, στη περίπτωση που ο χρήστης επιλέξει κατηγορία πατέρα. πατέρα. Οι αλγόριθµ αλγόριθµοι  υπολογισµ  υπολογισµού των µονοπατιών έχουν σχεδιαστεί και  υλοποιηθεί στην εργασία Map Studio Family, όπου και  υπάρχει λεπτοµ λεπτοµερής ανάλυση. ανάλυση. Η παρουσίαση του µονοπατιού ακολουθεί το µοντέλο των αποτελεσµ αποτελεσµάτων. άτων. Στα επόµ επόµενα µελετάµ ελετάµε τις ιδιότητες της οντότητας µονοπάτι. ονοπάτι.

∆ρόµ ∆ρόµος (Street)  Ένας δρόµ δρόµος ορίζεται σαν το σύνολο των επιµ επιµέρους δρόµ δρόµων (routes), που είναι πλευρές οικοδοµ οικοδο µικών τετραγώνων στο επίπεδο των δρόµ δρόµων του χάρτη. χάρτη. Ο δρόµ δρόµος εκτός από την αντιστοίχηση του στον χάρτη, χάρτη, έχει ένα όνοµ όνοµα. Είναι δυνατόν  να  υπάρχουν περισσότεροι από ένας δρόµ δρόµος, ος, µε το ίδιο όνοµ όνοµα, ή  να µην  υπάρχει όνοµ όνοµα για κάποιο δρόµ δρόµο του χάρτη. χάρτη. Η ανάγκη για τον εντοπισµ εντοπισµό κάποιου δρόµ δρόµου είναι πολύ συνηθισµ συνηθισµένη µε δεδοµ δεδοµένο ότι δεν είναι δυνατόν  να έχουµ έχουµε στη βάση δεδοµ δεδοµένων όλα τα στοιχεία µιας γεωγραφική τοποθεσίας και ειδικά τα κτίρια. κτίρια . Αν κάποιος γνωρίζει τη διεύθυνση µιας τοποθεσίας θα µπορεί  να εισάγει το όνοµ όνοµα της οδού και  να δει τη θέση της πάνω στο χάρτη. χάρτη. Πλοήγηση σε Μονοπάτι Η πλοήγηση σε µονοπάτι αποτελείται από τα ονόµ ονόµατα των οδών του µονοπατιού µε παρεµ παρεµβολή των οδηγιών πλοήγησης. πλοήγησης. Το σύνολο των διαδοχικών δρόµ δρόµων µαζί µε τις γωνιές που σχηµ σχηµατίζουν οι διαδοχικοί δρόµ δρόµοιοι-διανύσµ διανύσµατα, ατα, χρησιµ χρησιµοποιείται για τη δηµ δηµιουργία του κειµ κειµένου της πλοήγησης. πλοήγησης. Η οντότητα αυτή µπορεί  να λειτουργήσει αυτόνοµ αυτόνοµα, ανεξάρτητα από το χάρτη όπου παρουσιάζεται το µονοπάτι, ονοπάτι, επιτρέποντας έτσι τη παροχή πληροφοριών πλοήγησης σε πληροφοριακά συστήµ συστήµατα περιορισµ περιορισµένης  υπολογιστικής ισχύος και οθόνης. οθόνης . Ακόµ Ακόµη, η δυνατότητα αυτή µπορεί  να χρησιµ χρησιµοποιηθεί για την εκτύπωση ενός µονοπατιού, ονοπατιού, οπότε ο χρήστης δεν χρειάζεται να χρειάζεται  να έχει µαζί του φορητό  υπολογιστή για να για  να πλοηγηθεί στην πόλη. πόλη. Βάρος Route για µια Κατηγορία Ο  υπολογισµ  υπολογισµός του βέλτιστου µονοπατιού για µια κατηγορία ενδιαφέροντος βασίζεται στο βάρος και το πλήθος των αντικειµ αντικειµένων, ένων, της δεδοµ δεδοµένης κατηγορίας και του  υποδέντρου της, της, που έχει το κάθε route που είναι  υποψήφιο τµήµα του µονοπατιού. ονοπατιού. Ο σχεδιασµ σχεδιασµός αυτής της ιδιότητας προκύπτει από τις προδιαγραφές του αλγορίθµ αλγορίθµου  υπολογισµ  υπολογισµού µονοπατιού, ονοπατιού, που έχει  υλοποιηθεί στην εργασία Map Studio Family. Για την αντιµ αντιµετώπιση αυτού του  υποσυστήµ  υποσυστήµατος, ατος, που απαιτεί το συνδυασµ συνδυασµό δεδοµ δεδοµένων από διάφορα κοµµ κοµµάτια άτια του συστήµ συστήµατος εφαρµ εφαρµόστηκε ένα µεθοδικό σχήµ σχήµα. Υποθέτουµ Υποθέτουµε πως αν υπάρχει αν  υπάρχει ένα route που να που  να περιέχει αντικείµ αντικείµενο µε βάρος 3 (µέγιστο (µέγιστο), ), τότε το βάρος για αυτό το route, για αυτή τη κατηγορία και εφόσον δεν έχει παιδιά, παιδιά , θα είναι τρία (3). Το σκεπτικό είναι πως αν έχουµ έχουµε route µε µε ένα άριστο σε ποιότητα αντικείµ αντικείµενο τότε θα πρέπει αυτό το route  να βαθµ βαθµολογηθεί, ολογηθεί, για αυτή τη κατηγορία φύλλο, φύλλο, ως άριστο. άριστο. Αν τώρα έχουµ έχουµε λιγότερα από τέσσερα αντικείµ αντικείµενα της δεδοµ δεδοµένης κατηγορίας σε ένα route, τα οποία επιπλέον είναι τα καλύτερα από όσα αντικείµ αντικείµενα αυτής της κατηγορίας περιέχει το route, τότε το βάρος αυτού του route ορίζεται  να είναι όσο το βάρος των αντικειµ αντικειµένων. ένων. Αν για παράδειγµ παράδειγµα έχουµ έχουµε ένα route µε µε δύο αντικείµ αντικείµενα που έχουν βάρος ένα (1), και δύο αντικείµ αντικείµενα µε βάρος δύο

49

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

(2), τότε το βάρος του route θα είναι δύο (2). Το σκεπτικό εδώ είναι πως ούτε πολλά είναι τα αντικείµ αντικείµενα ούτε άριστα σε ποιότητα για αυτό και παίρνουν το βάρος δύο, δύο, που ποσοτικοποιεί αυτό το γεγονός. γεγονός. Τέλος, Τέλος, αν έχουµ έχουµε περισσότερα από τρία αντικείµ αντικείµενα αυτής της κατηγορίας τα οποία έχουν το µεγαλύτερο βάρος ανά ανάµ µεσα σε όσα  υπάρχουν στο route για αυτή τη κατηγορία, κατηγορία, τότε το βάρος του route για αυτή τη κατηγορία ορίζεται  να είναι όσο το βάρος των καλύτερων συν ένα. ένα. Για παράδειγµ παράδειγµα, αν στο προηγούµ προηγούµενο παράδειγµ παράδειγµα είχαµ είχαµε τέσσερα αντικείµ αντικείµενα µε βάρος δύο (2), τότε το βάρος του route θα ήταν τρία (3). Σε αυτή τη περίπτωση ποσοτικοποιούµ ποσοτικοποιούµε το γεγονός ότι αν route έχει µέτρια, έτρια, αλλά πολλά αντικείµ αντικείµενα µιας κατηγορίας τότε αυτό το route είναι µε µεγάλη πιθανότητα ενδιαφέρον. ενδιαφέρον. Αν έχου έχουµε Ν αντι αντικε κεί ίµενα µιας κατηγο κατηγορία ρίας ς σε ένα route και S είναι είναι το πλήθος πλήθος των καλύτερω καλύτερων ν µε βάρο βάρος ς W, τότε : Αν W=3 τότε το βάρο βάρος ς του του rou W=3 (µέγιστο) ή αν S<=3, τότε route te WR= WR=W W ∆ιαφορετικά WR=W+1

Τα παραπάνω ισχύουν για το βάρος ενός route, για µια κατηγορία ενδιαφέροντος που δεν έχει  υποκατηγορίες -που είναι φύλλο του δέντρου. δέντρου. Στη παρούσα εργασία  υποθέτουµ  υποθέτουµε, ότι κάθε αντικείµ αντικείµενο είναι αντιστοιχισµ αντιστοιχισµένο µε κατηγορίες φύλλα και µόνο. όνο. Για τον  υπολογισµ  υπολογισµό του βάρους για µια κατηγορία, κατηγορία, κόµ κόµβο του δέντρου, δέντρου, χρησιµ χρησιµοποιούµ οποιού µε τα σχετικά βάρη των  υποκατηγοριών και τα βάρη που έχουν βρεθεί από το προηγούµ προηγούµενο βήµ βήµα  υπολογισµ  υπολογισµού των βαρών των  υποκατηγοριών -που στην περίπτωση των φύλλων, φύλλων, από όπου ξεκινάει ο  υπολογισµ  υπολογισµός, ός, δίνεται από τον παραπάνω τύπο. τύπο. Στη γενική περίπτωση κόµ κόµβου, βου, έχουµ έχουµε τον παρακάτω τύπο. τύπο. W1, W2 και αντίστοι Αν έχου έχουµε δύο υποκατ υποκατηγο ηγορίε ρίες ς µε βάρη βάρη W1, αντίστοιχα χα σχετικά σχετικά βάρη , RW1, τότε το βάρος βάρος της κατηγο κατηγορία ρίας ς πατέρα πατέρα γράφετ γράφεται αι : RW1, RW2, RW2, τότε WP=(RW1* WP=(RW1*W1 W1 + RW2*W2)/ RW2*W2)/(RW1 (RW1+RW2 +RW2) )

Αντικεί µενα σε Μονοπάτι Για το προχωρηµ προχωρηµένο µονοπάτι, ονοπάτι, όπου ο χρήστης επιλέγει κατηγορία ενδιαφέροντος, ενδιαφέροντος, τα αποτελέσµ αποτελέσµατα περιλαµ περιλαµβάνουν και τα αντικείµ αντικείµενα που βρέθηκαν. βρέθηκαν. Το  υπολογισµ  υπολογισµένο µονοπάτι χρησιµ χρησιµοποιείται για την ανάκτηση των αντικειµ αντικειµένων της κατηγορίας ενδιαφέροντος, ενδιαφέροντος, ανεξάρτητα από τον  υπολογισµ  υπολογισµό της πλοήγησης. πλοήγησης. Ο  υπολογισµ  υπολογισµός του µονοπατιού λαµ λαµβάνει  υπόψιν τόσο το βάρος αντικειµ αντικειµένου κατηγορίας, κατηγορίας , όσο και το σχετικό βάρος  υποκατηγορίας για κάθε αντικείµ αντικείµενο της ζητούµ ζητού µενης κατηγορίας ενδιαφέροντος -και των παιδιών της-, της-, σε κάθε  υποψήφιο route. Αν για παράδειγµ παράδειγµα κάποιος ζητήσει µονοπάτι που θα έχει µαγαζιά για ψώνια, ψώνια, τότε το σύστηµ σύστηµα προσπαθεί να προσπαθεί  να κατασκευάσει µονοπάτι, ονοπάτι, που  να περιέχει αντικείµ αντικείµενα µε το µεγαλύτερο δυνατό βάρος κατηγορίας, κατηγορίας , που  να ανήκει στο δέντρο που σχηµ σχηµατίζεται µε ρίζα τη κατηγορία ψώνια και χρησιµ χρησιµοποιώντας τα σχετικά βάρη των κατηγοριών για τον  υπολογισµ  υπολογισµό της βαρύτητας του κάθε route. Η παρουσίαση ακολουθεί το σχεδιασµ σχεδιασµό του µοντέλου αποτελεσµ αποτελεσµάτων. άτων. Το µονοπάτι παρουσιάζεται όπως έχει καθοριστεί στην οντότητα “πλοήγηση σε µονοπάτι” ονοπάτι” και επιπλέον  υπάρχουν τα αντικείµ αντικείµενα που βρέθηκαν στους δρόµ δρόµους του µονοπατιού. ονοπατιού. Κοµ Κοµβικά Σηµ Σηµεία ∆ιαδροµ ∆ιαδροµής (Waypoints) Οι κόµ κόµβοι διαδροµ διαδροµής είναι ένα προαιρετικό, προαιρετικό, αλλά πολύ χρήσιµ χρήσιµο εργαλείο για τη διαχείριση των µονοπατιών. ονοπατιών. Κάθε κόµ κόµβος είναι αντιστοιχισµ αντιστοιχισµένος µε ένα σηµ σηµείο του

50

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

χάρτη και η σειρά εισαγωγής τους καθορίζει τη σειρά µε την οποία θα φτιαχτεί το µονοπάτι. ονοπάτι. Η σειρά εισαγωγής των κοµ κοµβικών σηµ σηµείων, είων, άρα και το αντίστοιχο µονοπάτι, ονοπάτι, µπορεί µ πορεί  να αλλαχτεί µε αντιµ αντιµετάθεση. ετάθεση. Κάθε κοµ κοµβικό σηµ σηµείο αναγνωρίζεται από ένα όνοµ όνοµα, που του αναθέτει ο χρήστης κατά τον ορισµ ορισµό του. του. Το ίδιο όνοµ όνοµα µπορεί  να χρησιµ χρησιµοποιηθεί περισσότερες από µια φορές, φορές, όταν για παράδειγµ παράδειγµα ο χρήστης θέλει να θέλει  να επιστρέψει στο σηµ σηµείο από όπου ξεκίνησε. ξεκίνησε. Τα κοµ κοµβικά σηµ σηµεία είναι προσωρινά και χάνονται κατά το κλείσιµ κλείσιµο της εφαρµ εφαρµογής. ογής.

3.2.5 Χρήστης (User) Χρήστης του συστήµ συστήµατος θεωρείται κάθε εγγεγραµµ εγγεγραµµένο ένο µέλος, έλος, που διατηρεί σύνδεση µε το σύστηµ σύστηµα. Για την εγγραφή ενός χρήστη απαιτούνται το όνοµ όνοµα, το e-mail, µια µια σύντοµ σύντοµη περιγραφή και ένας σύνδεσµ σύνδεσµος σε µια οποιαδήποτε σελίδα. σελίδα. Ο σύνδεσµ σύνδεσµος µπορεί  να αντιστοιχεί σε κάποια εσωτερική σελίδα του συστήµ συστήµατος που φτιάχνεται κατά την εγγραφή του χρήστη και η οποία παρέχει περισσότερα στοιχεία µε τυπικό τρόπο -σε σχέση µε µια προσωπική εξωτερική σελίδα. σελίδα. Τα στοιχεία αυτά αποθηκεύονται και είναι δυνατόν  να αλλαχτούν. αλλαχτούν. Μετά την εγγραφή του ο χρήστης γίνεται αυτόµ αυτόµατα αντιληπτός σε κάθε  νέα αλληλεπίδραση µε το σύστηµ σύστηµα. Για ένα χρήστη που είναι συνδεµ συνδεµένος µε το σύστηµ σύστηµα διατηρείται πληροφορία σχετικά µε τα στοιχεία του, του, καθώς και η θέση του πάνω στο χάρτη. χάρτη. Η θέση του χρήστη µπορεί  να καθοριστεί δυναµ δυναµικά είτε από τον ίδιο το χρήστη, χρήστη, είτε από κάποια εξωτερική συσκευή, συσκευή, όπως GPS. Επίσης ένας χρήστης έχει επιλογές χάρτη. χάρτη.

Θέση Χρήστη Είναι µια έννοια που σχετίζει ένα χρήστη µε ένα δοµ δοµικό στοιχείο του χάρτη. χάρτη. Η θέση του κάθε χρήστη είναι γνωστή στο σύστηµ σύστηµα και µπορεί  να χρησιµ χρησιµοποιηθεί για την παροχή εξατοµ εξατοµικευµ ικευµένης πληροφορίας ή για την αλληλεπίδραση των χρηστών. χρηστών. Χρησιµ Χρησιµοποιείται στις ερωτήσεις γειτνίασης σχετικά µε αντικείµ αντικείµενα ή µε άλλους χρήστες. χρήστες. Στη παρούσα εργασία ο κάθε χρήστης, χρήστης, προαιρετικά καθορίζει τη θέση του πάνω στο χάρτη. χάρτη. Αυτή η παραδοχή καλύπτει τόσο τον κινητό, κινητό, όσο και το χρήστη επιτραπέζιου υπολογιστή επιτραπέζιου  υπολογιστή.. Το µοντέλο υποστηρίζει οντέλο  υποστηρίζει το καθορισµ καθορισµό της θέσης µε χρήση συσκευής πλοήγησης GPS ή µε βάση τι γεωγραφική θέση του αντικειµ αντικειµένου που µελετά ο χρήστης. χρήστης. Επιλογές Χάρτη Για τις οντότητες που έχουν απεικόνιση στον χάρτη και για τις περιοχές που ενδιαφέρουν το χρήστη, χρήστη, ορίζουµ ορίζου µε τις επιλογές χάρτη. χάρτη. Μια επιλογή χάρτη µπορεί  να έχει αντιστοίχηση σε ένα ή σε περισσότερο αντικείµ αντικείµενα χάρτη. χάρτη. Για παράδειγµ παράδειγµα το µονοπάτι και ο δρόµ δρόµος είναι µια πολλαπλή επιλογή χάρτη, χάρτη, από αντικείµ αντικείµενα χάρτη του τύπου Route. Οι θέση χρήστη, χρήστη, η προτίµ προτίµηση χάρτη (pushpin), το αντικείµ αντικείµενο (item) µπορούν  να έχουν αντιστοίχηση σε οποιοδήποτε τύπο αντικειµ αντικειµένου χάρτη, χάρτη, αλλά είναι µια απλή επιλογή χάρτη. χάρτη. Οι επιλογές χάρτη συνδέονται άµεσα µε τα αντίστοιχα δοµ δοµικά στοιχεία του χάρτη και χρησιµ χρησιµοποιούνται σε συνδυασµ συνδυασµό µε τα εργαλεία της εφαρµ εφαρµογής για τον ορισµ ορισµό µονοπατιών, ονοπατιών, προτιµ προτιµήσεων χάρτη και γενικά για την αλληλεπίδραση του χρήστη µε το χάρτη. χάρτη. Οι επιλογές χάρτη µπορούν  να χρησιµ χρησιµοποιηθούν σαν κριτήριο ερώτησης για την ανάκτηση των Items που ανήκουν στις επιλεγµ επιλεγµένες περιοχές. περιοχές.

51

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

3.2.6 Προτιµήσεις Χάρτη (Pushpins)  Όπως σε ένα γεωγραφικό χάρτη µπορούµ πορούµε  να “µαρκάρου “µαρκάρουµ µε” τοποθεσίες και σηµ σηµεία µε πινέζες, πινέζες, έτσι και στη περίπτωση του εικονικού χάρτη, χάρτη, είναι δυνατόν  να µ πορούµ µε  να σηµ σηµαδέψουµ αδέψουµε σηµ σηµεία, εία, δρόµ δρόµους, ους, περιοχές. περιοχές. Για κάποιο δεδοµ δεδοµένο σηµ σηµείο, είο, µπορού έχουµ έχουµε απεριόριστο αριθµ αριθµό pushpins, τα οποία περιέχουν θέση, θέση, τίτλο, τίτλο, σύντοµ σύντοµο κείµ κείµενο και ένα σύνδεσµ σύνδεσµο σε κάποια σελίδα. σελίδα. Επίσης κάθε pushpin ανήκει σε µοναδικό χρήστη. χρήστη.  Ένας χρήστης µπορεί  να κατέχει απεριόριστο αριθµ αριθµό pushpins. Σε κάθε χρήστη, χρήστη, µε µ ε την εγγραφή του στο σύστηµ σύστηµα, δίνονται κάποια default pushpins, τα οποία αντιστοιχούν σε δηµ δηµοφιλή και γνωστά landmarks. Αν  υποθέσουµ  υποθέσουµε πως ένας χρήστης αντιλαµ αντιλαµβάνεται τη θέση του στον πραγµ πραγµατικό χώρο, χώρο, σύµ σύµφωνα µε τη σχετική του θέση ως προς κάποια γνωστά και εµφανή landmarks, το σκεπτικό είναι, είναι,  να µπορεί αυτός άµεσα  να εντοπίσει τη θέση τους πάνω στο χάρτη, χάρτη, χωρίς  να προβεί σε µια πιθανόν χρονοβόρα ερώτηση στη βάση δεδοµ δεδοµένων. ένων. Επιπλέον µπορεί  να ορίσει τα δικά του pushpin, τα οποία θα αντιπροσωπεύουν περιοχές που έχουν για αυτόν κάποια σηµ σηµασία, ασία, όπως για παράδειγµ παράδειγµα το σπίτι, σπίτι, το ξενοδοχείο, ξενοδοχείο, η τράπεζα. τράπεζα. Σε κάθε περίπτωση ο χρήστης µπορεί  να σβήσει ή  να αλλάξει τα pushpins που του ανήκουν. ανήκουν. Τα default pushpins θεωρείται ότι ανήκουν στο χρήστη, χρήστη, ώστε να ώστε  να µπορεί να πορεί  να επέµ επέµβει αν δεν τον εξυπηρετούν. εξυπηρετούν. Ο τίτλος που αναθέτεται σε κάθε pushpin χρησιµ χρησιµοποιείται για την παρουσίαση στο χρήστη. χρήστη. Το σύντοµ σύντοµο κείµ κείµενο για  να  υπενθυµ  υπενθυµίσει περί τίνος πρόκειται. πρόκειται. Ο σύνδεσµ σύνδεσµος σε µια άλλη σελίδα του διαδικτύου εισάγει ένα δυναµ δυναµικό τρόπο για την επέκταση του συστήµ συστήµατος από

Σχήµ Σχήµα 17 Οι οντότητες του µοντέλου πληροφορίας και οι µεταξύ τους σχέσεις. σχέσεις.

52

ΒΑΣΙΚΕΣ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΜΟΝΤΕΛΟ ΠΛΗΡΟΦΟΡΙΑΣ

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

3.2.7 Προτάσεις του Συστήµατος (Hot Items) Οι προτάσεις του συστήµ συστήµατος για µια µέρα δίνουν στο χρήστη ένα άµεσο και γρήγορο τρόπο  να µεταβεί σε µια περιοχή ενδιαφέροντος. ενδιαφέροντος. Περιγράφονται από την ηµεροµ εροµηνία αρχής και τέλους και µια αντιστοίχηση σε ένα αντικείµ αντικείµενο (item). Στη παρούσα εργασία οι προτάσεις του συστήµ συστήµατος ανανεώνονται στατικά, στατικά, από κάποιον ειδικό που εισάγει καινούριες κάθε µέρα. έρα. Το µοντέλο τους επιτρέπει την επέκταση σε ένα σύστηµ σύστηµα όπου οι προτάσεις είναι ένας συνδυασµ συνδυασµός των επιλογών των ειδικών, ειδικών, της δηµ δηµοτικότητας κάποιων αντικειµ αντικειµένων και των προτιµ προτιµήσεων του χρήστη.. χρήστη..

3.3 Ανακεφαλαίωση Στις απαιτήσεις περιγράψαµ περιγράψαµε την απαιτούµ απαιτού µενη λειτουργικότητα, λειτουργικότητα, που ικανοποιεί τα σενάρια χρήσης. χρήσης. Στο µοντέλο πληροφορίας καθορίσαµ καθορίσαµε τη µορφή και τον τύπο της πληροφορίας που θα  υποστηρίζεται απο το σύστηµ σύστηµα. Πρώτα ορίστηκαν οι βασικές οντότητες, οντότητες, όπως ο χάρτης, χάρτης, τα αντικείµ αντικείµενα και τα µονοπάτια και µετά τα χαρακτηριστικά τους και οι σχέσεις τους. τους. Καταλήξαµ Καταλήξαµε σε ένα σχήµ σχήµα που περιγράφει µε γενικό τρόπο τις δυνατότητες και τη λειτουργικότητα. λειτουργικότητα. Στις αµέσως επόµ επόµενες ενότητες θα µελετήσουµ ελετήσουµε την απεικόνιση του µοντέλου πληροφορίας στη βάση δεδοµ δεδοµένων και στο User Interface.

53

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

4 ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ Το κεφάλαιο αυτό χωρίζεται σε δύο ενότητες. ενότητες. Στη πρώτη, πρώτη, επιχειρούµ επιχειρούµε  να µεταφέρουµ εταφέρουµε ορισµ ορισµένες από τις έννοιες που συζητήθηκαν στο προηγούµ προηγούµενο κεφάλαιο στη µορφή του µοντέλου ΟντότηταςΟντότητας-Σχέσης (Entity-Relationship-ER), που είναι ο συνήθης τρόπος σχεδιασµ σχεδιασµού µιας βάσης δεδοµ δεδοµένων. ένων. Περιγράφονται οι οντότητες, οντότητες, οι ιδιότητες τους και οι µεταξύ τους σχέσεις. σχέσεις. Στην επόµ επόµενη ενότητα  υλοποιούµ  υλοποιούµε το σχήµ σχήµα που προέκυψε σύµ σύµφωνα µε το σχεσιακό µοντέλο για µια βάση δεδοµ δεδοµένων. ένων. Η  υλοποίηση έγινε στην εφαρµ εφαρµογή βάσης δεδοµ δεδοµένων Microsoft Access, όπου δηµ δηµιουργήθηκαν οι κατάλληλοι πίνακες. πίνακες. Μελετάµ Μελετάµε την απεικόνιση του E-R µοντέλου µοντέλου σε πίνακες του σχεσιακού µοντέλου και κλείνουµ κλείνουµε µε µια µικρή αναφορά στα δεδοµ δεδοµένα µε τα οποία γεµ γεµίσαµ ίσαµε τους πίνακες ώστε  να δοκιµ δοκιµάσουµ άσουµε την εφαρµ εφαρµογή (Test Data).

54

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

4.1 Μοντέλο Οντότητας-Σχέσης (Entity-Relationship) Από όσα συζητήθηκαν στο µοντέλο πληροφορίας, πληροφορίας, προκύπτει το σχήµ σχήµα της βάσης δεδοµ δεδοµένων του συστήµ συστήµατος, ατος, το οποίο θα αναπαραστήσουµ αναπαραστήσουµε σύµ σύµφωνα µε το Entity, Relationship (E-R) µοντέλο µ οντέλο.. Κεντρικό ρόλο έχει τη οντότητα των αντικειµ αντικειµένων (Items) που σχετίζεται µε τις οντότητες των κατηγοριών (Context) και των δεδοµ δεδοµένων (Data), καθώς και η οντότητα των αντικειµ αντικειµένων χάρτη (MapObjects), πάνω στα οποία απεικόνιζονται τα αντικείµ αντικείµενα (Items), οι δρόµ δρόµοι (Streets), οι χρήστες (Users), οι προτιµ προτιµήσεις χάρτη (Pushpins). Θα µελετήσουµ ελετήσουµε κάθε οντότητα και σχέση χωριστά. χωριστά.

4.1.1 Οντότητες Items  Ένα αντικείµ αντικείµενο (Item) περιγράφει ένα αξιοθέατο, αξιοθέατο, µια διευκόλυνση, διευκόλυνση, µια τοποθεσία που έχει µια θέση στο χάρτη. χάρτη. Κάθε αντικείµ αντικείµενο έχει όνοµ όνοµα (Name) και σύντοµ σύντοµη περιγραφή (Description) που χρησιµ χρησιµοποιούνται για την περιεκτική παρουσίαση του, του, στα αποτελέσµ αποτελέσµατα µιας ερώτησης. ερώτησης. Προαιρετικά µπορεί να πορεί  να περιέχει τηλέφωνο και τον αριθµ αριθµό της οδού που βρίσκεται. βρίσκεται. MapObjects Η οντότητα MapObjects αναπαριστά τα δοµ δοµικά στοιχεία του χάρτη, χάρτη, πάνω στα οποία έχουν αναπαράσταση οι άλλες οντότητες. οντότητες. Ο σχεδιασµ σχεδιασµός  υποστηρίζει ένα χάρτη για τον οποίο έχουµ έχουµε τα χαρακτηριστικά MapObjectID και LayerID, που ορίζουν µοναδικά ένα δοµ δοµικό στοιχείο χάρτη. χάρτη. Context Η οντότητα Context αναπαριστά τις κατηγορίες στις οποίες ανήκουν τα Items. Η οντότητα Context είναι περιέχει µια ιεραρχία από κατηγορίες, κατηγορίες, όπου κάθε µέλος ανήκει σε κάποιο άλλο και  υπάρχουν κάποια µέλη που ανήκουν σε αυτό, αυτό, σχηµ σχηµατίζοντας έτσι µια δεντρική δοµ δοµή. Οι σχέσεις αυτές εκφράζονται µε το χαρακτηριστικό ParentID. Για παράδειγµ παράδειγµα τα ξενοδοχεία, ξενοδοχεία, τα δωµ δωµάτια και οι πανσιόν σχηµ σχηµατίζουν µια οµάδα που ανήκει στην  υπερκατηγορία διαµ διαµονή. ονή. Τα µέλη που ανήκουν στον ίδιο πατέρα έχουν µια µεταξύ τους σχετική βαρύτητα που αντιπροσωπεύεται από το χαρακτηριστικό RelativeWeight. Για το παραπάνω παράδειγµ παράδειγµα, τα ξενοδοχεία θα είχαν µεγαλύτερη βαρύτητα από τα δωµ δωµάτια και τις πανσιόν. πανσιόν. Κάθε κατηγορία έχει ένα χαρακτηριστικό όνοµ όνοµα. Data Η οντότητα Data χρησιµ χρησιµοποιείται για την αναλυτική παρουσίαση αντικειµ αντικειµένων και περιέχει την εικόνα και ένα εκτενές κείµ κείµενο για ένα αντικείµ αντικείµενο. ενο. Pushpins Η οντότητα αυτή αναπαριστά τις προτιµ προτιµήσεις χάρτη που ορίστηκαν για  να καλύψουν τις ανάγκες του σεναρίου για ηµερολόγιο χρήστη. χρήστη. Τα χαρακτηριστικά της οντότητας Pushpins είναι το όνοµ όνοµα, µια µ ια σύντοµ σύντοµη περιγραφή και το URL, που χρησιµ χρησιµοποιούνται για την παρουσίαση των pushpins. Profiles 55

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

Η οντότητα Profiles αναπαριστά ένα εγγεγραµµ εγγεγραµµένο ένο χρήστη του συστήµ συστήµατος. ατος .  Έχει τα χαρακτηριστικά FirstName, LastName, Email, Description, URL, που χρησιµ χρησιµοποιούνται για την παρουσίαση ενός χρήστη. χρήστη.

HotItems Η οντότητα HotItems αναπαριστά τις προτάσεις του συστήµ συστήµατος. ατος.  Έχει τα χαρακτηριστικά DateFrom, DateTo. Η οντότητα αυτή ενηµ ενηµερώνεται από τους ειδικούς που θέτουν τη διάρκεια για την οποία ένα Item θα είναι πρόταση του συστήµ συστήµατος προς του χρήστες. χρήστες. Streets Η οντότητα Streets, που αναπαριστά τους δρόµ δρόµους του χάρτη, χάρτη, έχει το χαρακτηριστικό του ονόµ ονόµατος της τοποθεσίας. τοποθεσίας. Σχεδιάστηκε µε σκοπό την ανάκτηση και παρουσίαση των δρόµ δρόµων πάνω στο χάρτη. χάρτη. Χρησιµ Χρησιµοποιείται ακόµ ακόµη για την πλοήγηση σε µονοπάτι και για την παρουσίαση της διεύθυνσης ενός Item.

4.1.2 Σχέσεις ItemsMap  Ένα αντικείµ αντικείµενο έχει αντιπροσώπευση σε µοναδικό δοµ δοµικό στοιχείο του χάρτη, χάρτη, που απεικονίζεται µε τη σχέση ItemsMap. Περισσότερα από ένα Items µπορεί µπορεί  να έχουν αντιπροσώπευση στην ίδια θέση χάρτη. χάρτη. Υποστηρίζουµ Υποστηρίζουµε ερωτήσεις που ζητάνε τα Items που βρίσκονται σε µια τοποθεσία ή την απεικόνιση της θέσης ενός Item στο χάρτη. χάρτη. ItemsContext Στη σχέση (relationship) αντικειµ αντικειµένου, ένου, κατηγορίας (ItemsContext) ορίζουµ ορίζου µε το βάρος αντικειµ αντικειµένου (Weight). Κάθε αντικείµ αντικείµενο µπορεί  να ανήκει σε περισσότερες από µια κατηγορίες. κατηγορίες. Για παράδειγµ παράδειγµα, µπορούµ πορούµε  να έχουµ έχουµε ένα αντικείµ αντικείµενο που  να είναι ξενοδοχείο, ξενοδοχείο, εστιατόριο και µπαρ. παρ. Προφανώς αυτό το αντικείµ αντικείµενο θα πρέπει να πρέπει  να ανήκει σε όλες αυτές τις κατηγορίες, κατηγορίες, µε διαφορετικό βάρος για τη κάθε µια. ια. Η σχέση αυτή µε βάση τη κατηγορία τους και τη παρουσίαση τους επιτρέπει την αναζήτηση Items µε ταξινοµ ταξινοµηµένη σύµ σύµφωνα µε το βάρος τους. τους. ItemsData Η σχέση ItemsData συνδέει ένα αντικείµ αντικείµενο µε µια ή περισσότερες αναλυτικές περιγραφές και δεδοµ δεδοµένα. ένα. Κάθε Data ανήκει σε ένα ακριβώς Item. Με αυτό το τρόπο δεν περιορίζουµ περιορίζουµε την περιγραφή ενός αντικειµ αντικειµένου σε µια πηγή, πηγή, αλλά µπορούµ πορούµε  να έχουµ έχουµε πολλά κείµ κείµενα και φωτογραφίες. φωτογραφίες. Recommendations Η οντότητα Items σχετίζεται µε την οντότητα HotItems, που αντιπροσωπεύει τις προτάσεις του συστήµ συστήµατος, ατος, µέσω της σχέσης Recommendations.  Ένας χρήστης µπορεί  να δει ποια είναι τα προτεινόµ προτεινόµενα Items για κάποια ηµέρα. έρα.  Ένα Item µπορεί µπορεί  να είναι προτεινόµ προτεινόµενο για περισσότερα από ένα χρονικά διαστήµ διαστήµατα. ατα. MapPushpins

56

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

Για την οντότητα Pushpins έχουµ έχουµε την αντιστοίχηση των προτιµ προτιµήσεων χάρτη µε τις αντίστοιχες περιοχές του χάρτη, χάρτη, µε την σχέση MapPushpins. Κάθε Pushpin έχει µία θέση στο χάρτη και πολλά Pushpins µπορούν µπορούν να  να έχουν την ίδια θέση στο χάρτη. χάρτη.

ProfilesPushpins Η οντότητα αυτή συνδέεται, συνδέεται, µέσω της σχέσης UsersPushpins, µε µε την οντότητα UsersProfiles, που αναπαριστά τα εγγεγραµµ εγγεγραµµένη ένη µέλη του συστήµ συστήµατος. ατος. Κάθε pushpin ανήκει σε µοναδικό χρήστη. χρήστη.  Ένας χρήστης µπορεί  να έχει περισσότερα από ένα  pushpins. Position Η οντότητα UsersProfiles σχετίζεται µέσω της σχέσης Position µε µε την οντότητα MapObjects. A ντιπροσωπεύει A ντιπροσωπεύει τη θέση του χρήστη πάνω στο χάρτη. χάρτη. Κάθε χρήστης, χρήστης, µπορεί  να έχει µία µόνο θέση πάνω στο χάρτη, χάρτη, η οποία χρησιµ χρησιµοποιείται για ερωτήσεις γειτνίασης, γειτνίασης, καθώς και για τη συνεργασία των χρηστών. χρηστών. Πολλοί χρήστες µπορούν  να έχουν την ίδια θέση στο χάρτη. χάρτη. Ανεξάρτητα από το τρόπο που χρησιµ χρησιµοποιείται για τον καθορισµ καθορισµό της θέσης του χρήστη στο χάρτη, χάρτη, είτε είναι µια συσκευή GPS, είτε αυθαίρετα, αυθαίρετα, όπως στη παρούσα εργασία, εργασία, η οντότητα αυτή  υποστηρίζει µε συνέπεια ερωτήσεις γειτνίασης και απεικόνισης χρηστών. χρηστών. MapStreets µέσω της σχέσης Η οντότητα Streets συνδέεται µε την οντότητα MapObjects, µέσω MapStreets.  Ένας δρόµ δρόµος έχει ένα ή περισσότερα αντικείµ αντικείµενα χάρτη (του τύπου Route) και κάθε αντικείµ αντικείµενο χάρτη αντιστοιχεί σε ένα το πολύ δρόµ δρόµο. Μπορούµ Μπορούµε δηλαδή  να έχουµ έχουµε αντικείµ αντικείµενα χάρτη που για τα οποία  να µην  υπάρχει όνοµ όνοµα οδού, οδού, αλλά δεν γίνεται να γίνεται  να έχουµ έχουµε για ένα αντικείµ αντικείµενο χάρτη δύο οδούς. οδούς.

57

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

Σχήµ Σχήµα 18 Το διάγραµµ διάγραµµα α Entity-Relationship (E-R)

58

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

4.2 Φυσική Σχεδίαση Η βάση δεδοµ δεδοµένων  υλοποιήθηκε σύµ σύµφωνα µε το σχεσιακό µοντέλο και µε βάση το Entity Relationship διάγραµµ διάγραµµα α της προηγούµ προηγούµενης ενότητας, ενότητας, σε βάση δεδοµ δεδοµένων Microsoft Access. Η Access δεν είναι σχεδιασµ σχεδιασµένη σαν ένα Relational Data Base Management System (RDBMS). Με διαφανή τρόπο όµως παρέχει λειτουργικότητα ενός τέτοιου συστήµ συστήµατος -χρησιµ χρησιµοποιώντας το  υποσύστηµ  υποσύστηµα Access Jet SQL Engine. Το γεγονός αυτό αν και καθιστά την Access µια µια µέτρια επιλογή για ένα πραγµ πραγµατικό σύστηµ σύστηµα µε απαιτήσεις σε ταχύτητα, ταχύτητα, συνέπεια και αντοχή, αντοχή, δεν αποκλείει τη χρήστη της για τους σκοπούς της ανάπτυξης και πιστοποίησης ενός συστήµ συστήµατος που χρησιµ χρησιµοποιεί RDBMS. Στη πράξη µάλιστα αποδεικνύεται ιδανική για αυτό το σκοπό, σκοπό, αφού είναι περισσότερο άµεση και απλή στη χρήση και στο τέλος επιτρέπει τη εύκολη µετάβαση σε µια πιο στιβαρή λύση όπως ο Microsoft SQL Server. Στη συνέχεια παρουσιάζουµ παρουσιάζουµε τους πίνακες του σχεσιακού µοντέλου, οντέλου, όπως αυτοί  υλοποιήθηκαν στην Access.

 Name

Type

Description

#ID

Long

Primary key

 NameGB

Char(255)

Name of t7his Item

InfoGB

Char(255)

Short text description

MapObjID

Long

Foreign key to MapObjects

Σχήµ Σχήµα 19 Ο πίνακας Items.

 Name

Type

Description

#ItemID

Long

Foreign key to table Items

#ContextID

Long

Foreign key to table Context

Weight

Long

Weight of this relation

Σχήµ Σχήµα 20 Ο πίνακας ItemsContext.

 Name

Type

Description

#ID

Long

Primary P rimary key

ParentID

Long

Part of identifier 

 NameGB

Char(255)

Name of this context

RelativeWeight

Double

Relative to its “brothers”

Σχήµ Σχήµα 21 Ο πίνακας Context.

Η οντότητα Items µε µε τα χαρακτηριστικά NameGB, InfoGB, MapObjID έχει µοναδικό µε τις οντότητες κλειδί το χαρακτηριστικό ID. Οι σχέσεις της οντότητας Items µε Context, Data  υλοποιήθηκαν σε ένα πίνακα η κάθε µια. ια. Με αυτό το τρόπο µπορούµ πορούµε

59

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

 να έχουµ έχουµε περισσότερα από ένα αντικείµ αντικείµενα συνδεµ συνδεµένα µε την ίδια κατηγορία, κατηγορία, κάτι πολύ συνήθες. συνήθες. Ο πίνακας ItemsData επιτρέπει µε παρόµ παρόµοιο τρόπο  να έχουµ έχουµε αντικείµ αντικείµενα που µοιράζονται τα ίδια δεδοµ δεδοµένα. ένα. Ο πίνακας ItemsContext έχει, έχει, εκτός από τα µοναδικά αναγνωριστικά ItemsID, ContextID, που συνδέουν τους αντίστοιχους πίνακες, πίνακες, το χαρακτηριστικό Weight, που είναι το βάρος του αντικειµ αντικειµένου για αυτή τη κατηγορία. κατηγορία. Η οντότητα, οντότητα , τύπου isA, Context υλοποιήθηκε Context  υλοποιήθηκε µε τον πίνακα Context και το αναγνωριστικό Parent, που περιέχει για κάθε εγγραφή το µοναδικό αναγνωριστικό (ID) της κατηγορίας πατέρα. πατέρα. Η ρίζα του δέντρου έχει για Parent την τιµ τιµή µείον ένα (-1 (-1). Ακόµ Ακόµη, έχει τα χαρακτηριστικό NameGB, για τη παρουσίαση της κατηγορίας στο χρήστη. χρήστη. Η οντότητα Data,  υλοποιήθηκε στο πίνακα Data µε µε χαρακτηριστικά ID, Text, Image. Το Text είναι ένα πεδίο που θα περιέχει κείµ κείµενο, ενο, είτε απλό είτε φορµ φορµαρισµ αρισµένο σε HTML και µέγεθος µέχρι 64kb. To Image έχει µέγεθος 255 bytes και περιέχει ένα url στην εικόνα. εικόνα.

 Name

Type

Description

#ItemID

Long

Foreign key to table Items

#DataID

Long

Foreign key to table Data

Σχήµ Σχήµα 22 Ο πίνακας ItemsData.

 Name

Type

Description

#ID

Long

Primary key

Text

Char(64KB)

Long text description

Image

Char(255) Char(255)

Image path

Σχήµ Σχήµα 23 Ο πίνακας Data.

 Name

Type

Description

#ID

Long

Primary key

MapObjID

Long

Foreign key to table MapObjects

ProfileID

Long

Foreign key to table Profiles

 Name

Char(255)

Title of Pushpin

Brief

Char(255)

Short description

URL

Char(255)

Link to any Web page

Σχήµ Σχήµα 24 Ο πίνακας Pushpins.

Η οντότητα Pushpins,  υλοποιήθηκε σε ένα πίνακα µε τα χαρακτηριστικά ID, Name, Text, URL, MapObjID, ProfileID. Το τελευταίο συνδέει το κάθε pushpin µε µ ε ένα χρήστη. χρήστη. Εδώ δεν απαιτείται ξεχωριστός πίνακας για τη σχέση, σχέση, γιατί δε γίνεται  να µοιράζονται δύο χρήστες το ίδιο pushpin. Η οντότητα Profiles  υλοποιήθηκε σε ένα πίνακα µε χαρακτηριστικά ID, FirstName, LastName, Email, Text, URL

60

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

 Name

Type

Description

#ID

Long

Primary key

FirstName

Char(255)

First name of user 

LastName

Char(255)

Last name of user 

Email

Char(255)

Email of user 

Brief

Char(255)

Short description about user 

URL

Char(255)

Link to his personal home page

Σχήµ Σχήµα 25 Ο πίνακας Profiles.

 Name

Type

Description

#ID

Long

Primary key

#ItemID

Long

Foreign key to table Items

DateFrom

Date

Start date of recommendation

DateTo

Date

End date of recommendation

Σχήµ Σχήµα 26 Ο πίνακας HotItems.

Η σχέση Recommedations µε µε την οντότητα HotItems,  υλοποιήθηκε στον πίνακα HotItems, µε µε χαρακτηρηστικά DateFrom, DateTo, µοναδικό µοναδικό κλειδί ID και foreign key ItemID.

 Name

Type

Description

#ID

Long

Primary key

MapObject

Long

Map Object Identifier 

Map Layer

Long

Map Layer Identifier 

Σχήµ Σχήµα 27 Ο πίνακας MapObjects

Η οντότητα MapObjects που αντιπροσωπεύει τα δοµ δοµικά στοιχεία (Positions, Routes, Regions) του χάρτη, χάρτη,  υλοποιήθηκε στο πίνακα MapObjects µε µε βασικό κλειδί ID και χαρακτηριστικά MapObject και MapLayer  που ορίζουν µοναδικά ένα αντικείµ αντικείµενο σε ένα χάρτη της εφαρµ εφαρµογής Map Studio.

 Name

Type

Description

#ID

Long

Primary key

 NameGB

Char(255)

Name of Street

Σχήµ Σχήµα 28 Ο πίνακας Streets.

61

ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

 Name

Type

Description

#StreetID

Long

Foreign key to table Streets

#MapObjID

Long

Foreign key to table MapObjects

RangeOdd

Char(255)

Odd range of street numbers

RangeEven

Char(255)

Even rang of street numbers

Σχήµ Σχήµα 29 Ο πίνακας MapStreets.

Η οντότητα Streets  υλοποιήθηκε σε δύο πίνακες, πίνακες, Streets που περιέχει τα χαρακτηριστικά ID, Name και τον πίνακα MapStreets µε µε τα χαρακτηριστικά MapObjID και StreetID που είναι το foreign key.

4.2.1 ∆εδοµένα (Data) Τα δεδοµ δεδοµένα που περιέχει η βάση δεδοµ δεδοµένων του συστήµ συστήµατος προέρχονται από διάφορες πηγές και στόχος δεν ήταν η συνέπεια τους, τους, αλλά η  ύπαρξη ενός αντιπροσωπευτικού δείγµ δείγµατος, ατος , ώστε  να πιστοποιηθεί η ορθή λειτουργία του -που συστήµ συστήµατος. ατος. Χαρακτηριστικά αναφέρουµ αναφέρουµε, ότι ενώ τα καταχωρηµ καταχωρηµένα Items -που είναι όλα facilities- αφορούν τα Χανιά, Χανιά, η αντιστοίχιση τους πάνω στο χάρτη δεν είναι η πραγµ πραγµατική. ατική. Η παραδοξότητα αυτή οφείλεται στο ότι η πηγή των δεδοµ δεδοµένων αυτών δεν ικανοποιούσε τις προδιαγραφές του συστήµ συστήµατος, ατος , οπότε κάποια πεδία γέµ γέµισαν µαζικά -τυχαίατυχαία- µε τα απαιτούµ απαιτούµενα δεδοµ δεδοµένα. ένα. Στο πίνακα Streets έχουµ έχουµε το πρόβληµ πρόβληµα της µη πληρότητας των δεδοµ δεδοµένων, ένων, οπότε για ορισµ ορισ µένες οδούς, οδούς, περιοχές του χάρτη, χάρτη, δεν υπάρχει δεν  υπάρχει όνοµ όνοµα. Ο πίνακας Data, είναι γεµ γεµάτος µε τα ίδια δεδοµ δεδοµένα για όλες τις εγγραφές. εγγραφές. Ο πίνακας Context είναι απόλυτα συνεπής και περιέχει µια πιθανή ιεραρχία κατηγοριών, κατηγοριών, µε µ ε ρίζα τον τύπο facilities. Ο πίνακας Pushpins αρχικά περιέχει µόνο τα default pushpins που ορίζει το σύστηµ σύστηµα, αλλά εν συνεχεία και καθώς  νέοι χρήστες γράφονται, γράφονται,  νέα δεδοµ δεδοµένα προστίθενται δυναµ δυναµικά. ικά. Το ίδιο ισχύει και για τον πίνακα Users, που αρχικά περιέχει µόνο το default system profile.

4.3 Ανακεφαλαίωση  Έχοντας ολοκληρώσει το σχεδιασµ σχεδιασµό της βάσης δεδοµ δεδοµένων, ένων, έχουµ έχουµε ξεκαθαρίσει ποιες από τις οντότητες του µοντέλου πληροφορίας θα τοποθετηθούν σε πίνακες µιας σχεσιακής βάσης δεδοµ δεδοµένων και ποιες θα  υλοποιηθούν προγραµµ προγραµµατιστικά ατιστικά.. Στις τελευταίες ανήκει η θέση χρήστη, χρήστη, καθώς και οι δοµ δοµή αποθήκευσης των ενεργών (OnLine) χρηστών. χρηστών. Πριν φτάσουµ φτάσουµε όµως στην  υλοποίηση µιας πρωτότυπης (prototyped) εφαρµ εφαρµογής θα πρέπει  να σχεδιάσουµ σχεδιάσουµε την απεικόνιση του µοντέλου πληροφορίας στην οθόνη του χρήστη. χρήστη. Το User Interface της εφαρµ εφαρµογής, ογής, όπου τα δεδοµ δεδοµένα της βάσης γίνονται πληροφορία µε την οποία µπορεί  να αλληλεπιδράσει ο χρήστης µελετώνται στην επόµ επόµενη ενότητα. ενότητα.

62

ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ

5 ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ Στην ενότητα αυτή περιγράφεται η διαδικασία σχεδίασης του User Interface της εφαρµ εφαρµογής. ογής. To User Interface είναι ο τρόπος µε τον οποίο ο χρήστης αλληλεπιδρά µε το σύστηµ σύστηµα και η σχεδίαση του διέπεται από κάποιες βασικές αρχές. αρχές. Η ενότητα ξεκινάει µε µια προσχέδιο του User Interface και συνεχίζει µε την ανάλυση της µεθοδολογίας που ακολουθήθηκε για την απεικόνιση του µοντέλου πληροφορίας στην οθόνη του χρήστη. χρήστη. Η ενότητα κλείνει µε την παράθεση των βασικών αρχών σχεδίασης User Interface, που ακολουθήθηκαν κατά τη σχεδίαση. σχεδίαση.

63

ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ

5.1 ∆ιευθέτηση (Layout) Το παράθυρο της εφαρµ εφαρµογής έχει χωριστεί σε τέσσερα ορθογώνια µέρη. έρη. Το µεγαλύτερο τµήµα καταλαµ καταλαµβάνει η περιοχή όπου εµφανίζεται ο χάρτης µιας γεωγραφικής τοποθεσίας, τοποθεσίας, πάνω δεξιά. δεξιά. ∆ίπλα ακριβώς στο χάρτη βρίσκονται οι πληροφορίες χάρτη, χάρτη, όπως το µέγεθος, έγεθος, η κλίµ κλίµακα και το  υπόµ  υπόµ νηµ  νηµα. Πάνω αριστερά εµφανίζονται σε ξεχωριστό παράθυρο, παράθυρο, ώστε  να µπορεί  να ενηµ ενηµερώνεται ανεξάρτητα από το  υπόλοιπο,  υπόλοιπο, τα αποτελέσµ αποτελέσµατα των ερωτήσεων του χρήστη. χρήστη. Κάτω αριστερά βρίσκεται η περιοχή εµφάνισης της σύντοµ σύντοµης βοήθειας και δεξιά της, της, ακριβώς κάτω από το χάρτη, χάρτη, η περιοχή των εργαλείων της εφαρµ εφαρµογής. ογής.

Map Interaction

Results for  Items, Paths, Users, Pushpins, Waypoints

Short help and tips

Tools Search for Items, Paths, Users Define Pushpins, Waypoints

Σχήµ Σχήµα 30 Το πρότυπο µε βάση το οποίο σχεδιάστηκε το user  interface της εφαρµ εφαρµογής. ογής. Το παράθυρο της εφαρµ εφαρµογής χωρίζεται σε τέσερα µέρη, έρη, όπου το µεγαλύτερο καταλαµ καταλαµβάνει ο χάρτης. χάρτης.

5.1.1 Χάρτης (Map) Ο χάρτης είναι δανεισµ δανεισµένος από το εσωτερικό project του εργαστηρίου MU.S.I.C. Map ActiveX Control. Είναι  υλοποιηµ  υλοποιηµένος σε C++, σύµ σύµφωνα µε τις προδιαγραφές για τα ActiveX Control. Η συµ συµπεριφορά και τα γεγονότα του χάρτη είναι προγραµµ προγραµµατίσι ατίσιµ µα και η εµφάνιση του περιλαµ περιλαµβάνει τη περιοχή του χάρτη και δύο scroll bars, αν ο χάρτης είναι µεγαλύτερος από το ορατό παράθυρο χάρτη. χάρτη. Ο χάρτης επιτρέπει την επιλογή περιοχών χάρτη µε δοµ δοµηµένο τρόπο. τρόπο . Μπορούµ Μπορούµε  να επιλέξουµ επιλέξουµε µια περιοχή είτε άµεσα από τον ίδιο χάρτη, χάρτη, είτε έµµεσα µµεσα από ένα αντικείµ αντικείµενο που έχει αναπαράσταση πάνω στο χάρτη. χάρτη.

5.1.2 Κλί µακα Χάρτη (Legend)

64

ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ

Η κλίµ κλίµακα χάρτη συσχετίζει το µέγεθος του χάρτη µε το πραγµ πραγµατικό µέγεθος της αναπαριστόµ αναπαριστόµενης γεωγραφικής περιοχής. περιοχής. Η κλίµ κλίµακα είναι δυναµ δυναµική ώστε ανεξάρτητα από το µέγεθος του εικονιζόµ εικονιζόµενου χάρτη  να δίνει το αντίστοιχο πραγµ πραγµατικό µέγεθος. έγεθος. Η δυναµ δυναµική κλίµ κλίµακα χάρτη βασίζεται στο λόγο πραγµ πραγµατικής απόστασης σε κάποια µονάδα µέτρησης (µέτρα (µέτρα ή πόδια ή οτιδήποτε άλλο) άλλο) προς το µήκος σε εικονοστοιχεία (pixels) στον χάρτη της οθόνης. οθόνης. Σε αυτή τη περιοχή του User Interface έχουν τοποθετηθεί και τα εργαλεία για zoom in-out. Εκτός από τη κλίµ κλίµακα για την απεικόνιση της πραγµ πραγµατικής απόστασης έχουµ έχουµε και την αναγραφή του µεγέθους χάρτη σε σχέση µε το αποθηκευµ αποθηκευµένο πρωτότυπο µέγεθος. έγεθος. Για παράδειγµ παράδειγµα αν µεγενθύνουµ εγενθύνουµε µε zoom in από 100% θα πάµ πάµε στο 200% του αρχικού µεγέθους. εγέθους.

5.1.3 Αποτελέσµατα (Results) Η ανάγκη για ξεχωριστό παράθυρο για τα αποτελέσµ αποτελέσµατα  υπαγορεύτηκε από τη χρονοβόρα διαδικασία επανεκίνησης του συστήµ συστήµατος χάρτη, χάρτη, αλλά και για λόγους πρακτικούς. πρακτικούς. Με αυτόν το τρόπο ο χρήστης έχει τα αποτελέσµ αποτελέσµατα της ερώτησης στα αριστερά, αριστερά, που ανανεώνονται ανεξάρτητα από την υπόλοιπη την  υπόλοιπη σελίδα, σελίδα, και µπορεί  να δει την αντιπροσώπευση τους στο χάρτη, χάρτη, στα δεξιά. δεξιά. Το παράθυρο των αποτελεσµ αποτελεσµάτων είναι σχετικά µικρό -µε -µε τα δεδοµ δεδοµένα µιας εφαρµ εφαρµογής ερωτήσεων σε βάση δεδοµ δεδοµένωνένωναλλά εξυπηρετεί το σκοπό του, του, αφού τα αποτελέσµ αποτελέσµατα δεν καταλαµ καταλαµβάνουν πολύ χώρο, χώρο, σύµ σύµφωνα µε τη σχεδίαση που έγινε. έγινε. Τα αποτελέσµ αποτελέσµατα µιας ερώτησης είναι πάντα οι τίτλοι των αντικειµ αντικειµένων που βρέθηκαν. βρέθηκαν. Κατά περίπτωση ο χρήστης µπορεί  να δει σύντοµ σύντοµη περιγραφή για καθένα από αυτά, αυτά, και µετά  να προχωρήσει στο επόµ επόµενο αντικείµ αντικείµενο ή  να κάνει άλλη ερώτηση. ερώτηση. Με αυτό το τρόπο το πλήθος των αποτελεσµ αποτελεσµάτων που µπορούν  να εµφανιστούν στο παράθυρο χωρίς  να χρειάζεται  να κάνουµ κάνουµε scroll είναι µεγάλο και παράλληλα δε χάνουµ χάνουµε τη δυνατότητα για πληρέστερη πληροφορία που παρουσιάζεται δυναµ δυναµικά κατά απαίτηση. απαίτηση. Η σχεδίαση αυτή ανταποκρίνεται και στον τρόπο που συνηθίσουµ συνηθίσουµε  να ψάχνουµ ψάχνουµε, αφού από µια πλειάδα αντικειµ αντικειµένων, ένων, θα διαλέξουµ διαλέξουµε µερικά για να για  να µάθουµ άθου µε περισσότερα. περισσότερα.

5.1.4 Βοήθεια Εφαρµογής (Help) Η βοήθεια εφαρµ εφαρµογής, ογής, εµφανίζεται σε ένα σχετικά µικρό ορθογώνιο κάτω αριστερά στην οθόνη, οθόνη, µε σκοπό  να δώσει επιγραµµ επιγραµµατικά ατικά τη λειτουργικότητα της περιοχής, περιοχής, πάνω από την οποία είναι το mouse, καθώς και σύντοµ σύντοµα Tips. Για το σκοπό αυτό συνήθως -στις εφαρµ εφαρµογέςογές- χρησιµ χρησιµοποιείται η µπάρα στο κάτω µέρος του παραθύρου. παραθύρου. Η σχεδίαση που έγινε είναι δυναµ δυναµική, ική, ώστε αν χρειαστούν περισσότερο χώρο τα αποτελέσµ αποτελέσµατα  να µπορεί εύκολα  να λειτουργήσει η βοήθεια στο κάτω µέρος του παραθύρου σε µια γραµµ γραµµή ή. Αν και η βοήθεια καταλαµ καταλαµβάνει χώρο που θα µπορούσε  να είναι πολύτιµ πολύτιµος, ος, είναι πιο εύκολο  να διαβαστεί, διαβαστεί, αφού το κείµ κείµενο εκτείνεται σε µικρές γραµµ γραµµές ές..

5.1.5 Εργαλεία (Tools) Η περιοχή των εργαλείων είναι χωρισµ χωρισµένη σε  υποπεριοχές για το σκοπό της οµαδοποίησης των λειτουργιών. λειτουργιών. Η πρώτη οµάδα εργαλείων, εργαλείων, που καταλαµ καταλαµβάνει το µεγαλύτερο χώρο είναι τα Items, όπου µπορούµ πορούµε  να αναζητήσουµ αναζητήσου µε αντικείµ αντικείµενα, ενα,

65

ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ

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

5.2 Απεικόνιση του Μοντέλου Πληροφορίας στο User  Interface Η σηµ σηµαντικότερη οντότητα του µοντέλου πληροφορίας είναι ο χάρτης, χάρτης, πάνω στον οποίο έχουν απεικόνιση όλα τα είδη πληροφορίας που ορίστηκαν. ορίστηκαν. Ο χάρτης κατέχει κεντρικό ρόλο στο user interface της εφαρµ εφαρµογής, ογής, καταλαµ καταλαµβάνοντας το µεγαλύτερο χώρο στη σχεδίαση και αποτελώντας τον κύριο τρόπο εισαγωγής και εξαγωγής πληροφορίας. πληροφορίας.

5.2.1 Items Τα αντικείµ αντικείµενα αντιπροσωπεύονται στο user interface µε µε δύο τρόπους. τρόπους. Πρώτα µε τα εργαλεία αναζήτησης, αναζήτησης, και µετά µε την παρουσίαση τους στο παράθυρο των αποτελεσµ αποτελεσµάτων. άτων. Ο προφανής τρόπος αναζήτησης αντικειµ αντικειµένων µε βάση το όνοµ όνοµα, την κατηγορία, κατηγορία, τη θέση στο χάρτη, χάρτη, επεκτείνεται µε τη δυνατότητα αναζήτησης αντικειµ αντικειµένων σαν περιεχόµ περιεχόµενα ενός µονοπατιού. ονοπατιού. Στην πρώτη περίπτωση τα αντικείµ αντικείµενα που ικανοποιούν τα κριτήρια του χρήστη, χρήστη, εµφανίζονται σε λίστα στο παράθυρο των αποτελεσµ αποτελεσµάτων. άτων. Στη περίπτωση της κατασκευής µονοπατιού µε κριτήριο κάποια κατηγορία ενδιαφέροντος, ενδιαφέροντος, τότε τα αντικείµ αντικείµενα εµφανίζονται στα περιεχόµ περιεχόµενα του δρόµ δρόµου που ανήκουν. ανήκουν.

5.2.2 Path Το µονοπάτι, ονοπάτι, στο επίπεδο του user interface, µπορού µπορούµ µε  να το αντιµ αντιµετωπίσουµ ετωπίσουµε σαν µια πολλαπλή επιλογή χάρτη, χάρτη, που αποτελείται από διαδοχικά routes και παρουσιάζεται στο παράθυρο των αποτελεσµ αποτελεσµάτων µε µια λίστα µε τα ονόµ ονόµατα των οδών, οδών, όπου ανήκουν τα routes -πλευρές -πλευρές οικοδοµ οικοδο µικών τετραγώνων. τετραγώνων.  Όταν έχουµ έχουµε µονοπάτι µε αντικείµ αντικείµενα (advanced), τότε τα ονόµ ονόµατα των οδών επεκτείνονται προαιρετικάπροαιρετικά- για  να παρουσιάσουν τη λίστα των αντικειµ αντικειµένων, ένων, που περιέχονται στη κάθε µια. ια.

Waypoints Οι κόµ κόµβοι µονοπατιού (waypoints) παρουσιάζονται στο χάρτη σαν επιλογές, επιλογές, µε την ιδιαιτερότητα ότι είναι  υποχρεωτικά του τύπου position. Τα ονόµ ονόµατα των κόµ κόµβων παρουσιάζονται στο παράθυρο των αποτελεσµ αποτελεσµάτων. άτων. Τα κοµ κοµβικά σηµ σηµεία διαδροµ διαδροµής είναι προσωρινά και χάνονται µε το κλείσιµ κλείσιµο της εφαρµ εφαρµογής. ογής. Μπορούµ Μπορούµε  να αντιµ αντιµεταθέσουµ εταθέσουµε τη σειρά των waypoints, µε µε αποτέλεσµ αποτέλεσµα τη διαφορετική σειρά διαγραφής του µονοπατιού. ονοπατιού. Streets

66

ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ

Η λειτουργία της ανεύρεσης της θέσης µιας οδού µε βάση το όνοµ όνοµα είναι από τις πιο κοινές για µια εφαρµ εφαρµογή αυτού του είδους, είδους, αφού πολλές φορές το αντικείµ αντικείµενο που αναζητά ο χρήστης δεν  υπάρχει στη βάση δεδοµ δεδοµένων, ένων, όπως για παράδειγµ παράδειγµα ένα σπίτι που θέλει να θέλει  να επισκεφθεί. επισκεφθεί. Σε αυτή τη περίπτωση καταφεύγει στην αναζήτηση της οδού πάνω στο χάρτη. χάρτη. Οι τοποθεσίες χάρτη -οδοί στη παρούσα εργασίαεργασία- είναι µια οντότητα που ορίστηκε βοηθητικά, βοηθητικά, αναγνωρίζοντας τη σηµ σηµασία που έχει η εύρεση δρόµ δρόµων στο χάρτη. χάρτη. Κατέχει ξεχωριστή θέση στο user interface, αν και θα µπορούσε  να συµ συµπεριληφθεί στις λειτουργίες εύρεσης αντικειµ αντικειµένου, ένου, µε την πρόσθεση κατηγορίας οδού. οδού . Αντί αυτού, αυτού, έχουµ έχουµε ένα πεδίο µόνο για τη συµ συµπλήρωση ονόµ ονόµατος οδού, οδού, γεγονός που εξυπηρετεί σε λιγότερα βήµ βήµατα µια τόσο συνηθισµ συνηθισµένη λειτουργία. λειτουργία.  Ένας δρόµ δρόµος παρουσιάζεται στο χάρτη σαν µια πολλαπλή επιλογή από διαδοχικά routes. Στο παράθυρο των αποτελεσµ αποτελεσµάτων, άτων, έχουµ έχουµε το όνοµ όνοµα της οδού και τα περιέχοντα routes, που µπορούν  να περιέχουν εύρος αριθµ αριθµών του αντίστοιχου route, διευκολύνοντας έτσι τον εντοπισµ εντοπισµό κτιρίων µε βάση την οικεία αρίθµ αρίθµηση στις οδούς. οδούς.

5.2.3 Pushpins Οι επιλογές χάρτη (pushpins), αντιπροσωπεύονται µε παρόµ παρόµοιο τρόπο στο user  interface. Παρουσιάζονται σε µια λίστα στο παράθυρο των αποτελεσµ αποτελεσµάτων, άτων, ενώ η αναπαράσταση τους στο χάρτη, χάρτη, γίνεται µε επιλογή της αντίστοιχης τοποθεσίας. τοποθεσίας. Στη παρουσίαση τους, τους, εκτός από το όνοµ όνοµα, συµµ συµµετέχουν ετέχουν όλες οι ιδιότητες που ορίσαµ ορίσαµε, το σύντοµ σύντοµο κείµ κείµενο, ενο, το URL, που εµφανίζονται προαιρετικά. προαιρετικά.

5.2.4 Users - Position Οι χρήστες της εφαρµ εφαρµογής είναι διακριτοί και αυτό αντιπροσωπεύεται στο user  interface µε µε µια οµάδα εργαλείων που περιέχει τα στοιχεία του profile, τη δυνατότητα καθορισµ καθορισµού θέσης, θέσης, τα pushpins, µε µε τίτλο της οµάδας, άδας, το όνοµ όνοµα του χρήστη. χρήστη.  Όλα τα στοιχεία και τα εργαλεία του χρήστη µπορούν  να ενηµ ενηµερωθούν. ερωθούν. Οι αλλαγές στο  profile και τα pushpins είναι µόνιµ όνιµες και αποθηκεύονται στη βάση δεδοµ δεδοµένων. ένων. Η παρουσίαση της θέσης του χρήστη, χρήστη, καθώς και η εισαγωγή νέας εισαγωγή  νέας,, γίνεται στο χάρτη µε επιλογή της αντίστοιχης περιοχής. περιοχής. Η θέση χρήστη είναι προσωρινή, προσωρινή, και χάνεται µε το τέλος της εφαρµ εφαρµογής. ογής. Ο χρήστης µπορεί  να δει τη θέση στο χάρτη των  υπόλοιπων ενεργών χρηστών, χρηστών, που παρουσιάζονται στο παράθυρο των αποτελεσµ αποτελεσµάτων σε µια λίστα µε τα ονόµ ονόµατα τους. τους. Κάθε χρήστης -προαιρετικάπροαιρετικά- επεκτείνεται στα χαρακτηριστικά του, του, που είναι σύντοµ σύντοµη περιγραφή και URL της προσωπικής του σελίδας. σελίδας.

5.3 Βασικές Αρχές Για τη σχεδίαση και  υλοποίηση του user interface εφαρµ εφαρµόστηκαν κάποιες κατευθυντήριες γραµµ γραµµές ές (guidelines) από το επιστηµ επιστηµονικό πεδίο του Human Computer Interaction.

5.3.1 Ανάδραση (Feedback)

67

ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ

Για τα εργαλεία του χρήστη χρησιµ χρησιµοποιήθηκαν ετικέτες κειµ κειµένου. ένου. Για  να διακρίνονται οι τίτλοι των οµάδων εργαλείων από τις ενεργές λειτουργίες, λειτουργίες, εκτός από το διαφορετικό χρώµ χρώµα background, στις τελευταίες εφαρµ εφαρµόστηκε το εφέ mouse over.  Όταν ο δείκτης του mouse βρεθεί πάνω από µια ενεργή περιοχή, περιοχή, τότε αυτή φωτίζεται -µε -µε το ίδιο χρώµ χρώµα πιο φωτεινό-, φωτεινό-,  υποδεικνύοντας άµεσα το γεγονός ότι µπορεί  να πατηθεί. πατηθεί. Στα αποτελέσµ αποτελέσµατα, ατα, εκτός από το εφέ του mouse over, χρησιµ χρησιµοποιείται διαφορετικό χρώµ χρώµα για να για  να δείξει ότι κάποιο αποτέλεσµ αποτέλεσµα -η αναπαράσταση του δηλαδή στο χάρτηχάρτηείναι επιλεγµ επιλεγµένο. ένο. Αυτό είναι πολύ χρήσιµ χρήσιµο όταν θέλουµ θέλουµε  να εφαρµ εφαρµόσουµ όσουµε κάποιο εργαλείο σε ένα αποτέλεσµ αποτέλεσµα, όπως να όπως  να σβήσουµ σβήσουµε ένα pushpin.

5.3.2 Κωδικοποίηση µε Χρώµα (Color Coding) Το background είναι διαφορετικό για τις ετικέτες, ετικέτες, σε σχέση µε τους τίτλους. τίτλους.  Όπου έχουµ έχουµε pull down µενού µ ενού αυτό  υποδεικνύετε από ένα βελάκι, βελάκι, που επίσης φωτίζεται κατά το mouse over, και που όταν πατηθεί, πατηθεί, προκαλεί την εµφάνιση του µενού προς τη κατεύθυνση που δείχνει, δείχνει, αντικαθιστώντας τις  υπόλοιπες λειτουργίες της οµάδας. άδας. Κάθε µια από τις περιοχές της εφαρµ εφαρµογές, ογές, χάρτης, χάρτης, αποτελέσµ αποτελέσµατα, ατα, εργαλεία, εργαλεία, βοήθεια, βοήθεια, έχει διαφορετικό χρώµ χρώµα, δίνοντας µια αίσθηση οργάνωσης. οργάνωσης.

5.3.3 Ευκολία στην Εκµάθηση /Χρήση (Ease of Learning/Use) Το γεγονός mouse over  χρησιµ χρησιµοποιείται για  να εµφανιστεί η αντίστοιχη βοήθεια, βοήθεια, όταν έρθει το mouse πάνω από µια περιοχή. περιοχή. Με αυτό το τρόπο ο άπειρος χρήστης µαθαίνει τη λειτουργία της αντίστοιχης περιοχής και παράλληλα εκτελεί µε σιγουριά και άµεσα τα βήµ βήµατα της εν λόγω λειτουργίας. λειτουργίας. Ο έµπειρος χρήστης µπορεί  να χρησιµ χρησιµοποιήσει τις επιλογές του µενού Map Options για  να αλλάξει τη συµ συµπεριφορά του χάρτη ή για  να εκτελέσει περισσότερο προχωρηµ προχωρηµένες λειτουργίες, λειτουργίες, όπως το κλείδωµ κλείδωµα των επιλογών του. του. Με τις επιλογές αυτές ικανοποιούνται οι ανάγκες τόσο των έµπειρων χρηστών που θέλουν περισσότερα χαρακτηριστικά και δυνατότητες, δυνατότητες, όσο και των άπειρων χρηστών που προτιµ προτιµούν απλότητα, απλότητα , αµεσότητα. εσότητα.

5.3.4 Αυτόµατη Συµπλήρωση (Auto Complete) Η λειτουργία της ανεύρεσης της θέσης µιας οδού µε βάση το όνοµ όνοµα είναι από τις πιο κοινές για µια εφαρµ εφαρµογή αυτού του είδους, είδους, αφού πολλές φορές το αντικείµ αντικείµενο που αναζητά ο χρήστης δεν  υπάρχει στη βάση δεδοµ δεδοµένων, ένων, όπως για παράδειγµ παράδειγµα ένα σπίτι που θέλει να θέλει  να επισκεφθεί. επισκεφθεί. Σε αυτή τη περίπτωση καταφεύγει στην αναζήτηση της οδού πάνω στο χάρτη. χάρτη. Για  να επισπεύσουµ επισπεύσουµε αυτή τη συνήθη εισαγωγή του ονόµ ονόµατος µιας οδού και για  να είναι ορθογραφικά σωστή, σωστή, κάτι που απαιτείται ώστε να ώστε  να υπάρξει  υπάρξει ορθό αποτέλεσµ αποτέλεσµα, γίνεται αυτόµ αυτόµατη συµ συµπλήρωση του ονόµ ονόµατος για κάθε γράµµ γράµµα α που εισάγει ο χρήστης. χρήστης. Η πρακτική αυτή ακολουθείται και στον ΙΕ4, ΙΕ4, για την εισαγωγή της διεύθυνσης µιας τοποθεσίας στο internet. Ακόµ Ακόµη, η επιλογή κατηγορίας γίνεται µέσω του δέντρου των κατηγοριών που αναπαρίσταται γραφικά στο χρήστη, χρήστη, επιταχύνοντας έτσι την διαδικασία και δίνοντας

68

ΑΡΧΕΣ ΣΧΕ∆ΙΑΣΜΟΥ ∆ΙΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΤΕΣ

µια εικόνα των σχετιζόµ σχετιζόµενων  υποκατηγοριών.  υποκατηγοριών. Τέλος, Τέλος, όπου  υπάρχει συµ συµπλήρωση φόρµ φόρµας µε στοιχεία από τη βάση δεδοµ δεδοµένων, ένων, κάποια πεδία έχουν default τιµ τιµές. ές.

5.3.5 Συνέπεια (Consistency) Η συµ συµπεριφορά των αποτελεσµ αποτελεσµάτων όσο και των εργαλείων είναι κοινή για όλα τα είδη των αποτελεσµ αποτελεσµάτων και για όλες τις οµάδες εργαλείων, εργαλείων, γεγονός που βελτιώνει τη συνέπεια. συνέπεια. Οι διαδικασίες και τα βήµ βήµατα που απαιτούνται για την εκτέλεση διαφορετικών λειτουργιών µοιάζουν µεταξύ τους. τους. Για παράδειγµ παράδειγµα µε τον ίδιο τρόπο επιλέγουµ επιλέγουµε ένα pushpin και ένα αντικείµ αντικείµενο για να για  να το δούµ δούµε πάνω στο χάρτη ή για να για  να δούµ δούµε περισσότερες πληροφορίες για αυτό. αυτό.

5.3.6 Συµβατότητα (Compatibility) Το σύστηµ σύστηµα στο σύνολο του, του, στη πλευρά του server  και του client, βασίζεται στο world wide web, στο δηµ δηµοφιλέστερο από τα εργαλεία της  νέας τεχνολογίας και εποµ εποµένως σε µια πλατφόρµ πλατφόρµα οικεία για τους περισσότερους χρήστες. χρήστες. Το γεγονός αυτό συνεισφέρει στη αυτοπεποίθηση του χρήστη για την εφαρµ εφαρµογή, ογή, αφού οι έννοιες και οι µεταφορές που χρησιµ χρησιµοποιούνται προέρχονται από ένα χώρο στον οποίο έχει προηγούµ προηγούµενη εµπειρία. πειρία. Επιπλέον η φύση της εφαρµ εφαρµογής (on-line) επιτρέπει τη συνεχή βελτίωση µε τις αλλαγές  να φτάνουν στο χρήστη διαφανώς -αφού αυτός δεν έχει παρά  να εισάγει τη διεύθυνση για να για  να συνδεθεί στην εφαρµ εφαρµογή-, ογή-, εξαφανίζοντας την ανάγκη και έγνοια για αναβάθµ αναβάθµιση σε κάθε νέα κάθε  νέα έκδοση στης εφαρµ εφαρµογής. ογής.

5.4 Ανακεφαλαίωση Σχεδιάζοντας το User Interface του συστήµ συστήµατος ολοκληρώσαµ ολοκληρώσαµε τη διαδικασία µεταφοράς του -σχετικά αφηρηµ αφηρηµένουένου- µοντέλου πληροφορίας, πληροφορίας, στην οθόνη του χρήστη. χρήστη. Ακόµ Ακόµη, ολοκληρώσαµ ολοκληρώσαµε την αλληλεπίδραση του χρήστη µε το σύστηµ σύστηµα, γεγονός που θα καθορίσει την  υλοποίηση της εφαρµ εφαρµογής που µελετάµ ελετάµε στο επόµ επόµενο κεφάλαιο. κεφάλαιο.

69

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

6 ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ Το κεφάλαιο αυτό αφορά την εφαρµ εφαρµογή που  υλοποιήθηκε σύµ σύµφωνα µε όσα συζητήθηκαν στα προηγούµ προηγούµενα κεφάλαια και χωρίζεται σε δύο ενότητες. ενότητες.Η πρώτη περιγράφει την αλληλεπίδραση µε το σύστηµ σύστηµα. Η µελέτη γίνεται κατά οµάδες παρόµ παρόµοιας λειτουργικότητας και σχεδιαστικών αρχών, αρχών, ενώ στο τέλος παραθέτονται µερικά από τα σενάρια χρήσης των προδιαγραφών και πως αυτά αντιµ αντιµετωπίζονται. ετωπίζονται. Στη δεύτερη ενότητα περιγράφεται αναλυτικά η  υλοποίηση του συστήµ συστήµατος. ατος. Η ανάπτυξη γίνεται µε βάση τη θέση που κατέχουν τα διάφορα αρχεία του συστήµ συστήµατος και περιγράφεται το περιεχόµ περιεχόµενο τους. τους. Η ενότητα αυτή διαβάζεται µε γνώση των τεχνολογιών που παρουσιάστηκαν σε προηγούµ προηγούµενο κεφάλαιο. κεφάλαιο.

70

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

6.1 Αλληλεπίδραση µε το Σύστηµα Η λειτουργικότητα του τελικού συστήµ συστήµατος θα πρέπει  να ανταποκρίνεται στις προδιαγραφές και στα σενάρια χρήσης. χρήσης. Η λειτουργικότητα καθορίζει το σχεδιασµ σχεδιασµό της αλληλεπίδρασης µε το χρήστη (user interface design). Τα screen shots που παρουσιάζονται εδώ, εδώ, αν και προέρχονται από το εν λειτουργία σύστηµ σύστηµα, σκοπός τους είναι  να περιγράψουν τις σχεδιαστικές αρχές, αρχές, πίσω από κάθε µοντέλο αλληλεπίδρασης. αλληλεπίδρασης. Η µελέτη γίνεται κατά οµάδες παρόµ παρόµοιας λειτουργικότητας (τα αποτελέσµ αποτελέσµατα µελετώνται σαν µια οµάδα, άδα, ανεξάρτητα από τον τύπο τους) τους) για  να πιστοποιηθεί η οµοιογένεια της σχεδίασης και υλοποίησης και  υλοποίησης.. Στο τέλος παρουσιάζονται µερικά πιθανά σενάρια χρήσης, χρήσης, οπότε η κάθε λειτουργία µελετάται στο σύνολο της. της.

6.1.1 Εισαγωγή στο Σύστηµα Κάθε χρήστης, χρήστης, εγγεγραµµ εγγεγραµµένος ένος ή όχι, όχι, πριν φτάσει στην οθόνη της εφαρµ εφαρµογής, ογής, περνάει από κάποια εισαγωγικά στάδια, στάδια, τα οποία διαφέρουν ανάλογα µε το είδος του χρήστη. χρήστη.

Πρώτη Επίσκεψη (First Time Visitor) Το σύστηµ σύστηµα αναγνωρίζει αυτόµ αυτόµατα ένα χρήστη που δεν είναι γραµµ γραµµένος ένος στους χρήστες-µ χρήστες-µέλη έλη του συστήµ συστήµατος. ατος . Η πρώτη σελίδα έχει σκοπό  να προσφέρει στον επισκέπτη εκτός από τη δυνατότητα εγγραφής και µερικά εισαγωγικά στοιχεία, στοιχεία, τις απαιτήσεις σε λογισµ λογισµικό, ικό, καθώς και τεχνολογικά χαρακτηριστικά της εφαρµ εφαρµογής. ογής. Εγγραφή στην Εφαρµ Εφαρµογή (User Registration)  Ένας χρήστης που συνδέεται για πρώτη φορά µε το σύστηµ σύστηµα, καλείται  να γραφτεί (register). Η συµ συµπλήρωση της φόρµ φόρµας εγγραφής περιλαµ περιλαµβάνει όνοµ όνοµα, e-mail, σύντοµ σύντοµο σχόλιο που θα ήθελε  να βλέπουν οι άλλοι χρήστες για αυτόν και ένα σύνδεσµ σύνδεσµο -uniform resource locator (url). Το τελευταίο επιτρέπει στο χρήστη  να συνδέσει το profile του µε µια άλλη σελίδα -για παράδειγµ παράδειγµα τη προσωπική του σελίδα-, σελίδα-, ακόµ ακόµα και έξω από το πεδίο -domain- του συστήµ συστήµατος. ατος. Πριν το τέλος της διαδικασίας εγγραφής, εγγραφής, τοποθετείται στον υπολογιστή στον  υπολογιστή του χρήστη αναγνωριστικό, αναγνωριστικό, που θα επιτρέψει την άµεση αναγνώριση του στην επόµ επόµενη επίσκεψη του. του. Με αυτόν το

Σχήµ Σχήµα 31 Dialog box για την ανάκληση των στοιχείων χρήστη µε βάση το email του. του.

71

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

τρόπο αποφεύγεται η συνήθης και ανασταλτική πιστοποίηση -authentication- που απαιτείται από παρόµ παρόµοιες εφαρµ εφαρµογές. ογές.

Είσοδος στην Εφαρµ Εφαρµογή (Application Entrance) Μετά την εγγραφή του και σε κάθε νέα κάθε  νέα επίσκεψη ο χρήστης αναγνωρίζεται αυτόµ αυτόµατα και βλέπει την είσοδο της εφαρµ εφαρµογής, ογής, κάποια προαιρετικά σύντοµ σύντοµα εισαγωγικά και το πλήθος των  υπόλοιπων χρηστών που είναι ενεργοί (on-line), τη δεδοµ δεδοµένη στιγµ στιγµή. Επειδή η εργασία έχει ερευνητικό χαρακτήρα, χαρακτήρα ,  υπάρχουν στη διάθεση του χρήστηχρήστηdeveloper και developer και κάποια debug εργαλεία. εργαλεία. Ανάκληση Στοιχείων Χρήστη (Remember User) Υπάρχει το ενδεχόµ ενδεχόµενο ο επισκέπτης  να είναι εγγεγραµµ εγγεγραµµένο ένο µέλος του συστήµ συστήµατος, ατος, αλλά  να µην αναγνωριστεί αυτόµ αυτόµατα. ατα. Κάτι τέτοιο µπορεί  να συµ συµβεί στην περίπτωση που ο χρήστης έχει καιρό  να επισκεφθεί την εφαρµ εφαρµογή, ογή, ή συνηθέστερα αν έχει ενηµ ενηµερώσει το σχετικό λογισµ λογισµικό στον  υπολογιστή του. του. Το πρόβληµ πρόβληµα αυτό αντιµ αντιµετωπίζεται µε την επιλογή Remember me, που έχει στη διάθεση του στην είσοδο της εφαρµ εφαρµογής κάθε “άγνωστος” άγνωστος” χρήστης. χρήστης. Το modal dialog box που εµφανίζεται παίρνει σαν παράµ παράµετρο το e-mail του χρήστη, χρήστη, το οποίο είναι µοναδικό παγκοσµ παγκοσµίως, ίως, και το αναζητά στη βάση δεδοµ δεδοµένων. ένων. Στην περίπτωση που το βρει, βρει, το σύστηµ σύστηµα θέτει ξανά το αναγνωριστικό στον  υπολογιστή του χρήστη. χρήστη. Εδώ, Εδώ, προφανώς δηµ δηµιουργείται θέµ θέµα ασφάλειας, ασφάλειας, αφού κάθε χρήστης που γνωρίζει το e-mail κάποιου άλλου µπορεί  να προσποιηθεί ότι είναι κάποιος άλλος. άλλος. Το συγκεκριµ συγκεκριµένο πρόβληµ πρόβληµα αντιµ αντιµετωπίζεται συνηθέστερα µε χρήση password, το οποίο ακόµ ακόµα και αν δε θυµ θυµάται ο χρήστης στέλνεται στην εν λόγω e-mail διεύθυνση, διεύθυνση, που είναι προσβάσιµ προσβάσιµη µόνο για το “ νόµ  νόµιµο” χρήστη. χρήστη. Ο χρήστης γνωρίζοντας ή µαθαίνοντας το password µπορεί µπορεί πλέον  να λάβει το αναγνωριστικό του, του, που θα του επιτρέψει την απρόσκοπτη σύνδεση στο σύστηµ σύστηµα. Επειδή στην παρούσα εργασία, εργασία, η ασφάλεια δεν ήταν πρόβληµ πρόβληµα χρησιµ χρησιµοποιείται απλά η  υπενθύµ  υπενθύµιση µε βάση το e-mail.

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

72

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

Σχήµ Σχήµα 32 Τα αποτελέσµ αποτελέσµατα επεκτείνονται -προαιρετικάπροαιρετικάσε σύντοµ σύντοµο κεί µενο και δυνατότητα µετάβασης σε αναλυτική πληροφορία. πληροφορία.

Για τα αποτελέσµ αποτελέσµατα µια ερώτησης πέρα από τους τίτλους, τίτλους, απαιτείται µια σύντοµ σύντοµη περιγραφή του κάθε αποτελέσµ αποτελέσµατος. ατος . Από την άλλη ο διαθέσιµ διαθέσιµος χώρος στο παράθυρο των αποτελεσµ αποτελεσµάτων είναι περιορισµ περιορισµένος. ένος. Η λύση που δόθηκε είναι η δυναµ δυναµική παρουσίαση της σύντοµ σύντοµης περιγραφής κατά απαίτηση του χρήστη για κάθε αποτέλεσµ αποτέλεσµα. Επιπλέον, Επιπλέον, δίνεται και η δυνατότητα µετάβασης σε µια  νέα σελίδα, σελίδα, µε περισσότερες πληροφορίες, πληροφορίες, εικόνες, εικόνες, για το  υπό εξέταση αποτέλεσµ αποτέλεσµα. Για τη δυναµ δυναµική επέκταση ενός αποτελέσµ αποτελέσµατος χρησιµ χρησιµοποιείται το συν (+), που γίνεται πλην (-), για  να  υποδείξει τη  νέα κατάσταση. κατάσταση. Ο τίτλος του αποτελέσµ αποτελέσµατος χρησιµ χρησιµοποιείται σε κάθε περίπτωση για  να επιλέξει την αναπαράσταση του πάνω στο χάρτη. χάρτη. Στις παρακάτω παραγράφους µελετάται ο τρόπος µε τον οποίο αυτό το µοντέλο αλληλεπίδρασης βρίσκει εφαρµ εφαρµογή στις διαφορετικές κατηγορίες αποτελεσµ αποτελεσµάτων. άτων.

Αντικεί µενα (Items) Τα αντικείµ αντικείµενα χάρτη παρουσιάζονται µε το τίτλο τους και µε το συν (+) επεκτείνονται σε µια σύντοµ σύντοµη περιγραφή και ένα σύνδεσµ σύνδεσµο σε µια πλήρη παρουσίαση µε µεγάλο κείµ κείµενο και εικόνα. εικόνα. Κοµ Κοµβικά Σηµ Σηµεία ∆ιαδροµ ∆ιαδροµής (Waypoints) Τα κοµ κοµβικά σηµ σηµεία διαδροµ διαδροµής αποτελούν εξαίρεση από την άποψη ότι δεν περιλαµ περιλαµβάνουν επέκταση µε περισσότερες πληροφορίες. πληροφορίες. Η δυνατότητα  υπάρχει,  υπάρχει, αλλά στο επίπεδο της αλληλεπίδρασης και σύµ σύµφωνα µε το µοντέλο των waypoints

Σχήµ Σχήµα 33 Τα waypoints παρουσιάζονται σύµ σύµφωνα µε τη φορά διαγραφής του µονοπατιού και µπορούµ πορούµε να δούµ δούµε τη θέση τους στο χάρτη. χάρτη.

73

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

Σχήµ Σχήµα 34  Αν το µονοπάτι περιέχει αντικεί µενα, ενα, τότε εκτός από τις οδηγίες πλοήγησης έχουµ έχουµε δυνατότητα επέκτασης στη λίστα των αντικειµ αντικειµένων κάθε δρόµ δρόµου και εν συνεχεία δυνατότητα επέκτασης στις πληροφορίες για κάθε αντικεί µενο. ενο.

δεν απαιτείται σύντοµ σύντοµο κείµ κείµενο και σύνδεσµ σύνδεσµος. ος. Οπως σε όλες τις κατηγορίες αποτελεσµ αποτελεσµάτων, άτων, ο χρήστης µπορεί  να επιλέξει το όνοµ όνοµα ενός waypoint και να και  να δει την αντίστοιχη περιοχή χάρτη. χάρτη.

Μονοπάτι (Path)  Ένα µονοπάτι περιγράφεται µονοσήµ ονοσήµαντα από τα routes που το αποτελούν και παρουσιάζεται σαν ένα σύνολο διαδοχικών δρόµ δρόµων. ων. Η επιλογή ενός δρόµ δρόµου στα αποτελέσµ αποτελέσµατα, ατα, επιλέγει τον αντίστοιχο δρόµ δρόµο στον χάρτη. χάρτη.  Ένας δρόµ δρόµος µπορεί  να αποτελείται από περισσότερα από ένα routes, οπότε στον χάρτη θα πραγµ πραγµατοποιηθεί µια πολλαπλή επιλογή από τα αντίστοιχα routes. Πλοήγηση σε Μονοπάτι (Path Navigation) Για την ευκολότερη πλοήγηση στο µονοπάτι, ονοπάτι, παρεµ παρεµβάλλονται ανά ανάµ µεσα στα ονόµ ονόµατα των δρόµ δρόµων οι οδηγίες για  να µπορέσει ο χρήστης  να ακολουθήσει το µονοπάτι. ονοπάτι. Οι οδηγίες έχουν τη µορφή  υποδείξεων για το πότε αλλάζει κατεύθυνση το µονοπάτι περνώντας σε νέα σε  νέα οδό. οδό. Αντικεί µενα σε Μονοπάτι (Path Items) Οταν  υπάρχουν αντικείµ αντικείµενα σε ένα δρόµ δρόµο που ανήκει σε µονοπάτι, ονοπάτι, τότε αναγράφεται το πλήθος τους, τους, δίπλα στο όνοµ όνοµα του δρόµ δρόµου. ου. Ο χρήστης έχει τη δυνατότητα  να δει ποια αντικείµ αντικείµενα περιέχονται σε κάθε δρόµ δρόµο του µονοπατιού και  να τα επιλέξει στο χάρτη. χάρτη. Επιπλέον µπορεί  να δει µικρή περιγραφή και  να ακολουθήσει το σύνδεσµ σύνδεσµο προς µια ολοκληρωµ ολοκληρωµένη παρουσίαση ενός αντικειµ αντικειµένου. ένου.  Όλες οι ενέργειες πραγµ πραγµατοποιούνται µε το συνεπή τρόπο που ορίζει το σύστηµ σύστηµα αλληλεπίδρασης results. Προτάσεις Συστήµ Συστήµατος (Picks of the Day) Οι προτάσεις του συστήµ συστήµατος, ατος, κατά την εκκίνηση της εφαρµ εφαρµογής ή όποτε άλλοτε ζητηθούν, ζητηθούν, είναι αντικείµ αντικείµενα και παρουσιάζονται σαν αντικείµ αντικείµενα. ενα. 74

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

Σχήµ Σχήµα 35 Η λίστα µε τα pushpins παρουσιάζει τα ονόµ ονόµατα που έχει θέσει ο χρήστης για τα pushpins, καθώς και τα default του συστήµ συστήµατος. ατος. Κάθε pushpin έχει τη συµ συµπεριφορά που ορίζει το µοντέλο της παρουσίασης αποτελεσµ αποτελεσµάτων. άτων.

Χρήστες (Users) Κάθε χρήστης παρουσιάζεται µε το όνοµ όνοµα του και επεκτείνεται στην περιγραφή που έχει δώσει για τον εαυτό του και στον σύνδεσµ σύνδεσµο για κάποια προσωπική σελίδα. σελίδα. Η επιλογή του ονόµ ονόµατος του χρήστη επιλέγει τη περιοχή του χάρτη στην οποία βρίσκεται. βρίσκεται. Πινέζες Χάρτη (Pushpins) Τα pushpins αξιοποιούν πλήρως το µοντέλο αλληλεπίδρασης αποτελεσµ αποτελεσµάτων επιτρέποντας επέκταση στο σύντοµ σύντοµο κείµ κείµενο που είχε εισάγει ο χρήστης κατά τον ορισµ ορισµό τους ή σε αυτό του συστήµ συστήµατος για τα default pushpins. Ο χρήστης µπορεί να πορεί  να µεταβεί σε µια άλλη σελίδα µε το σύνδεσµ σύνδεσµο που έχει καθορίσει αυτός ή το σύστηµ σύστηµα στην επέκταση. επέκταση. Η επιλογή του ονόµ ονόµατος του pushpin, επιλέγει την αντίστοιχη περιοχή χάρτη. χάρτη.

6.1.3 Αλληλεπίδραση µε το Χάρτη Για όλες τις λειτουργίες του συστήµ συστήµατος η αλληλεπίδραση µε το χάρτη ορίζεται µε τρόπο οµοιόµ οιόµορφο. ορφο. Κεντρικό ρόλο παίζει η έννοια τις επιλογής χάρτη που ορίσαµ ορίσαµε στις βασικές απαιτήσεις και το µοντέλο πληοροφορίας της εφαρµ εφαρµογής. ογής.

Σχήµ Σχήµα 36 Η λίστα των χρηστών παρουσιάζει τα ονόµ ονόµατα των ενεργών χρηστών και επιτρέπει να δούµ δούµε το σύντοµ σύντοµο κεί µενο -που έχει εισάγει ο κάθε χρήστης για τον εαυτό του-, του-, καθώς και δυνατότητα µετάβασης σε µια σελίδα που περιέχει πληροφορίες για το χρήστη. χρήστη. 75

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

Επιλογές Χάρτη Ο χρήστης µπορεί  να επιλέξει ένα δοµ δοµικό στοιχείο του χάρτη, χάρτη, άµεσα από τον ίδιο το χάρτη, χάρτη, ή έµµεσα µµεσα επιλέγοντας κάποιο αντικείµ αντικείµενο που έχει αναπαράσταση στο χάρτη. χάρτη. Σε κάθε περίπτωση το επιλεγµ επιλεγµένο στοιχείο εµφανίζεται ως τέτοιο πάνω στο χάρτη. χάρτη. Το αντικείµ αντικείµενα και τα δοµ δοµικά στοιχεία που µπορούν  να επιλεχτούν παρουσιάζονται ως τέτοια. τέτοια. Το πλήθος των επιλογών χάρτη είναι απεριόριστο. απεριόριστο. Οι επιλογές χάρτη επιτρέπουν τον ορισµ ορισµό ερωτήσεων, ερωτήσεων, pushpins, waypoints. Ακόµ Ακόµη,  υπάρχει η έννοια της πολλαπλής επιλογής χάρτη. χάρτη. Ο χρήστης µπορεί  να επιλέξει περισσότερα από ένα δοµ δοµικά στοιχεία αν θέλει  να τα χρησιµ χρησιµοποιήσει ταυτόχρονα σε κάποια ερώτηση. ερώτηση. Οι επιλογές χάρτη µπορούν  να κλειδωθούν προσωρινά, προσωρινά, δίνοντας τη δυνατότητα για  νέες επιλογές, επιλογές, χωρίς  να επηρεάζουν ή  να επηρεάζονται από τις κλειδωµ κλειδωµένες, ένες, που µπορούν  να ανακληθούν οποιαδήποτε στιγµ στιγµή. Κλί µακα Χάρτη (Legend) Επίσης  υπάρχει η έννοια της κλίµ κλίµακας χάρτη, χάρτη, που δείχνει την αντιστοιχία ενός συγκεκριµ συγκεκριµένου µήκους χάρτη µε µια απόσταση στον φυσικό χώρο. χώρο. Ο χρήστης µπορεί  να µεγενθύνει ή  να µικρύνει το χάρτη, χάρτη, χωρίς απώλεια στη λεπτοµ λεπτοµέρεια αφού ο χάρτης είναι διανυσµ διανυσµατικός. ατικός. Κάθε αλλαγή του µεγέθους του χάρτη, χάρτη, αντικατοπτρίζεται σε µια αντίστοιχη αλλαγή της κλίµ κλίµακας χάρτη. χάρτη. Η κλίµ κλίµακα του χάρτη αναπαρίσταται µε τον καθιερωµ καθιερωµένο τρόπο των εναλλάξ άσπρο-µ άσπρο-µαύρο αύρο διαστηµ διαστηµάτων. άτων. Το µήκος της κλίµ κλίµακας είναι σταθερό, σταθερό, ανεξάρτητα από το µέγεθος χάρτη. χάρτη. Αυτό που αλλάζει δυναµ δυναµικά είναι η ένδειξη (σε µετρά, ετρά, ή/και σε οποιαδήποτε άλλη µονάδα µέτρησης) έτρησης) της απόστασης που αντιπροσωπεύει η σταθερού µήκους κλίµ κλίµακα. ακα. Το µέγεθος 100% σηµ σηµαίνει πως ο χάρτης που απεικονίζεται είναι σε σχέση 1:1 µε το αποθηκευµ αποθηκευµένο µέγεθος των διαστάσεων του αρχείου του χάρτη. χάρτη. Ο χάρτης συνδέεται µε το πραγµ πραγµατικό του µέγεθος της γεωγραφικής περιοχής που αντιπροσωπεύει µέσω της κλίµ κλίµακας και του

Σχήµ Σχήµα 37 Η επιλογή κατηγορίας γίνεται µε το πολύ οικείο, οικείο, τύπου windows explorer, user  interface, όπου φαίνεται παραστατικά η ιεραρχία των κατηγοριών και µπορούµ πορούµε να επεκτείνουµ επεκτείνουµε (expand) ή να συµ συµπτύξουµ πτύξουµε (collapse) κατά προτί µηση. ηση.

76

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

αναγραφόµ αναγραφόµενου µήκους. ήκους.

6.1.4 Αναπαράσταση ∆έντρου Κατηγοριών Το δέντρο κατηγοριών παρουσιάζεται σε ένα modal dialog box. Ο χρήστης αρχικά βλέπει τη ρίζα και το πρώτο επίπεδο  υποκατηγοριών.  υποκατηγοριών. Εκτός από το όνοµ όνοµα της κατηγορίας, κατηγορίας , εµφανίζεται ένα check box και ένα εικονίδιο, εικονίδιο, που µπορεί  να είναι συµ συµβολικό της κατηγορίας ή όµοιο για όλες. όλες. Με το εικονίδιο ο χρήστης βλέπει ή κρύβει τα παιδιά της κάθε κατηγορίας. κατηγορίας . Με το check box, επιλέγει τη κατηγορία ενδιαφέροντος. ενδιαφέροντος. Μπορεί  να επιλέξει µόνο µια κατηγορία αλλά το  υποσύστηµ  υποσύστηµα αυτό είναι εύκολα επεκτάσιµ επεκτάσιµο και για την επιλογή περισσότερων κατηγοριών ή ακόµ ακόµη και τη σύνθεση boolean ερωτήσεων. ερωτήσεων.

6.1.5 Παράθυρα ∆ιαλόγου Η σχεδίαση των παραθύρων διαλόγου της εφαρµ εφαρµογής βασίζεται στον ορισµ ορισµό ενός προτύπου στιλ που στιλ  που κάνει την εµφάνιση τους συνεπή. συνεπή.

Πινέζες Χάρτη (Pushpins) Στα pushpins εµφανίζονται modal dialog boxes όταν θέλουµ θέλουµε  να προσθέσουµ προσθέσουµε ένα  pushpin ή  να αλλάξουµ αλλάξουµε ένα ήδη  υπάρχον.  υπάρχον. Το παράθυρο διαλόγου που εµφανίζεται είναι το ίδιο και για τις δύο περιπτώσεις. περιπτώσεις.  Όταν πρόκειται για αλλαγή, αλλαγή, τότε τα πεδία είναι γεµ γεµάτα µε τις  υπάρχουσες τιµ τιµές. ές. ∆εν µπορούµ πορούµε  να αλλάξουµ αλλάξουµε τη θέση του  pushpin. Αν για παράδειγµ παράδειγµα θέλουµ θέλουµε  να αλλάξουµ αλλάξουµε τη θέση του ξενοδοχείου µας, ας, τότε θα πρέπει να πρέπει  να σβήσουµ σβήσουµε το παλιό και να και  να ορίσουµ ορίσουµε ένα νέο ένα  νέο.. Στοιχεία Χρήστη (User Profile)

Σχήµ Σχήµα 38 Η εγγραφή και η αλλαγή των στοιχείων του χρήστη γίνεται από το ίδιο dialog box, που στη δεύτερη περίπτωση έχει συµ συµπληρωµ πληρωµένα τα στοιχεία του χρήστη από τη βάση δεδοµ δεδοµένων. ένων.

Σχήµ Σχήµα 39 Ο ορισµ ορισµός ενός νέου pushpin και η αλλαγή ενός υπάρχοντος γίνεται από το ίδιο dialog box, που στη δεύτερη περίπτωση έχει γεµ γεµάτα τα αντίστοιχα πεδία από τη βάση δεδοµ δεδοµένων. ένων.

77

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

Ο χρήστης µπορεί  να αλλάξει τα στοιχεία του, του, όπως το e-mail και το σύνδεσµ σύνδεσµο στη προσωπική του σελίδα από ένα modal dialog box, ίδιο µε αυτό που εµφανίζεται για τη διαδικασία της εγγραφής του. του.

Κοµ Κοµβικά Σηµ Σηµεία ∆ιαδροµ ∆ιαδροµής (Waypoints) Το παράθυρο διαλόγου που εµφανίζεται ζητάει µόνο το όνοµ όνοµα που θέλουµ θέλουµε  να αναθέσουµ αναθέσουµε στο καινούριο waypoint. Οι θέσεις και τα ονόµ ονόµατα των waypoints δεν αλλάζουν. αλλάζουν. Μπορούµ Μπορού µε µόνο να όνο  να αλλάξουµ αλλάξουµε τη σειρά τους. τους.

6.1.6 Μενού Επιλογών (Menus) Τα µενού επιλογών είναι σχεδιασµ σχεδιασµένα σε οµάδες. άδες. Για τη διευκόλυνση του χρήστη οι τίτλοι των µενού χρησιµ χρησιµοποιούν το συνήθες εφέ mouse over, για  να  υποδείξουν πως είναι ενεργά. ενεργά. Οι τίτλοι των µενού, ενού, σε µερικές περιπτώσεις εκτελούν κάποια ενέργεια. ενέργεια. Για παράδειγµ παράδειγµα ο τίτλος pushpin, φορτώνει τα pushpins του χρήστη. χρήστη.  Όπου  υπάρχουν περισσότερες από µια ενέργειες για ένα µενού, ενού, τότε στο πλάι του τίτλου εµφανίζεται ένα χαρακτηριστικό βελάκι, βελάκι, που όταν πατηθεί φανερώνει, φανερώνει, στη θέση των  υπόλοιπων τίτλων του µενού, ενού, τις επιλογές του συγκεκριµ συγκεκριµένου µενού. ενού. Για παράδειγµ παράδειγµα στα  pushpin µπορού µ πορούµ µε  να προσθέσουµ προσθέσουµε,  να αφαιρέσουµ αφαιρέσουµε και  να αλλάξουµ αλλάξουµε ένα pushpin. Οι κρυµµ κρυµµένες ένες επιλογές χρησιµ χρησιµοποιούνται για τις ενέργειες που δεν πραγµ πραγµατοποιούνται τόσο συχνά και φανερώνουν την ιεραρχία και το δοµ δοµηµένο σχεδιασµ σχεδιασµό της αλληλεπίδρασης µε το χρήστη. χρήστη. Τέλος έχουµ έχουµε τα µενού τύπου φόρµ φόρµας, ας, όπως αυτό των αντικειµ αντικειµένων, ένων, που ενεργοποιείται µε την αποστολή της συµ συµπληρωµ πληρωµένης φόρµ φόρµας. ας.

Αντικεί µενα (Items) Για την ανάκτηση των αντικειµ αντικειµένων  υπάρχουν τέσσερα κριτήρια που µπορούν  να χρησιµ χρησιµοποιηθούν το καθένα από µόνο του, του, ή σε συνδυασµ συνδυασµό. Στη δεύτερη περίπτωση, περίπτωση, µπορούµ πορούµε  να επιτύχουµ επιτύχουµε πολύπλοκες ερωτήσεις, ερωτήσεις, καθώς και  να περιορίσουµ περιορίσουµε το πλήθος των αποτελεσµ αποτελεσµάτων αφού τα κριτήρια χρησιµ χρησιµοποιούνται µε τη boolean σχέση AND. ∆ιακρίνουµ ∆ιακρίνουµε τα κριτήρια, κριτήρια , ονόµ ονόµατος και κατηγορίας αντικειµ αντικειµένου, ένου, απόστασης από τη παρούσα θέση χρήστη και επιλογές χάρτη. χάρτη. Το τελευταίο θα επιστρέψει µόνο τα αντικείµ αντικείµενα που βρίσκονται στις επιλεγµ επιλεγµένες περιοχές χάρτη. χάρτη. Η κατηγορία των

Σχήµ Σχήµα 40 Μπορούµ Μπορούµε να ψάξουµ ψάξουµε για ένα αντικεί µενο µε βάση το όνοµ όνοµα ή τη κατηγορία του. του.  Ακόµ  Ακόµη, µπορού µπορούµ µε να ορίσουµ ορίσουµε τη µέγιστη απόσταση από τη θέση µας, ας, ή να επιλέξουµ επιλέξουµε συγκεκριµ συγκεκριµένες περιοχές του χάρτη. χάρτη.

Σχήµ Σχήµα 41 Η οµάδα εργαλείων µε τις επιλογές για τον παρόντα χρήστη διακρίνεται µε τίτλο το όνοµ όνοµα του. του. Το µενού pushpins γίνεται pop up.

78

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

αντικειµ αντικειµένων επιλέγεται από το υποσύστη το  υποσύστηµ µα επιλογής κατηγορίας που είναι κοινό και για το  υποσύστηµ  υποσύστηµα µονοπατιών. ονοπατιών. Η επιλεγµ επιλεγµένη κατηγορία στη συνέχεια εµφανίζεται στο text box, που  υπάρχει για το σκοπό αυτό. αυτό. Στην επιλογή ονόµ ονόµατος αντικειµ αντικειµένου µπορούµ πορούµε  να εισάγουµ εισάγουµε στο αντίστοιχο text box τµήµα του ονόµ ονόµατος, ατος, οπότε θα µας επιστραφεί το σύνολο των αντικειµ αντικειµένων που περιέχουν στο όνοµ όνοµα τους τη συµ συµβολοσειρά αυτή. αυτή. Η απόσταση από τη παρούσα θέση χρήστη (proximity) χρησιµ χρησιµοποιείται από το σύστηµ σύστηµα εφόσον έχουµ έχουµε εισάγει κάποια τιµ τιµή στο αντίστοιχο text box. Η τιµ τιµή θεωρείται -χωρίς αυτό  να αποτελεί περιορισµ περιορισµό του σχεδιασµ σχεδιασµού του συστήµ συστήµατοςατος- ότι είναι σε µέτρα και έχει άνω φράγµ φράγµα το 9999µ. Για  να χρησιµ χρησιµοποιήσουµ οποιήσουµε τις  υπάρχουσες επιλογές χάρτη τσεκάρουµ τσεκάρουµε το αντίστοιχο check   box. Τέλος, Τέλος, ο χρήστης µπορεί  να ζητήσει τις προτάσεις του συστήµ συστήµατος, ατος, που βασίζονται στις επιλογές των ειδικών. ειδικών.

Χρήστης (User) Η οµάδα επιλογών του χρήστη ξεχωρίζει, ξεχωρίζει, έχοντας σαν τίτλο το όνοµ όνοµα του. του. Υπάρχουν τρεις επιλογές. επιλογές. Με την επιλογή profile, µπορεί µπορεί  να ενηµ ενηµερώσει τα στοιχεία που έχει δώσει στο σύστηµ σύστηµα κατά την εγγραφή του. του. Με το position, µπορεί µπορεί  να εισάγει µια επιλογή στο χάρτη σαν τη θέση όπου βρίσκεται τη δεδοµ δεδοµένη χρονική στιγµ στιγµή. Το  υποσύστηµ  υποσύστηµα καταγραφής της θέσης του είναι σχεδιασµ σχεδιασµένο έτσι ώστε  να µπορεί  να πάρει τη θέση του χρήστη από όπου χρειάζεται. χρειάζεται. Για παράδειγµ παράδειγµα θα µπορούσε  να παίρνει είσοδο από µια συσκευή GPS, ή σε ένα κάπως διαφορετικό σενάριο  να θεωρεί το σύστηµ σύστηµα αυτόµ αυτόµατα σαν θέση του χρήστη τη θέση του τελευταίου αντικειµ αντικειµένου για το οποίο ζήτησε πληροφορίες. πληροφορίες. Στο παρόν σύστηµ σύστηµα έχουµ έχουµε επιλέξει αυτό το τρόπο καθορισµ καθορισµού θέσης για  να µπορούµ πορούµε  να δοκιµ δοκιµάζουµ άζου µε ευέλικτα τις διάφορες λειτουργίες, λειτουργίες, που εξαρτώνται από τη θέση, θέση, όπως την κοντινότητα (proximity). Το µενού pushpins εµφανίζει τα pushpins του χρήστη στο παράθυρο των αποτελεσµ αποτελεσµάτων. άτων. Το µενού αυτό γίνεται pull-up, αντικαθιστώντας τα άλλα µενού αυτής της οµάδας, άδας, µε  υποεπιλογές που αφορούν τα pushpins. Αν ο χρήστης επιλέξει κάποιο από τα pushpins, στο παράθυρο των αποτελεσµ αποτελεσµάτων, άτων, µπορεί µε την επιλογή edit,  να αλλάξει κάποια από τα στοιχεία που είχε εισάγει αρχικά. αρχικά . Με την επιλογή new, ορίζει  νέο pushpin για µια επιλογή του χάρτη και µε την επιλογή delete σβήνει το επιλεγµ επιλεγµένο στο παράθυρο των αποτελεσµ αποτελεσµάτων pushpin. Κάθε αλλαγή στα  pushpins πραγµ πραγµατοποιείται άµεσα στη βάση δεδοµ δεδοµένων και στη συνέχεια ενηµ ενηµερώνεται το παράθυρο των αποτελεσµ αποτελεσµάτων µε τη νέα τη  νέα λίστα pushpins. Πλάνο Μονοπατιού (Path Planner)

79

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

Σχήµ Σχήµα 42 Η οµάδα εργαλείων για τη σχεδίαση µονοπατιού περιέχει ένα πεδίο όπου εµφανίζεται ο τίτλος της κατηγορίας ενδιαφέροντος για µονοπάτι. ονοπάτι.  Ακόµ  Ακόµη, υπάρχει το pull down µενού µενού για τα waypoints.

Σχήµ Σχήµα 43 Μπορούµ Μπορούµε να δούµ δούµε ποιοι χρήστες είναι ενεργοί  και που βρίσκονται πάνω στο χάρτη. χάρτη. Προαιρετικά µπορούµ πορούµε να δούµ δούµε µόνο αυτούς που βρίσκονται κοντά µας. ας.

Στο πλάνο µονοπατιού διακρίνουµ διακρίνουµε τρεις επιλογές, επιλογές, waypoints, shortest, advanced. Με τα waypoints µπορού µπορούµ µε  να δούµ δούµε στο παράθυρο των αποτελεσµ αποτελεσµάτων και επιλέγοντας τα ονόµ ονόµατα της λίστας πάνω στο χάρτη, χάρτη, ποια σηµ σηµεία έχουµ έχουµε ορίσει σαν κοµ κοµβικά του µονοπατιού που θέλουµ θέλουµε  να φτιάξουµ φτιάξουµε. Για τη διαχείριση της λίστας των waypoints, έχουµ έχουµε ένα pull down µενού µ ενού,, που εµφανίζεται στη θέση των  υπόλοιπων µενού αυτής της οµάδας. άδας. Με τις  υποεπιλογές waypoints µπορού µπορούµ µε  να ορίσουµ ορίσουµε  νέα waypoints σε σηµ σηµεία (positions) του χάρτη, χάρτη,  να διαγράψουµ διαγράψουµε κάποιο από τα  υπάρχοντα και  να αλλάξουµ αλλάξουµε τη σειρά τους, τους, που καθορίζει το σχεδιασµ σχεδιασµό του µονοπατιού. ονοπατιού. Η χρήση των waypoints για τη σχεδίαση ενός µονοπατιού είναι προαιρετική. προαιρετική. Κατά κανόνα ένα µονοπάτι ορίζεται από δύο ή περισσότερα σηµ σηµεία που επιλέγει ο χρήστης έχοντας πατηµ πατηµένο το πλήκτρο shift (λειτουργικότητα (λειτουργικότητα πολλαπλής επιλογής). επιλογής). Με την επιλογή shortest το σύστηµ σύστηµα χρησιµ χρησιµοποιεί τον επιθυµ επιθυµητό τρόπο (waypoints, map positions),  να εµφανίσει άµεσα στο χάρτη το συντοµ συντοµότερο µονοπάτι ανά ανάµ µεσα στα σηµ σηµεία κόµ κόµβους της διαδροµ διαδροµής. ής. Παράλληλα, Παράλληλα, στο παράθυρο των αποτελεσµ αποτελεσµάτων εµφανίζονται τα ονόµ ονόµατα των οδών από τις οποίες περνάει το µονοπάτι. ονοπάτι. Επιπλέον, Επιπλέον, δίνονται οδηγίες πλοήγησης από οδό σε οδό. οδό. Για τη χρήση της λειτουργικότητας advanced θα πρέπει πρώτα  να επιλεχτεί µια κατηγορία ενδιαφέροντος, ενδιαφέροντος, µε το εργαλείο επιλογής κατηγορίας, κατηγορίας , που εµφανίζεται µε το πάτηµ πάτηµα του αντίστοιχου εικονιδίου, εικονιδίου, δίπλα στην επιλογή advanced. Το όνοµ όνοµα της επιλεγµ επιλεγµένης κατηγορίας εµφανίζεται στο text box κάτω από το advanced.  Όπως και στο συντοµ συντοµότερο µονοπάτι, ονοπάτι, θα πρέπει  να επιλεγχθούν δύο ή περισσότερα σηµ σηµεία χάρτη είτε άµεσα, εσα, είτε µε τη λειτουργικότητα waypoints. Το καλύτερο µονοπάτι εµφανίζεται άµεσα πάνω στο χάρτη µε το πάτηµ πάτηµα του advanced. Παράλληλα, Παράλληλα, ανακτώνται από τη βάση δεδοµ δεδοµένων τα αντικείµ αντικείµενα της επιθυµ επιθυµητής κατηγορίας και κατασκευάζεται η περιγραφή του µονοπατιού µε κείµ κείµενο, ενο, όπως και στη περίπτωση του shortest. Η διαφορά είναι πως τα ονόµ ονόµατα των οδών µπορούν  να επεκταθούν φανερώνοντας τα περιοχόµ περιοχόµενα αντικείµ αντικείµενα, ενα, τα οποία µε τη σειρά τους διατηρούν πλήρως τις ιδιότητες που ορίζει το µοντέλο των αποτελεσµ αποτελεσµάτων. άτων. Εκτός από το βέλτιστο µονοπάτι παρουσιάζονται και τα µονοπάτια που έχουν µικρότερο βαθµ βαθµό µ ε το σκεπτικό ότι ο χρήστης µπορεί να σπουδαιότητας, σπουδαιότητας, µε πορεί  να επιθυµ επιθυµεί κάποιο από αυτά µε κάποιο δικό του κριτήριο. κριτήριο .

Ενεργοί Χρήστες Ενεργοί  Χρήστες (On-Line Users) Το µενού των ενεργειών που έχει στη διάθεση του ο χρήστης περιλαµ περιλαµβάνει την εµφάνιση των χρηστών που είναι επίσης ενεργοί και προαιρετικά την εµφάνιση µόνο

80

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

αυτών που βρίσκονται εντός της κοντινότητας που ορίζει. ορίζει. Οι χρήστες εµφανίζονται στο παράθυρο των αποτελεσµ αποτελεσµάτων όταν επιλεχτεί το µενού Users. Αν εισαχθεί τιµ τιµή κοντινότητας , µέχρι µέχρι 9999µ, τότε λαµ λαµβάνεται και αυτό το κριτήριο υπόψιν κριτήριο  υπόψιν..

Επιλογές Χάρτη (Map Options) Οι επιλογές χάρτη εµφανίζονται σε ένα pull down µενού µ ενού και επιτρέπουν τη διαφοροποίηση της συµ συµπεριφοράς του χάρτη, χάρτη, για όλη τη διάρκεια του session ή µέχρι  να αλλάξουµ αλλάξουµε τα map options. Μπορούµ Μπορούµε  να κάνουµ κάνουµε το χάρτη να χάρτη  να κεντράρει σε κάθε  νέα επιλογή µας. ας. Για τη λειτουργικότητα των πολλαπλών επιλογών, επιλογών, µπορούµ πορούµε  να διαλέξουµ διαλέξουµε κάθε  νέα επιλογή χάρτη  να προστίθεται στις προηγούµ προηγούµενες -κάτι που γίνεται κανονικά πατώντας το πλήκτρο shift, κατά την επιλογή µιας περιοχής χάρτη. χάρτη. Τέλος, Τέλος, µπορούµ πορούµε  να κλειδώσουµ κλειδώσουµε τις παρούσες επιλογές χάρτη, χάρτη, ώστε κάνοντας  νέες επιλογές  να µην επηρεάζεται η οµάδα των παλιότερων επιλογών, επιλογών, που οποιαδήποτε στιγµ στιγµή µπορεί  να ενεργοποιηθεί και  να εµφανιστεί ξανά, ξανά, διαλέγοντας το αντίστοιχο µενού των map options.

6.1.7 Βοήθεια στη Χρήση της Εφαρµογής  Όποτε ο χρήστης αντιµ αντιµετωπίζει πρόβληµ πρόβληµα µε τη χρήση κάποιας λειτουργίας µπορεί, πορεί, άµεσα  να ανατρέξει στη βοήθεια που παρουσιάζεται στο κάτω αριστερά µέρος της εφαρµ εφαρµογής. ογής. Η βοήθεια αυτή κάνει την εµφάνιση της κάθε φορά που ο χρήστης φέρνει το δείκτη του ποντικιού πάνω από κάποια επιλογή. επιλογή. Οποιοδήποτε αντικείµ αντικείµενο φαίνεται πάνω στην οθόνη, οθόνη, µπορεί  να έχει µια σύντοµ σύντοµη αντιπροσωπευτική βοήθεια. βοήθεια. Επιπλέον το µοντέλο είναι επεκτάσιµ επεκτάσιµο, ώστε  να εµφανίζει βοήθεια και κατά βήµ βήµατα λειτουργιών πολλών σταδίων, σταδίων, όπως για παράδειγµ παράδειγµα η κατασκευή µονοπατιού. ονοπατιού.

6.1.8 Σενάρια Χρήσης Η λειτουργικότητα στα διάφορα σενάρια χρήσης πιστοποιεί την αποτελεσµ αποτελεσµατικότητα των οντοτήτων και των µοντέλων αλληλεπίδρασης. αλληλεπίδρασης.

Ορισµ Ορισµός pushpin Η πρώτη ενέργεια του χρήστη για τον ορισµ ορισ µό ενός pushpin είναι η επιλογή µιας περιοχής του χάρτη, χάρτη, που µπορεί  να είναι οποιουδήποτε τύπου -position, route, region. Στη συνέχεια µε το pull up µενού µενού pushpins επιλέγει new, για  να εµφανιστεί το modal dialog box της φόρµ φόρµας µε τα χαρακτηριστικά του  νέου pushpin. Υποχρεωτικά θα πρέπει  να εισάγει το όνοµ όνοµα του pushpin, για  να µπορεί  να εµφανίζεται στη λίστα, λίστα, και προαιρετικά  να δώσει σύντοµ σύντοµη περιγραφή καθώς και ένα σύνδεσµ σύνδεσµο σε µια άλλη σελίδα. σελίδα.  Όποτε θέλει µπορεί να πορεί  να ακυρώσει τον ορισµ ορισµό  νέου pushpin, πατώντας cancel ή κλείνοντας το παράθυρο. παράθυρο. Για την εισαγωγή του pushpin στη βάση δεδοµ δεδοµένων πατάει ok, το οποίο κλείνει το παράθυρο και παράλληλα εµφανίζεται η  νέα λίστα των  pushpins στο παράθυρο των αποτελεσµ αποτελεσµάτων. άτων. Ορισµ Ορισµός waypoint Ο ορισµ ορισµός waypoint είναι ένα υποσύνολο ένα  υποσύνολο του ορισµ ορισµού pushpin. Η επιλογή χάρτη που θα αποθηκευτεί σαν waypoint µπορεί µπορεί  να είναι µόνο σηµ σηµείο (position). Στο παράθυρο διαλόγου που εµφανίζεται συµ συµπληρώνουµ πληρώνουµε το όνοµ όνοµα του waypoint, που µπορεί  να

81

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

είναι το ίδιο, ίδιο, αν για παράδειγµ παράδειγµα θέλουµ θέλουµε  να φτιάξουµ φτιάξουµε ένα κλειστό µονοπάτι. ονοπάτι. Τα waypoints είναι προσωρινά και δεν αποθηκεύονται στη βάση δεδοµ δεδοµένων. ένων.

Ορισµ Ορισµός Μονοπατιού Αρχικά αποφασίζουµ αποφασίζουµε αν θα χρησιµ χρησιµοποιήσουµ οποιήσουµε waypoints ή σηµ σηµεία του χάρτη. χάρτη. Στη δεύτερη περίπτωση θα πρέπει  να κάνουµ κάνουµε µια πολλαπλή επιλογή χάρτη, χάρτη, εισάγοντας  νέα σηµ σηµεία µε τη σειρά που θέλουµ θέλουµε  να περάσουµ περάσουµε από αυτά. αυτά. Στη συνέχεια επιλέγουµ επιλέγουµε συντοµ συντοµότερο µονοπάτι, ονοπάτι, ενώ για το advanced µονοπάτι µονοπάτι θα πρέπει  να διαλέξουµ διαλέξουµε κατηγορία ενδιαφέροντος. ενδιαφέροντος. Το δροµ δροµολόγιο εµφανίζεται στο παράθυρο των αποτελεσµ αποτελεσµάτων, άτων, µε οδηγίες πλοήγησης και στην περίπτωση του advanced οι δρόµ δρόµοι περιέχουν τα items που βρέθηκαν. βρέθηκαν. Ανάκτηση Αντικειµ Αντικειµένων Ο παραδοσιακός τρόπος ανάκτησης αντικειµ αντικειµένου είναι  να συµ συµπληρώσουµ πληρώσουµε το όνοµ όνοµα -ή ένα τµήµα του ονόµ ονόµατος-, ατος-, ή/και τη κατηγορία του αντικειµ αντικειµένου. ένου. Αν θέσουµ θέσουµε περισσότερα από ένα κριτήρια αναζήτησης τότε το κάθε αντικείµ αντικείµενο που επιστρέφεται ικανοποιεί κάθε κριτήριο. κριτήριο . Εναλλακτικά µπορούµ πορούµε  να επιλέξουµ επιλέξουµε περιοχές στο χάρτη µε τη λειτουργικότητα πολλαπλής επιλογής και  να πάρουµ πάρουµε τα αντικείµ αντικείµενα που βρίσκονται στις επιλεγµ επιλεγµένες τοποθεσίες. τοποθεσίες. Τέλος εφόσον έχουµ έχουµε καθορίσει τη θέση χρήστη στο χάρτη, χάρτη, µπορούµ πορούµε  να χρησιµ χρησιµοποιήσουµ οποιήσουµε το κριτήριο της κοντινότητας (proximity), µε µε παράµ παράµετρο τη µέγιστη απόσταση, απόσταση, από τη παρούσα θέση χρήστη, χρήστη, των αντικειµ αντικειµένων που θα επιστραφούν. επιστραφούν. Ανάκτηση Ενεργών Χρηστών Για την παρουσίαση των ενεργών χρηστών στο παράθυρο των αποτελεσµ αποτελεσµάτων αρκεί  να επιλέξουµ επιλέξουµε την αντίστοιχη επιλογή. επιλογή. Ιδιαίτερο ενδιαφέρον έχει η επιλογή κοντινότητας που µπορεί  να εφαρµ εφαρµοστεί σαν κριτήριο για την ανάκτηση των χρηστών, χρηστών, αν έχουµ έχουµε προηγουµ προηγουµένως ορίσει τη θέση µας πάνω στο χάρτη. χάρτη. Η οµοιοµ οιοµορφία αντιµ αντιµετώπισης των διαφορετικών οντοτήτων του συστήµ συστήµατος φανερώνεται εδώ, εδώ, αφού µπορούµ πορούµε  να επιλέξουµ επιλέξουµε τη θέση µας πάνω στο χάρτη και στη συνέχεια µε shift select  να επιλέξουµ επιλέξουµε ένα από τους χρήστες. χρήστες. Με αυτό το τρόπο ουσιαστικά έχουµ έχουµε ορίσει δύο σηµ σηµεία στο χάρτη, χάρτη, οπότε τώρα µπορούµ πορούµε  να εφαρµ εφαρµόσουµ όσουµε το shortest path, για  να πάρουµ πάρουµε το συντοµ συντοµότερο µονοπάτι που µας ενώνει µε ένα χρήστη του συστήµ συστήµατος. ατος.

6.2 Συνολικά Σύµ Σύµφωνα µε τη σχεδίαση του User Interface τοποθετήθηκαν οι οµάδες εργαλείων στην περιοχή των εργαλείων και ο χάρτης, χάρτης, η βοήθεια και τα αποτελέσµ αποτελέσµατα στα αντίστοιχα σηµ σηµεία. εία. Η διάταξη του User Interface  υλοποιήθηκε στον Microsoft Internet Explorer µε µε χρήση HTML και CSS. Η αλληλεπίδραση µε το User Interface βασίστηκε στις δυνατότητες του Map ActiveX Control και της Dynamic HTML. Η  υλοποίηση του User Interface και των λειτουργιών του συστήµ συστήµατος µελετώνται στην επόµ επόµενο µέρος αυτής της ενότητας. ενότητας.

82

ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΕΦΑΡΜΟΓΗΣ

Σχήµ Σχήµα 44 Το ολοκληρωµ ολοκληρωµένο User Interface της εφαρµ εφαρµογής. ογής.

83

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

7 ΑΡΧΙΤΕΚΤΟΝΙΚΗ  ΥΛΟΠ  Υ ΛΟΠΟΙΗΣΗ ΟΙΗΣΗ

ΣΥΣΤΗΜΑΤΟΣ

ΚΑΙ

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

84

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

7.1  Υποσυστήµατα 7.1.1 Client Η αλληλεπίδραση µε το χρήστη γίνεται µέσα σε ένα παράθυρο του Microsoft Internet Explorer 4.01 4.01, στο οποίο έχουν αφαιρεθεί οι γνωστές από τη πλοήγηση στο world wide web µπάρες µπάρες εργαλείων, εργαλείων, της διεύθυνσης, διεύθυνσης, των προτιµ προτιµήσεων, ήσεων, των κουµ κουµπιών. πιών. Αυτό που βλέπει ο χρήστης σαν παράθυρο της εφαρµ εφαρµογής δε µοιάζει καθόλου στον γνωστό  browser, αν και η  υλοποίηση βασίζεται σε αυτόν. αυτόν.

7.1.2 Server  Στη πλευρά του Server έχου Server  έχουµ µε τον Microsoft Internet Information Server (IIS), στον οποίο γίνεται η επεξεργασία των Active Server Pages (ASP) της εφαρµ εφαρµογής. ογής. Στα ASP έχουµ έχουµε  υλοποιήσει τη λογική της επεξεργασίας των δεδοµ δεδοµένων, ένων, ώστε  να δώσουµ δώσουµε στο χρήστη την απαιτούµ απαιτούµενη πληροφορία στο παράθυρο των αποτελεσµ αποτελεσµάτων. άτων. Η βάση δεδοµ δεδοµένων βρίσκεται στη Microsoft Access και οι ερωτήσεις SQL γίνονται µέσω της επέκτασης Access Jet SQL Engine, αφού η Access δεν είναι RDBMS. Η διαχείρηση των ερωτήσεων SQL γίνεται µέσω του επιπέδου αφαίρεσης Active Data Objects (ADO), το οποίο προσφέρει αντικείµ αντικείµενα πρόσβασης σε δεδοµ δεδοµένα σχεσιακού τύπου (πίνακες), πίνακες), ανεξάρτητα από τον τύπο της βάσης δεδοµ δεδοµένων. ένων.

Σχήµ Σχήµα 45 Η αρχιτεκτονική των τεχνολογιών στον client και στον server. Βλέπουµ Βλέπουµε την ιεραρχία καθώς και τη διασύνδεση των επιµ επιµέρους τµηµάτων. άτων.

7.1.3 Client - Server Communication µε τον server και server  και τη δοµ Για την επικοινωνία του client µε δοµηµένη µεταφορά δεδοµ δεδοµένων ελέγχου και πληροφορίας σχεδιάστηκε ένα µεθοδικό πλαίσιο εργασίας, εργασίας, που  να επιτρέπει την εύκολη µετατροπή και επέκταση. επέκταση. Η αποστολή εντολών ελέγχου περιορίζεται µόνο στον client, αφού ο web server µπορεί µπορεί  να στείλει µόνο σελίδες HTML. Ο client όµως έχει τη δυνατότητα κατά την κλήση των Active Server Page αρχείων, αρχείων, που  υλοποιούν τις δυναµ δυναµικές λειτουργίες στον server,  να περάσει παραµ παραµέτρους. έτρους. Η τεχνολογία ASP, προσφέρει ένα επίπεδο αφαίρεσης πάνω από το

85

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

πρωτόκολλο HTTP. Οι συνηθισµ συνηθισµένες µέθοδοι αιτήσεων προς τον web server µε µε παραµ παραµέτρους είναι η GET και η POST. Η µέθοδος GET είναι πολύ οικεία σε όποιον έχει χρησιµ χρησιµοποιήσει µια µηχανή ψαξίµ ψαξίµατος στο web, αφού οι παράµ παράµετροι που εµφανίζονται στο address bar  κάνουν χρήση αυτής της µεθόδου. εθόδου. Η µέθοδος POST είναι επίσης πολύ οικεία, οικεία, αφού κάθε φόρµ φόρµα στο web αποστέλλεται µε αυτό το τρόπο. τρόπο. H µέθοδος µ έθοδος GET έχει το πλεονέκτηµ πλεονέκτηµα -ή µειονέκτηµ ειονέκτηµα- ότι βλέπουµ βλέπουµε τις παραµ παραµέτρους που στέλνουµ στέλνουµε. Το µέγεθος των παραµ παραµέτρων που µπορούµ πορούµε  να περάσουµ περάσουµε δεν είναι µεγάλο (4kb) και αυτό µας επέβαλε τη χρήση της µεθόδου POST, σε µερικές περιπτώσεις. περιπτώσεις. Από την άλλη η µέθοδος POST είναι λιγότερο άµεση, εση, αφού θα πρέπει  να κατασκευάσουµ κατασκευάσουµε -δυναµ δυναµικάικά- µια κρυµµ κρυµµένη ένη φόρµ φόρµα και  να αποστείλουµ αποστείλουµε τα περιεχόµ περιεχόµενα της στον server  για επεξεργασία, επεξεργασία, όπου δεν έχει µεγάλη διαφορά ποια µέθοδο χρησιµ χρησιµοποιείται, οποιείται, όπως µπορεί  να δει κανείς από τη λειτουργικότητα του αντικειµ αντικειµένου Request. Για τον client όµως η χρήση της µεθόδου POST κάνει των κώδικα λιγότερο κατανοητό. κατανοητό. Το σχήµ σχήµα που ακολουθήσαµ ακολουθήσαµε περιλαµ περιλαµβάνει ένα ASP αρχείο στον server, όπου οι διάφορες λειτουργίες του είναι τοποθετηµ τοποθετηµένες σε µεθόδους. εθόδους. Ο client ζητάει αυτό το µε τη διαφορά ότι περνάει σαν παράµ αρχείο σαν ένα URL, µε παράµετρο τη επιθυµ επιθυµητή µέθοδο και τις αναγκαίες παραµ παραµέτρους για αυτή τη µέθοδο. έθοδο. Ο server µε µε το αντικείµ αντικείµενο Request παίρνει τις παραµ παραµέτρους, έτρους, επιλέγει τη ζητούµ ζητούµενη µέθοδο και την καλεί µε τις παραµ παραµέτρους του χρήστη. χρήστη.  Όταν ο client χρησιµ χρησιµοποιεί τη µέθοδο GET, τότε οι παράµ παράµετροι βρίσκονται µέσα στην διεύθυνση που ζητείται. ζητείται. Για παράδειγµ παράδειγµα η εισαγωγή ενός νέου ενός  νέου pushpin στον server γράφεται server γράφεται:: pushpins.asp?Method=Insert&MOID=1345&Title=myHome& TextBrief=This%is%my%home&URL=http://corto.ced.tuc.gr/home/

Στη περίπτωση που χρησιµ χρησιµοποιείται η µέθοδος POST, επειδή πρέπει  να στείλουµ στείλουµε πολλά δεδοµ δεδοµένα -όπως στα µονοπάτια ή στην γειτνίασηγειτνίαση- τότε έχουµ έχουµε: <input <input type=Hid type=Hidden den name=Sel name=Selecte ected d value=213,245,346,476,1234,436,4745,345,1234,3432,145,...>

Αυτό που κάνουµ κάνουµε δηλαδή, δηλαδή, είναι  να δηµ δηµιουργήσουµ ιουργήσουµε µια κρυµµ κρυµµένη ένη HTML φόρµ φόρµα στο παράθυρο των αποτελεσµ αποτελεσµάτων την οποία γεµ γεµίζουµ ίζου µε µε τις απαιτούµ απαιτούµενες παραµ παραµέτρους και την στέλνουµ στέλνουµε στον server.

7.1.4 Λειτουργίες στον Client Οι λειτουργίες που έχουν  να κάνουν µε δοµ δοµικά στοιχεία του χάρτη πραγµ πραγµατοποιούνται στον client, όπου βρίσκεται το Map ActiveX Control. Ανάµ Ανάµεσα σε αυτές ο  υπολογισµ  υπολογισµός του µονοπατιού σαν σύνολο από διαδοχικά routes, οι γωνίες των διαδοχικών routes, η γειτνίαση. γειτνίαση. O client, σύµ σύµφωνα µε το παραπάνω σχήµ σχήµα επικοινωνίας, επικοινωνίας, αποστέλλει τα δεδοµ δεδοµένα αυτά στον server. Στον client αποθηκεύονται τα waypoints, τα ονόµ ονόµατα των δρόµ δρόµων και των κατηγοριών. κατηγοριών. Αν και το σύστηµ σύστηµα εσωτερικά επικοινωνεί µε τα αντίστοιχα µοναδικά αναγνωριστικά -από τη βάση δεδοµ δεδοµένωνένων- για την επικοινωνία µε το χρήστη απαιτούνται τα ονόµ ονόµατα. ατα.

7.1.5 Λειτουργίες στον Server 

86

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

Στην πλευρά του server  γίνεται η ανάκτηση των αντικειµ αντικειµένων και η µορφοποίηση των αποτελεσµ αποτελεσµάτων. άτων. Ο server λειτουργεί server λειτουργεί σαν ενδιάµ ενδιάµεσος για τη σύνδεση µε τη βάση δεδοµ δεδοµένων, ένων, προσφέροντας έτσι ένα επίπεδο αφαίρεσης που προφυλάσσει τον client από αλλαγές και επεκτάσεις. επεκτάσεις. Επίσης προφυλάσσει τη βάση δεδοµ δεδοµένων από µη εξουσιοδοτηµ εξουσιοδοτηµένη χρήση. χρήση. Ακόµ Ακόµη, ο server µορφοποιεί µορφοποιεί τις εγγραφές της βάσης δεδοµ δεδοµένων, ένων, ώστε  να παρουσιαστούν σύµ σύµφωνα µε το µοντέλο των αποτελεσµ αποτελεσµάτων. άτων. Αυτό ισχύει για όλες τις µορφές πληροφορίας του συστήµ συστήµατος, ατος, paths, items,  pushpins, waypoints, waypoints, users. Το Map ActiveX Control βρίσκεται στον server  αρχικά, αρχικά, αλλά αφού εγκατασταθεί στον client, µαζί µαζί µε τις απαιτούµ απαιτούµενες βιβλιοθήκες  υποστήριξης,  υποστήριξης, αποστέλλεται ξανά µόνο σε περίπτωση  νέας βελτιωµ βελτιωµένης έκδοσης. έκδοσης. Η εγκατάσταση και οι ενηµ ενηµερώσεις γίνονται αυτόµ αυτόµατα, ατα, χωρίς την εµπλοκή του χρήστη. χρήστη. Mόνο Mόνο σε αργές internet συνδέσεις µπορεί να πορεί  να γίνει αντιληπτή, αντιληπτή, εξαιτίας του µεγέθους του Map Control. Εκτός από το Map ActiveX Control, όλα τα υπόλοιπα τα  υπόλοιπα αρχεία βρίσκονται στον server. Μερικά από αυτά εκτελούνται στον server, και στον client φτάνει η έξοδος τους, τους, που είναι ένα html αρχείο. αρχείο. Κάποια άλλα αρχεία, αρχεία, αποστέλλονται στον client και εκτελούνται εκεί, εκεί, χωρίς καµ καµιά άλλη ανά ανάµ µειξη του server, εκτός από την αποστολή τους. τους. Τέλος  υπάρχουν κάποια αρχεία που εκτελούνται στον server, και το αποτέλεσµ αποτέλεσµα τους είναι, είναι, πέρα από html, και εκτελέσιµ εκτελέσιµος κώδικας για τον client.  Έχουµ  Έχουµε δηλαδή, δηλαδή, παραγωγή κώδικα δυναµ δυναµικά, ικά, ή διαφορετικά κώδικα, κώδικα, που δηµ δηµιουργείται από άλλον κώδικα. κώδικα. Στη πράξη αυτό δεν είναι δύσκολο, δύσκολο, αφού ο κώδικας στο server  διαφέρει τόσο συντακτικά, συντακτικά, όσο και σε περιεχόµ περιεχόµενο από αυτόν στον client. Την ιδιοµ ιδιοµορφία αυτή αντικατοπτρίζει η ιεραρχία και ονοµ ονοµατολογία των folders της εφαρµ εφαρµογής. ογής. Στο root folder έχου folder έχουµ µε δύο µόνο αρχεία, αρχεία, τα απαραίτητα για την εκκίνηση, εκκίνηση, τέλος της εφαρµ εφαρµογής συνολικά, συνολικά, αλλά και κάθε session των χρηστών χωριστά. χωριστά. Το folder Content, περιέχει .asp, .htm αρχεία. αρχεία. Το Data, το Access Data Base αρχείο µε τα δεδοµ δεδοµένα της εφαρµ εφαρµογής. ογής. Το images, τις εικόνες. εικόνες. Το Include περιέχει αρχεία που ενσωµ ενσωµατώνονται σε µερικά από τα .asp αρχεία. αρχεία. Το folder JScript, περιέχει αρχεία µε Java Script κώδικα που γίνονται include, και εκτελούνται από τον client.  Όµ  Όµοια και µε αρχεία σε VBScript. Τέλος  υπάρχει το Styles, που περιέχει τα το VBScript folder, µε CSS αρχεία. αρχεία.

7.2  Υλοποίηση 7.2.1 Root Στον  υποκατάλογο ρίζα της εφαρµ εφαρµογής περιέχονται δύο αρχεία. αρχεία. Το Global.asa, που περιέχει τους event handlers για την εκκίνηση/ εκκίνηση/λήξη της εφαρµ εφαρµογής και των Sessions και το default.asp, που παράγει το πρώτο HTML, που στέλνεται στον client.

Global.asa Το αρχείο Global.asa, είναι χαρακτηριστικό µιας εφαρµ εφαρµογής ASP, και περιέχει τους event handlers, όπου γίνονται οι απαραίτητες ενέργειες για την εκκίνηση και τον τερµ τερµατισµ ατισµό της εφαρµ εφαρµογής και των sessions. Στο event Application_OnStart γίνεται 87

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

αρχικοποίηση του string για το DSN της βάσης δεδοµ δεδοµένων και ορισµ ορισ µός του dictionary object για τους χρήστες. χρήστες. Στο Application_OnEnd, αποδεσµ αποδεσµεύεται το users dictionary. Στο Session_OnStart, αν ο χρήστης έχει το cookie, αρχικοποιείται on line profile του µε από τα αποθηκευµ αποθηκευµένα στη βάση δεδοµ δεδοµένων στοιχεία του. του. ∆ιαφορετικά, ∆ιαφορετικά, θέτουµ θέτουµε το χρήστη σε κατάσταση επισκέπτη. επισκέπτη. Στο Session_OnEnd αφαιρούµ αφαιρούµε το χρήστη από το application level, users dictionary object.

Default.asp Tο αρχείο default.asp είναι το πρώτο που καλείται από τον IIS, αφού τελειώσει το event handling από το ASP µε µε το Global.asa. Αν ο χρήστης έχει το cookie γίνεται δεκτός στην εφαρµ εφαρµογή, ογή, διαφορετικά του δίνεται η δυνατότητα να δυνατότητα  να γραφτεί µέλος ή σε περίπτωση που είναι αλλά έχει χάσει το cookie του  να τον θυµ θυµηθεί το σύστηµ σύστηµα, µε παράµ παράµετρο το email του. του. Θεωρούµ Θεωρούµε εκτελέσιµ εκτελέσιµο τον κώδικα script και όχι την html περιγραφή για την παρουσίαση µιας σελίδας. σελίδας.

7.2.2 Content Στο folder content περιέχονται τα .asp και .htm αρχεία του συστήµ συστήµατος. ατος . Πρόκειται για αρχεία που καλούνται άµεσα από τον client, αντιπροσωπεύουν βασικές λειτουργίες του συστήµ συστήµατος και σε ορισµ ορισµένες περιπτώσεις συνδέονται (include) και µε άλλα αρχεία στον server.

HTMLs Τα αρχεία about.htm, blank.htm, mapCoding.htm, περιέχουν απλή HTML και καλούνται από τον client γι  να δώσουν στατική πληροφορία. πληροφορία . Το about.htm περιέχει στοιχεία σχετικά µε την εφαρµ εφαρµογή και εµφανίζεται στο παράθυρο των αποτελεσµ αποτελεσµάτων, άτων, αν και θα µπορούσε  να εµφανίζεται σε pop up παράθυρο όπως συνηθίζεται στις περισσότερες εφαρµ εφαρµογές για αυτή τη λειτουργία. λειτουργία. Το mapCoding περιέχει την HTML περιγραφή του  υποµ  υποµ νήµ  νήµατος χάρτη, χάρτη, που εµφανίζεται σε ένα IFRAME στοιχείο, στοιχείο, όταν ο χρήστης το ζητήσει. ζητήσει. tree-view.asp Στο αρχείο αυτό περιέχεται η δυναµ δυναµική σελίδα που εµφανίζει το tree view των κατηγοριών της βάσης δεδοµ δεδοµένων. ένων. Για το σκοπό αυτό γίνεται πρώτα η ανάκτηση όλων των σειρών του αντίστοιχου πίνακα context. Τα στοιχεία του πίνακα χρησιµ χρησιµοποιούνται για τη κατασκευή δύο δοµ δοµών δεδοµ δεδοµένων (dctContextTree, dctContextNames), που θα χρησιµ χρησιµοποιηθούν εν συνεχεία, συνεχεία, από τη συνάρτηση που ορίζεται στο tree-view.inc, για το δυναµ δυναµικό σχηµ σχηµατισµ ατισµό του δέντρου µε DHTML. Ακόµ Ακόµη, έχουµ έχουµε τη δήλωση που κάνει include στον client το javascript αρχείο για τη πλοήγηση στο δέντρο των κατηγοριών. κατηγοριών. Ο javascript κώδικας που περιλαµ περιλαµβάνεται σε αυτό το αρχείο ορίζει ένα dictionary για την αποθήκευση των επιλογών χρήστη, χρήστη, αν και από τον event handler  που καλείται όταν επιλεχτεί µια κατηγορία σβήνεται η προηγούµ προηγούµενη επιλογή, επιλογή, οπότε µόνο µια κατηγορία µπορεί να πορεί  να επιλεγεί τελικά. τελικά. context.asp

88

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

Καλείται για  να εµφανίσει το σύστηµ σύστηµα επιλογής κατηγορίας και περιέχει τον κώδικα script που επιστρέφει στην εφαρµ εφαρµογή την επιλογή του χρήστη. χρήστη. Η tree view αναπαράσταση του δέντρου των κατηγοριών που περιέχονται στη βάση δεδοµ δεδοµένων γίνεται σε ένα ξεχωριστό παράθυρο τύπου IFRAME από το ASP αρχείο tree-view.asp που καλείται εδώ. εδώ. Στο context.asp ορίζονται δύο κουµ κουµπιά για την επικύρωση της επιλογής στο δέντρο και ο αντίστοιχος κώδικας για την επιστροφή της επιλεγµ επιλεγµένης τιµ τιµής. ής. Στη συνάρτηση okContext γίνεται ανάκτηση όλων των επιλεγµ επιλεγµένων τιµ τιµών του δέντρου, δέντρου, αλλά επιστρέφεται µόνο η πρώτη τιµ τιµή που επιλέχθηκε. επιλέχθηκε. Στο tree-view.asp αντίστοιχα, αντίστοιχα, αν και  υπάρχει η αντίστοιχη δοµ δοµή τύπου dictionary για την επιλογή κατηγορίας, κατηγορίας , επιτρέπεται στη πράξη µόνο µια επιλογή. επιλογή. Η  ύπαρξη όµως της δοµ δοµής πολλαπλών επιλογών επιτρέπει την εύκολη επέκταση. επέκταση.

hot.asp Το συγκεκριµ συγκεκριµένο  υποσύστηµ  υποσύστηµα σαν το απλούστερο, απλούστερο, αποτελεί µια εισαγωγή στον τρόπο που  υλοποιήθηκε η ανάκτηση και η επιστροφή αποτελεσµ αποτελεσµάτων από τον server  στον client. Το αρχείο αυτό ξεκινάει µε το server side include του αρχείου result.inc και λίγο παρακάτω γίνεται το client side include του αρχείου results.js, καθώς και του results.css, τα οποία αποτελούν κοινό γνώρισµ γνώρισµα όλων των ASP αρχείων που παρουσιάζουν αποτελέσµ αποτελέσµατα σύµ σύµφωνα µε το µοντέλο των αποτελεσµ αποτελεσµάτων. άτων. Εδώ γίνεται η ανάκτηση των σηµ σηµερινών επιλογών των ειδικών του συστήµ συστήµατος από τον πίνακα HotItems και ένας βρόγχος καλεί και περνάει τις παραµ παραµέτρους στο  υποσύστηµ  υποσύστηµα παρουσίασης. παρουσίασης. items.asp Τα κριτήρια για την αναζήτηση ενός αντικειµ αντικειµένου που θέτει ο χρήστης στον client φτάνουν σε αυτό το αρχείο για  να µορφοποιηθούν σε µια sql ερώτηση που περιλαµ περιλαµβάνει τρεις πίνακες (Items, ItemsContext, Context) της βάσης δεδοµ δεδοµένων µε sql join. Τα αποτελέσµ αποτελέσµατα της ερώτησης µορφοποιούνται σύµ σύµφωνα µε το µοντέλο των αποτελεσµ αποτελεσµάτων, άτων, που  υλοποιείται στα included αρχεία result.inc, results.js, results.css. Υπάρχει και ένα server side include του αρχείου resolve.inc, που περιέχει µια συνάρτηση η οποία επιστρέφει το  υποδέντρο ενός δεδοµ δεδοµένου αναγνωριστικού, αναγνωριστικού, για ένα δεδοµ δεδοµένο δέντρο που παίρνει σαν παράµ παράµετρο. ετρο. Το αρχείο αυτό καλείται από τον client,  να εµφανιστεί στο παράθυρο results όταν ο χρήστης πατήσει το πλήκτρο go, στην οµάδα items του user interface. itemData.asp Σε αυτό το αρχείο, αρχείο, µε παράµ παράµετρο από τον client ένα αναγνωριστικό αντικειµ αντικειµένου, ένου, ανακτώνται µε sql join τριών πινάκων όλα τα στοιχεία αυτού του αντικειµ αντικειµένου. ένου. Ακόµ Ακόµη  υπάρχει το πρότυπο παρουσίασης αυτού του αντικειµ αντικειµένου. ένου. Το αρχείο αυτό καλείται από τον client προς παρουσίαση σε µια ξεχωριστή σελίδα, σελίδα, όπου ο χρήστης µπορεί  να πάρει αναλυτική περιγραφή και εικόνες του αντικειµ αντικειµένου που τον ενδιαφέρει. ενδιαφέρει. Με αυτό τον τρόπο αποφεύγουµ αποφεύγουµε τη χρονοβόρα επανεκίνηση του Map ActiveX Control, αν κάναµ κάναµε την παρουσίαση στην ίδια σελίδα. σελίδα. locations.asp Το ASP αυτό παίρνει σαν παράµ παράµετρο το όνοµ όνοµα ενός δρόµ δρόµου και επιστρέφει τους δρόµ δρόµους µε αυτό το όνοµ όνοµα και σε µια παραλλαγή του συστήµ συστήµατος αποτελεσµ αποτελεσµάτων, άτων,

89

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

στη θέση της σύντοµ σύντοµης περιγραφής, περιγραφής, τα routes που συνιστούν το δρόµ δρόµο. Αν και η λειτουργικότητα αυτή χρησιµ χρησιµοποιείται µόνο για δρόµ δρόµους και η παρούσα βάση δεδοµ δεδοµένων περιέχει δρόµ δρόµους στον πίνακα των locations, η σχεδίαση περιλαµ περιλαµβάνει τη περίπτωση οποιασδήποτε τοποθεσίας που αποτελείται από  υποπεριοχές χάρτη. χάρτη. Αρχικά παίρνουµ παίρνουµε από τη βάση δεδοµ δεδοµένων τα αναγνωριστικά αντικειµ αντικειµένων χάρτη που συνιστούν τη τοποθεσία. τοποθεσία. Κατασκευάζουµ Κατασκευάζουµε πίνακα που θα οριστεί στον client και χρησιµ χρησιµοποιείται για την επιλογή στον χάρτη, χάρτη, πολλών περιοχών ταυτόχρονα. ταυτόχρονα. Μετά χρησιµ χρησιµοποιούµ οποιού µε τµήµατα του συστήµ συστήµατος αποτελεσµ αποτελεσµάτων για να για  να παρουσιάσουµ παρουσιάσουµε την τοποθεσία (δρόµ δρόµο) και τις υποπεριοχές τις  υποπεριοχές της (routes).

map.asp Αυτό είναι το κεντρικό αρχείο της εφαρµ εφαρµογής, ογής, που στέλνει στον client τη σελίδα που  υλοποιεί το user interface της εφαρµ εφαρµογής. ογής. Στην αρχή του αρχείου αυτού έχουµ έχουµε τα server side include για τα αρχεία locations.inc και advanced.inc, που µελετώνται στην ενότητα του include folder. Ακόµ Ακόµη, έχουµ έχουµε ένα αριθµ αριθµό από client side includes των βιβλιοθηκών script, που µελετώνται στην ενότητα του jscript και του vbscript folder. Με αυτό το τρόπο έχουµ έχουµε ξεχωρίσει την εµφάνιση της εφαρµ εφαρµογής και το χειρισµ χειρισµό των ενεργειών του χρήστη από τον κώδικα που εκτελεί τις αντίστοιχες λειτουργίες. λειτουργίες. Χωρίζουµ Χωρίζουµε την οθόνη σε πέντε µέρη, έρη, όπως σχεδιάστηκε στην ενότητα user interface. Το παράθυρο των αποτελεσµ αποτελεσµάτων υλοποιείται άτων  υλοποιείται µε την ετικέτα <iframe>. Ο χάρτης, χάρτης, µε µε τη µορφή του ActiveX Control, βρίσκεται µέσα στην ετικέτα <span> µε µε τις ιδιότητες της οποίας καθορίζουµ καθορίζουµε το µέγεθος του. του. Ακολουθεί η περιοχή της κλίµ κλίµακας χάρτη, χάρτη, που ορίζεται µε την ετικέτα <span> και µετά η περιοχή βοήθειας επίσης µε την ετικέτα <span>. Για την περιοχή των εργαλείων του συστήµ συστήµατος έχει χρησιµ χρησιµοποιηθεί ένας πίνακας, πίνακας, <table>, στα κελιά του οποίου ορίζονται οι διάφορες οµάδες λειτουργικότητας. λειτουργικότητας. Οι ενεργές περιοχές χάρτη καλούν συναρτήσεις που είναι ορισµ ορισµένες στις αντίστοιχες βιβλιοθήκες λειτουργικότητας. λειτουργικότητας. path.asp Το ASP αυτό καλείται για την εµφάνιση ενός µονοπατιού στο παράθυρο των αποτελεσµ αποτελεσµάτων. άτων. Αρχικά έχουµ έχουµε δύο server side includes, result.inc, resolve.inc, µετά µετά µια σύνδεση µε τη βάση δεδοµ δεδοµένων και την ανάκτηση των αναγνωριστικών των routes, των µεταξύ τους γωνιών και προαιρετικά της επιθυµ επιθυµητής κατηγορίας αντικειµ αντικειµένων. ένων. Τα στοιχεία αυτά τοποθετούνται σε πίνακες, πίνακες, ενώ τα routes χρησιµ χρησιµοποιούνται στις ερωτήσεις SQL για τα ονόµ ονόµατα των οδών και σε συνδυασµ συνδυασµό µε τη κατηγορία ενδιαφέροντος για τα αντίστοιχα αντικείµ αντικείµενα. ενα. Στη συνέχεια έχουµ έχουµε τα client side include των results.css, results.js, που συνοδεύονται από το αναγκαίο πρόσθετο πρότυπο παρουσίασης των οδών και των περιεχόµ περιεχόµενων αντικειµ αντικειµένων. ένων. Το τελευταίο βασίζεται στο γνωστό πρότυπο παρουσίασης αντικειµ αντικειµένων, ένων, επιτρέποντας όµως πολλαπλά περιεχόµ περιεχόµενα -αντικείµ αντικείµενα. ενα. Τέλος, Τέλος, έχουµ έχουµε το βρόχο κατασκευής της σελίδας που θα εµφανιστεί στο παράθυρο των αποτελεσµ αποτελεσµάτων, άτων, κατά τη διάρκεια του οποίου τακτοποιούµ τακτοποιού µε τα αντικείµ αντικείµενα στο δρόµ δρόµο που ανήκουν και προσθέτουµ προσθέτουµε τις οδηγίες πλοήγησης όταν αλλάζει δρόµ δρόµος. ος. profile.asp Το αρχείο αυτό εκτελεί τις ενέργειες που έχουν  να κάνουν µε το profile ενός χρήστη που είναι αποθηκευµ αποθηκευµένο στη βάση δεδοµ δεδοµένων. ένων. Η παρεχόµ παρεχόµενη λειτουργικότητα

90

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

µοιάζει µε αυτή ενός αντικειµ αντικειµένου γλώσσας προγραµµ προγραµµατισ ατισµ µού, ού, αφού παρέχει µεθόδους µε παραµ παραµέτρους. έτρους. Εκτός από τη σύνδεση µε τη βάση δεδοµ δεδοµένων γίνεται και µια αναφορά στη δοµ δοµή dctUsersOnLine, που είναι αποθηκευµ αποθηκευµένη µόνιµ όνιµα στο αντικείµ αντικείµενο Application του µοντέλου ASP. Η µέθοδος deleteCookie αναγκάζει το cookie του συνδεµ συνδεµένου χρήστη  να λήξει άµεσα και χρησιµ χρησιµοποιείται κυρίως στο debuging της εφαρµ εφαρµογής, ογής, αλλά θα ήταν χρήσιµ χρήσιµη και σε ένα πραγµ πραγµατικό σύστηµ σύστηµα, όταν κάποιος χρήστης θα επιθυµ επιθυµούσε  να διαγραφεί. διαγραφεί. Ακολουθεί η setCookie, που θέτει στο cookie σαν τιµ τιµή το αναγνωριστικό χρήστη και την ηµεροµ εροµηνία λήξης του. του. Με τη µέθοδο rememberForm, αποστέλλεται µια φόρµ φόρµα συµ συµπλήρωσης του email ενός χρήστη στη περίπτωση που αυτός δεν είναι αναγνωρίσιµ αναγνωρίσιµος από το σύστηµ σύστηµα κατά την είσοδο του. του. Η µέθοδος rememberProfile, µε µε παράµ παράµετρο το email, αναζητά το  profile ενός χρήστη στη βάση δεδοµ δεδοµένων και ανταποκρίνεται ανάλογα. ανάλογα. Αν το βρει ενηµ ενηµερώνει όλες τις παραµ παραµέτρους του συστήµ συστήµατος και αν όχι τότε προτρέπει το χρήστη να χρήστη  να γραφτεί µέλος. έλος. Στη µέθοδο newProfile στέλνεται η φόρµ φόρµα µε πεδία για την εγγραφή ενός  νέου χρήστη. χρήστη. Η φόρµ φόρµα αυτή είναι ορισµ ορισµένη σαν πρότυπο µέσα σε µια συνάρτηση, συνάρτηση, που έχει σαν παραµ παραµέτρους τα πεδία της φόρµ φόρµας. ας. Στη φόρµ φόρµα έχουµ έχουµε χρησιµ χρησιµοποιήσει τα στιλ  που ορίζονται στο σύστηµ σύστηµα για τα dialog µε µε το χρήστη και γίνονται client side include µε µε το αρχείο dialog.css. Η ίδια συνάρτηση χρησιµ χρησιµοποιείται και στη µέθοδο editProfile µε µε τη διαφορά ότι εδώ, εδώ, έχοντας τα στοιχεία του χρήστη από τη βάση δεδοµ δεδοµένων, ένων, µπορούµ πορού µε  να συµ συµπληρώσουµ πληρώσουµε αυτόµ αυτόµατα τα πεδία της φόρµ φόρµας, ας, πριν τη στείλουµ στείλουµε, βελτιώνοντας την εµπειρία του χρήστη. χρήστη. Η µέθοδος insertProfile εισάγει τα στοιχεία ενός  νέου χρήστη στο πίνακα profiles της βάσης δεδοµ δεδοµένων, ένων, καλεί τη συνάρτηση initPushpins για  να εισαχθούν τα default pushpins στον πίνακα pushpins και  να συνδεθούν µε το αναγνωριστικό του  νέου χρήστη. χρήστη. Ακόµ Ακόµη ενηµ ενηµερώνει τις παραµ παραµέτρους του συστήµ συστήµατος, ατος, αυτές δηλαδή που αρχικοποιούνται αυτόµ αυτόµατα κατά την είσοδο ενός µέλους στο σύστηµ σύστηµα, ώστε ο χρήστης  να µπορέσει άµεσα  να χρησιµ χρησιµοποιήσει την εφαρµ εφαρµογή. ογή.

pushpins.asp Το ASP αρχείο pushpins, όπως και µερικά άλλα στον server, µπορεί µπορεί  να αντιµ αντιµετωπιστεί σαν ένα αντικείµ αντικείµενο, ενο, µε µεθόδους και παραµ παραµέτρους, έτρους, µε τη διαφορά ότι είναι σε text και είναι interpreted, δηλαδή µεταφρέζεται σε κώδικα µηχανής, ηχανής, καθώς εκτελείται, εκτελείται, γραµµ γραµµή ή-γραµµ γραµµή ή.  Έχουµ  Έχουµε τις µεθόδους load, Edit, Update, New, Insert, Delete και οι παράµ παράµετροι λαµ λαµβάνονται µε τη µέθοδο get, που ορίζει το HTTP. Ο κώδικας ξεκινάει µε µια σύνδεση µε τη βάση δεδοµ δεδοµένων. ένων. Ακολουθεί η ανάκτηση του αναγνωριστικού χρήστη και της επιθυµ επιθυµητής µεθόδου. εθόδου. Στο case statement που ακολουθεί, ακολουθεί, ανάλογα µε τη µέθοδο ανακτώνται οι αντίστοιχοι παράµ παράµετροι. ετροι. Ξεκινάµ Ξεκινάµε µε τη µέθοδο load, που ακολουθεί πιστά το µοντέλο παρουσίασης αποτελεσµ αποτελεσµάτων, άτων, κάνοντας ένα server side include του αρχείου result.inc και client-side include των results.js, results.css. Με το αναγνωριστικό χρήστη παίρνουµ παίρνουµε από τον πίνακα  pushpins της βάσης δεδοµ δεδοµένων τα pushpins αυτού του χρήστη και µε ένα βρόχο τα µορφοποιούµ ορφοποιούµε για την παρουσίαση τους στο παράθυρο των αποτελεσµ αποτελεσµάτων στον client. Η επόµ επόµενη µέθοδος (insertPushpin) εισάγει ένα νέο ένα  νέο pushpin στον πίνακα pushpins της βάσης δεδοµ δεδοµένων. ένων. ∆ε γίνεται κανένας έλεγχος αφού κάθε  νέο pushpin εισάγεται µε 91

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

καινούριο µοναδικό αναγνωριστικό και µε αυτό το τρόπο επιτρέπουµ επιτρέπουµε στο χρήστη να χρήστη  να ορίσει δύο pushpin στο ίδιο σηµ σηµείο του χάρτη. χάρτη. Η µέθοδος delete διαγράφει µε βάση το αναγνωριστικό του ένα pushpin από τη βάση δεδοµ δεδοµένων. ένων. Η µέθοδος newPushpin δηµ δηµιουργεί µια φόρµ φόρµα εισόδου, εισόδου, σύµ σύµφωνα µε τα πρότυπα που έχουν οριστεί για αυτό το σκοπό, σκοπό, που στέλνεται στο χρήστη για τη συµ συµπλήρωση των στοιχείων ενός  νέου  pushpin. Η µέθοδος editPushpin στέλνει την ίδια φόρµ φόρµα στο χρήστη, χρήστη, µε τη διαφορά ότι τα πεδία της είναι γεµ γεµάτα µε τις αντίστοιχες τιµ τιµές που  υπάρχουν στη βάση δεδοµ δεδοµένων για αυτό το pushpin. Με αυτό τον τρόπο ο χρήστης έχει µια εικόνα των παλιών τιµ τιµών και µπορεί  να αποφασίσει αν θέλει  να αλλάξει κάποια από αυτές. αυτές. Τις παραµ παραµέτρους που θα θέσει ο χρήστης µε τη editPushpin, θα ενηµ ενηµερώσει στη βάση δεδοµ δεδοµένων η updatePushpin. Για κάθε αλλαγή στη βάση δεδοµ δεδοµένων καλείται η loadPushpins, ώστε ο χρήστης  να πιστοποιήσει τις αλλαγές στο παράθυρο των αποτελεσµ αποτελεσµάτων. άτων. Αυτό που πρέπει  να γίνει ξεκάθαρο εδώ, εδώ, είναι πως η φόρµ φόρµα της συµ συµπλήρωσης του  pushpin εµφανίζεται σε ξεχωριστό pop up παράθυρο και την ευθύνη διαχείρισης των τιµ τιµών της φέρει ο κώδικας, κώδικας, ο σχετικός µε τα pushpin, που εκτελείται στον client. Η φόρµ φόρµα όπως φαίνεται και από αυτό το αρχείο ορίζεται σαν πρότυπο σε µια µέθοδο µε παραµ παραµέτρους τα αντίστοιχα πεδία και χρησιµ χρησιµοποιείται από κοινού στις newPushpin, editPushpin. Ο κώδικας των pushpin στον client είναι που διακρίνει τις λειτουργίες µεταξύ τους, τους, για αυτό και αναφερόµ αναφερόµαστε στο pushpin.asp σαν αντικείµ αντικείµενο. ενο.

users.asp Στο αρχείο αυτό έχουµ έχουµε τις µεθόδους που αφορούν τους ενεργούς χρήστες. χρήστες. Η µέθοδος populate µε µε παραµ παραµέτρους τον παρόντα χρήστη, χρήστη, τη δοµ δοµή όλων των χρηστών και µια σύνδεση µε τη βάση δεδοµ δεδοµένων, ένων, κάνει µια εξοµ εξοµοίωση της κατάστασης πολλαπλών χρηστών συνδεµ συνδεµένων µε το σύστηµ σύστηµα και τους τοποθετεί σε τυχαία σηµ σηµεία του χάρτη. χάρτη. Η µέθοδος αυτή συνοδεύεται από την removeAll που διαγράφει όλους τους ενεργούς χρήστες. χρήστες. Η µέθοδος endSession λήγει την παρούσα σύνδεση χρήστη και χρησιµ χρησιµοποιείται κυρίως για λόγους debuging, αν και θα χρησίµ χρησίµευε και στην περίπτωση που ένας χρήστης ήθελε  να βγει από την εφαρµ εφαρµογή πριν το τέλος της σύνδεσης του ενηµ ενηµερώνοντας άµεσα κάποιους πίνακες στη βάση δεδοµ δεδοµένων. ένων. Η µέθοδος loadUsers εµφανίζει στο παράθυρο των αποτελεσµ αποτελεσµάτων του χρήστη και σύµ σύµφωνα µε το µοντέλο παρουσίασης αποτελεσµ αποτελεσµάτων τους ενεργούς χρήστες. χρήστες. Για το σκοπό αυτό γίνεται ένα server side include του αρχείου result.inc και δύο client side includes των αρχείων results.js, results.css, ενώ τα αποτελέσµ αποτελέσµατα µορφοποιούνται σε ένα βρόχο, βρόχο, αφού έχουµ έχουµε πάρει τα στοιχεία του χρήστη από τον πίνακα profiles και γνωρίζοντας τη θέση του πάνω στο χάρτη από το dctUsersOnLine. Προαιρετικά ο χρήστης µπορεί να πορεί  να δώσει µια απόσταση που χρησιµ χρησιµοποιείται σαν άνω φράγµ φράγµα για την απόσταση των ενεργών χρηστών που θα συµ συµπεριλάβει στα αποτελέσµ αποτελέσµατα. ατα. Τέλος, Τέλος, έχουµ έχουµε τη µέθοδο που ενηµ ενηµερώνει τη παρούσα θέση του χρήστη στη δοµ δοµή που καταγράφονται οι θέσεις των ενεργών χρηστών, χρηστών, στο αντικείµ αντικείµενο Application. waypoints.asp Κάθε αλλαγή στα waypoints, καλεί αυτό το αρχείο µε παραµ παραµέτρους ένα string µε µε τα αναγνωριστικά και ένα µε τα ονόµ ονόµατα των waypoints. Αυτά µετατρέπονται σε πίνακες για  να χρησιµ χρησιµοποιηθούν σε ένα loop όπου µορφοποιούνται σύµ σύµφωνα µε ένα

92

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

 υποσύνολο του µοντέλου των αποτελεσµ αποτελεσµάτων που δεν περιλαµ περιλαµβάνει την επέκταση, επέκταση, αλλά µόνο την επιλογή χάρτη. χάρτη.

7.2.3 Data Το data folder  περιέχει µόνο ένα αρχείο, αρχείο, αυτό της βάσης δεδοµ δεδοµένων. ένων. Σε ένα συνηθισµ συνηθισµένο σύστηµ σύστηµα διαχείρισης σχεσιακής βάσης δεδοµ δεδοµένων δεν  υπάρχει η έννοια του αρχείου δεδοµ δεδοµένων για µια βάση δεδοµ δεδοµένων. ένων. Στην Microsoft Access όµως η λειτουργικότητα της σχεσιακής βάσης δεδοµ δεδοµένων παρέχεται από ένα επιπλέον επίπεδο αφαίρεσης. αφαίρεσης. Το αρχείο αυτό θα µπορούσε  να είναι οπουδήποτε στο σύστηµ σύστηµα αρχείων του web server, ακόµ ακόµα και σε διαφορετικό  υπολογιστή.  υπολογιστή. Αυτό που απαιτείται είναι  να δηλωθεί το σωστό Data Source Name (DSN) στο 32bitODBC, στο Control Panel του  υπολογιστή που φιλοξενεί τον web server. Αυτό επιτρέπει, επιτρέπει, κατά ένα τρόπο, τρόπο, τη µετατόπιση του φόρτου εργασίας που συσσωρεύεται στο web server, προς ένα άλλο  υπολογιστή,  υπολογιστή, που λειτουργεί µόνο σαν data base server. Στη παρούσα εργασία δεν ήταν πρόβληµ πρόβληµα η ταχύτητα και εποµ εποµένως το αρχείο της βάσης βρίσκεται απλά σε µια βολική θέση. θέση. Σε αυτό το folder βρίσκονται folder  βρίσκονται οι εικόνες που χρησιµ χρησιµοποιούνται στο user interface της εφαρµ εφαρµογής. ογής. Στη παρούσα έκδοση αυτές είναι οι εικόνες του pop up dialog box που απεικονίζει τη δενδρική δοµ δοµή των κατηγοριών (context tree).

7.2.4 Include Το folder include περιέχει text αρχεία που ορίζουν συναρτήσεις, συναρτήσεις, µεταβλητές και σταθερές. σταθερές. Επειδή χρησιµ χρησιµοποιούνται, οποιούνται, ενσωµ ενσωµατώνονται σε περισσότερα από ένα asp αρχεία, αρχεία, ή επειδή αυξάνουν την πολυπλοκότητα, πολυπλοκότητα, έχουν τοποθετηθεί χωριστά. χωριστά. Περιέχουν κώδικα που εκτελείται στον server, καθώς και στον client. Το include file advanced.inc ειδικά, ειδικά, κατασκευάζει δυναµ δυναµικά τον κώδικα που θα εκτελεστεί στον client, -για -για την αρχικοποίηση του Map Control- σύµ σύµφωνα µε τα πιο επίκαιρα δεδοµ δεδοµένα που ανακτά από τη βάση δεδοµ δεδοµένων. ένων. Στο advanced.inc, δηµ δηµιουργείται ο java script κώδικας που θα κατασκευάσει δύο πίνακες στον client. Ενα πίνακα για τα αναγνωριστικά (IDs) της οντότητας Context από τη DB-, και ένα πίνακα για τα αντίστοιχα ονόµ ονόµατα. ατα. Στη συνέχεια ορίζονται οι συναρτήσεις που θα αρχικοποιήσουν όλα τα Map Route IDs στον client, σύµ σύµφωνα µε τα στοιχεία του join τριών πινάκων της DB. Στο tree-view.inc, έχουµ έχουµε τον ορισµ ορισµό µιας αναδροµ αναδροµικής συνάρτησης που εκτελείται στον server, για να για  να δηµ δηµιουργήσει το DHML δέντρο, δέντρο, τύπου Tree View (όπως (όπως αυτό του windows explorer), που θα παρουσιάσει στον client µια µια οπτική εικόνα της ιεραρχίας των κατηγοριών (Context) της DB (isA). Στο resolve.inc, ορίζεται µια συνάρτηση που παίρνει σαν παραµ παραµέτρους την ιεραρχία (isA) και ένα κόµ κόµβο και επιστρέφει το υποδέντρο το  υποδέντρο του σε string. Στο result.inc, έχουµ έχουµε το template µε µε βάση το οποίο δηµ δηµιουργείται η DHTML αναπαράσταση των αποτελεσµ αποτελεσµάτων µιας ερώτησης του client.

93

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

Στο help.inc, περιέχεται η σύντοµ σύντοµη βοήθεια, βοήθεια, που εµφανίζεται στην οθόνη της εφαρµ εφαρµογής, ογής, όταν ο χρήστης φέρει το δείκτη του mouse, πάνω από κάποιο σηµ σηµείο της εφαρµ εφαρµογής, ογής, για το οποίο ορίζεται βοήθεια. βοήθεια. Για  να βάλουµ βάλουµε µια καινούρια βοήθεια, βοήθεια, για ένα σηµ σηµείο ή περιοχή της εφαρµ εφαρµογής που δεν έχει, έχει, αρκεί να αρκεί  να ορίσουµ ορίσουµε τη σύντοµ σύντοµη βοήθεια σε αυτό το αρχείο, αρχείο, σύµ σύµφωνα µε τις προδιαγραφές που θέτει η βιβλιοθήκη βοήθειας help.js, και στη συνέχεια  να τοποθετήσουµ τοποθετήσουµε τον αντίστοιχο event handler  στην εν λόγω περιοχή. περιοχή. Στο locations.inc, µε µε µια ερώτηση SQL, παίρνουµ παίρνουµε όλα τα ονόµ ονόµατα των τοποθεσιώντοποθεσιώνοδών από τη βάση δεδοµ δεδοµένων, ένων, και ορίζουµ ορίζου µε πίνακα που θα δηµ δηµιουργηθεί στον client. Ο πίνακας αυτός περιέχει τα δεδοµ δεδοµένα που θα ψάξει το  υποσύστηµ  υποσύστηµα αυτόµ αυτόµατης συµ συµπλήρωσης ονόµ ονόµατος, ατος , που ορίζεται στη βιβλιοθήκη streets.js.

7.2.5 JScript Στο folder  αυτό περιέχονται όλα τα αρχεία σε java script που γίνονται include και εκτελούνται στον client.

about.js Εδώ περιέχεται ο κώδικας που εκτελείται όταν ο χρήστης ζητήσει  να µάθει σχετικά µε την εφαρµ εφαρµογή. ογή. Κατασκευαστής, Κατασκευαστής, χρονολογίες, χρονολογίες, έκδοση και οτιδήποτε άλλο µπορεί  να περιέχεται στο html αρχείο που φορτώνεται στο παράθυρο results. current.js Αυτό το αρχείο είναι αντιπροσωπευτικό του αντικειµ αντικειµένου user position. Αποθηκεύει τη θέση του χρήστη και περιέχει µεθόδους για την ενηµ ενηµέρωση της θέσης του χρήστη στον server και server  και για την επιστροφή της θέσης του χρήστη σε όποια άλλη συνάρτηση τη χρειάζεται. χρειάζεται. foldernav.js Ο κώδικας εδώ, εδώ, αναλαµ αναλαµβάνει όλες τις λειτουργίες που έχουν  να κάνουν, κάνουν, µε τη διαχείριση του δεντρικού -τύπου tree view- συστήµ συστήµατος παρουσίασης της ιεραρχίας των κατηγοριών. κατηγοριών. Ο κώδικας είναι γενικός και δε συνδέεται άµεσα µε τη βάση δεδοµ δεδοµένων, ένων, όπου είναι αποθηκευµ αποθηκευµένα τα context, αλλά ακολουθεί κάποια προκαθορισµ προκαθορισµένα πρότυπα ονοµ ονοµατολογίας των αναγνωριστικών της ιεραρχίας. ιεραρχίας. Με αυτό το τρόπο πραγµ πραγµατοποιείται το expand, collapse των κατηγοριών, κατηγοριών, µε τρόπο διαφανή. διαφανή. Η σύνδεση µε τη βάση δεδοµ δεδοµένων και η ανάθεση των κατάλληλων αναγνωριστικών στις δοµ δοµές της html σελίδας που αναπαριστά το δέντρο context, πραγµ πραγµατοποιείται στον server, κατά τη διαδικασία σύνθεσης της σελίδας, σελίδας, από το treeview.asp. items.js Οι λειτουργίες της σύνθεσης των παραµ παραµέτρων και της αποστολής τους στον server, για την ανάκτηση των ζητούµ ζητούµενων items, γίνεται σε αυτό το αρχείο. αρχείο. Υπάρχουν µέθοδοι που επιστρέφουν και ελέγχουν τις τιµ τιµές των κριτηρίων εύρεσης που θέτει ο χρήστης. χρήστης. Επίσης, Επίσης, µια µέθοδος για την επιλογή στον χάρτη ενός item που επιλέχθηκε από το παράθυρο results.

94

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

Σε αυτό το αρχείο βρίσκεται και η συνάρτηση που καλεί το pop up παράθυρο για την επιλογή κατηγορίας. κατηγορίας . Οπως φαίνεται και από τον κώδικα της συνάρτησης, συνάρτησης, παράγεται ένα modal dialog box, µε µ ε source html κώδικα που φτιάχνεται δυναµ δυναµικά στον server  εκείνη τη στιγµ στιγµή, ώστε  να ανταποκρίνεται στην παρούσα ιεραρχία του context table της βάσης δεδοµ δεδοµένων. ένων. Ο κώδικας και η html σελίδα που παράγονται είναι αυτόνοµ αυτόνοµα, µε την έννοια ότι η συνάρτηση αυτή περιµ περιµένει  να επιστραφεί µόνο ένα id, χωρίς  να  νοιάζεται για τις λεπτοµ λεπτοµέρειες του τρόπου επιλογής του. του. Μια σηµ σηµαντική διαφορά σε σχέση µε τα υπόλοιπα τα  υπόλοιπα αρχεία που εκτελούνται στον client και στέλνουν παραµ παραµέτρους στον server, είναι ότι τα δεδοµ δεδοµένα δεν στέλνονται µε τη µέθοδο get, αλλά µε τη µέθοδο post που ορίζει το http πρωτόκολλο. πρωτόκολλο. Η επιλογή αυτή έγινε γιατί η µέθοδος get θέτει άνω φράγµ φράγµα τα 4kbyte για την αποστολή text strings, ενώ για την post είναι απεριόριστο. απεριόριστο. Το πρόβληµ πρόβληµα στο δεδοµ δεδοµένο σηµ σηµείο προκύπτει κυρίως από την  ύπαρξη της λειτουργικότητας proximity, που παράγει µεγάλο αριθµ αριθµό από map object ids.

menus.js Εδώ βρίσκονται τα παρόµ παρόµοια κοµµ κοµµάτια άτια κώδικα που εκτελούν την εµφάνιση των drop down menus, για τα waypoints, pushpins, options, legend. Στα κελιά του html πίνακα που βρίσκονται οι τίτλοι των αντίστοιχων menus, βρίσκονται και τα περιεχόµ περιεχόµενα τους κρυµµ κρυµµένα ένα.. Οταν ο χρήστης επιλέγει  να δει ένα menu, τότε εµφανίζουµ φανίζουµε τα περιεχόµ περιεχόµενα του στη θέση των  υπόλοιπων επιλογών του κελιού της οµάδας εργαλείων. εργαλείων. options.js Οι επιλογές του menu options, αποθηκεύονται και χρησιµ χρησιµοποιούνται µε τις µεθόδους αυτού του αρχείου. αρχείου. paths.js Σε αυτό το αρχείο βρίσκουµ βρίσκουµε µόνο µεθόδους για τη διαχείριση της λειτουργικότητας του  υποσυστήµ  υποσυστήµατος των µονοπατιών. ονοπατιών. Υπάρχει µια µέθοδος για την επικοινωνία µε τον server και server  και µέθοδοι για την επιλογή της κατηγορίας ενδιαφέροντος και τη χρήση waypoints.  Βλέπε στο items.js για το context selection.

pushpins.js Ο κώδικας σε αυτό το αρχείο επικοινωνεί µε τον server  για την ενηµ ενηµέρωση, έρωση, εισαγωγή, εισαγωγή, ανάκτηση των δεδοµ δεδοµένων του πίνακα pushpins. Επίσης ορίζεται το αντικείµ αντικείµενο pushpin και ελέγχεται η εµφάνιση των παραθύρων διαλόγου σχετικά µε τα pushpins. results.js Αυτό το αρχείο γίνεται include στον client στο παράθυρο που εµφανίζονται τα αποτελέσµ αποτελέσµατα των ερωτήσεων του χρήστη και διαχειρίζεται τη συµ συµπεριφορά τους. τους. Εχουµ Εχουµε µεθόδους για την ανάκτηση του αναγνωριστικού του επιλεγµ επιλεγµένου result και για την εµφάνιση σύντοµ σύντοµου κειµ κειµένου και της δυνατότητας πληρέστερης περιγραφής, περιγραφής, πέρα από τον τίτλο. τίτλο. Αυτές οι µέθοδοι λειτουργούν σε συνδυασµ συνδυασµό µε τις

95

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

προκαθορισµ προκαθορισµένες προδιαγραφές δόµ δόµησης της html σελίδας που κατασκευάζεται δυναµ δυναµικά στον server σύ server σύµ µφωνα µε τα αποτελέσµ αποτελέσµατα της βάσης δεδοµ δεδοµένων. ένων.

select.js Περιέχει µια συνάρτηση, συνάρτηση, την toggle locked, που αποθηκεύει τις επιλογές του χάρτη, χάρτη, ώστε ο χρήστης να χρήστης  να µπορεί  να επιλέξει άλλες περιοχές χωρίς να χωρίς  να χάσει τις υπάρχουσες τις  υπάρχουσες.. Αν υπάρχουν Αν  υπάρχουν επιλεγµ επιλεγµένες περιοχές τότε τις επαναφέρει, επαναφέρει, σβήνοντας τις παρούσες. παρούσες. streets.js µε όρισµ Η συνάρτηση selectStreet, µε όρισ µα ένα πίνακα από routes και την κατάσταση του shift, επιλέγει τον αντίστοιχο δρόµ δρόµο στο χάρτη. χάρτη. Η συνάρτηση αυτή χρησιµ χρησιµοποιείται από τα αποτελέσµ αποτελέσµατα των µονοπατιών και αυτά του  υποσυστήµ  υποσυστήµατος locations. Ο πίνακας που δίνεται σαν όρισµ όρισ µα, µπορεί µπορεί να  να περιέχει οποιοδήποτε δοµ δοµικό στοιχείο του χάρτη και η συνάρτηση θα δουλέψει εξίσου καλά, καλά, για αυτό και αναφερόµ αναφερόµαστε σε  υποσύστηµ  υποσύστηµα locations, αν και στη παρούσα εργασία µόνο οι δρόµ δρόµοιοι-οδοί χρησιµ χρησιµοποιούνται και ορίζονται. ορίζονται. Σε µια άµεση επέκταση αυτού του  υποσυστήµ  υποσυστήµατος, ατος, η βιβλιοθήκη αυτή θα έπρεπε  να ονοµ ονοµάζεται locations.js, αφού η παρούσα σχεδίαση και υλοποίηση και  υλοποίηση είναι γενική. γενική. Ακολουθούν δύο συναρτήσεις που  υλοποιούν τη λειτουργικότητα αυτόµ αυτόµατης συµ συµπλήρωσης (auto complete), που χρησιµ χρησιµοποιείται στο πεδίο locations. Η συνάρτηση find ψάχνει µέσα στη δοµ δοµή δεδοµ δεδοµένων που χρησιµ χρησιµοποιείται και στη περίπτωση αυτή είναι πίνακας, πίνακας, αλλά µπορεί εύκολα να εύκολα  να αλλάξει. αλλάξει. Η συνάρτηση update, είναι ο event handler, για το event keyUp, που παράγεται όταν ο χρήστης πατάει ένα πλήκτρο του πληκτρολογίου, πληκτρολογίου, ενώ ο κέρσορας είναι µέσα σε αυτό το πεδίο. πεδίο.

users.js  Όπως και στην items.js, έτσι και εδώ, εδώ, έχουµ έχουµε τη διασύνδεση και επικοινωνία µε το server  για τις παραµ παραµέτρους που αφορούν τους χρήστες του συστήµ συστήµατος. ατος. Επειδή χρησιµ χρησιµοποιούνται τα αποτελέσµ αποτελέσµατα της συνάρτησης proximity, απαιτείται  να σταλούν τα αποτελέσµ αποτελέσµατα µε τη µέθοδο post του http πρωτοκόλλου. πρωτοκόλλου. Οµοια έχουµ έχουµε µια συνάρτηση για την επιλογή ενός χρήστη, χρήστη, που καλείται συνήθως από το παράθυρο των αποτελεσµ αποτελεσµάτων. άτων.  Βλέπε items.js για το πρόβλη µα  µα αποστολής µ αποστολής  µεγάλων strings.

7.2.6 Styles Στο folder styles τοποθετούνται τα αρχεία που ορίζουν τα cascaded style sheets (css) για τις html σελίδες της εφαρµ εφαρµογής. ογής. Τα ονόµ ονόµατα τους είναι χαρακτηριστικά των σελίδων που γίνονται include τη µέθοδο linking. Η µέθοδος style sheet linking περιγράφεται στη τεχνολογία

dialog.css Σε αυτό το style sheet ορίζονται τα styles που χρησιµ χρησιµοποιούνται στα διάφορα παράθυρα διαλόγου, διαλόγου, φόρµ φόρµες που εµφανίζονται στο χρήστη. χρήστη. map.css

96

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

Το αρχείο αυτό αποτελεί τον πυρήνα τις εµφάνισης της εφαρµ εφαρµογής. ογής. Ακόµ Ακόµη περιέχει τους ορισµ ορισµούς των styles που µε δυναµ δυναµική διαχείριση επιτρέπουν τα pop up και drop down menus. Η δοµ δοµή των ορισµ ορισµών είναι ιεραρχική, ιεραρχική, ώστε να ώστε  να φανερώνονται καλύτερα οι σχέσεις, σχέσεις, και οι ιδιότητες που κληρονοµ κληρονοµούνται (cascaded).

results.css Οµοια σε αυτό το αρχείο ορίζεται η εµφάνιση των αποτελεσµ αποτελεσµάτων που εµφανίζονται στο παράθυρο results.

7.2.7 VBScript Σε αυτό το folder  περιέχονται όλα τα αρχεία σε Visual Basic Scripting Edition, που γίνονται include και εκτελούνται στον client.

select.vbs Σε αυτό το αρχείο  υλοποιείται η οντότητα της επιλογής χάρτη. χάρτη. Η δοµ δοµή δεδοµ δεδοµένων στην οποία αποθηκεύονται οι επιλεγµ επιλεγµένες περιοχές του χάρτη είναι τύπου dictionary και λέγεται dctSelectedMapObjects. Υπάρχει ένα ακόµ ακόµη dictionary για την αποθήκευση µιας κλειδωµ κλειδωµένης επιλογής χάρτη. χάρτη. Η διαδικασία lockSelected αναλαµ αναλαµβάνει το κλείδωµ κλείδωµα ή ξεκλείδωµ ξεκλείδωµα των επιλογών του χάρτη στο επίπεδο των δοµ δοµών δεδοµ δεδοµένων. ένων. 'Οταν οι επιλογές χάρτη κλειδώνονται τότε, τότε, µεταφέρονται όλες στο dctLockedMapObjects. Το αντίστροφο γίνεται στο ξεκλείδωµ ξεκλείδωµα. Την εµφάνιση, φάνιση, διαγραφή από το χάρτη αναλαµ αναλαµβάνουν άλλες διαδικασίες µε αντίστοιχα ονόµ ονόµατα. ατα. Υπάρχει η συνάρτηση SelectedMOID που επιστρέφει τη πρώτη επιλογή χάρτη. χάρτη. Αν κάποια λειτουργία απαιτεί µόνο µια επιλογή χάρτη, χάρτη, ο έλεγχος γίνεται µε τη συνάρτηση countSelected που επιστρέφει το πλήθος των επιλογών χάρτη. χάρτη. Σε περίπτωση που ο αριθµ αριθµός των επιλογών είναι µεγαλύτερος από τον ανα αναµ µενόµ ενόµενο η κάθε λειτουργία αναλαµ αναλαµβάνει µόνη της την εµφάνιση λάθους, λάθους, ανάλογα µε τις προδιαγραφές της. της. Η διαδικασία addSelected προσθέτει µια  νέα επιλογή στη δοµ δοµή δεδοµ δεδοµένων. ένων. Σε περίπτωση που η επιλογή είναι τύπου position, τότε αυτή αποθηκεύεται ξανά σε µια δεύτερη δοµ δοµή που ορίζεται στη βιβλιοθήκη paths.vbs, όπου χρησιµ χρησιµοποιείται για την κατασκευή µονοπατιών. ονοπατιών. Αντίστοιχα η διαδικασία removeSelected αφαιρεί µια επιλογή από τη δοµ δοµή δεδοµ δεδοµένων. ένων. Η πιο χρήσιµ χρήσιµη διαδικασία είναι η SelectOnMap, την οποία καλεί κάθε λειτουργία που θέλει  να επιλέξει µια περιοχή χάρτη. χάρτη. Η διαδικασία αυτή ενηµ ενηµερώνει τις δοµ δοµές και επιλέγει την αντίστοιχη περιοχή χάρτη. χάρτη. Για τις λειτουργίες που απαιτούν αποστολή των επιλεγµ επιλεγµένων περιοχών χάρτη στον server, για παραπέρα επεξεργασία ορίζεται η getSelectedMOIDsSQL, που επιστρέφει τις επιλεγµ επιλεγµένες περιοχές χάρτη σε µια συµ συµβολοσειρά, βολοσειρά, χωρισµ χωρισµένες µε κόµµ κόµµα α, πράγµ πράγµα βολικό για ερωτήσεις SQL. Συνολικά πρόκειται για µια βιβλιοθήκη συναρτήσεων που µπορούν  να χρησιµ χρησιµοποιηθούν από τις  υπάρχουσες και τις µελλοντικές λειτουργίες του συστήµ συστήµατος. ατος.

context.vbs 97

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

Επειδή τα κοµµ κοµµάτια άτια του συστήµ συστήµατος επικοινωνούν µε τα αναγνωριστικά των διαφόρων τύπων δεδοµ δεδοµένων που χρησιµ χρησιµοποιούνται, οποιούνται, απαιτείται η χρήση βοηθητικών βιβλιοθηκών που θα µεταφράζουν τα µοναδικά αναγνωριστικά στα αντίστοιχα κατανοητά από το χρήστη ονόµ ονόµατα τους. τους. Η συγγεκριµ συγγεκριµένη βιβλιοθήκη αναλαµ αναλαµβάνει την συσχέτιση contextID, contextName. Για το σκοπό αυτό ορίζεται το dictionary dctContextIDsNames. Η αρχικοποίηση του γίνεται µε διαδικασία InitContextDictionary, που χρησιµ χρησιµοποιεί δύο πίνακες, πίνακες, ένα για τα αναγνωριστικά και ένα για τα ονόµ ονόµατα. ατα. Οταν µια λειτουργία του συστήµ συστήµατος απαιτεί ένα όνοµ όνοµα για ένα αναγνωριστικό, αναγνωριστικό, τότε καλεί την συνάρτηση ContextName, µε µε όρισµ όρισµα το αναγνωριστικό. αναγνωριστικό.

options.vbs Η βιβλιοθήκη αυτή περιέχει δύο συναρτήσεις που επιστρέφουν µια boolean τίµ τίµη της κατάστασης της µεθόδου επιλογών χάρτη. χάρτη. proximity.vbs Η συνάρτηση proximityMOIDsSQL, παίρνει σαν όρισµ όρισµα µια απόσταση σε pixels, και χρησιµ χρησιµοποιώντας τη παρούσα θέση χρήστη επιστρέφει σε µια συµ συµβολοσειρά, βολοσειρά, έτοιµ έτοιµη για χρήση σε SQL, όλα τα αντικείµ αντικείµενα χάρτη που βρίσκονται µέσα σε αυτή την απόσταση. απόσταση. Η συνάρτηση αυτή χρησιµ χρησιµοποιεί µια σειρά από συναρτήσης του Map ActiveX Control. Η πρώτη ενέργεια είναι ο καθορισµ καθορισµός του ορθογωνίου που περικλείει την θέση της περιοχής χρήστη µε τη συνάρτηση objCurrentLocation.BoundingRect.Clone(). Στη συνέχεια επεκτείνουµ επεκτείνουµε συµµ συµµετρικά ετρικά το ορθογώνιο κατα την απόσταση που πήραµ πήραµε σαν όρισµ όρισµα µε τη συνάρτηση InflateRect(). Με τη συνάρτηση objCurrentLocation.Layer.ObjectsInRectEx, µε µε όρισµ όρισµα το παραπάνω ορθογώνιο παίρνουµ παίρνουµε τα περιεχόντα αντικείµ αντικείµενα χάρτη. χάρτη. Τέλος κατασκευάζουµ κατασκευάζουµε τη συµ συµβολοσείρα µε τα αναγνωριστικά των αντικείµ αντικείµενων. ενων. waypoints.vbs Για την αποθήκευση των waypoints ορίζονται δύο δοµ δοµές δεδοµ δεδοµένων τύπου dictionary. Τα waypoints θα µπορούσαν  να αποθηκεύονται σε µία δοµ δοµή, εαν απαγορευόταν ο ορισµ ορισµός waypoint στο ίδιο αντικειµ αντικειµένο χάρτη δύο φορές. φορές. Επειδή όµως το σενάριο µια διαδροµ διαδροµής που ξεκινάει από ένα σηµ σηµείο, είο, έχει κάποιους ενδιάµ ενδιάµεσους σταθµ σταθµούς και καταλήγει στο ίδιο, ίδιο, είναι πολύ πιθανή, πιθανή , αναγκαζόµ αναγκαζό µαστε  να τοποθετήσουµ τοποθετήσουµε σε διαφορετικές δοµ δοµές τα αναγνωριστικά χάρτη στα οποία είναι ορισµ ορισµένα τα waypoints (dctWaypoints) και τα ονόµ ονόµατα που ο χρήστης έχει αναθέσει σε αυτά (dctWaypointsNames). Το κλειδή σε κάθε ένα από αυτά τα dictionaries είναι το ίδιο και είναι ο αύξων αριθµ αριθµός των waypoints, που αποτελεί και το µοναδικό αναγνωριστικό για αυτά. αυτά. Η διαδικασία loadWaypoints µετατρέπει µετατρέπει τις δύο δοµ δοµές σε συµ συµβολοσειρές, βολοσειρές, ώστε  να αποσταλούν στον server, όπου θα γίνει η µορφοποίηση τους σύµ σύµφωνα µε το µοντέλο των αποτελεσµ αποτελεσµάτων. άτων. Η διαδικασία addWaypoint µε µε όρισµ όρισµα ένα αντικείµ αντικείµενο χάρτη, χάρτη, εµφανίζει ένα dialog box, όπου ζητάει από το χρήστη ένα όνοµ όνοµα για το  νέο waypoint και στη συνέχεια ενηµ ενηµερώνει τις δοµ δοµές. ές. Οι διαδικασίες deleteWaypoint, moveUpWaypoint µε µ ε όρισµ όρισµα ένα αναγνωριστικό waypoint, σβήνουν και αντιµ αντιµεταθέτουν ένα waypoint αντιστοίχως. αντιστοίχως.

98

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

mapCtl.vbs Η βιβλιοθήκη αυτή διαχειρίζεται το Map ActiveX Control.  Όταν ο χάρτης φορτωθεί στον client παράγεται το event MapLoaded, για το οποίο ορίζεται η διαδικασία mapPane_MapLoaded. Για τον χάρτη που φορτώθηκε αρχικοποιούµ αρχικοποιούµε διάφορες µεταβλητές περιβάλλοντος. περιβάλλοντος. Το µήκος και  ύψος του χάρτη σε pixel, αποθηκεύονται στις intMarginX, intMarginY. Στη συνέχεια αποθηκεύονται διάφορα χρήσιµ χρήσιµα στυλ , σε µεταβλητές ώστε  να είναι προσβάσιµ προσβάσιµα µε φιλικά για τον προγραµµ προγραµµατιστή ατιστή ονόµ ονόµατα. ατα. Μετά αρχικοποιείται το µέγεθος και η κλίµ κλίµακα χάρτη. χάρτη. Ακολουθεί η κλήση της διαδικασίας setContextCount, που ορίζεται στο server side include file, advanced.inc, όπου και µελετάται διεξοδικά. διεξοδικά. Τέλος έχουµ έχουµε ένα loop, όπου αρχικοποιούνται τα tools tips του χάρτη. χάρτη. Σε αυτό το σηµ σηµείο, είο, µια πιθανή επέκταση είναι η ανάθεση στα tool tips των ονοµ ονοµάτων των δρόµ δρόµων, ων, ώστε όταν ο χρήστης φαίρνει το ποντίκι πάνω από ένα δρόµ δρόµο,  να βλέπει το όνοµ όνοµα του. του. Το event EnterObject διαχειρίζεται η διαδικασία mapPane_EnterObject. Το event αυτό παράγεται όταν το mouse βρίσκεται πάνω από µια περιοχή του χάρτη. χάρτη. Εδώ αλλάζουµ αλλάζουµε τον δείκτη του mouse σε χεράκι και φωτίζουµ φωτίζουµε µε διαφορετικό χρώµ χρώµα την αντίστοιχη περιοχή, περιοχή, για  να φαίνεται ότι είναι επιλέξιµ επιλέξιµη. Η επόµ επόµενη διαδικασία επαναφέρει τον δείκτη του mouse και τη φωτισµ φωτισµένη περιοχή στην αρχική τους κατάσταση, κατάσταση, σε περίπτωση που εµφανιστεί το event LeaveObject. Αν ο χρήστης κάνει click µε µε το mouse σε κάποια περιοχή του χάρτη τότε παράγεται το event ClickObject, που το διαχειριζόµ διαχειριζόµαστε στη διαδικασία mapPane_ClickObject. Αυτή η διαδικασία κάνει ότι και η διαδικασία SelectOnMap, που συναντήσαµ συναντήσαµε στη βιβλιοθήκη select.vbs, µε µε τη διαφορά ότι εδώ η επιλογές γίνονται άµεσα από το χρήστη πάνω στο χάρτη και όχι µέσω κάποιου εξωτερικού αντικειµ αντικειµένου που έχει αντιπροσώπευση πάνω στο χάρτη. χάρτη. Κλείνουµ Κλείνουµε αυτή τη βιβλιοθήκη µε τη διαχείριση του event ZoomChanged, για το οποίο αλλάζουµ αλλάζουµε την ενδειξη µεγέθους και κλίµ κλίµακας χάρτη. χάρτη.

paths.vbs Στη βιβλιοθήκη αυτή περιέχονται οι συναρτήσεις που αφορούν την οντότητα µονοπάτια. ονοπάτια.  Ένα µονοπάτι αποθηκεύεται στο dictionary dctPath. Κάθε αντικείµ αντικείµενο στη δοµ δοµή είναι µια συλλογή από routes, που αντιπροσωπεύουν το  υποµ  υποµονοπάτι, ονοπάτι, µεσα σε δύο ενδιάµ ανάµ ανά ενδιάµεσα σηµ σηµεία σταθµ σταθµούς. ούς. Στην περίπτωση που έχουµ έχουµε µονοπάτι ανάµ ανά µεσα σε δύο σηµ σηµεία, εία,  υπάρχει µόνο ένα αντικείµ αντικείµενο στο dctPath. Η διαδικασία selectPath µεταφέρει µεταφέρει όλα τα routes του µονοπατιού στο dictionary dctSelectedMapObjects µε µε τη χρήση της συνάρτησης addSelected. Αυτή η διαδικασία χρησιµ χρησιµοποιείται σε συνδιασµ συνδιασµό µε τις  υπόλοιπες της βιβλιοθήκης select.vbs, που εµφανίζουν, φανίζουν, κρύβουν τις επιλογές της δοµ δοµής dctSelectedMapObjects.

Στη διαδικασία shortestPath φαίνονται τα βήµ βήµατα του  υπολογισµ  υπολογισµού για το συντοµ συντοµότερο µονοπατι ανά ανάµ µεσα σε δύο ή περισσότερα µονοπάτια. ονοπάτια. Ο  υπολογισµ  υπολογισµός του συντοµ συντοµότερου µονοπατιού γίνεται στην διαδικασία setShortestPath. Η συνάρτηση ShortestPath, του Map ActiveX Control, µε µ ε ορίσµ ορίσµατα αρχικό και τελικό σηµ σηµείο επιστρέφει το συντοµ συντοµότερο µονοπάτι ανά ανάµ µεσα τους, τους, σαν µια συλλογή (Visual Basic

99

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

Collection) από roures. Για περισσότερα σηµ σηµεία η διαδικασία επαναλαµ επαναλαµβάνεται παίρνοντας τα σηµ σηµεία ανά δύο και ενηµ ενηµερώνοντας το dctPath µε µε τις νεές τις  νεές συλλογές. συλλογές. Για τον  υπολογισµ  υπολογισµό του advanced path, κατά τον οποίο λαµ λαµβάνονται  υπόψιν,  υπόψιν, τα αντικείµ αντικείµενα της κατηγορίας που έχει επιλέξει ο χρήστης έχει υλοποιηθεί έχει  υλοποιηθεί η διαδικασία setAlternativePathLVP. Η διαδικασία είναι ακριβώς ίδια µε τον  υπολογισµ  υπολογισµό του shortest path, µε µε τη διαφορά ότι εδώ χρησιµ χρησιµοποιείται η συνάρτηση του Map ActiveX Control LessValuePath, που παίρνει σαν όρισµ όρισµα, εκτός από αρχικό τελικό σηµ σηµείο, είο, το αναγνωριστικό µιας κατηγορίας ενδιαφέροντος. ενδιαφέροντος. Ο  υπολογισµ  υπολογισµός βασίζεται στις αρχικοποιηµ αρχικοποιηµένες τιµ τιµές των routes του χάρτη, χάρτη, διαδικασία που πραγµ πραγµατοποιείται κατά ένας µέρος στον server  και ολοκληρώνεται στον client από το server side include advanced.inc file.

100

ΕΠΙΛΟΓΟΣ

8 ΕΠΙΛΟΓΟΣ 8.1 Ανακεφαλαίωση Στις ενότητες που προηγήθηκαν είχαµ είχαµε την ευκαιρία  να παρουσιάσουµ παρουσιάσουµε τη µεθοδολογία που ακολουθήθηκε για το σχεδιασµ σχεδιασµό και  υλοποίηση της εφαρµ εφαρµογής. ογής. Ξεκινώντας µε την αναγκαιότητα, αναγκαιότητα , τις προδιαγραφές και το πλαίσιο ανάπτυξης του συστήµ συστήµατος περάσαµ περάσαµε στο µοντέλο πληροφορίας του συστήµ συστήµατος, ατος, που εγγυάται τη γενικότητα της σχεδίασης, σχεδίασης, ώστε  να είναι δυνατές οι µετατροπές και οι κατά επιλογήν αλλαγές και βελτιώσεις. βελτιώσεις. Ανάµ Ανάµεσα σε αυτά παρουσιάσαµ παρουσιάσαµε τη σχετική εργασία στο τοµ τοµέα, έα, πρώτα για  να πάρουµ πάρουµε µια ιδέα αναφορικά µε τα προσφερόµ προσφερόµενα άλλων εφαρµ εφαρµογών, ογών, αλλά και για  να δούµ δούµε τι χρειάζεται, χρειάζεται, τοποθετώντας έτσι καλύτερα τη εργασία αυτή ανά ανάµ µεσα στις παρόµ παρόµοιες. οιες. Η απεικόνιση του µοντέλου πληροφορίας στη βάση δεδοµ δεδοµένων και στο user interface µας µας έφερε ένα βήµ βήµα κοντύτερα στο τελικό

101

ΕΠΙΛΟΓΟΣ

σύστηµ σύστηµα. Αυτό  υλοποιήθηκε µε state of the art εργαλεία και λειτουργεί σαν ένα Web Site στην διεύθυνση http://corto.ced.tuc.gr/map/. Πρόκειται για µια πρωτότυπη (prototype) εφαρµ εφαρµογή που λειτουργεί στο WWW και είναι εποµ εποµένως προσβάσιµ προσβάσιµη από όποιον έχει πρόσβαση στο δίκτυο Internet. Αυτό έδωσε τη δυνατότητα εκτενών δοκιµ δοκιµών και σε άλλους, άλλους, µε αποτέλεσµ αποτέλεσµα την ευκολότερη διόρθωση προγραµµ προγραµµατιστικών ατιστικών αλλά και σχεδιαστικών σφαλ µάτων. άτων.

8.2 Συµπεράσµατα Η διαδικασία  υλοποίησης καθώς και η δοκιµ δοκιµή της εφαρµ εφαρµογής πιστοποιούν την αποτελεσµ αποτελεσµατικότητα της σχεδίασης του συστήµ συστήµατος. ατος . Η επιλογή των εργαλείων της τεχνολογίας, τεχνολογίας, ακόµ ακόµα και αυτών που δεν είναι σε οριστική µορφή, ορφή, δεν εµπόδισε την  υλοποίηση,  υλοποίηση, ενώ σε ορισµ ορισµένες περιπτώσεις έδωσε κοµ κοµψές λύσεις, λύσεις, όπως στην περίπτωση των Active Server Pages που υλοποιούν που  υλοποιούν Web Application ανεξάρτητα από τις δυνατότητες του Web Browser. Ο κώδικας της εφαρµ εφαρµογής είναι στο σύνολο του interpreted, ενώ η απόδοση της εφαρµ εφαρµογής, ογής, για τις περιπτώσεις που δοκιµ δοκιµάστηκε, άστηκε , δεν  υστερεί σηµ σηµαντικά από compiled εφαρµ εφαρµογές. ογές. Το γεγονός αυτό αποδεικνύει την ωριµ ωριµότητα των γλωσσών Scripting καθώς και την απόδοση των σύγχρονων λειτουργικών συστηµ συστηµάτων και εφαρµ εφαρµογών. ογών. Η ευκολία µε την οποία διασυνδέθηκαν και δουλεύουν αξιόπιστα σαν ένα ολοκληρωµ ολοκληρωµένο σύστηµ σύστηµα ένα σύνολο από διαφορετικές τεχνολογίες είναι καρπός των προσπαθειών για πραγµ πραγµατικά αντικειµ αντικειµενοστραφή προγραµµ προγραµµατισ ατισµ µό, όπως στην περίπτωση της οµαλής και επιτυχούς χρήσης του Map ActiveX Control, που αποτελεί προϊόν έρευνας του εργαστηρίου MUSIC. Το σύστηµ σύστηµα ικανοποιεί τις προδιαγραφές για τις οποίες σχεδιάστηκε µε τρόπο γενικό, γενικό, που  να επιτρέπει επεκτάσεις και προσθήκες. προσθήκες. Ο στόχος της εργασίας ήταν η δηµ δηµιουργία ενός πρωτοτύπου που  να αποτελεί  υποσύνολο της προβλεπόµ προβλεπόµενης λειτουργικότητας του web interface του Campiello. Αν και οι περισσότερες λειτουργίες δεν προσφέρονται για άµεση χρήση από αρχάριους χρήστες -που αποτελούν σηµ σηµαντική οµάδα στο Campiello-, προσφέρει τη βασική λειτουργικότητα και interfaces, πάνω στα οποία µπορούν  να σχεδιαστούν και  να  υλοποιηθούν εξελιγµ εξελιγµένες, ένες, φιλικές προς το χρήστη δυνατότητες. δυνατότητες. Χαρακτηριστικά αναφέρουµ αναφέρουµε τις ερωτήσεις κοντινότητας µε βάση τη θέση του χρήστη που µπορούν  να γίνονται αυτόµ αυτόµατα, ατα, προκαλώντας προώθηση (push) πληροφορίας προς το χρήστη, χρήστη, ανάλογα µε τη θέση και τις προτιµ προτι µήσεις του. του.

8.3 Μετατροπές και Επεκτάσεις Το τελικό σύστηµ σύστηµα καλύπτει πλήρως τις αρχικές προδιαγραφές, προδιαγραφές, αλλά πολλά είναι αυτά που µπορούν  να γίνουν, γίνουν, επεκτείνοντας το σκοπό του, του, ή πραγµ πραγµατοποιώντας µε διαφορετικό τρόπο κάποιες από τις υπάρχουσες τις  υπάρχουσες λειτουργίες. λειτουργίες.

8.3.1 Χρήστες

102

ΕΠΙΛΟΓΟΣ

Για τους ενεργούς χρήστες του συστήµ συστήµατος, ατος, η λειτουργικότητα που  υπάρχει είναι αυτή της εµφάνισης τους πάνω στο χάρτη, χάρτη, µε προαιρετικό κριτήριο την απόσταση τους από τον παρόν χρήστη. χρήστη. Σαν επιλογές του χάρτη οι χρήστες µπορούν  να χρησιµ χρησιµοποιηθούν για ερωτήσεις και κατασκευή µονοπατιών. ονοπατιών. Η συνεργασία των χρηστών όµως απαιτεί  νέα εργαλεία. εργαλεία. Αφού το σύστηµ σύστηµα γνωρίζει ποιοι χρήστες είναι ενεργοί και µπορεί  να διαχωρίσει τις αιτήσεις τους, τους, προς τον server, είναι δυνατόν να δυνατόν  να  υλοποιηθεί µια σειρά από εργαλεία για τη συνεργασία των χρηστών, χρηστών, όπως ανταλλαγή µηνυµ ηνυµάτων, άτων, οµάδες και κανάλια συζήτησης, συζήτησης, ανταλλαγή αρχείων και πολλά από αυτά που βλέπουµ βλέπουµε στα σύγχρονα συστήµ συστήµατα συνεργασίας χρηστών. χρηστών. Από την άποψη του user interface, οι επεκτάσεις αυτές θα έχουν τη µορφή των εξωτερικών παραθύρων εφαρµ εφαρµογών, ογών, όπως αυτό της αναλυτικής παρουσίασης ενός αντικειµ αντικειµένου. ένου.

8.3.2 Παρουσίαση Αντικειµένου Η παρουσίαση ενός αντικειµ αντικειµένου, ένου, περιορίζεται στη παρούσα εργασία στην εµφάνιση εκτενούς κειµ κειµένου και εικόνων. εικόνων. Με τη µορφή του πρωτοτύπου όµως  υπάρχουν εκτός από την περισσότερη πληροφορία και τρεις ακόµ ακόµη επιλογές, επιλογές, που συναντάµ συναντάµε στα µοντέρνα συστήµ συστήµατα on line κοινοτήτων και αγορών µε συµ συµβουλές, βουλές, όπως αυτό του amazon.com. Θα µπορούσαµ πορούσαµε δηλαδή  να προσθέσουµ προσθέσουµε σχόλια για ένα αντικείµ αντικείµενο και  να διαβάσουµ διαβάσουµε τα σχόλια άλλων χρηστών. χρηστών. Ακόµ Ακόµη  να βαθµ βαθµολογήσουµ ολογήσουµε µε βάση κάποια κλίµ κλίµακα το αντικείµ αντικείµενο. ενο. Το τελευταίο ανοίγει  νέους δρόµ δρόµους για το σύστηµ σύστηµα σαν σύνολο, σύνολο, αφού επιτρέπει την  υλοποίηση ερωτήσεων µε βάση τις προτιµ προτιµήσεις οµάδας χρηστών µε κοινά ενδιαφέροντα και την αυτοµ αυτοµατοποίηση των προσωπικών συµ συµβουλών, βουλών, προτάσεων του συστήµ συστήµατος προς κάθε χρήστη. χρήστη.

Πολλαπλοί  Χάρτες 8.3.3 Πολλαπλοί Χάρτες Στη παρούσα µορφή το σύστηµ σύστηµα  υποστηρίζει οποιοδήποτε χάρτη και την αντίστοιχη βάση δεδοµ δεδοµένων, ένων, µόνο που θα πρέπει  να ορίζουµ ορίζου µε, για κάθε χάρτη, χάρτη, ένα καινούριο web applicaton στο control panel του IIS και συνεπώς  να επαναλαµ επαναλαµβάνουµ βάνουµε την ίδια εφαρµ εφαρµογή πολλές φορές στον ίδιο η διαφορετικό server. Από την άποψη της ασφάλειας, ασφάλειας, της ταχύτητας και της απλότητας η λύση που δόθηκε είναι η καλύτερη. καλύτερη. Αν θέλαµ θέλαµε όµως  να έχουµ έχουµε µια ιεραρχία χαρτών, χαρτών, που θα αντιπροσώπευαν για παράδειγµ παράδειγµα τη Κρήτη, Κρήτη , τους  νοµ  νοµούς, ούς, τις πόλεις και τα µουσεία και αξιοθέατα, αξιοθέατα, αρχαιολογικούς χώρους των πόλεων, πόλεων, τότε θα βόλευε  να είχαµ είχαµε ένα πίνακα µε τα χαρακτηριστικά των χαρτών και τις σχετικές θέσεις τους. τους. Αυτό θα επέτρεπε µια  υλοποίηση όπου η µετάβαση από χάρτη σε χάρτη θα ήταν µέρος του συστήµ συστήµατος, ατος, χωρίς να χωρίς  να χρειάζεται επανεκίνηση του συστήµ συστήµατος στον server και server και στον client.

8.3.4 Νέες Τεχνολογίες Η τεχνολογία ειδικά στο χώρο του web κινείται µε πολύ γοργούς ρυθµ ρυθµούς. ούς. Οι καινοτοµ καινοτοµίες επιτρέπουν την πραγµ πραγµατοποίηση web sites, που ξεφεύγουν από τη παραδοσιακή έννοια του όρου και αρχίζουν  να µοιάζουν µε εφαρµ εφαρµογές, ογές, όπως η παρούσα εργασία. εργασία. Γράφοντας κώδικα µε τα  νέα εργαλεία  υπάρχουν πολλές στιγµ στιγµές που οι δυνατότητες ξεπερνούν τις αρχικές προδιαγραφές. προδιαγραφές. Για παράδειγµ παράδειγµα το client side scripting σε συνδυασµ συνδυασµό µε το ASP επιτρέπει την ανάπτυξη εφαρµ εφαρµογών, ογών, που οδηγεί σε µη ορθολογικές λύσεις όταν χρειάζεται  να µεταφέρουµ εταφέρουµε στοιχεία από τη

103

ΕΠΙΛΟΓΟΣ

βάση δεδοµ δεδοµένων στον client µε µε την αρχική τους µορφή -αυτή του πίνακα µιας σχεσιακής βάσης δεδοµ δεδοµένων. ένων. Για το σκοπό αυτό αναπτύχθηκαν τεχνολογίες όπως το Remote Data Service (RDS), που δε χρησιµ χρησιµοποιήθηκε από πολλούς, πολλούς, αν και επέτρεπε τη µεταφορά tables στον client. Ο οργανισµ οργανισµός προτύπων για το web βρίσκεται στα τελικά στάδια του σχεδιασµ σχεδιασµού της eXtensible Markup Language (XML), που θα λύσει αυτό το πρόβληµ πρόβληµα. Την οικογένεια των τεχνολογιών scripting έρχεται  να συµ συµπληρώσει η τελευταία καινοτοµ καινοτοµία της Microsoft που ονοµ ονοµάζεται Remote Scripting. Επιτρέπει την εκτέλεση scripts στον server µε µε κλήσεις από τον client, µε µε ασύγχρονη µεταφορά δεδοµ δεδοµένων και αιτήσεων. αιτήσεων. Η τεχνολογία  υλοποιείται µε ένα java applet στον client και ASP στον server. Στη πράξη επιτρέπει την ελαχιστοποίηση της καθυστέρησης απόκρισης και τη βελτίωση της αλληλεπιδραστικότητας στον client, κάνοντας ένα web site  να µοιάζει όλο και περισσότερο µε µια εφαρµ εφαρµογή που τρέχει από cdrom. Η διαφορά είναι πως τα δεδοµ δεδοµένα είναι απεριόριστα και η ενηµ ενηµέρωση του λογισµ λογισµικού εντελώς διαφανής για το χρήστη. χρήστη.

104

ΒΙΒΛΙΟΓΡΑΦΙΑ

9 ΒΙΒΛΙΟΓΡΑΦΙΑ Το σχετικό πλήθος των WWW sites αναφοράς, αναφοράς, σε σχέση µε τη παραδοσιακή βιβλιογραφία, βιβλιογραφία, πιστοποιεί για ακόµ ακόµη µια φορά την ωριµ ωριµότητα του µέσου για ανάπτυξη εφαρµ εφαρµογών τέτοιου τύπου, τύπου, αφού εκτός από τεχνολογική επάρκεια προσφέρει και την αντίστοιχη τεκ µηρίωση. ηρίωση. Επιπλέον, Επιπλέον, τα WWW sites δίνουν τη δυνατότητα για υποβολή για  υποβολή ερωτήσεων και άµεση ανταπόκριση, ανταπόκριση, είτε µε email, είτε µε newsgroups, είτε µε κάποιο άλλο τρόπο συνεργασίας χρηστών. χρηστών. Στις περισσότερες περιπτώσεις οι τεχνολογίες που χρησιµ χρησιµοποιήθηκαν ήταν πολύ πρόσφατες ή δεν ήταν ακόµ ακόµη σε τελική µορφή. ορφή. Ακόµ Ακόµα και όταν είχαµ είχαµε µια τεχνολογία καλά ορισµ ορισµένη, ένη, όπως η HTML, οι επεκτάσεις, επεκτάσεις, καθώς και η  υλοποίηση της από ανεξάρτητους κατασκευαστές επέβαλε τη τακτική αναφορά µας σε WWW sites, όπου η ενηµ ενηµέρωση ήταν άµεση και συνεχής. συνεχής.

105

ΒΙΒΛΙΟΓΡΑΦΙΑ

9.1 World Wide Web www.microsoft.com/sitebuilder/, Τεχνικές, Τεχνικές, Άρθρα, Άρθρα, Ειδήσεις τεχνολογίες της Microsoft στο χώρο του World Wide Web

σχετικά

µε

τις

www.microsoft.com/workshop/, Case Studies µε µ ε λύσεις βασισµ βασισµένες σε εργαλεία της Microsoft για το WWW www.microsoft.com/scripting/, Άρθρα, Άρθρα, Ειδήσεις, Ειδήσεις, Scripting Engines, Documentation σχετικά µε την τεχνολογία Active Scripting της Microsoft www.microsoft.com/ado/, Active Data Objects επίσηµ επίσηµο site µε µε πληροφορίες, πληροφορίες, κωδικά και νέα και  νέα www.microsoft.com/iis/, Internet Information Server  επίσηµ επίσηµο site µε µε τα διαθέσιµ διαθέσιµα προγράµµ προγράµµατα ατα και τεκ µηρίωση www.microsoft.com/inetsdk/, Internet Software Development Kit µε µε εκτενέστατη αναφορά στη µεθοδολογία και στις λεπτοµ λεπτοµέρειες ανάπτυξης ιστοσελίδων στον Internet Explorer  www.insidedhtml.com/, Το web site που συνοδεύει το οµώνυµ ώνυµο βιβλίο, βιβλίο, µε πολλά παραδείγµ παραδείγµατα, ατα, πρόσφατες εκδόσεις και συνεργαζόµ συνεργαζόµενη κοινότητα χρηστών www.microsoft.com/streets/, Ο δικτυακός τόπος για την αντίστοιχη εφαρµ εφαρµογή πλοήγησης της Microsoft που διατίθεται σε CDROM www.microsoft.com/expedia/, Ο ορισµ ορισ µός των web site που ανήκουν στη κατηγορία Tourist Information Systems (TIS) www.mapquest.com/, Εναλλακτικό web site της κατηγορίας TIS www.hotwired.com/webmonkey/, Άρθρα για το το WWW www.wired.com/news/,  Νέα σχετικά µε τη τεχνολογία και τον τρόπο που επιδρά στο πολιτισµ πολιτισµό, στη πολιτική, πολιτική , στις επιχειρήσεις

9.2 Βιβλία Designing the User Interface (Strategies for Effective Human Computer Interaction), Ben Shneiderman Software User Interface Design (Principles and Guidelines), Deborah J. Mayhew JavaScript: The Definitive Guide, David Flanagan Html : The Definitive Guide, Chuck Musciano & Bill Kennedy Inside Dynamic HTML, Scott Isaacs Σχεδιασµ Σχεδιασµός και Υλοποίηση ενός Ολοκληρωµ Ολοκληρωµένου Περιβάλλοντος Ανάπτυξης Εφαρµ Εφαρµογών Γεωγραφικών ∆εδοµ ∆εδοµένων, ένων, Μάνος Αναστασιάδης Byte (www.byte.com), Από τα παλιότερα και εγκυρότερα περιοδικά πληροφορικής, πληροφορικής, που λειτουργεί σαν web site πλέον

106

ΒΙΒΛΙΟΓΡΑΦΙΑ

Wired (www.wired.com/wired), Περιοδικό γενικού ενδιαφέροντος για τις  νέες τεχνολογίες PC Magazine (www.pcmagazine.com), Περιοδικό µε άρθρα γνώµ γνώµης και δοκιµ δοκιµές προϊόντων

107

ΒΙΒΛΙΟΓΡΑΦΙΑ

Extended Abstract The purpose of this diploma is the design and implementation of an informational, navigation and collaboration System for the Web, using as means of user interface dynamic maps that take into account the preferences of the user. The System is based on the client - server architecture and integrates an interactive Map as means of user –  System interaction. It has the functionality of a Tourist Information System (TIS). Users can insert and Update the Information in the System (warm data). Integration of new technologies from Internet has been given special emphasis. The System was implemented with Internet Explorer 4+, Map ActiveX Control, Dynamic HTML for the client side. For the server side we used Internet Information Server, Active Server Pages and a Relational Data Base System, through ActiveX Data Objects. User interaction is supported with a collection of tools and models for data entry and  presentation of information, such as pushpins (map favorites), path waypoints. The results of user queries are items, paths, paths with items of interest and are presented consistently. The items of the data base are associated with map objects and are  presented on it. Each item is associated with one or more categories. Test data in the data base is about Chania and so is the map, but the system is general. Every geographic region, whatever the size, being a city or a region can be used with the system. From this perspective the system is a Geographic Information System (GIS), but the emphasis has been given in the dynamic environment of the Internet. The functionality of the dynamic Map is provided from Map ActiveX Control, from MU.S.I.C. Lab. The Map operates in the environment of IE and integrates with DHTML, supporting the use of events and scripting for the specification of the  behavior of the user interface. Part of the data is embedded in the Map (routes, angles between routes, paths), but usable Information is provided through the interfacing with the server and the database. Although the technology in use is that of the World Wide Web, the System is more like an application (Web Application) than a Web site.

108

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close