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

 

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

VS2005 MultiThreading Question

Îåêßíçóå áðü ôï ìÝëïò jimenez. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 08-06-2006, 15:39. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-06-2006, 12:15 13636

    VS2005 MultiThreading Question

    Kalimera Guys,

    Θέλω να φτιαξω μια εφαρμογη η οποία θα λαμβάνει μέσω GPRS δεδομένα απο 100 μηχανήματα τουλάχιστον. τι ειναι αυτο που πρεπει να προσεξω ωστε να μην χανω δεδομενα, και γενικά να μην υπάρχει πρόβλημα? Δηλαδή εχω φτιάξει ενα πρωτοκολλο και το κάθε μηχάνημα μου στελνει κατι reports. σκεφτηκα ότι ανα 10 μηχανήματα να εχω και μια πόρτα. Σαν σκεψη έιναι σωστό? Μηπως πρεπει να κάνω και απο πλευράς hardware κάτι στον server?


    Dimitris S.
    FIRST TEST THEN CODE....
  •  05-06-2006, 17:20 13667 σε απάντηση της 13636

    Απ: VS2005 MultiThreading Question

    Καλό θα ήταν να γινόταν χρήση Web Services. Αν είχες Web Services που έτρεχαν στον IIS από μόνος του θα  έκανε throttling ώστε να μπορέσει εξυπηρετήσει και όλους τους client ταυτόχρονα, αν κάτι τέτοιο ήταν απαίτηση.

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

    Να μην παραλείψω, ότι αφού τα δεδομένα θα στέλνονται μέσω GPRS, σίγουρα δεν μιλάμε για μεγάλο όγκο, οπότε δεν βλέπω να υπάρχει πρόβλημα για το scaling και μάλιστα σε επίπεδο hardware για το server.

    Και τελευταίο, ότι μην χρησιμοποιώντας πόρτες που χρησιμοποιούνται από τα γνωστά πρωτόκολλα (http, https) πιθανώς να έχεις προβλήματα στην υποστήριξη και από την εταιρεία που σου παρέχει το GPRS.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  06-06-2006, 10:43 13691 σε απάντηση της 13667

    Απ: VS2005 MultiThreading Question

    Υπάρχουν συγκεκριμένες τεχνικές για αποστολή ή την λήψη δεδομένων μέσω GPRS?
    Dimitris S.
    FIRST TEST THEN CODE....
  •  06-06-2006, 20:36 13718 σε απάντηση της 13691

    Απ: VS2005 MultiThreading Question

    Το δίκτυο GPRS είναι το μέσο. Αυτό που σε ενδιαφέρει να ξέρεις και να λάβεις υπόψη κατά το σχεδιασμό, είναι ότι είναι ένα "κακό" δίκτυο, που μπορεί να "πέσει" εύκολα, δεν προσφέρει μεγάλες ταχύτητες - μέγιστη είναι τα 42K αν δεν κάνω λάθος.

    Έχοντας αυτά στο μυαλό σου, μπορείς να καταλάβεις ότι δεν προσφέρεται για σύγχρονες επικοινωνίες μεγάλης διάρκειας. Καλό θα είναι οι εφαρμογές να ξαναπροσπαθούν από μόνες τους 2-3 φορές να επικοινωνίσουν πριν δηλώσουν ότι δεν μπορούν να επιτύχουν σύνδεση.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  07-06-2006, 09:47 13746 σε απάντηση της 13718

    Απ: VS2005 MultiThreading Question

    Απλά το προβλημα είναι ότι στη συσκευή που χρησιμοποιώ πέφτει το socket.
    Dimitris S.
    FIRST TEST THEN CODE....
  •  07-06-2006, 20:04 13781 σε απάντηση της 13746

    Απ: VS2005 MultiThreading Question

    Επειδή ακριβώς το GPRS είναι ένα "κακό" δίκτυο δεν μπορείς να έχεις ένα TCP connection - δύο συνδεμένα sockets - για όση ώρα θέλεις συνέχεια ανοιχτό. Τέτοια προβήματα εννοούσα όταν σου είχα πει ότι μπορεί να έχεις προβλήματα αν δεν παίξεις με standard πρωτόκολλα. Τα GPRS δίκτυα είναι αρκετά segmented και έχουν αρκετούς μηχανισμούς caching. Θα πρέπει η ανταλλαγή μηνυμάτων να γίνει σε στυλ "ανταρτοπολέμου" - "χτύπα και φεύγα". Αν χρησιμοποιήσεις με TCP/IP sockets, έχεις τον απόλυτο έλεγχο της σύνδεσης, αλλά και πρέπει να υλοποιήσεις και τον error correction μηχανισμό, και να ελέγχεις για το state του connection, και γενικότερα θα πρέπει να υλοποιήσεις τα πάντα για τον έλεγχο καλής λειτουργίας.

    Πιστεύω ότι θα ήταν πολύ πιο εύκολο, αν χρησιμοποιούσες το HTTP σαν πρωτόκολλο μεταφοράς. Θα σου έλυνε προβλήματα timeout, μιας και όλο το error correction είναι ενσωματομένο στην λογική του πρωτοκόλλου. Εσύ, με το status code που επιστρέφει, θα ήξερες αν είχες επικοινωνία και αν παραδώθηκαν σωστά τα δεδομένα σου, που είναι και το πραγματικό προβλημά σου.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  08-06-2006, 14:57 13816 σε απάντηση της 13781

    Απ: VS2005 MultiThreading Question

    Έχεις δικιο. Έτσι πρεπει να παιξω. να σε ρωτησω και κάτι άλλο. όταν έχουμε να παίξουμε ενας server και 100 clients η επικοινωνία θα πρεπει να είναι ασύγχρονη?Ή συγχρονισμένη? Σκέψου ότι δεν πρεπει να χάνονται δεδομένα με καμία δύναμη. Αν χαθούν να είναι μόνο λόγο GPRS.
    Dimitris S.
    FIRST TEST THEN CODE....
  •  08-06-2006, 15:39 13819 σε απάντηση της 13816

    Απ: VS2005 MultiThreading Question

    Αν θεωρήσουμε ότι οι clients θα είναι γενικά disconnected και θα μπαίνουν on-line για να στέλνουν τα δεδομένα τότε θα πρέπει να είναι σύγχρονοι. Αν υποθέταμε ότι θα είναι συνέχεια on-line, και έπρεπε να στέλνουν δεδομένα, ενώ θα έπρεπε κάποιος να εκτελεί και κάποια άλλη εργασία ταυτόχρονα, τότε θα μπορούσες να πας στο ασύχρονο.

    Τo always connected για μια mobile συσκευή δεν είναι και ότι καλύτερο. Και από την πλευρά του κόστους που θα έχει η χρήση του δικτύου GPRS, αλλά και για την αυτονομία της ίδια της mobile συσκευής. Μικρότερη κατανάλωση -> Μεγαλύτερη αυτονομία...

    Οι εκατό clients, και ταυτόχρονοι να είναι επάνω στον IIS, δεν αποτελούν ουσιαστικό φόρτο. Αλλά, δεν θα είναι ποτέ όλοι μαζί... Μέσα στο κύκλο της ημέρας, είτε θα μπαίνουν διαδοχικά, είτε, το πολύ-πολύ 2-3 ταυτόχρονοι...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems