- Desktopsuche
-
Mit einer Desktopsuche wird das Durchsuchen eines gesamten Computers, respektive seiner Massenspeicher (wie z. B. Festplattenlaufwerke) bezeichnet. Dem gegenüber steht die Websuche, bei der das gesamte Internet oder Teile davon durchsucht werden. Während für letzteres Suchmaschinen wie Google, Bing oder Yahoo verwendet werden können, können zum schnellen Durchsuchen von Computern nach verschiedenen Inhalten spezielle Desktop-Suchprogramme genutzt werden. Dabei wird von der Anwendung meist der gesamte Datenbestand des Computers durchsucht, eingelesen, gefiltert, indiziert und in einer Datenbank referenziert. Die Programmoberfläche greift dann auf diese Datenbank zu, wodurch eine Rückgabe der Ergebnisse beinahe in Echtzeit möglich ist, und die Suche sehr an Agilität gegenüber klassischen Suchmethoden, wie der Datei-Suche unter Windows oder find unter UNIX-Derivaten, gewinnt. Desktop-Suchsysteme zeichnen sich außerdem durch eine sehr hohe Präzision aus, denn sie filtern die durchsuchten Inhalte je nach Dateityp und ordnen diese Informationen auch sinngemäß zu.
Inhaltsverzeichnis
„Klassische“ Suche und Desktop-Suche
Vorläufer und Pionier heutiger Desktop-Suchsysteme ist das UNIX-Tool locate. Dieses klassische Kommandozeilenprogramm durchsucht einen Index des Dateisystems, der in regelmäßigen Abständen von einem cron-Job aktualisiert wird. Ursprünglich unterstützte locate lediglich das Suchen nach Dateinamen. Im Laufe der Zeit wurde es jedoch immer mehr erweitert, unter anderem um Reguläre Ausdrücke. Auch heute noch (2011) ist es ein wichtiger Helfer. Im Vergleich zu modernen Desktop-Suchen hat locate jedoch einen entscheidenden Nachteil: Es bezieht sich rein auf Dateinamen, nicht auf deren Zusammenhänge, Dateitypen oder Inhalte. Auch reagiert locate nicht in Echtzeit auf Änderungen im Dateisystem, sondern erst nach Ausführung des cron-Jobs, der normalerweise nur zu festen Zeiten (zum Beispiel nachts) gestartet wird. Dadurch sind die von locate zurückgelieferten Inhalte möglicherweise nicht mehr aktuell.
Weiter verbreitet war in der Vergangenheit die Methode, für jede Suchanfrage die Festplatte erneut zu durchsuchen. Zum Einsatz kommt diese Methode etwa unter UNIXen bei find, bei der Windows-Suche, oder auch der Finder-Suche in Mac OS. Der Suchauftrag erzeugt dabei eine sehr hohe Systemlast, da je nach Suche jeder Dateiname, manchmal auch der Inhalt jeder Datei, mit dem spezifizierten Suchmuster verglichen werden muss. Diese hohe Belastung, insbesondere bei feststromquellenunabhängigen Computern, sowie die dafür aufzubringende Wartezeit sind unter Anwendungsbedingungen kaum hinnehmbar, da die Suche meist ohnehin auf einen definierten Kreis von Dateien (zum Beispiel alle IRC-Protokolle) beschränkt ist. Zudem ist diese Art der Suche recht unspezifisch und entweder gar nicht oder nur mit anfängerüberschreitenden Kenntnissen (zum Beispiel der naheliegenden Kombination von grep mit find) erweiterbar.
Deshalb wurden Desktop-Suchsysteme entwickelt. Sie indizieren automatisch eine vorgegebene Gruppe von Dateien (zum Beispiel alle Dateien im Homeverzeichnis des jeweiligen Anwenders oder alle im Dateisystem für den Benutzer lesbaren Dateien), filtern, analysieren und sortieren deren Inhalte nach deren jeweiligem Typ (zum Beispiel OpenDocument, PDF, Bilddateien, E-Mails usw.) und legen die Ergebnisse in ihrem Index ab. Über geänderte und neu angelegte Dateien wird der Index entweder von den Programmen selbst oder durch Überwachung des Dateisystems (zum Beispiel via Inotify) informiert.
Vom Anwender kann der Index dann mittels in Programmen integrierter oder in Einzelprogrammen angebotener Funktionen befragt werden. Intern erfolgt der Zugriff oft mittels einer einheitlichen, standardisierten Datenbankschnittstelle (zum Beispiel SQL), die teils auch dem Benutzer direkt zur Verfügung gestellt wird. Diese sehr stark spezifizierbare (zum Beispiel durch reguläre Ausdrücke) und schnelle (augenscheinlich fast instantan ablaufende) Suche stellt einen erheblichen Produktivitäts- und Zeitgewinn dar. In die normalen Dateidialoge integriert, können so schnell und effizient Dateien anhand von Suchresultaten gefunden und ausgewählt werden, ohne eine lange Zeit mit der Navigation im Dateisystem zu verbringen.
Arten der Desktopsuche
- Systemweite Suche
- Werkzeuge dieser Art sind etwa Lookeen Search, Superior Search, Strigi, MetaTracker, Beagle, Exalead, xfriend, Copernic Desktop Search, Google Desktop, Windows Search Yahoo Desktop Search oder Spotlight. Diese Art der Suche soll eine möglichst umfangreiche und universale Abbildung der Dateien eines Systems bieten.
- Spezifische Suche
- Kleine, in die Benutzerapplikationen integrierte Suchfelder dienen zum Durchsuchen von Listen, Sammlungen, Datenbanken, etc. Diese Suchtypen integrieren sich mehr und mehr in die systemweiten Suchapplikationen.
- Die absolute Suche
- Jede durch einen Menschen interpretierbare Information ist in der Suche entsprechend abgebildet. Jede Applikation, die ihre Informationen in die Suche integriert, stellt eine Schnittstelle zur Suchapplikation zur Verfügung. Diese Methode kann sich auch direkt in die Dateisystem-Schicht eines Betriebssystems integriert sein, um einen noch intuitiveren Zugriff zu gewähren und eine assoziative Dateiverwaltung zu ermöglichen. Die assoziative Dateiverwaltung überschneidet sich von der Funktionsweise her oftmals mit der Desktopsuche, nicht selten gehen beide Techniken Hand in Hand.
Aktuelle Beispiele für die letztere Methode sind etwa:
- Suchfunktionen in KDE, die seit der Entwicklung von Version 4.0 mehr und mehr zusammenwachsen. Es wurden zahlreiche Suchfunktionen und -schnittstellen für KDE entwickelt, die tendenziell immer besser kooperieren. Ein Beispiel hierfür ist die enge Verknüpfung von Katapult mit Kat und Beagle, und Anwendungen wie beispielsweise Amarok.
- Suchfunktionen in BeOS/Zeta, wo über assoziative Dateiverwaltung sowohl eine Abstraktion, als auch komfortabler Zugriff geschieht.
Möglichkeiten und Gefahren
Die zentrale Speicherung und Abbildung der Daten eines Rechners ermöglicht ein viel intuitiveres Auffinden und neue Umgangsformen mit den Daten. Sie birgt jedoch auch einige Gefahren in sich: Die Daten sind zentral gespeichert, nach den Wünschen einiger Anbieter (zum Beispiel Google) sogar zentral auf Servern im Internet. Dies bietet sowohl Missbrauchspotential für Cracker, die Sicherheitslücken in der Software ausnutzen könnten um Zugang zu sensiblen Daten zu erhalten, als auch seitens von Regierungen, für die ein derartiger zentraler Datenpool eine verlockende Möglichkeit zur Verbrechensaufklärung darstellt, aber auch zu präventiver Überwachung Einzelner missbraucht werden kann. Auch Wirtschaftsspionage kann dadurch vereinfacht werden.
Funktionsweise
Grundlage aller dieser Systeme ist die Nutzung einer Datenbank zur Aufbewahrung der Meta-Informationen, sowie die Bereitstellung geeigneter Schnittstellen/APIs für den Zugriff auf diese Datenbank. Die Aufbereitung der Informationen in dieser Datenbank für den Anwender kann dann auf verschiedene Arten erfolgen.
Darstellung über Suchprogramme
Diese Methode ist programmiertechnisch gesehen einfach und robust. Die Suche geschieht über eigene Anwenderprogramme. Es sind keine gravierenden Eingriffe in die Funktionsweise des zugrunde liegenden Betriebssystems notwendig, dementsprechend fehlt aber auch die intuitive Integration, etwa in Dateidialoge und ähnliches.
Beispiele für diese Methode sind etwa Superior Search, Google Desktop Search, regain[1], DocFetcher[2], xfriend, Windows Search, Copernic Desktop Search,Yahoo Desktop Search, exalead desktop free oder Beagle (in seiner Grundausstattung).
Integration in die Dateisystem-Schicht (assoziative Dateiverwaltung)
Aktuell tendieren die Entwicklungen in Richtung einer assoziativen Dateiverwaltung, der Darstellung über die Dateisystem-Schicht/das virtuelle Dateisystem (VFS) der Betriebssysteme. Dies kann auf verschiedene Arten erfolgen, die allesamt gewisse Vor- und Nachteile haben können. Eine derartige Integration ermöglicht eine besonders intuitive Bedienung, da der Anwender im Idealfall nicht zwischen gefundenen und hierarchisch gespeicherten Daten unterscheiden muss.
Eine bereits ausgereifte derartige Entwicklung befindet sich ebenfalls in den BeOS-basierten Betriebssystemen, wo es auf das Dateisystem BFS über das VFS des Betriebssystem aufgesetzt wurde. Es bietet eine sehr schnelle, anwenderfreundliche Desktopsuche aus allen Applikationen heraus, und hat sich als überaus stabil erwiesen.
Die großen freien Desktop-Umgebungen KDE und GNOME, aber auch der Finder in Apples Mac OS X bieten seit längerem über ihr virtuelles Dateisystem vergleichbare Dienste an. Die Referenzierung von Dateien auf der Basis ihrer Meta-Informationen scheint in Zukunft ein wesentlicher Ansatz zu sein, und könnte, besonders für unerfahrene Benutzer, zu einer wesentlichen Erleichterung im Umgang mit Computern führen. Die Einbindung dieser Funktionen über ein derartiges VFS bietet zahlreiche Vorteile für Entwickler, erfordert es aber auch, dass Applikationen, die diese Funktionen direkt nutzen möchten, nicht direkt auf das Dateisystem zugreifen dürfen, sondern dies über die entsprechenden Systembibliotheken unter der Nutzung des VFS tun müssen. Jedoch gibt es mittlerweile Ansätze, die diese VFS-Systeme direkt in das Dateisystem einbinden, unter Linux etwa über das FUSE-Dateisystem.
Microsoft arbeitete zeitweise an WinFS, einer SQL-basierten Dateisystemschicht, die prädestiniert für eine systemweite Desktopsuche gewesen wäre. Eine derart tiefgreifende Integration in das Betriebssystem-VFS von Windows, wie Microsoft das vorgesehen hatte, führte aber zu unerwarteten Problemen. Microsoft hat im Juni 2006 eine Einstellung des Projekts bekannt gegeben.
Suchwerk funktioniert ähnlich, ist aber einigen potentiellen Problemen aus dem Weg gegangen, indem es seine Daten in Form eines Netzwerkslaufwerkes darstellt.
Einzelnachweise
Wikimedia Foundation.