Benutzer:Smilebef/Dezentrale Freifunksuche

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen

Suche (dezentral?)

Ich möchte hier eine Diskusion starten, um die Entwicklung einer Suchfunktion in einem Mesh-Netzwerk voranzutreiben.

Aktueller Stand der Umsetzung

Mit freundlicher Hilfe von Lynxis und Felix habe ich folgende Pakete nach OpenWRT portiert:

  • Swish-e
  • xpdf
  • catdoc
  • noch nicht fertig ghostscript
  • noch nicht fertig opendetex

Als Versuchsaufbau dienen 2 RasspberryPI mit USB-Speicher-Stick, jeweils mit Unicast und Anycast-Adressen. Kleine änderungen des swish-e Programms sind:

  • kleines CGI-Script geschrieben zur Ausgabe einer Such-Umgebung.
  • Swish-e Documente als Beispiel indiziert und mitgeliefert.

Das CGI-Script muß noch vor falschen Eingaben abgesichert werden.

Features realisiert:

  • Swish-e (Config-file) kann jetzt schon txt,html,pdf,doc,xls,ppt Dateien indizieren.
  • Die Funktion zur Synchronisation wurde mittels OLSRD-nameservice-plugin realisiert.

Demnach kann eine Vorabversion schon getestet werden.

ToDo-Liste:

  • Verbesserung der File-Server-Konfiguration
  • Zeitliche Steuerung der Synchronisattion
  • Steuerung für das Indizieren
  • Sinnvoller Austausch der IndexDatei nach dem Mergen.

Allgemeine Grundlagen

Methoden zur kreativen Arbeit

siehe: http://de.wikipedia.org/wiki/Morphologische_Analyse_(Kreativitätstechnik)

  • Brainstorming
  • Morphologischer Kasten
  • Trade-Off-Matrix
  • Allgemeine Beschreibung des Ziels (Anforderungen) und die Formulierung von Randbedingungen
  • Zeitplan (So schnell wie möglich)


Zum Morphologischen Kasten

Die Bewertung könnte wie folgt aussehen.

optimal geht mit Einschränkungen vergiss es

Methoden zum Nachweisen von Behauptungen

Behauptungen müssen nachgewiesen werden. Wenn dies nicht geschieht sollte darauf hingewiesen werden, daß dies eine Behauptung ist und diese durch einen Test nachzuweisen ist.

  • Test (Benchmark)
  • Analyse (Rechnung)
  • Referenz (Quellen fremder Arbeiten)

Anonymität

Unter https://www.bsi.bund.de/DE/Publikationen/Studien/anonym/wasistanonymitaet.html ist ein Referat über Anonymität zu lesen. Ich tendiere zwei Anonymitäten als Wichtig zu erachten, Dies ist also eine Behauptung.

  • Sender-Anonymität
  • Empfänger-Anonymität

Da sich Nutzer in Freifunknetz einwählen können ohne sich registrieren zu müssen, gehe ich davon aus, dass Anonymität beim User gewärleistet ist. Datenerhebungen am Server weiterhin möglich und können auch nicht verhindert werden.

Brainstorming

