Каковы преимущества для хранилищ контента (не говоря о CMS)

Учитывая, что многие люди используют репозитории контента. Должна быть веская причина. Я создаю новое веб-приложение, которое должно хранить контент. Может ли кто-нибудь помочь мне понять это?

Каковы преимущества использования хранилища контента, такого как Apache Jackrabbit, по сравнению с написанием собственного кода /API для хранения изображений или текстовых страниц? Написание собственного требует времени и т. Д., Но также и внедрение и изучение новой инфраструктуры, такой как API хранилища контента. Мне кажется, что вам выгодно развернуть свое собственное мнение, что вы знаете свой код и сразу же получите опыт, если вам нужно его улучшить или исправить. Используя другой фреймворк, вам нужно изучить его слабые стороны, и всегда проще изменить код, который вы знаете, который не знаете... т.е. вы не знаете этот базовый код фреймворка так же, как ваш собственный.

Как я уже сказал, многие люди используют их. Должна быть причина. Я не могу видеть это как еще одно "все используют их, так что мы должны." По крайней мере, я надеюсь, что это не так.:)

3 ответа

Решение

Мои последние проекты включали оба варианта: пользовательское хранилище данных (MySQL и файлы изображений) с многоуровневым механизмом кэширования и коммерческое хранилище на основе JCR. Несколько мыслей:

В краткосрочной перспективе решение "сделай сам" предлагает меньшую сложность: вам нужно только построить и изучить то, что вам нужно. И, по крайней мере, есть возможность оптимизировать хранилище данных для нужд вашего конкретного приложения - более чем вероятная скорость поиска, но, возможно, для вас важны объем памяти, безопасность или надежность.

Однако в долгосрочной перспективе вы ожидаете значительного прироста работы по расширению домашней системы до нового типа контента (например, видео) или по предоставлению новых функций (возможно, версионирование).

Кроме того, трудно отделить выбор подхода к хранилищу данных от выбора инструментов, которые поставщики контента будут использовать для заполнения и обслуживания хранилища данных. Вам придется дать своим авторам нечто большее, чем HTML-форму с текстовой областью и кнопкой отправки.

Репозиторий JCR позволяет хранить весь ваш контент (от структурированных данных типа базы данных до больших мультимедийных файлов) в одном месте и с одним API, что чрезвычайно удобно и делает ваш код проще, избегая несоответствия импеданса между файлами и данными что вы обычно имеете в системах на основе контента.

JCR также предоставляет множество функциональных возможностей инфраструктуры, которые вам не придется создавать или собирать самостоятельно: поиск (включая полнотекстовый), наблюдение (обратные вызовы, когда что-то меняется), управление версиями, типы данных, включая многозначные, упорядоченные узлы и т. Д.,

Если вы разрешите бесстыдный плагин, моя статья "JCR - лучшее из обоих миров" на http://java.dzone.com/articles/java-content-repository-best описывает это более подробно, а также предоставляет список чтения для Спецификация JCR, которая должна позволить вам получить хороший обзор, не читая все это.

Статья использует Apache Sling для своих примеров, который в сочетании с JCR-репозиторием обеспечивает очень хорошую (IMO, но как приверженец Sling, я предвзятую;-) платформу для контент-приложений.

Это связано с преимуществами стандартизации: совместимость и взаимозаменяемость. Если каждый пишет свою собственную библиотеку и API, нет совместимости и взаимозаменяемости, что ведет к повышению стоимости.

Другие вопросы по тегам