веб-приложение в DB4O

Если я собираюсь разработать веб-приложение в ASP.NET с использованием db4o, какая это будет база данных: локальная или удаленная и почему?


person Sree    schedule 08.04.2011    source источник
comment
Не понимаю, как язык CLR и используемая вами версия IDE повлияют на ответ на этот вопрос.   -  person adamjford    schedule 08.04.2011
comment
@adamjford ты прав :) я согласен +1 за это   -  person Sree    schedule 08.04.2011


Ответы (2)


Я думаю, вы имеете в виду «встроенный» и «клиент-сервер» (это два основных режима, в которых может работать db4o.

Скорее всего, вам понадобится «клиент-сервер», чтобы вы могли запускать несколько клиентских сеансов (возможно, по одному на запрос?).

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

Однако, если вам нужно больше лошадиных сил, вы можете обслуживать db40 с другой машины для распределения работы. Обратите внимание, что в этом случае у вас будет больше сетевых издержек/задержек.

person RQDQ    schedule 08.04.2011

Режим C/S db4o подразумевает сетевое взаимодействие и работает медленнее. Если вам нужно несколько клиентских сеансов, вам не обязательно использовать C/S, потому что есть режим встроенного сервера, который позволяет выполнять несколько транзакций параллельно без накладных расходов на сетевое взаимодействие:

http://developer.db4o.com/documentation/reference/db4o-8.0/java/reference/Content/client-server/embedded.htm

Поэтому, если ваш вариант использования позволяет это, вы можете открыть встроенный сервер на стороне веб-сервера и разрешить приложению asp.net на стороне сервера общаться с db4o, используя несколько транзакций (например, по одной на веб-сеанс) для сохранения объектов. Обратите внимание, что в этом сценарии вы не можете сохранять объекты со стороны клиента (веб-клиент взаимодействует с серверной частью вашего приложения, которая заботится о сохранении).

Важно: в веб-сценариях нередко приходится закрывать контейнер объектов db4o после завершения сеанса. Если вы сделаете это, объект больше не будет отслеживаться db4o, и в следующем сеансе он будет рассматриваться как новый. Вам придется найти способ повторно прикрепить объекты к их идентификатору db4o на стороне сервера для другого сеанса (вы можете сделать это, повторно запросив объект на стороне сервера).

Лучший!

Немецкий

person German    schedule 11.04.2011