|
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
|
|||
---|---|---|---|
#18+
Доброго времени суток Планируется к написанию трехуровневое приложение (БД - сервер приложений - клиенты web и desktop). Покамест остановился на реализации бизнес-логики в БД с помощью хранимых процедур. Есть мысль переместить логику на сервер приложений, а БД использовать исключительно в качестве хранилища данных, которыми управлять через NHibernate. Если реализовывать логику в БД, получается жесткая привязка к конкретному виду СУБД + проблемы с использованием NHibernate. Если переместить ее на уровень сервера приложений, то получится не совсем оптимальная работа БД (не будут использоваться различные возможности данной конкретной СУБД - оптимизация запросов, те же ХП и проч.). И получится много больше запросов к БД из сервера приложений (например, перед созданием сущности "Сотрудник" нужно проверить привилегии создающего, а система привилегий довольно хитрая). Планируемая к использованию связка выглядит так: Oracle 11g R2 (БД) - служба на C# (сервер приложений) - Silverlight и WPF (клиенты). Смены СУБД не будет, а вот в части клиентского ПО возможны в будущем попытки прикрутить PHP/Apache, клиенты на Дельфи и прочие штуки (специалистами Заказчика). Важным соображением является то, что выбранная модель будет использоваться при разработке ряда аналогичных систем, где далеко не все однозначно с типом СУБД. Соответственно, хотел бы попросить совета: что лучше, каковы достоинства/недостатки предлагаемых подходов, возможно есть и другие варианты по части архитектуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2011, 12:30 |
|
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
|
|||
---|---|---|---|
#18+
Если сможете грамотно описать доменную модель, то выносите всю бизнес-логику на сервер приложений. Это значительно упростит вертикальное масштабирование и уменьшит зависимость от типа сервера баз данных. Про "не совсем оптимальная работа БД" вопрос спорный. Например для проверки привелегий можно вообще к основному серверу БД вообще не обращаться, а поставить отдельный сервер или использовать LDAP. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2011, 18:12 |
|
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
|
|||
---|---|---|---|
#18+
Roman S. GolubinЕсли сможете грамотно описать доменную модель, то выносите всю бизнес-логику на сервер приложений. Это значительно упростит горизонтальное масштабирование и уменьшит зависимость от типа сервера баз данных. Про "не совсем оптимальная работа БД" вопрос спорный. Например для проверки привелегий можно вообще к основному серверу БД не обращаться, а использовать LDAP. поправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2011, 18:18 |
|
Где лучше реализовать бизнес-логику - в БД или на сервере приложений
|
|||
---|---|---|---|
#18+
куда не посмотришь везде одно и то же ХАЧУУУ ри звена бд такая та сервис силвер дельфи.... че делать то собираетесь??? какие задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2011, 18:24 |
|
|
start [/forum/topic.php?fid=17&msg=37291062&tid=1350757]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 358ms |
total: | 596ms |
0 / 0 |