AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hat eine Datei etwas eindeutiges?

Ein Thema von Dragon27 · begonnen am 23. Dez 2005 · letzter Beitrag vom 24. Dez 2005
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#11

Re: Hat eine Datei etwas eindeutiges?

  Alt 24. Dez 2005, 14:52
Zitat von ichbins:
Nein, eben nicht
Wo liest du denn das heraus? Ich habe Igotchas Beitrag jedenfalls wie Ratte verstanden. Und ich glaube, dass so ziemlich jedes der vielen Synchronisierungsprogramme bei einem gleichen Hash aufhört und die Dateien als "gleich" abstempelt.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Hat eine Datei etwas eindeutiges?

  Alt 24. Dez 2005, 14:52
Zitat von Ratte:
Die Datein sind also unterschiedlich, ja? Diese Unterscheidung kannst du dann mit einem Hier im Forum suchenHash lösen (z. B. Hier im Forum suchenMD5).
Nein, kann ich in diesem Fall nicht

Mein "Autoupdater" ist nämlich zugleich "Launcher" meines Programms - sprich, der Anwender startet nicht das Hautprogramm direkt, sondern es wird der Launcher gestartet, dieser prüft Gleichheit von lokaler Installation zu Vorgabe auf Server und startet dann das Hauptprogramm.

Es ist aus meinem Empfinden für den Anwender unzumutbar, bei jedem Start des Programms z.B. 3 Minuten zu warten, bis alle lokalen Dateien durchgehasht wurden.

Da mein Programm modular aufgebaut ist, ist es in der Praxis chic, dass zur Neuinstallation nur der Launcher auf dem Clienten installiert sein muss. In der Datenbank auf dem Server ist hinterlegt, welches Modul welche Dateien in welcher Version benötigt und für welche Module der Anwender berechtigt ist. Loggt sich der Anwender nun in den Launcher ein, werden nur genau die Datei auf den Clienten kopiert (sofern nicht beriets in der richtigen Version vorhanden), die für diesen Anwender notwendig sind.

Löscht der Anwender aus Versehen oder bewußt eine Datei, oder verändert eine Datei, ist diese beim nächsten Programmstart wieder im Originalzustand auf dem Clienten vorhanden.

Wie gesagt benutze ich momentan folgende Informationen zur Identifikation einer Datei:

MD5(Compilationsdatum + Dateigröße)

Diese Information liegt zu jeder Datei in der Datenbank und wird mit dem ermitteltem Hash der lokalen Datei verglichen (das ist von der Performance her zumutbar).

Bei z.B. Textdateien gibt es aber kein Compilationsdatum und z.B. die Änderung eines Buchstabens in einer Textdatei würde somit nicht erkannt werden.

Gruß
Igotcha
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#13

Re: Hat eine Datei etwas eindeutiges?

  Alt 24. Dez 2005, 15:11
Zitat von Igotcha:
Es ist aus meinem Empfinden für den Anwender unzumutbar, bei jedem Start des Programms z.B. 3 Minuten zu warten, bis alle lokalen Dateien durchgehasht wurden.
Normalerweise lädt man zusammen mit den Dateien auch die Hashes herunter und hinterlegt das Dateidatum zusammen mit den Hashes. Eine Änderung des Dateidatums und der -größe *könnte* beabsichtigt sein, in einem solchen Fall kann man meinetwegen auf Anfrage neu hashen, ansonsten zweifelt man die Integrität der Dateien an und weist darauf hin, daß es nicht ratsam ist, das Programm weiterhin zu benutzen, ohne die geänderten Daten neu herunterzuladen. Beim Starten lädt man lediglich die Hashes der Dateien auf dem Server herunter, vergleicht mit den lokalen Hashes aus dem Installationscache, unterscheiden sie sich, lädt man neu herunter, ansonsten lässt man's bleiben.
Damit stellst du sicher, daß das Programm zumindest nicht ohne weiteres verändert werden kann, z.B. von Viren infiziert wird, und hältst den Netzwerk-Traffic sowie die Reaktionszeit beim Programmstart gering.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#14

Re: Hat eine Datei etwas eindeutiges?

  Alt 24. Dez 2005, 15:47
Imho solltest du, wenn du nicht gerade die Erstimplementierung eines Neulings verwendest, alle deine dateien locker innerhalb einer Sekunde gehasht bekommen (MD5 schafft etwa ~170 MB pro Sekunde) Von daher würde ich dir raten, alle Dateien zu Hashen, Hash+Dateiname an den Server zu schicken, der dann sagen kann, was geändert werden muss
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#15

Re: Hat eine Datei etwas eindeutiges?

  Alt 24. Dez 2005, 16:16
Zitat von jfheins:
Von daher würde ich dir raten, alle Dateien zu Hashen, Hash+Dateiname an den Server zu schicken, der dann sagen kann, was geändert werden muss
Aua. Nur weil es nicht dein Rechner ist, heißt es nicht, daß du über die Rechenzeit frei verfügen kannst. Es ist definitiv sinnvoll, die Hash-Werte zu cachen, wie beispielsweise in meinem Vorschlag. Rechenleistung und Arbeitsspeicher sind Dinge, die nicht verschwendet werden sollten, egal ob sie in inflationären Mengen zur Verfügung stehen, oder nicht. So sind deine 170MB/s schonmal ein vollkommen irrelevanter Wert, in der Praxis liefert die Festplatte die Daten nicht schneller als etwa 40MB/s. Wenn dann noch das I/O-System durch andere Prozesse ausgelastet ist, bricht die Transferleistung der Festplatte sehr gerne sehr schnell auf sehr niedrige Werte ein. Ähnliches gilt für die Prozessorleistung. Man ist mittlerweile nicht mehr der einzige, der auf einem System das Sagen hat, und so sollte man sich auch benehmen. Außerdem würde dein Verfahren *sämtliche* Entscheidungslast auf den Server verlagern. Sinnvoller ist es, die Clients die Arbeit erledigen zu lassen. Dann kann sich der Server darauf konzentrieren, in den allermeistne Fällen lediglich die Hashes bereitzustellen und nichts großartig zu rechnen, und die Handvoll Hashes lassen sich prima Cachen und schnell on-demand an den Client absetzen, als "Prozessor" würde da alles reichen, was Pointer kennt.
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Hat eine Datei etwas eindeutiges?

  Alt 24. Dez 2005, 18:18
Also ich probiere das mal mit dem Hashen der Dateien.

Und selbstverständlich werden vom Server nur die Hashes der Dateien abgefragt - falls das bisher nicht so rübergekommen ist

Gruß
Igotcha
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz