Synology Indexer

Status
Für weitere Antworten geschlossen.

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Hallo,

wie bereits in anderen Posts mitgeteilt, beschäftige ich mich mit Datenmanagement und habe schon eigene Umfangreiche Ideen verwirklicht. Meine ersten Entwicklungen zum Datenmanagement entstanden im Jahre 2002. Im Jahre 2010 habe ich meinen ersten Prototypen in Apple Script fertiggestellt (Dauer 1 Jahr). Alles was an Daten gefunden wird untersucht es und ordnet die richtigen Stichworte zu, entsprechend auch die richtigen Kommentare beifügt, Etiketten vergibt, das Datum der Erstellung oder das Datum im Schriftverkehr herausfindet, ein Verfallsdatum vergibt, ein Archivdatum errechnet, den Dateinamen entsprechend Manipuliert und auf der Disk Station im richtigen Verzeichnis ablegt. Sogar einen Eintrag in eine Filemakerdatenbank erzeugt. Wobei ich Filemaker wieder entfernt habe und besser auf MySQL gehen werde. Die Adressen, Mails, Notizen und Projekte der entsprechenden gefundenen Ergebnisse miteinander verknüpft und das alles automatisch macht.

Da ich begeisterter Synology Besitzer bin habe ich angedacht einen Daten Indexer für Synology Disk Stations zu bauen. Da mySQL und die Daten auf der DS sind könnte die DS zu einem leistungsfähigen FileServer werden.

Ich benutze zur Zeit unter OS X ein Katalogisierungsprogramm, bin aber damit mehr als unglücklich, da ich mit meinen 28TB Plattenkapazität eine Menge Informationen habe die geordnet sein wollen und auch sollten, denn man hat zwar alles, findet aber nichts. Das ist nicht nur bei mir so, sondern damit haben alle zu kämpfen. Sei es Privatanwender als auch Firmen.

Da meine Daten nun quasi mit Metadaten versehen sind, habe ich mir den Indexer so vorgestellt, das dieser die gesamte DS durchsucht und gefundene Einträge in eine Datenbank schreibt.
Natürlich schreibt er dann nicht nur die Dateinamen, sondern auch alle Metadaten in Listen damit nach vielen Kriterien gefiltert werden kann.

Denn in der heutigen Zeit reicht einfach eine Starre Ordnerstruktur nicht mehr aus.
Ich habe eine Idee, die viele Probleme lösen wird und das gesamte Datenmanagement in einem ganz neuen Licht darstellt.

=== gekürzt, siehe nächsten Post ===

Die weitere Entwicklung und Diskussion wird dann nicht mehr öffentlich werden, da ich auch nicht verschweigen möchte, das es später zum Ende ein kommerzielles Produkt geben wird, die auf allen Plattformen laufen soll.

Als Hausmann und Vater und jetzt noch als Student (April 2010) im Bereich Informatik Anwendungsentwicklung habe ich keine Einkünfte. All die Mühen und arbeiten sollen sich ja auch mal auszahlen.

Viele Grüsse
Michael
 
Zuletzt bearbeitet von einem Moderator:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Die weitere Entwicklung und Diskussion wird dann nicht mehr öffentlich werden, da ich auch nicht verschweigen möchte, das es später zum Ende ein kommerzielles Produkt geben wird, die auf allen Plattformen laufen soll.

Da wir hier alle eigentlich immer etwas 'kostenlos' für die Community entwickeln, ist es Schade, dass du hiervon abweichen willst. Klar verkauft der ein oder andere seine Entwicklungen; aber die meisten, die auf Know-how hier im Forum zurück greifen, stellen dann wenigstens auch eine unter GPL3 stehende Version ein, um sich sozusagen für die Leistungen bei den anderen zu bedanken.

Im engeren Sinne machst du Werbung für ein (zwar noch nicht vorhandenes, aber eben) kommerzielles Produkt und da kommerzielle Werbung hier im Forum zur Zeit unerwünscht ist, muss ich deinen Beitrag leider etwas modifizieren.

Ich hoffe, du hast Verständnis dafür.

Itari
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Hallo itari,

verstehe ich schon.
Werbung wollte ich hier nicht machen, sondern jemanden finden der die gleichen Interessen hat um ggf. Kontakt für eine Zusammenarbeit zu knüpfen.

Wenn nicht hier, wo dann?

Ganz abgeneigt wäre ich nicht hier im Forum eine spezielle Version zur Verfügung zu stellen, aber nicht die Entwicklungen und die viele Arbeit die ich gemacht habe Preis zu geben. Mittlerweile arbeite ich schon 9 Jahre daran und das Studium ist der Grund gewesen, das ich dann doch alles alleine machen muss.

