Nachdem sich meine Softwareverteilung Hephaistos , nach einer längeren Testphase, nun kurz vor dem Release befindet habe ich mir überlegt was ich als nächstes machen könnte. Die UDF-Database von Jautois, die ich übrigens echt klasse finde und hoffe das da bald noch einige UDFs mehr rein kommen, hat mich dabei auf eine Idee gebracht. In wie weit diese Idee nun nötig oder unnötig ist sei dahingestellt.
Es gibt doch viele Leute die sich die Mühe machen kleine oder auch große Skripte zu schreiben und diese unter anderem auch hier im Forum zu veröffentlichen. Was ich nun schade finde ist das diese Skripte doch recht schnell wieder in Vergessenheit geraten. Wenn man dann ein bestimmtes Skript braucht erinnert man sich meistens zwar noch, dass es so eines gibt aber nichtmehr wo. Oder noch schlimmer man weiß wo das Skript ist aber die Seite existiert nichtmehr und das Skript ist verloren.
Von daher werde ich mit Projekt „Autoit Script Sharing“ beginnen.
Das ganze wird im Peer to Peer Verfahren ablaufen. Mit Peer to Peer Verfahren ist gemeint das die Daten sich nicht auf einem zentralen Rechner befinden sondern sich die Clients untereinander austauschen. Ein Server ist in diesem Verfahren nur noch dazu da zu Listen welche Skripte verfügbar sind und von welchem Client diese zurzeit verfügbar sind.
Der Vorteil ist der, dass man nicht auf einen einzigen Server angewiesen ist. Man kann auch seinen eigenen Server aufmachen und z.b. nur Skripte unter seinen Freunden tauschen. Auch der Ausfall des Servers ist kein großes Problem da man schlicht auf einen anderen dann ausweichen kann.
Funktion des Servers:
- Listet Skripte die schon einmal im Netzwerk verteilt wurden mit einem eindeutigen MD5 Hash.
- Listet welche Clients, die aktuell online sind, welche Skripte verteilen
- Gibt eine Liste aller bekannten Skripte an Clients aus
- Gibt eine Liste der verfügbaren Quellen für an Skript an Clients weiter
Funktion Client
- Verteilen von Skripten im Netzwerk mit Generierung von eindeutigem MD5 Hash
- Generiert einmaligen public + privat key
- Gibt public-key an anfragenden Client aus
- Verhandelt mit anderem Client einen Session-Key über RSA aus.
- Durchsuchen der im Netzwerk bekannten Skripte