Zentralisierte Suchfunktion

  • Anwender fragen Server, wo sich Inhalte oder Dienste mit bestimmten Eigenschaften befinden.
  • Datenbeschaffung
    • Webcrawler durchsuchen bekannte HTTP(S)-Server und finden neue Server, indem sie HTML-Links folgen und die verlinkten Inhalte durchsuchen.
    • Serverermittlung
      • DNS-Einträge verraten, welche benannten Server es gibt. Neu hinzukommende A/AAAA-Einträge sind gute Crawlerstartpunkte. Verschwindende Einträge deuten auf verschwindende Inhalte hin.
      • DNS-Abfragen verraten, welche Server häufig genutzt werden (Google betreibt auch deswegen eigene, sehr performante, öffentliche DNS-Server). Wenn die DNS-Server Abfragestatistiken vorhalten, kann man aus ihnen die Beliebtheit von Inhalteservern ableiten und den Crawler häufiger auf die beliebten (und damit wichtigeren) Sites ansetzen.
      • Mittels IPv6-Multicast lassen sich Teilnehmer im Mesh finden, die nicht im DNS eingetragen sind.
    • Diensteerkennung
      • Mit Portscans findet man Webserver und andere Dienste auf bekannten Servern, die nicht auf Standardports laufen. Um zu erfahren, welchen Dienst man gefunden hat, kann man eine Anfrage senden, die ein gesuchter Dienst verstehen müsste (beispielsweise ein HTTP GET auf /) und die Antwort auswerten.
  • Datenauswertung (Indexierung)
    • Map-Reduce kann auf beliebig große Datenmengen angewandt werden, um Zwischen-Statistiken zu gewinnen und aus diesen Suchergebnisse zu generieren.
  • Datenabfrage
    • Pull
      • Über HTTP(S) per Webbrowser (Vorbild Web-Suchmaschinen).
      • Unterstützung für Apple- und Microsoft-Broadcastprotokolle möglich, um Sienste transparent mittels OS-Boardmitteln zu finden?
    • Push
      • Mittels SMTP wenn Inhalte/Dienste im Index auftauchen, die, vorab durch den Nutzer festgelegte Kriterien erfüllen.
  • Ausfallsicherheit/Zensurresistenz
    • Verschiedene unabhängige Suchmaschinenbetreiber gegen Monopolbildung und Single-Point-of-Failure
    • Listung im Freifunk-Wiki, um Sichtbarkeit für Nutzer zu verbessern.
  • Privacy
    • Nutzerdatensparsame Referenzimplementierung
    • Potentielle Trackingmöglichkeiten einer Suchmaschine
      • Statische IPs (fest konfigurierte Heimnetze) können Suchanfragen einzelnen Geräten zugeordnet werden.
      • Dynamische IP-Adressen lassen sich in Layer2-Meshes MAC-Adressen zuordnen, die von vielen Client-OSes nicht randomisiert werden. Über diese MAC-Adressen können Suchanfragen einzelnen Geräten zugeordnet werden.
        • Ohne MAC-Randomisierung oder Onion-Routing nicht verhinderbar!
      • Bei HTTP(S)-basiertem Zugang bieten sich zusätzlich die gleichen Tracking-Möglichkeiten, wie bei herkömmlichen Websites im Internet.
  • Reihenfolge der Suchergebnisse
    • Wunschszenario, welches Szenario ist das, was am sinnvollsten ist?
    • Wie wird verhindert, dass jemand durch Tricks, dieses Sortiersystem zu seinem Vorteil ausnutzt.

Dezentrale Suchfunktion

Meine derzeitige Vorstellung:

  • Es gibt Server mit Inhalt (Dateien bzw.Texten) und Server mit Diensten.
  • Derver mit Diensten werden von olsrd bereits aureichend unterstützt.
  • Server mit Inhalt bedürfen einer Suchfunktion.
  • Realisierung durch kleine Web/Fileserver.
  • Auf jedem Web/Fileserver gibt es ein Such/Find Service.
  • Diese Such/Find Services werden syncronisiert.
  • Die Zusammenarbeit der dezentralen Such/Find-Server wird mittels Uni/Anycast und dem namservice-plugin im olsrd ermöglicht.
  • Es wird nach meinem Kenntnisstand der Olsrd benötigt.

Rubens Vorstellung:

  • Mittels Supernotes.

Veraltet oder unpraktikabel:

  • Broadcast Ping - Suche nach Computern im Netz
  • Broadcast Funktion - Antwort von Servern auf Broadcast bsp. Suche, bsp. Geodaten, bsp.

Wunschzettel, was könnte das besondere unserer Suchfunktion sein

Das ist zu diesem Zeitpunkt pure Utopie:

  • Eine lokale Suche, also die Möglichkeit die Suche auf einen Punkt auf der Landkarte mit einem Radius einzuschränken
  • Dateinahmen, Verzeichnissnamen, Servernamen, Dateiinhalte (Wörter, Phrasen), Bildersuche
  • Openstreetmap Verbindung

Anforderungen und Ziele

  • A1 Volltext-Suche.
  • A2 Das Suchergebnis soll nach Relevanz, und diverser Eigenschaften sortiert werden können?
  • A3 Das Suchergebnis soll gefiltert werden können für Dokumenttyp, ...
  • A4 Hohe Verfügbarkeit.
  • A5 Lauffähig auch auf leistungsschwachen Rechnern.
  • A6 Dezentralität als eine globale Anforderung. Positive Effekte sind eine Erhöhung der Rechenleistung und die Erhöhung der Verfügbarkeit. Smilebef/Dezentrale Freifunksuche,2013-04-28
  • A7 Einfache Installation/Konfiguration.
  • A8 Die Suchserver kommunizieren automatisch miteinander.
  • A9 Die Suchserver syncronisieren ihren Datenbanken automatisch.
  • A10 Die Suchserver mergen ihre Indexdateien.
  • A11 Es wird eine Eingabe Doku benötigt.
  • A12 Vielleicht Regex unterstützung?