Ich versuche hier jetzt das letzte mal Kontakte zu knüpfen bevor ich die endgültige Entscheidung treffe wirklich das Projekt alleine durch zu ziehen, das den Nachteil hätte, das es bis zur Fertigstellung noch viel länger dauern würde.

Ich bin bereit eine spezielle Version kostenfrei exklusiv für dieses Forum frei zu geben.
Bezüglich der Diskussionen könnte man halböffentliche machen, denn ein Feedback wäre schon wichtig.

Viele Grüsse
Michael
 
Zuletzt bearbeitet:

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Hallo,

also ich beginne mit dem Projekt demnächst.
Erst muss ich mich in HTML, PHP, MySQL und JavaScript einarbeiten.

Viele Grüsse
Michael
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Hallo Itari,

welche Sprache würdest Du für den Indexer Vorschlagen?

1. Datenbank MySQL.
2. DiskStation Indexer in Sprache in PHP und Java oder in C++?
3. Frontend in Desktop Sprache (Mac Objective-C)

Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
MySQL, PHP und JavaScript ... Ich würde es so konzipieren, dass du es mit jedem Browser verwenden kannst, dann bist unabhängig.

Itari
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Ist ein Browserorientierter Dateimanager denn nicht umständlich und unhandlich?
Daten hochladen, hunterladen usw.?
Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Vielleicht habe ich deine Idee nicht ganz verstanden ... die Dateien, die indiziert werden sollen, sollen aber schon auf der DS gespeichert sein, oder? Da kann dann PHP drauf zugreifen. Und die Abfragen und Listen sollen schon in einer GUI erfolgen, da wäre dein Browser das Tool erster Wahl, weil du ja sonst auf einen anderen Fenstermanager angewiesen wärest ... Browser wiederum verstehen JavaScript ... also der DiskStation-Manager wäre jetzt JavaScript in einem Browser ... so schlecht finde ich den nicht ... z.B. den Dateibrowser im DSM ist doch gut gelungen - das ist reines JavaScript ...

Itari
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Doch hast schon richtig verstanden. Die Daten liegen auf der DS und über ein GUI sollen Filter gesetzt werden können um Datensätze an zu zeigen. Ich möchte nur vermeiden, dass wenn auf eine Datei zugegriffen wird, das diese noch mal herunter geladen wird. Diese soll dann zu öffnen sein und wenn diese im GUi angewählt wird, sollen alle gespeicherten Daten angezeigt werden.

Der Browser von der DS ist schon gut, aber wünschenswert wäre auch eine Vorschau der Datei, so wie ich es vom Mac her kenne.
Vielleicht wäre Ajax etwas, ich habe den ajaxplorer gesehen, sieht gut aus, habe diesen aber noch nicht installiert bekommen.

Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Das 'j' von Ajax steht für JavaScript - du bist also schon auf dem richtigen Pfad. Vorschau kann man mit allen den Dateitypen machen, die auch bislang im Browser 'geöffnet' werden können. Das ist entweder eine Eigenschaft des Browsers oder eines installierten oder zu installierenden Plug-Ins.

Vielleicht kannst ja erstmal die ganze Geschichte für PDF ins Auge fassen (da gibt es so ziemlich alles für) und wenn das für PDF geht, erweitern auf andere Dateiformate ... so könnte man ein wenig die Baustellen mit Prioritäten versehen. Ich könnte dir zu PDF sicherlich einige Tipps geben - zum Mac eher gar nicht, weil ich da nichts von kenne ...

Itari
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Ja mit PDF erst mal anfangen, so habe ich das auch mit meinem DMS Protoypen gemacht und dann die anderen Dateitypen eins nach den anderen eingepflegt.

Benötige ich dann 2 Teile software?
Eine die auf der DS (server) ausgeführt wird und eine auf dem Client?

Auf dem Server, der die Arbeiten ausführt und auf dem Client.

Reicht da Java (welches ich erst mal lernen muss) oder muss ich da noch C++ (muss ich dann noch ebenfalls lernen).

Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Für JavaScript musste nicht unbedingt 'Java' lernen ... hat eigentlich nicht direkt was mit Java zu tun ... aber hätte ich jetzt ECMA-Script geschrieben (so heisst das Teil mittlerweile offziell), dann wärs nicht verstanden worden.

PHP wird auf dem Server ausgeführt und erzeugt einen HTML-Text, welcher dann der Browser interpretiert. In dem HTML-Text stehen nun JavaScript-Anweisungen drinne. Beispiel:

