Ich versuche, Content-Repositorys ( JSR283 ) wie Jackrabbit und ModeShape zu evaluieren, aber ich muss gestehen, dass ich nicht verstehe, welches Problem zuerst behoben wird und selbst wenn es eine gute Wahl für das Projekt ist. Welche Fälle sind Ihrer Meinung nach die beste Lösung? Ist nicht dasselbe wie relationale Datenbanken, abgesehen von der Größe? Warum? Zusätzliche Punkte für das Zeigen von Beispielen aus der realen Welt.
Danke im Voraus.
java
database
content-management
jcr
Ither
quelle
quelle
Antworten:
JCR-Repositorys unterscheiden sich von RDBMS, da ein JCR-Repository:
Sie können sicherlich alle oder einige dieser Funktionen in Ihrer eigenen Anwendung erstellen, aber das entfernt sich wahrscheinlich weiter von Ihrem Hauptzweck Ihrer App.
Welche Art von Anwendungen kann von diesen Funktionen profitieren? Content-Management-Systeme verwenden seit langem Repositorys, und JCR (und Jackrabbit) sind aus der Notwendigkeit einer gemeinsamen Standard-API für den Zugriff auf verschiedene Content-Repositorys entstanden (siehe JSR-170 und JSR-283 ).
Ein weiteres Beispiel sind Dokumentenverwaltungssysteme, die elektronische Dateien (häufig Bilder von Papierdokumenten) verwalten und Suchen und Abfragen ermöglichen. DMS verwenden seit einiger Zeit Repositorys.
Artefaktverwaltungssysteme können Repositorys verwenden, um digitale Artefakte (häufig Dateien) zusammen mit zusätzlichen Informationen (Metadaten) zu verwalten. JCR funktioniert hier hervorragend, da Sie die Metadaten am selben Speicherort wie die Dateien speichern können: Diejenigen, die diese zusätzlichen Eigenschaften verstehen, können sie sehen, diejenigen, die sich nicht darum kümmern, müssen sie nicht sehen. Ich weiß, dass Artifactory eine Maven-Repository-Implementierung ist, die JCR verwendet. Es gibt auch Repositorys zum Verwalten von Webdienstartefakten, Datendienstartefakten und Testartefakten.
JCR-Repositorys dienen jedoch nicht zum Verwalten von Dateien. JCR verwendet einen einfachen Begriff einer Hierarchie von Knoten, wobei die Knoten benannte Eigenschaften (mit einem oder mehreren Werten) und untergeordnete Elemente enthalten können. Die zulässigen Eigenschaften und untergeordneten Knoten werden vollständig von den Knotentypen bestimmt, die bei Bedarf Knoten für Knoten geändert und gemischt werden können. JCR definiert einige integrierte Knotentypen vor, die häufig benötigt werden, z. B. solche, die zur Darstellung von Dateien und Ordnern im Repository verwendet werden. Sie können diese integrierten Typen wiederverwenden, erweitern oder eigene schreiben. Viele Leute befürworten die Verwendung von Mixins fast als Facetten oder Aspekte. Wenn ein Knoten eine Facette annehmen muss, können Sie dem Knoten einfach ein Mixin hinzufügen.
JCR wurde entwickelt, um das Importieren von XML-Inhalten in das Repository zu unterstützen, wobei jedes Element einem Knoten und jedes Attribut einem Attribut zugeordnet wird. Viele Dinge werden mit XML (oder YAML oder JSON) dargestellt, und all dies kann einfach dargestellt und in einem JCR-Repository gespeichert werden. Stellen Sie sich als Beispiel ein JCR-Repository vor, in dem Konfigurationsinformationen gespeichert sind (die normalerweise in mehreren XML-Dateien gespeichert sind). JCR kann diese Informationen versionieren, den Zugriff von mehreren Prozessen aus ermöglichen, das Abfragen und Suchen aktivieren und die Anwendung (en) benachrichtigen, wenn sich der Inhalt ändert.
Es gibt mehrere gute Übersichten über JCR mit mehr Details und Beispielen. Einige davon sind:
Einführung der Java Content Repository API von Titus Barik(nicht mehr verfügbar)Java Content Repository: Das Beste aus beiden Welten von Bertrand Delacretaz(nicht mehr verfügbar)quelle