Randbedingungen (tbc!)

  • RB1 Als GUI dient der Webbrowser. (Sonst zu Aufwendig)
  • RB2 Es wird der olsrd genutzt. (Sonst zu Aufwendig)


Wie könnten Suchmachinen realisiert werden

  • Zentrale Suchmaschinen
    • Ein oder mehrere Server durchsuchen schrittweise das gesamte Netz.
    • + Es gibt mehrere große Vorbilder (Google, Bing, Yahoo, Baidu...), die beweisen, dass das Konzept mit Netzen in Internetgröße funktioniert.
    • + Inhalteanbieter müssen sich (abseits von genereller Crawlbarkeit) nicht um die Integration der Suchfunktion kümmern.
    • - Benötigt extra Server für die Suchfunktion.
  • dezentrale Suchfunktion
    • Ein User im Netz ist in der Lage mittels Broadcast oder auch einer Abfrage eines IP-Bereiches alle Server zu durchsuchen
    • + Widerstandsfähiger gegen Zensur, als das zentralisierte Modell, weil der Index verteilt dort liegt, wo die Inhalte liegen.
    • + Reagiert, im Gegensatz zu zentralisierten kooperationslosen Lösungen, sofort auf hinzukommende oder verschwindende Inhalte.
    • - Verursacht Broadcasttraffic.
    • - Alle Inhalteanbieter müssen mitarbeiten, damit die Suchfunktion vollständige Ergebnisse liefert.
  • Mischformen zentraler und dezentraler Suchmaschinen
    • Mehrere Computer durchsuchen schrittweise das gesamte Netz - yacy
    • Supernodes unterstützen die dezentrale Suche

In welche Module bzw. Probleme lässt sich eine Suchfunktion unterteilen

Olsr-plugin steht vereinfacht für den äquivalenten Mechanismus mit Batman, weil ich den nicht kenne.

  • Indizierung der Daten (welches Tool, zentral/dezentral, online/offline)
  • Speicherung der Index-Dateien (zentral/dezentral?)
  • Aufruf des Suchbegriffes (Suchoptionen, Suchsprache)
  • Verarbeitung des Suchbegriffs (Suchserver, zentral/dezentral, Protokoll)
  • Suchanfrage vom User zum Server (Client/Webbrowser bei Eingabe, olsr-plugin bei Server, Protokoll Multicast)
  • Sammeln der Suchergebnisse und zusammenfassen der Suchergebnisse (olsr-plugin, Protokoll, Extra-server)
  • Suchantwort vom Server zum User (olsr-plugin, Protokoll, zentral/dezentral)

Werkzeuge, welche für die Suche hilfreich sein können

Das Für und Wider von Tools zur Vereinfachung der Suche auf einem lokalen Rechner soll mit folgender Tabelle verdeutlicht werden..


Tools Fähigkeiten Indizierung Speichergebrauch Sprache Referenz
locate Verzeichnis, Dateinamen ja - - "man locate"
file Dateityp erkennen - - - siehe openwrt feeds
html2txt HTML zu Text converter nein ? C http://www.u32.de/soft_htm.html
swish-e/swish++/swish-search Suche in Dateien, Dateinamen,Verzeichnis, Wörter, Phrasen ja ? C++ http://swish-e.org/docs/swish-search.html
find Verzeichnisbaum, Dateinamen, Dateiinhalt, Wörter nein ? ? "man find"
doodle Doodle sucht auf Ihrer Festplatte mithilfe von Mustersuche in Metadaten nach Dateien. ja hoch ? apt-cache show doodle

Datenvoraufbereitung als Beschleunigung für eine Suche in vermaschten Netzen

Diese Tabele soll die Entscheidungsfindung für eine Suchmethode darstellen und Dokumentieren.


Morphologischer Kasten
Eigenschaft Ausprägungen
Organisation
zentral dezentral hybrid (dezentral + supernodes)
Art der Datenbeschaffung
Katalog Webspider IPv6-Mulitcast DNS-Abfrage Portscan Multicast mit Zufallszahlen
Web-Rohdatencache
None abgerufene Dateien
Indizierung
None Einzelwörter Wort-N-Gramme
Web-Abfrageoberfläche
None HTTP(S)
Indexupdates
None RSS-Feed
bei Indexupdate
None SMTP-Push