2010-09-09 28 views
5

Ich möchte ein Dokumenten-Management-System (Schnittstelle in Ruby) machen.
Was verwenden professionelle Lösungen (Alfresco, Liferay Social Office, andere) zum Speichern und Versionieren von Dokumenten?
Was kann ich noch verwenden?Dokumenten-Management-System: Was als Speicher-Backend (Dokument-Content-Repository) verwenden?

Kernpunkte:

  • Stauraumoptimierung (Delta, Kompression ...)
  • Versionierung
  • Fähigkeit zu indizieren docs (kann extern)
  • Möglichkeit, Backups zur Laufzeit zu machen (Live-Hot-Backup)
  • Verriegelung?
  • Skalierbarkeit auf große Datenvolumen
  • Datenintegrität (Hashing?) Gewährleisten
  • Berechtigungen
  • Transaktions
  • Workflow-Unterstützung (optional)

Bonuspunkte:

Alle Bücher zu diesem Thema?

Antwort

5

Die meisten der Enterprise-Dokumenten-Management-Lösungen, die ich gesehen habe (Cimage, Documentum, LiveLink) ist definitiv egal, # 1. Speicher ist relativ billig, vor allem, wenn es sich um Storage vs Processing handelt (Store and Retreive). Sie verwenden meist Dateisystemspeicher - vielleicht mit Namensabstraktion, so dass ShoppingList.doc vielleicht 20100909100101a.doc.rev1 wird, mit einer Datenbank, die den gegebenen Namen, den gespeicherten Namen, Revisionen und verschiedene andere Daten verfolgt (MIME-Typ, Header & Eigenschaften usw.). Wenn Sie keine Deltas + -Kompression erzeugen, können Sie sehr einfach aus einer beliebigen Anzahl existierender Produkte/Agorithmen indexieren. Die Versionierung ist mit diesem Ansatz auch sehr einfach.

Je nach Größe und Größe, die Sie erstellen, können Sie auch versionierte Dateien in einer Datenbank speichern.

Ein (S) FTP- oder CIFS-Speicherprozess würde auch ermöglichen, dass Ihre Software auf einem App-Server mit geringem Speicherplatz ausgeführt wird, aber die Dateien + Verlauf auf einer Datei oder einem Cloud-Server speichern - obwohl das nicht viel ist unterscheidet sich von filesystem-basiertem Speicher.

0

alfresco wird häufig als Backend verwendet, es hat eine nette REST API. Sie können auch Ihre eigene Integrations-API definieren, wenn Ihnen die mitgelieferte nicht gefällt.

+0

Irgendwelche verwendbaren Dokumente oder Bücher? Ganz hart, ich mag die Features, ihr Wiki tötet wirklich mein kleines Rubin-Gehirn. Ich bin hauptsächlich interessant in, wie man Benutzer, ACLs definiert und Inhalt liest/schreibt, möglicherweise Arbeitsabläufe ... – clyfe

1

Y'know, mein erster Instinkt wäre just use Subversion. Sie benötigen eine externe Indizierung, und wenn Sie Hashes speichern möchten, müssen Sie etwas Code schreiben, um es selbst zu tun, aber alles andere passt.

Es wird mit Rubinbindungen geliefert, obwohl ich persönlich nicht mit deren Qualität vertraut bin.

+0

Wenn ich TBytes von Dokumenten habe, benötige ich irgendeinen verteilten Speicher und SVN funktioniert nicht. – clyfe

+0

@clyfe: Verteilter Speicher ist ein ganz anderes Ballspiel als das, was du verlangst. Keines der von Ihnen erwähnten Systeme nutzt verteilten Speicher, und ich kann mir nicht vorstellen, warum Sie es brauchen würden, wenn Ihr Datenverkehr nicht lächerlich hoch ist. Ein guter Server mit einer Menge von 2 TB Festplatten in RAID 10 sollte Ihnen gut tun. –