Πέτρος Αμοιρίδης:Στην περίπτωση των web services φυσικά, ισχύει ό,τι θα ίσχυε και με μια direct σύνδεση στην βάση.
Αυτό δεν ισχύει, γι αυτό και πρότεινα τα web services ως εναλλακτική. Μία σύνδεση στη βάση είναι πολύ πιο "φλύαρη" από μία κλήση σε web service, κατά συνέπεια είναι και πιο ευαίσθητη σε απώλεια σύνδεσης. Χρειάζεται καταρχήν μία επικοινωνία και προς τις δύο πλευρές για να ανοίξει η σύνδεση. Μετά, κάθε sql statement που εκτελείται απαιτεί τουλάχιστον μία κλήση στη βάση και μία απάντηση. Επιπλέον, τα timeouts που μπορείς να ορίσεις σε επίπεδο connection ή statement είναι πολύ μεγάλα για ασύρματη επικοινωνία αλλά δεν μπορούν να μειωθούν πολύ γιατί τότε θα γίνει προβληματική η επικοινωνία με τη βάση. Τέλος, η σύνδεση με τη βάση πέφτει μόλις ο client ή ο server καταλάβει ότι έχει διακοπεί η σύνδεση δικτύου. Σε ένα ασύρματο δίκτυο αυτό μπορεί να συμβεί οποιαδήποτε στιγμή, ακόμα και αν το PDA δείχνει ότι υπάρχει η μέγιστη ισχύ σήματος.
Λόγω της καθυστέρησης του δικτύου η κάθε κλήση στη βάση κοστίζει σε χρόνο πολύ περισσότερο από την ίδια τη μεταφορά των δεδομένων. Είναι έτσι πολύ πιθανότερο να χαθούν δεδομένα και να πρέπει να γίνει όλη η σύνδεση από την αρχή με απευθείας επικοινωνία στη βάση. Αντίθετα, μία κλήση σε ένα web service γίνεται πολύ ευκολότερα και η απάντηση έρχεται με μία κλήση μόνο.
Πέτρος Αμοιρίδης:Σε ένα καφέ πάντως, θα έπρεπε να υπάρχει κάλυψη σε όλα τα τραπέζια.
Μία εφαρμογή παραγγελιοληψίας η οποία απαιτεί τέλειο δίκτυο δεν πρόκειται να πάει καλά στην αγορά. H ασύρματη επικοινωνία δεν επηρεάζεται μόνο από προβλήματα κάλυψης. Η σύνδεση επηρεάζεται από παρεμβολές αλλά και από την συνεχή προσπάθεια του PDA να προσαρμοστεί σε σήμα διαφορετικής έντασης καθώς ο σερβιτόρος μετακινείται από τραπέζι σε τραπέζι. Ακόμα και αν υπάρχει τέλειο σήμα όταν εγκαθίσταται το δίκτυο για πρώτη φορά, αυτό μπορεί να χαθεί για οποιοδήποτε λόγο: αλλαγή διακόσμησης, το διπλανό μαγαζί έβαλε κι αυτό WiFi, οι γείτονες έβαλαν κι αυτοί WiFi, στράβωσε η κεραία του access point, μεγαλώσανε τα φύλλα του δέντρου και το κρύβουν, κάποιος σκούντηξε το access point καθαρίζοντας κλπ, κλπ, κλπ.
Πέτρος Αμοιρίδης:Φαντάζεστε σενάριο: Να πηγαίνει ο σερβιτόρος σε ένα απομακρυσμένο τραπέζι και για να καταχωρεί την παραγγελία του να λέει.. μισό λεπτό λίγο... να φεύγει σε σημείο που να πιάνει σήμα και μετά να ξαναέρχεται στο τραπέζι; :-)
Οι εφαρμογές παραγγελιοληψίας δεν δουλεύουν έτσι. Η παραγγελία μπαίνει ολόκληρη στο PDA και όταν ολοκληρωθεί στέλνεται στο server, ακριβώς για να μην επηρεάζεται από προβλήματα στην επικοινωνία. Από την άλλη, δεν μπορεί να χρησιμοποιηθεί μία εντελώς ασύγχρονη λύση όπως το MSMQ ή κάποιο email transport επειδή δεν είναι εύκολο να ξέρει κανείς αν μία παραγγελία έφτασε έγκαιρα ή όχι.
Πέτρος Αμοιρίδης:Πάντως, με μια μικρή κάλυψη WiFi κοντά στο PC που συνήθως βρίσκεται στο μπαρ ενός καφέ, μπορείς να "παίξεις" όλα τα σενάρια: Replication, Sync services, Custom synchronization με XML αρχεία κλπ. Απλώς, θα πρέπει ο χειριστής να πηγαίνει κοντά στο bar για να στέλνει τις παραγγελίες και να παραλαμβάνει νέα πράγματα που μπορεί να χρειάζεται
Το replication με τον SQL Compact edition και τα Sync Services δεν απαιτούν καλή σύνδεση, το αντίθετο. Έχουν σχεδιαστεί για εφαρμογές οι οποίες δεν έχουν σταθερή σύνδεση. Για παράδειγμα, το replication δημιουργεί ένα binary πακέτο το οποίο στέλνει στους client μέσω HTTP και το αντίστροφο. Παρόμοια συμπεριφέρονται και τα sync services.
Όπως και να έχει, το μόνο το οποίο δεν μπορείς να υποθέσεις με μία ασύρματη σύνδεση είναι ότι αυτή θα είναι σταθερή, ακόμα και αν κάθεσαι δίπλα στο access point.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos