Каково обоснование для систем, ориентированных на документы? - PullRequest
2 голосов
/ 28 мая 2009

Мне известны две известные системы, ориентированные на документы: сервер Sharepoint и Lotus Notes. Там должны быть другие. Я слышал о CouchDB, например. Каковы основные отличия реализации и как они влияют:

Юзабилити

Производительность поиска

Производительность / качество поиска

Расширяемость / интеграция

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

Дополнительный бонус: есть ли какая-то причина, по которой Lotus Notes так сложно найти документацию? Я был бы благодарен за некоторые указатели.

Ответы [ 3 ]

7 голосов
/ 28 мая 2009

Lotus Notes хранит все данные в файлах NSF. NSF-файл - это контейнер для документов Notes, которые являются неструктурированными записями. Каждый документ может содержать любое количество элементов, аналогично тому, как в таблицах и столбцах реляционной базы данных. Однако, в отличие от реляционных баз данных, на уровне модели данных нет ограничений на то, какие элементы должен иметь документ, поэтому каждый отдельный документ может содержать в себе совершенно разные данные.

Примечания Представления используются для просмотра данных внутри документов, обычно с фильтрацией по документам с похожими элементами. Для удобства извлечения данных из NSF доступны агенты Notes, страницы и другие инструменты.

Сильные стороны Notes - это простота сбора данных с помощью форм и вывода данных с помощью представлений, XML, HTML, сервлетов Java и т. Д. Он легко управляет распределенными данными с помощью мощной системы репликации. Он также высоко ценится за его встроенную безопасность.

CouchDB, созданная бывшим сотрудником Iris / Lotus / IBM Дэмиеном Кацем, обладает многими из тех же сильных сторон, без дополнительных затрат и затрат на Lotus Notes.

Слово «документ» может привести к путанице в мире Lotus Notes. Файловые документы, такие как PDF-файлы, документы Word, файлы Excel и т. Д., Хранятся в Lotus Notes Documents как часть неструктурированных данных.

SharePoint хранит данные на сервере SQL. Эти данные основаны на списках, с дополнительной возможностью хранить файловые документы на сервере и сохранять метаинформацию о них.

Список SharePoint очень похож на плоскую таблицу, но, в отличие от Lotus Notes, этот список имеет ограничения на свои данные.

Данные SharePoint собираются и предоставляются в основном через веб-интерфейс, но существуют различные способы доступа к таким данным, как API-интерфейс SharePoint, веб-службы, XML и даже напрямую с сервера SQL (не рекомендуется).

Удобство использования: для конечных пользователей оба имеют высокий рейтинг здесь. SharePoint - это веб-интерфейс, и конечные пользователи могут сами легко управлять сайтом SharePoint без небольшого обучения. Lotus Notes требует клиента Notes или требует, чтобы приложение Domino было построено для показа через Интернет. Для разработчиков Notes проще в использовании, но он необычен и использует проприетарные языки - язык формул Notes и LotusScript. SharePoint вообще не требует кодирования для некоторых основных рабочих процессов и манипуляций с сайтом, но для получения серьезного контроля необходимо быть разработчиком .NET, а код может быть очень сложным.

Производительность извлечения: для небольших проектов Lotus Notes работает очень хорошо. Очень большие базы данных с более чем 10000 документов имеют тенденцию к снижению производительности. SharePoint использует сервер SQL, поэтому он может легко обрабатывать очень большое количество списков или файлов в своем хранилище данных.

Производительность / качество поиска: оба имеют хорошие возможности поиска, но SharePoint выигрывает, если вы пытаетесь найти большое количество документов.

Расширяемость / интеграция: SharePoint является более расширяемым. Оба, однако, могут легко интегрироваться с другими системами, использующими XML. Заметки могут также интегрироваться с использованием агентов / сервлетов Java и веб-служб. SharePoint имеет API-интерфейс для веб-служб и сторонние надстройки для интеграции.

Бонус: Lotus Notes сейчас не так популярен, как SharePoint. Есть ключевые места для документации, такие как www.notes.net и различные блоги разработчиков.

2 голосов
/ 28 мая 2009

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

Системы баз данных на основе документов. Как CouchDB или Amazon S3 разные звери. Они хранят данные менее структурированным способом, чем реляционные базы данных. Главным образом в форме пар ключ-документ. Вы можете извлекать документы по ключу или с помощью запросов, но поскольку документы не имеют одинаковой структуры, например строки в таблице, запросы к реляционной базе данных могут быть более сложными. Эти базы данных на самом деле не предназначены для использования в качестве реляционных баз данных, они больше ориентированы на масштабируемость для больших веб-серверов и т. Д.

Lotus Notes фактически объединяет эти два. Вы можете использовать его для управления документами (и электронной почтой, и многим другим), и он построен на собственной базе документов.

0 голосов
/ 28 мая 2009

Ну, Sharepoint хранит свои данные / списки / документы / что угодно в реляционной базе данных (SQL Server, что неудивительно ...) вместе с «украшениями» метаданных. Основываясь на слухах (я сам на это не смотрел), модель данных настолько запутана, что приходится использовать предоставленный C # API, чтобы что-то делать с данными (что может быть хорошо или плохо, в зависимости от ваших предпочтений). и цели).

...