Προς το περιεχόμενο

Ενημέρωση εφαρμογής. Καλύτερη λύση;


SL9S9

Προτεινόμενες αναρτήσεις

Γεια,

Αν ξέρει κανείς, ή κάποιο hint ή site ή βιβλιο για το εξής πρόβλημα:

------------

Εχουμε client εφαρμογή η οποία ενημερώνεται από ένα αρχείο Χ.DAT που κατεβάζει κάθε μία ώρα (με timer) από ένα FTP site. Μπορεί να έχει εγκατασταθεί και σε 500 pc.

Μια άλλη εφαρμογή (σε ενα μόνο pc) παιζει το ρόλο server και ανεβάζει νέο Χ.DAT αρχείο στο ftp site ανα τυχαία χρονικά διαστήματα.

1. Πως μπορεί να ειδοποιήσει τα 500 pc clients κατεβάστε ΤΩΡΑ;

2. Πως καταγραφει ποιοί είναι συνδεδεμένοι στο internet για να ενημερώσει μόνο αυτούς;

3. Aν οι 100 κατεβάζουν, όταν το pc server ανεβάζει το X.DAT θα απαγορευτεί μεχρι να τελειώσουν το κατεβασμα; (read - write ταυτόχρονα)

------------

Mια πρόχειρη λύση μέχρι να βρω κατι (μαλλον βιβλιο - μιας και με internet programming δεν ασχολήθηκα) ειναι να τσεκαρουν καθε 5λεπτά ενα μικρό αρχειακι με την ώρα τελευταίας ενημέρωσης του X.DAT και αν άλλαξε να το κατεβάζουν...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα μπορούσαν οι client όταν συνδέονται με τον server να "κρατάει" της ip τους σε μία ΒΔ.Έτσι όταν ανεβαστεί το αρχείο να μπορεί να ειδοποιεί τους client ότι είναι η ώρα τους να αρχίσουν το κατέβασμα.

Όμως θα πρέπει να δωθεί μεγάλη προσοχή στο πως να διαγράφονται οι client από την βάση.Έτσι καλό είναι ο server να κάνει αιτήσεις τύπου ping έτσι ώστε να διαπιστώσει αν ο client είναι online και εν συνεχεία να τον διαγράφει.Αλλιώς όταν ο client αποφασίσει να αποχωρήσει από αυτό το σύστημα να ενημερώνει τον server και να διαγράφεται.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όταν το Χ ανεβαίνει, να ανεβαίνει με άλλο όνομα (π.χ. Χ2) και μετά να γίνεται rename, ώστε η διαδικασία αλλαγής του Χ αρχείου να διαρκεί μόνο μερικά ms.

 

Δεν ξέρω αν σε ενδιαφέρει να κάνεις replication ανάμεσα στους 500 clients. Π.χ. αν ανά ομάδες βρίσκονται σε τοπικά δίκτυα, τότε αρκεί να το κατεβάσει ένας από κάθε ομάδα, και οι υπόλοιποι το παίρνουν από αυτόν. Κάτι σαν ψιλο-peer 2 peer δηλαδή.

 

Το αρχείο που λες που να έχει την ημερομηνία δεν χρειάζεται, μπορούν να ρωτάνε το file timestamp (ημερομηνία δημιουργίας του X αρχείου).

 

Για να ειδοποιήσει ο server τους clients δεν είναι εύκολο, θα πρέπει να υπάρχει ανοιχτό connection. Κι αν είναι και πίσω από ΝΑΤ δε βολεύει να κρατάει απλά τις IP τους. Πιο εύκολο μου φαίνεται να ρωτάνε απλά κάθε τρεις και λίγο για το timestamp...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όταν το Χ ανεβαίνει, να ανεβαίνει με άλλο όνομα (π.χ. Χ2) και μετά να γίνεται rename, ώστε η διαδικασία αλλαγής του Χ αρχείου να διαρκεί μόνο μερικά ms.

Αν κανω rename παλι θα με αφήσει όταν τελειωσουν όλα τα download φανταζομαι.

Kαι εγω κάπως ετσι το σκεφτομαι με 2 αρχεία αλλά κυκλικα πχ ανεβαζω το 2 κατεβαζουν το 1, ανεβαζω το 1 κατεβαζουν το 2 και ενα flag αρχείο που δείχνει τι να κατεβασει. Νομιζα οτι ο ftp server εχει καποιο εξυπνο αλγόριθμο και βαζει σε cache οτι κατεβαζουν για να μπορείς να κανεις upload καθε στιγμή. Σιγουρα δεν εχει;

 

Πιο εύκολο μου φαίνεται να ρωτάνε απλά κάθε τρεις και λίγο για το timestamp...

Aν το κανω καθε 5 λεπτα φανταζομαι δεν πειραζει.

Αν το κανω καθε 5 δευτερολεπτα λετε να γινει συμφόριση; (από 500 pc)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν κανω rename παλι θα με αφήσει όταν τελειωσουν όλα τα download φανταζομαι.

 

Ανάλογα το λειτουργικό, μπορεί να σε αφήνει να κάνεις rename ενόσω ένα αρχείο χρησιμοποιείται. Οπότε αυτοί που κάνουν download συνεχίζουν να κατεβάζουν το παλιό (renamed πια) αρχείο χωρίς διακοπή.

Δεν ξέρω άλλες λεπτομέρειες, μια δοκιμή θα σε πείσει. Φτιάξε ένα τεράστιο αρχείο, βάλε να κάνει download και δοκίμασε να το κάνεις rename να δεις αν το δέχεται.

 

Υπάρχουν και php scripts τα οποία υποστηρίζουν resume, οπότε μπορείς αν θες να μην το μοιράζεις μέσω ftp αλλά μέσω http. Καλύτερα θα είναι έτσι μου φαίνεται...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...