2012-12-15 2 views
1

개인 프로젝트 용으로 Apache Jackrabbit을 사용하고 싶지만이를 사용하는 데 유리하거나 불리한 점이 무엇인지 알고 싶습니다. 파일 시스템.Apache Jackrabbit 대 콘텐츠 저장소 롤링

저는 JCR의 트리 구조가 마음에 들지 않으므로 뒤에있는 디자인 결정 (adv/dis)을 설명 할 수 있다면 도움이 될 것입니다.

답변

3

Jackrabbit 또는 ModeShape과 같은 기존 JCR 구현을 사용하면 몇 가지 이점이 있습니다. 데이터의 많은 자연적으로 계층 적이며, JCR 저장소는 응용 프로그램이 액세스하는 방식으로 데이터를 구성 할 수 있습니다 -

는 계층 적 데이터 저장이
  • : 무엇보다도, 당신은 즉시 무료로 기능을 많이 얻을 그것. URI, 날짜/시간, 카테고리 또는 폴더 구조에 의해 키잉 된 것은 저장소에 저장하기에 자연스럽게 적합합니다.
  • 표준 Java API 사용 - JCR API는 TCK가있는 표준 Java API이므로 응용 프로그램이 표준 동작을 따르고 특정 JCR 구현에 종속되지 않을 수 있습니다.
  • 유연한 스키마 적용 - 노드 유형을 정의하고 사용하는 방법에 따라 노드 구조와 속성 값을 적용할지 여부와 선택할 수 있습니다.
  • 데이터 진화 - 데이터 구조가 시간이 지남에 따라 발전 할 가능성이 높으며 JCR로이 작업을 매우 쉽게 처리 할 수 ​​있습니다.
  • 쿼리 및 전체 텍스트 검색 - 응용 프로그램이 데이터를 탐색하거나 위치와 관계없이 콘텐츠를 쿼리 할 수 ​​있습니다. JCR 쿼리 언어는 매우 풍부하며 전체 텍스트 검색을 지원합니다.
  • 트랜잭션 - 트랜잭션 경계를 제어 할 수 있습니다. 즉, JCR 세션이 응용 프로그램이나 해당 컨테이너에서 제어하는 ​​JTA 트랜잭션에 참여할 수 있습니다.
  • 이벤트 - 노드 및/또는 속성을 추가, 변경 또는 제거 할 때 응용 프로그램에 알릴 수 있습니다.
  • 클러스터링 - JCR 저장소를 여러 프로세스에 걸쳐 클러스터링하여 응용 프로그램을 확장합니다. 각 구현은 클러스터링을 다르게 구성하지만 클라이언트 응용 프로그램과 동일하게 작동합니다.
  • 버전 관리 - JCR에는 콘텐츠를 버전 관리하기위한 표준 메커니즘이 포함되어 있습니다. 모든 유스 케이스에 적합하지 않을 수도 있지만 적합 할 때 매우 편리합니다.
  • 잠금 - JCR에는 단기 잠금을위한 표준 메커니즘이 포함되어 있습니다. 이는 응용 프로그램이 리포지토리의 일부가 하나의 프로세스 만 업데이트되도록해야 할 때 유용합니다.

이러한 기능 중 일부가 중요한 경우에는 기존 기능을 사용하기보다는 기존 기능을 재사용하는 것이 좋습니다. 그렇지 않으면 이러한 종류의 기능을 구현하는 데 모든 시간을 할애해야합니다.이러한 기능 중 어느 것도 사용 사례에 맞는없는 경우

그러나, 당신은 다른 데이터 저장 기술을 고려해야합니다

  • 관계형 데이터베이스가 잘 작동 스키마가 변경 될 수없는 경우 데이터가 매우 제한되는 경우 너무 자주 또는 데이터가 평평한 경우 (몇 가지 주요 유형의 가치가 많이 있음) (많은 JCR 구현은 관계형 데이터베이스에 내용을 저장할 수 있으므로 "관계형 데이터베이스에 데이터를 저장해야합니다."라는 사실은 응용 프로그램이 관계형 데이터베이스를 직접 사용하는 데 좋은 이유는 아닙니다.)
  • 키 - 값 상점은 고유 한 키로 임의의 값을 저장해야 할 때 유용하며 모든 액세스는 가져 오기 및 가져 오기를 통해 이루어집니다. 값은 대개 저장소에 불투명합니다.
  • 문서 저장소는 키 - 값 저장소와 비슷하지만 저장소가 값의 구조를 알고 있다는 점만 다릅니다. 일부 문서 저장소는 쿼리를 지원합니다.
  • 다른 스토리지 기술은 고유 한 장점을 가지고 있습니다.

궁극적으로 일관성있는 데이터베이스 또는 강력하게 일관된 데이터베이스가 필요하거나 필요로하는지 여부를 고려해야합니다. 강력하고 일관성있는 데이터베이스에 대해 많은 "기존"응용 프로그램을 작성하는 것이 훨씬 쉽습니다. 실제로 Jackrabbit 및 ModeShape를 포함한 대부분의 JCR 저장소는 강력하게 일관성이 있습니다.