Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Где лучше реализовать бизнес-логику - в БД или на сервере приложений / 5 сообщений из 5, страница 1 из 1
02.06.2011, 12:30
    #37291062
JohnSparrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
Доброго времени суток

Планируется к написанию трехуровневое приложение (БД - сервер приложений - клиенты web и desktop). Покамест остановился на реализации бизнес-логики в БД с помощью хранимых процедур. Есть мысль переместить логику на сервер приложений, а БД использовать исключительно в качестве хранилища данных, которыми управлять через NHibernate.

Если реализовывать логику в БД, получается жесткая привязка к конкретному виду СУБД + проблемы с использованием NHibernate.
Если переместить ее на уровень сервера приложений, то получится не совсем оптимальная работа БД (не будут использоваться различные возможности данной конкретной СУБД - оптимизация запросов, те же ХП и проч.). И получится много больше запросов к БД из сервера приложений (например, перед созданием сущности "Сотрудник" нужно проверить привилегии создающего, а система привилегий довольно хитрая).

Планируемая к использованию связка выглядит так: Oracle 11g R2 (БД) - служба на C# (сервер приложений) - Silverlight и WPF (клиенты). Смены СУБД не будет, а вот в части клиентского ПО возможны в будущем попытки прикрутить PHP/Apache, клиенты на Дельфи и прочие штуки (специалистами Заказчика).

Важным соображением является то, что выбранная модель будет использоваться при разработке ряда аналогичных систем, где далеко не все однозначно с типом СУБД.

Соответственно, хотел бы попросить совета: что лучше, каковы достоинства/недостатки предлагаемых подходов, возможно есть и другие варианты по части архитектуры?
...
Рейтинг: 0 / 0
02.06.2011, 18:12
    #37292106
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
Если сможете грамотно описать доменную модель, то выносите всю бизнес-логику на сервер приложений. Это значительно упростит вертикальное масштабирование и уменьшит зависимость от типа сервера баз данных. Про "не совсем оптимальная работа БД" вопрос спорный. Например для проверки привелегий можно вообще к основному серверу БД вообще не обращаться, а поставить отдельный сервер или использовать LDAP.
...
Рейтинг: 0 / 0
02.06.2011, 18:18
    #37292115
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
Roman S. GolubinЕсли сможете грамотно описать доменную модель, то выносите всю бизнес-логику на сервер приложений. Это значительно упростит горизонтальное масштабирование и уменьшит зависимость от типа сервера баз данных. Про "не совсем оптимальная работа БД" вопрос спорный. Например для проверки привелегий можно вообще к основному серверу БД не обращаться, а использовать LDAP.

поправил.
...
Рейтинг: 0 / 0
02.06.2011, 18:24
    #37292129
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
куда не посмотришь везде одно и то же
ХАЧУУУ ри звена бд такая та сервис силвер дельфи....
че делать то собираетесь??? какие задачи?
...
Рейтинг: 0 / 0
03.06.2011, 09:27
    #37292767
JohnSparrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
Roman S. Golubin, спасибо за совет.

ViPRos, долго рассказывать. В общем, нужно разработать систему управления выполнением работ.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Где лучше реализовать бизнес-логику - в БД или на сервере приложений / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]