Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

ασυρματη παραγγελιοληψια

Îåêßíçóå áðü ôï ìÝëïò dani. Τελευταία δημοσίευση από το μέλος eliasm στις 25-11-2008, 17:22. Υπάρχουν 16 απαντήσεις.
Σελίδα 1 από 2 (17 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-07-2008, 13:29 43269

    ασυρματη παραγγελιοληψια

    Καλησπερα σε ολους.Πειραματιζομαι αυτον τον καιρο με compact framework. Θελω να φτιαξω μια ερασιτεχνικη εφαρμογη ασυρματης παραγγελιοληψιας(σαν αυτες που εχουν στις καφετερειες για να παιρνουν τις παραγγελιες και να τις στελνουν στην κουζινα-bar Κλπ).

    Εχω μικρη εμπειρια και γιαυτο ειπα να εξασκηθω μεσα απο ενα πραγματικο σεναριο εφαρμογης. Η πειργραφη της εφαρμογης ειναι η εξης:

    -Θα υπαρχει μια desktop εφαρμογη(C#) με την οποια ο ιδιοκτητης του καταστηματος θα παραμετροποιει το Menu. Δηλαδη θα βαζει τα προιοντα και την τιμη τους. Τα προιοντα ειναι χωρισμενα σε κατηγοριες(καφεδες,ποτα, παγωτα κ.α). Αφου φτιαξει το μενου, για καθε κατηγορια προιοντος θα παραγεται ενα XML αρχειο.Ολα  τα XML αρχεια(που στην ουσια θα ειναι ολο το μενου της καφετεριεας) θα στελνονται στο PDA του σερβιτορου. Οταν ο σερβιτορος θα πρεπει να παρει παραγγελια και καποιος πελατης θελει καφε,θα παταει στο κουμπι "Καφεδες" και θα φορτωνεται στο Datagrid to αρχειο coffe.xml που θα περιεχει τους καφεδες και τις τιμες τους.(απο κει και μετα θα επιλεγει τον καφε που θελει ο πελατης).

    -Θα υπαρχει η εφαρμογη για το Pda οπου θα γινεται η ληψη της παραγγελιας και η αποστολη της στο PC της κουζινας

    Μεχρι στιγμης εχω υλοποιηση το κομματι της desktop εφαρμογης που ειναι για την παραμετροποιηση του μενου και την δημηουργια των xml αρχειων. Οσο αφορα το κομματι της εφαρμογης για το PDA, εχω φτιαξει την φορμα που διαβαζει το xml αρχειο με τα διαφορα προιοντα(π.χ τους καφεδες) και το εμφανιζει σε ενα datagrid. Oλα αυτα γινονται με τον emulator μιας και δεν εχω ακομα pocket pc.

    To ερωτημα μου ειναι πως θα στελνω τα αρχεια ΧΜL απο το desktop pc sto Pda καθε φορα που γινεται καποια αλλαγη στο μενου. Εχω σκεφτει κατι αρκετα φιλοδοξο( για τις γνωσεις μου) αλλα δεν ξερω πως μπορει να γινει. θελω η αποστολη να γινεται με WI-FI. Μπορει καποιος να μου πει τι πρεπει να κανω?Πρεπει να κανω Sockets.

    O Λογος που αναφερω ολο το σεναριο της εφαρμογης ειναι για να ακουσω τις γνωμες σας και τις παρατηρησεις σας οσο αφορα τον σχεδιασμο.

    Ευχαριστω πολυ για τον χρονο σας
  •  06-07-2008, 19:23 43280 σε απάντηση της 43269

    Απ: ασυρματη παραγγελιοληψια

    Αν υπάρχει μόνιμη WIFI επικοινωνία του PDA με το κεντρικό PC, η καλύτερη λύση είναι να συνδέεται απευθείας η εφαρμογή στο PDA με την βάση δεδομένων στο PC. Είναι η ευκολότερη λύση.

    Πέτρος
  •  06-07-2008, 20:24 43282 σε απάντηση της 43280

    Απ: ασυρματη παραγγελιοληψια

    το project δεν θα δουλεψει κατω απο πραγματικες συνθηκες.Γινεται για εκπαιδευτικο σκοπο.Ο λογος που σκεφτομαι να σχεδιασω την εφαρμογη ετσι, ειναι ωστε να μην χρειαζεται συνεχως να ζητα δεδομενα απο τον κεντρικο server. Καλυτερα να εχει το μενου αποθηκευμενο τοπικα. Γιαυτο σκεφτηκα XML αρχεια
  •  06-07-2008, 20:24 43283 σε απάντηση της 43280

    Απ: ασυρματη παραγγελιοληψια

    Δεν θα συμφωνήσω με αυτό, γιατί μία σύνδεση με WiFi μόνο μόνιμη δεν είναι. Ίσα-ίσα, μπορεί κανείς να θεωρήσει δεδομένο ότι η σύνδεση μπορεί να χαθεί κατά το κατέβασμα του XML. Ειδικά σε ένα καφέ είναι πολύ πιθανό να υπάρχουν τυφλές περιοχές ή περιοχές στις οποίες η σύνδεση μπορεί να είναι προβληματική. Γενικά, οι συνδέσεις με βάσεις δεν τα πάνε καλά με τα "occasionally off" σενάρια.

    Μία καλύτερη λύση θα ήταν να χρησιμοποιηθεί ένα απλό web service στο PC το οποίο θα καλεί ασύγχρονα το PDA με κάποιο σχετικά μικρό timeout, έτσι ώστε αν δεν μπορεί να επιτευχθεί σύνδεση αρκετά σύντομα να ξαναπροσπαθεί. Σε περίπτωση που το PDA δεν καταφέρει να συνδεθεί μετά από αρκετά retries, ειδοποιείς το χρήστη ότι υπάρχει πρόβλημα και θα πρέπει να πάει σε κάποια περιοχή με καλύτερο σήμα.
    Εναλλακτικά θα μπορούσες να χρησιμοποιήσεις MSMQ το οποίο σου εξασφαλίζει ότι κάθε μήνυμα που θα στείλει το PC στο PDA θα φτάσει. Δεν το συστήνω όμως γιατί σε περίπτωση προβλήματος θέλεις το PDA να ξέρει ότι δεν μπόρεσε να πάρει το XML.

    Η επικοινωνία με sockets είναι το χαμηλότερο επίπεδο στο οποίο μπορείς να κάνεις την επικοινωνία και συνεπώς πρέπει να χειριστείς πολλά θέματα τα οποία αντιμετωπίζονται σε ανώτερα επίπεδα, π.χ. πως θα μετατρέψεις τα εισερχόμενα δεδομένα από bytes σε XML και πως θα χειριστείς την ασύγχρονη επικοινωνία. Επίσης δεν θα μπορέσεις να προσθέσεις

    Σε περίπτωση που θέλεις να ψάξεις περισσότερο το θέμα του συγχρονισμού μεταξύ συσκευών αξίζει να δεις το Microsoft Synchronization Services  (και ένα σχετικό screencast από τον Daniel Moth) και το επερχόμενο Microsoft Sync Framework. Μπορεί να είναι λίγο υπερβολικά όταν το μόνο που χρειάζεσαι είναι να μεταφέρεις ένα XML μόνο, γίνονται όμως απαραίτητα μόλις η εφαρμογή σου αρχίζει να γίνεται πιο περίπλοκη και πρέπει να ελέγξεις το συγχρονισμό περισσότερων δεδομένων.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  06-07-2008, 20:33 43284 σε απάντηση της 43282

    Απ: ασυρματη παραγγελιοληψια

    Τότε θα σε συμβούλευα να λάβεις υπόψη και τί θέλεις να μάθεις. Σίγουρα, σε μία πραγματική εφαρμογή πρέπει να αντιμετωπίσεις την απώλεια σύνδεσης. Αν όμως έχεις χρόνο μπορείς να ψάξεις τις διάφορες τεχνολογίες που υπάρχουν για επικοινωνία μεταξύ PDA και desktop/server. To web service είναι η ευκολότερη ίσως λύση και θα πρότεινα να το δοκιμάσεις αυτό πρώτα, απλά για να έχεις μία εναλλακτική έτοιμη σε περίπτωση που κολλήσεις με κάποια άλλη τεχνική.

    Υπάρχει επίσης το replication μεταξύ ενός SQL Server και του SQL Server Compact Edition, αν και θέλει ψάξιμο για να το στήσεις καλά. Σου εξασφαλίζει όμως ότι συγκεκριμένοι πίνακες στη βάση της συσκευής θα περιέχουν παρόμοια δεδομένα με τους αντίστοιχους πίνακες στο server.
    Μπορείς επίσης να κοιτάξεις το Microsoft Sync Framework καθώς δεν νομίζω ότι σε απασχολεί για την ώρα ότι είναι σε CTP. Μέχρι να φτιάξεις εμπορική εφαρμογή, σίγουρα θα έχει βγει η κανονική έκδοση.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  06-07-2008, 23:56 43289 σε απάντηση της 43283

    Απ: ασυρματη παραγγελιοληψια

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

    Στην περίπτωση των web services φυσικά, ισχύει ό,τι θα ίσχυε και με μια direct σύνδεση στην βάση. Αν το χειριστεί σωστά κάποιος, μπορεί να τεστάρει κατά πόσο υπάρχει σύνδεση ή όχι και να ξαναπροσπαθήσει αφού ενημερώσει τον χειριστή πως δεν υπάρχει δίκτυο. Σε ένα καφέ πάντως, θα έπρεπε να υπάρχει κάλυψη σε όλα τα τραπέζια. Φαντάζεστε σενάριο: Να πηγαίνει ο σερβιτόρος σε ένα απομακρυσμένο τραπέζι και για να καταχωρεί την παραγγελία του να λέει.. μισό λεπτό λίγο... να φεύγει σε σημείο που να πιάνει σήμα και μετά να ξαναέρχεται στο τραπέζι; :-)

    Πάντως, με μια μικρή κάλυψη WiFi κοντά στο PC που συνήθως βρίσκεται στο μπαρ ενός καφέ, μπορείς να "παίξεις" όλα τα σενάρια: Replication, Sync services, Custom synchronization με XML αρχεία κλπ. Απλώς, θα πρέπει ο χειριστής να πηγαίνει κοντά στο bar για να στέλνει τις παραγγελίες και να παραλαμβάνει νέα πράγματα που μπορεί να χρειάζεται (μενού, ενημερωμένες παραγγελίες κλπ).


    Πέτρος
  •  07-07-2008, 09:38 43296 σε απάντηση της 43289

    Απ: ασυρματη παραγγελιοληψια

    Πέτρος Αμοιρίδης:
    Στην περίπτωση των 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
  •  07-07-2008, 12:00 43301 σε απάντηση της 43269

    Απ: ασυρματη παραγγελιοληψια

    Αν το Project είναι εκπαιδευτικο και απλά θες να πειραματιστής δες τη mobilink της Sybase είναι αρκετά πιο εύκολο από το sync της Microsoft

  •  07-07-2008, 12:17 43302 σε απάντηση της 43301

    Απ: ασυρματη παραγγελιοληψια

    Το Mobilink όμως είναι μόνο για Sybase βάσεις. Όσον αφορά την ταχύτητα του σε σχέση με το replication (αυτό νομίζω ότι εννοείς όταν λες sync) δεν μπορώ να πω γιατί δεν έχω χρησιμοποιήσει ποτέ βάσεις Sybase - ούτε βλέπω να χρησιμοποιώ σύντομα, εκτός και αν το απαιτήσει κάποιος πελάτης. Καλύτερα να δουλέψει κανείς με μία από τις πιο δημοφιλείς βάσεις καθώς αυτό έχει και αντίκρυσμα μετά στην αναζήτηση εργασίας.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-07-2008, 13:21 43303 σε απάντηση της 43302

    Απ: ασυρματη παραγγελιοληψια

    Η mobilink δεν απαιτεί Sybase στο desκtop. Συγχρονίζεται και με SQL Server.

    Για ταχύτητα εννοούσα ταχύτητα υλοποιήσεις – μέχρι στιγμής στη mobilink είναι καλύτερη

    – αυτός είναι και ο λόγος που είναι νούμερο 1 mobile database.

    Τώρα συμβουλές του τύπου – χρησιμοποίησε μόνο sql server γιατί αλλιώς δε θα βρεις δουλειά θα της αφήσω ασχολίαστες

  •  07-07-2008, 18:03 43320 σε απάντηση της 43303

    Απ: ασυρματη παραγγελιοληψια

    Μάλλον παρεξήγησες αυτά που είπα. Καταρχήν το mobilink δεν είναι βάση αλλά ο μηχανισμός synchronization και απαιτεί στον client να υπάρχει ASE Anywhere ή Ultralite. Αυτό σημαίνει ότι θα πρέπει κανείς να προσθέσει άλλο ένα εργαλείο, περιβάλλον ανάπτυξης και API στο project. Αυτό μπορεί άνετα να εξανεμίσει οποιοδήπτε κέρδος στην υλοποίηση. Εξάλλου, για το σενάριο της παραγγελιοληψίας το replication είναι ελαφρώς overkill οπότε δεν νομίζω ότι τίθεται θέμα πως θα το κάνει κανείς, με SQL Server replication ή Sybase replication.

    Όσον αφορά την επιλογή τεχνολογίας, έχουμε αναφέρει πολλές φορές στα "Εργασιακά" ότι όσα κάνει κάποιος φοιτητής σε εργασίες και η διπλωματική είναι το κύριο εργαλείο που θα ξεχωρίσει ένα απόφοιτο από τους υπόλοιπους. Με δεδομένο ότι οι περισσότερες εταιρείες χρησιμοποιούν SQL Server, Oracle και DB2, είναι σκόπιμο να αποκτήσει κανείς εμπειρία σε μία από αυτές τις βάσεις πριν αποφοιτήσει.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-07-2008, 19:36 43321 σε απάντηση της 43320

    Απ: ασυρματη παραγγελιοληψια

    Το mobilink δεν έχει σχέση με replication για αυτό το πρότεινα. 
    Η λύσης για offline σενάριο είναι 2 – είτε βασίζεσαι στη βάση
    είτε γράφεις web services
    (φυσικά υπάρχει και η 3 τη να τα κάνεις όλα μόνους σου).
    Δε νομίζω να παρεξήγησα αυτό που είπες - απλά δεν είχε σχέση
    με το θέμα της συζήτησης.
    Αν μάλιστα κάνεις αναζήτηση π.χ. στο codeproject θα βρεις άρθρο
    από Program Manager της Microsoft sto sync group που περιγράφει ακριβός λύση με mobilink.
    Δε νομίζω ότι ένας φοιτητής χάνει κάτι κοιτάζοντας μια λύση από κορυφαία εταιρία στο χώρο της mobile,
    αν αναλογιστούμε ότι η Microsoft αυτή τη στιγμή δεν έχει αντίστοιχη λύση
    εκτός το merge replication που για αυτό το είδος της εφαρμογής είναι όπως είπες βαρή Normal 0 false false false MicrosoftInternetExplorer4

  •  07-07-2008, 22:40 43323 σε απάντηση της 43321

    Απ: ασυρματη παραγγελιοληψια

    Η λύση του Sync Framework μπαίνει σε δική της κατηγορία. Αν ξεκινούσα σήμερα μια τέτοια εφαρμογή, θα την κοίταζα πιο ζεστά απ' όλες καθώς είναι κομμένη και ραμμένη γι αυτό το σενάριο. Occasionally connected systems.

    Το Sync Framework, σε αντίθεση με τις άλλες τεχνολογίες/τεχνικές δεν αφορά μόνο σε database data. Οτιδήποτε μπορεί να συγχρονιστεί αρκεί να υπάρχει ο ανάλογος provider. Αυτό από μόνο του είναι σπουδαίο χαρακτηριστικό καθώς δίνει τρομερή ευελιξία και τη δυνατότητα χρήσης της υπηρεσίας συγχρονισμού για e-mail, SMS, PIM info, mutimedia content, κλπ. Το sync framework έχει χτιστεί με το scalability ως numero uno χαρακτηριστικό. Έτσι, μια λύση που σήμερα δουλεύει με απευθείας κλήσεις στη βάση, μπορεί εύκολα να εξελιχθεί και να πέσει πάνω σε web services. Επιπρόσθετα, υποστηρίζονται διάφορες τοπολογίες όπως peer-to-peer αλλά και hub-and-spoke.

    Ουφ! Το πούλησα; Big Smile


    Vir prudens non contra ventum mingit
  •  07-07-2008, 23:51 43324 σε απάντηση της 43321

    Απ: ασυρματη παραγγελιοληψια

    Αν το mobilink δεν έχει να κάνει με replication το site της Sybase χρειάζεται διόρθωση.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  08-07-2008, 06:53 43327 σε απάντηση της 43324

    Απ: ασυρματη παραγγελιοληψια

    Η replication τεχνολογία της SQL Anywhere λέγετε SQL Remote. Το mobilink είναι synchronization όχι replication Όποτε δε νομίζω ότι θέλει διόρθωση το site της Sybase.
    Όσο αφορά το sync της ΜS συμφωνώ ότι είναι πόλη υποσχόμενο. Απλά είναι ακόμα σε beta.
Σελίδα 1 από 2 (17 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems