Τι εργαλείο/γλώσσα θα προτείνατε σε κάποιο αρχάριο να χρησιμοποιήσει για να δημιουργήσει ένα web service; Τονίζω το αρχάριος, για να επικεντρωθούμε σε πολύ φιλικά προς το χρήστη εργαλεία :).
Ευχαριστώ.
Τι γνώσεις έχει αυτός ο αρχάριος;
-- Κωνσταντίνος Κωνσταντίνου ~constandinos, December 19, 2005
Συστήνω το Visual Studio .NET 2003. Έχει ένα εξαιρετικά φιλικό περιβάλλον και εύκολες, αυτοματοποιημένες διαδικασίες για δημιουργία ενός Web Service.
-- Χάρης Μιλητός ~harry, December 19, 2005
Επίσης αν μας έλεγε περισσότερες λεπτομέρεις για το web service που θέλει να δημιουργήσει, θα μπορούσαμε να βοηθήσουμε περισσότερο.
-- Σωτήρης Δημητριάδης ~sotiris, December 19, 2005
Ε, βασικά το συγκεκριμένο άτομο πρέπει να ξεκινήσει τη διπλωματική του και πρέπει να κάμει GIS/Web Services, που βασικά θα είναι κάτι(περίπου) σαν την υπηρεσία google maps. Δε γνωρίζει τίποτα σχετικά με web services ή οτιδήποτε σχετικό με web design, απλά γνωρίζει προγραμματισμό, windows applications.
-- Γεωργία Γεωργίου ~georgia, December 19, 2005
Νομίζω ότι αυτό που εννοείς δεν είναι διαδικτυακή υπηρεσία (web services) αλλά διαδικτυακή εφαρμογή (web application). Το πρώτο θα 'χε περισσότερο νόημα αν λογάριαζες να χρησιμοποιήσεις το Google Maps API σε κάποια εξειδικευμένη εφαρμογή (π.χ. να δείχνεις τις στάσεις των λεωφορείων).
Αν ο στόχος είναι απλά η δημιουργία και παρουσίαση των χαρτών τότε, πέρα από την επιλογή web server που θα πρέπει να κάνεις, θα χρειαστείς και κάποια συμβατή βιβλιοθήκη που θα μπορεί να παράγει εικόνες από τα γεωγραφικά δεδομένα/συντεταγμένες που συνήθως αναπαριστούν σημεία, γραμμές, ή πολύγωνα. Τα γεωγραφικά δεδομένα έρχονται ομαδοποιημένα υπό μορφή στρωμάτων (layers) που μπορούν να συνδυαστούν για να σχηματίσουν τους επιθυμητούς χάρτες. Τα στρώματα μπορείς να τα σκέφτεσαι ως "διαφάνειες" που βάζεις τη μια πάνω από την άλλη για να σχηματίσεις το χάρτη σου (ένα στρώμα, ας πούμε, μπορεί να είναι οι δρόμοι, άλλο στρώμα μπορεί να είναι οι λίμνες, άλλο οι πόλεις/χωριά κοκ). Στην άκολουθη διεύθυνση μπορείς να βρεις μερικά layers για τις δοκιμές σου (Cyprus GIS Data Depot).
Θα πρέπει να ενημερωθείς λίγο περί τίνος πρόκειται το server-side programming (υπεραπλούστευση: πρόκειται για κώδικα που εκτελείται στο διακομιστή κι επιστρέφει το "αποτέλεσμα" σε μορφή html σελίδας). Για παράδειγμα, αυτή η σελίδα δημιουργείται δυναμικά κάθε φορά που κάποιος την επισκέπτεται. Έτσι, όταν γράφεις τη διεύθυνσής της ή όταν ενεργοποιείς κάποιο σύνδεσμο (λ.χ. από το πρωτοσέλιδο) στην ουσία ζητάς από το σύστημα να εκτελέσει ένα κομμάτι κώδικα με παράμετρο το ID της ερώτησης (στην προκειμένη περίπτωση το 264) και να επιστρέψει το αποτέλεσμα (την ερώτηση μαζί με τις απαντήσεις της) σε μορφή html σελίδας. Το ίδιο θα μπορούσε να'χε γραφτεί κι ως www.example.com/show-question.php?id=264 όπου:
- www.example.com είναι ένα domain name που αντιστοιχεί στην IP διεύθυνση που βρίσκεται το σύστημα
- το show-question μπορεί να θεωρήσεις ότι είναι το προσδιοριστικό του κώδικα (το όνομα του αρχείου που περιέχει τον κώδικα ή θα μπορούσε να ήταν και το όνομα μιας διαδικασίας)
- και το id=264…. ότι βλέπεις μετά το ερωτηματικό είναι οι παράμετροι.
Όταν θα τα'χεις καλύψει αυτά, τότε είσαι έτοιμη να δημιουργήσεις το χάρτη σου. Ένας χάρτης θα 'ναι μια εικόνα (ή μια συλλογή από εικόνες). Ας πάρουμε την απλή περίπτωση (ένας χάρτης –> μια εικόνα). Θα χρειαστεί κώδικας για τη δημιουργία της εικόνας που προσδιορίζεται από την κλίμακα (που αντιστοιχεί σε κάποιο zoom level) και κάποιο σημείο αναφοράς, π.χ. δείξε τον χάρτη με πάνω-δεξιά γωνιά (x,y) σε κλίμακα 1:300000 όπου τα x και y είναι γεωγραφικές συντεταγμένες (απλοποιημένο). Όταν το'χεις αυτό, τότε μπορείς να ασχοληθείς με το user interface το οποίο λόγω της ιδιαιτερότητας του πρέπει να γίνει σε javascript (client-side) ώστε να μπορείς να έχεις τα drag-and-drop effects που 'χει το google maps (υπάρχουν έτοιμες βιβλιοθήκες γι αυτό το σκοπό αν και δεν είναι πάντα εύκολο να τις αξιοποιήσεις για δικό σου σκοπό).
Ελπίζω να βοήθησα…
ΥΓ. Τα πράγματα δεν είναι τόσο δύσκολα για κάποιο που ξέρει τι κάνει αλλά πρώτα και πάνω απ'όλα χρειάζεται κατάλληλη καθοδήγηση και υποστήριξη από τον επιβλέποντα καθηγητή. Μου κάνει λίγη εντύπωση που μπήκε ένα τέτοιο θέμα γνωρίζοντας προηγουμένως ότι δεν προσφέρονται μαθήματα σχετικά με GIS συστήματα. Ως εκ τούτου, μου δημιουργείται η απορία τι είναι εκείνο που επιδιώκεται περισσότερο μέσα απ'αυτή τη δουλειά…
-- Νεόφυτος Δημητρίου ~k2pts, December 20, 2005
Βοηθήσατε αρκετά, παρόλο που τα περισσότερα τα είχα στα υπόψη. Από καθοδήγηση δεν περιμένω και πολλά από τον καθηγητή μου, αλλά το βασικό είναι να ξεκινήσω. Μάλλον θα ακολουθήσω τη συμβουλή του Χάρη και θα χρησιμοποιήσω .Net2003. Νεόφυτε ήσουν ιδιαίτερα κατατοπιστικός. Ευχαριστώ που ενδιαφερθήκατε.
-- Γεωργία Γεωργίου ~georgia, December 28, 2005