<?php
echo '<script>alert("huhu");</script>';
?>

Das wäre jetzt ein PHP-Skript und das gibt den HTML-Text '<script>alert("huhu");</script>' aus. Dieser HTML-Text enthält ein HTML-Tag namens 'script' und wenn man nichts großartig weiter dazu schreibt, dann wird JavaScript/ECMA unterstellt. Das heisst, der Browser erkennt die Funktion 'alert' und führt sie aus. alert ist so ein Popup-Text-Macher; in unserem Beispiel wird "huhu" vom Browser ausgegeben.

Du siehst also, dass nur 1 Teil (=1 Datei) verwendet wird; in der sowohl für den Web-Server Aufgaben drinne stehen ('echo') als auch für den Browser Aufgaben drinne stehen. Da muss man sich erstmal ein wenig dran gewöhnen, aber danach ist das genial. So funktionieren alle Web-Geschichten ... klar kann man auch aus der Geschichte mehrere Dateien machen, damit es dann übersichtlicher wird (nur werden sie letztendlich dazu verwendet, einen Datenstrom vom Web-Server zum Browser zu senden, welcher sich dann um die Umsetzung kümmert.

Am besten so holst dir mal ein kleines PHP-Anfängerbuch oder suchst ein Web-Tutorial und arbeitet dich da ein; nach 2-3 Tagen hast dann soweit alles auf die Reihe bekommen, dass du dir dann JavaScript anschauen kannst ... Dafür gibts auch nette Einführungen. Nur damit wir uns nicht missverstehen: PHP kann auch ohne JavaScript auskommen (ist dann halt nicht so dynamisch im Browser) und JavaScript kann auch ohne PHP-Auskommen, wenn man keine Geschichten mit Datenbanken und Dateien vor hat ... Für deine Aufgabenstellung brauchst beides.

Itari
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Wie wird das mit der Performance sein?
Der Server hat zwar Ressourcen frei, möchte aber nicht diesen in die Tiefe ziehen.
Die Webtechnologie scheint zwar genial zu sein, wird aber die Frage aufwerfen, ob diese Technologie auch sinnvoll ist.
Wenn man mal überlegt, es wäre dann Platformunabhängig aber auch Ressourcen schonend?

Ich glaube hier beginnt den Ansatzpunkt zu finden, wie der Indexer arbeiten soll.

Zu Beginn muss die Datenbank einmal aufgebaut werden.
Dafür muss die DS einmal Katalogisiert werden.

Das heißt zu jeder Datei müssen:

- Fetstellung der Datei (Suffix). Suffix Extratabelle erstellen (Übersicht der Dokumente)
- Dokumentname und Pfad in die DB schreiben
- eine eindetige ID generieren (md5 ??). Um Dateien eindeutig unterscheiden zu können (Zusatzoption Nachtmodus)
- Stichwörter aus der Datei entnehmen und in die DB schreiben
- Etiketten aus der Datei entnehmen und in die DB schreiben
- Datumsangaben aus der Datei entnehmen und in die DB schreiben
- Archivierungsdatum aus der Datei entnehmen und in die DB schreiben
- Verfallsdatum aus der Datei entnehmen und in die DB schreiben
- es gibt noch einige Metadaten die in den Dateien enthalten sind, die in die DB geschrieben werden sollen

Diese erste Erstellung der DB wird schon einiges an Zeit und Ressourcen (Wie bei den ersten Backups :rolleyes:) brauchen, aber für die Aktualisierung möchte ich keine weiteren Scanns in bestimmten Zeiträumen ausführen lassen um Änderungen zu finden.

1. Sind diese nicht Zeitnah und die Dateien können erst wieder verwendet werden wenn diese wieder eingebunden wurden
2. Kosten Unmengen an Ressourcen und Zeit
3. Wenn ich mehr darüber nachdenke fällt mir bestimmt noch einiges dazu ein.

Zu überlegen ist ob nicht doch besser eine Hochsprache wie C, C++, und Objective-C verwendet werden soll?

Es würden zwei Teile von Software benötigt werden.
Serversoftware: Für Arbeiten auf der DS um die Ressourcen des Clienten zu schonen
Clientsoftware: Übersichtliche Gui mit Datenbankinhalte und Zugriff auf die Dateien (Filemanager).

In der Unibibliothek in Düsseldorf habe ich schon Bücher ausgelihen und zwar über PHP, HTML, JavaScript, MySQL, C, C++, Objective-C, und Ajax.

Leider ist das soooooo umfangreich und weiss nicht welches das geeigneteres ist, weil ich nichts davon kenne und unendlich Zeit habe ich auch nicht um alles zu lernen und dann das Projekt weiter zu machen. Bin auch im ersten Semester.

Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ich denke, auch hier solltest erst einmal anfangen und zwar mit PHP. Kannst ja später immer noch Teile in einer anderen Sprache schreiben und ins PHP-Skript einbinden, wenn es für die Performance notwendig wäre. Du kannst aber auch Linux-Tools verwenden (z.B. den find), um nach Änderungen oder neuen Dateien zu suchen ... das geht auch sehr fix. Wenn du später die Datenbank abfragen wirst, dann wirst merken, dass die Datenbank beim Abfragen eher das Performance-Problem sein wird als dein Programm, um sie zu füttern ... aber alles das kannst erst wirklich sagen, wenn es läuft und du die Performance misst. Vorher ist es unbelegbar ...

Noch ein Tipp: C, C++ und Objective-C kommen erst so richtig in Fahrt, wenn man mit Bibliotheken (Libraries) zusammenspielt ... das kann gerade am Anfang sehr anstrengend sein, weil es da sehr viele von gibt und man sich nicht immer sicher sein kann, auch auf das richtige Pferd zu setzen. Auch bei PHP ist as zum Teil der Fall (schau dir mal das Online-Manual zu PHP an), aber mittlerweile sind halt schon eine Menge in den PHP-Kanon aufgenommen worden und - das ist halt auch wichtig - bereits für den/die Prozessoren der DiskStations übersetzt (kompiliert) worden und du kannst damit schon loslegen; das ist bei C, C++ und Objective-C (was nicht auf den DSen so ohne weiteres läuft) nicht unbedingt der Fall.

Itari
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Ok, dann werde ich mich mal in PHP und MySQL einarbeiten.
Ich habe dazu ein Video PHP 5.3 und MySQL 5.1. Dann noch die Seite www.php.de.
So das wird jetzt mal ein paar Tage dauern.

Ich werde dann als erstes mal herausfinden, wie man ein Dokument in eine Tabelle schreibt.
Dann werde ich den Suffix abschneiden und in eine gesonderte Tabelle schreiben um eine Übersicht der Dateiarten zu bekommen.

Michael
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
Arbeitest Du mit Eclipse?

Michael
 

amarthius

Super-Moderator
Teammitglied
Mitglied seit
03. Jun 2009
Beiträge
6.816
Punkte für Reaktionen
33
Punkte
174
Arbeitest Du mit Eclipse?

Michael
Eclipse ist glaube ich die am meisten verbreiteste IDE. Sie wird in vielen Büchern zum Thema Programmierung erwähnt. Viele Programme für die Systementwicklung nutzen Eclipse bzw. bieten Plugins dafür an.

Eine Alternative wäre NetBeans. Hat mir persönlich, aber nicht so zugesagt von der Benutzerführung und Optik.
 

michael m1

Benutzer
Mitglied seit
22. Jun 2009
Beiträge
270
Punkte für Reaktionen
0
Punkte
0
In meinem Video wird Eclipse benutzt und finde es nicht schlecht.
Ich habe nur ein Problem mit Eclipse.
Der Arbeitsordner lässt sich nicht auf ein gemountetes Volume legen.
Ich muss dann ständig die Files hochladen.
Mit Dreamweaver lässt sich dr Arbeitsordner auf ein Volume ablegen, aber immer wenn ich eine
Vorschau im Browser mache, nimmt er nicht http: sondern file:.

Ist sicher eine Einstellungssache, aber leide habe ich diese noch nicht gefunden.

Michael
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Für meine PHP-Geschichten hab ich nur einen Editor verwendet (Notepad++, PSPad). Aber selbstverständlich kann man auch eine IDE wie Eclipse verwenden. Es ist halt so eine Geschichte, ob man sich ein wenig 'führen' lassen will oder ob man erst mal alles selbst verwalten möchte und dabei auch so seine Erfahrungen macht. Mein Tipp wäre, es erst einmal ohne IDE zu probieren, um auch zu sehen, welche Konventionen man so selbst entwickelt ... Der Mensch ist ein visuelles Lerntier und prägt sich natürlich Schreibkonventionen optisch ein. Wenn eine IDE also so Schreibkonventionen vor gibt, dann lernt man das mit und ist später manchmal verwundert, dass man eine 'Schreibkonvention' für ein zwingendes Format innerhalb der Programmiersprache hält.

Aber andererseits, wenn man ein hübsches Lerntutorial vorfindet, welches einen anspricht und dort eine IDE verwendet wird, dann sind natürlich die Beispiele einfacher zu verstehen, wenn man die IDE auch nutzt.

Itari
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat