powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Где должна лежать бизнес-логика в мнгоуровневом приложении
25 сообщений из 318, страница 6 из 13
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446229
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из своего опыта: разрабатывали в банке информ систему онлайн сбора и учета информации
так как еще были уже чуть-чуть не студентами - кинулись делать все ао науке - 3 звена:
-морда (в ней часть бизнес логики по манипуляции данными и биению по рукам юзера)
-среднее звено(укрупненная логика типа оплатить, переслать, проверить и т.д. и т.п.)
-БД(проверка целостности и ограничения)

заманались все это поддерживать и обновлять!
когда становишся старее - стараешся все делать с минимумом телодвижений - т.е оптимальней! ))))

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

в итоге теперь у нас меньше геммороя ровно на 1 звено - среднее - потому как при любом чихе править 3 звена - извините это только для студентам может позазаться нормальной практикой )
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446268
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров АлександрСогласен, Просто зачастую у бизнеса-потребителя ПО несколько другие понятия эффективности, чем у бизнеса-разработчика ПО. Более удобное и простое ПО для потребителя может обернуться весьма значимыми затратами на его поддержку, о которых разработчик ПО при продаже\внедрении скромно умалчивает. :)
Вы хотите сказать, что ОО-системы более затратны в поддержке? Можете привести статистику, или какие-то разумные доводы кроме своего имхо?
Основная доля затрат на поддержку - это стоимость модификаций и модернизаций. ОО-подход более адаптивен и гораздо лучше переваривает изменения. Несомненно наличие грамотного архитектора и централизация всех изменений сильно упрощают модификацию и для не ОО-систем. Но как раз потребитель не имеет грамотных архитекторов, а желает выполнять некторые модификации своими руами (так как чужие слишком дороги).
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446287
carper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне не ясно, почему использование сервера приложений позволит расположить БЛ в одном месте?

С одними и теми же данными могут работать множество самых разных приложений, так у нас с одной базой работаю программы отвечающие за самые разные участки производства, туда же обращается бухгалтерская программа, туда же Oracle BI и т.д. и т.п.

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

Разнесение БЛ на несколько серверов приложений одномоментно развеивает миф о едином месте хранения оной : функции разных приложений так или иначе пересекаются и сервера приложений будут поневоле их дублировать.
Выделить еще один сервер приложений для "общей функциональности"?
А не выйдет, т.к. области пересечений интересов разных приложений тоже различны.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446373
Не Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров АлександрНе Hibernateесть и другие варианты. В них бизнес-объекты не зависят от структуры БД и DAL(можно использовать и хранимые процедуры), это позволяет сочетать достоинства двух крайних,горячо здесь обсуждаемых, вариантов.
Именно такой вариант и предлагается. Просто его почему-то упорно называют "вся бизнес-логика в СУБД". :)

Нет. Это другой крайний вариант с другим люфтом. Взять хотя бы проверку на constraine c выводом вменяемых сообщений пользователю.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446411
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyВы хотите сказать, что ОО-системы более затратны в поддержке? Можете привести статистику, или какие-то разумные доводы кроме своего имхо?
Основная доля затрат на поддержку - это стоимость модификаций и модернизаций. ОО-подход более адаптивен и гораздо лучше переваривает изменения. Несомненно наличие грамотного архитектора и централизация всех изменений сильно упрощают модификацию и для не ОО-систем. Но как раз потребитель не имеет грамотных архитекторов, а желает выполнять некторые модификации своими руами (так как чужие слишком дороги).
Вобщем-то я имел ввиду только системы, у которых вся бизнес-логика написана на объектно-ориентированном ЯВУ и работает с РСУБД через ORM не используя возможности этих СУБД по обработке данных. Статистику привести не могу. Но мо мнение авторы подобных ОО-систем поколебать не смогли. :) На пример необходимых изменений в "разделенной" системе, получен пример необходимых изменений в ОО-ситеме. Это совпадает с моим мнением. Ибо более затратные телодвижения разработчика по модификации бизнес-логики естественно будут переложены на кошелек заказчика. :) Обратных примеров приведено не было ни одного. Спорным вопросом остается также совокупная стоимость железа, требуемая для работы разных систем. Включая затраты на его содержание, естественно.

Боюсь, что мы действительно пытаемся спорить о совершенно разных системах. Вернее, как заметил Iscrafm, о системах совершенно различного применения.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446427
Не Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров АлександрНе Hibernateесть и другие варианты. В них бизнес-объекты не зависят от структуры БД и DAL(можно использовать и хранимые процедуры), это позволяет сочетать достоинства двух крайних,горячо здесь обсуждаемых, вариантов.
Именно такой вариант и предлагается. Просто его почему-то упорно называют "вся бизнес-логика в СУБД". :)
Помимо ORM есть вариации на тему Active Record. В них БО не зависит от структуры БД, полностью скрыта работа с ней, предоставляются только нужные интерфейсы. Нет танцев с бубнами для маппинга ORM, можно работать с процедурами, распределить БЛ по двум слоям.
Совсем другой вариант . Еще один экстремист, ему даже мало одной БД.
Вариантов много.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446477
Не Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров АлександрBogdanov AndreyВы хотите сказать, что ОО-системы более затратны в поддержке? Можете привести статистику, или какие-то разумные доводы кроме своего имхо?
Основная доля затрат на поддержку - это стоимость модификаций и модернизаций. ОО-подход более адаптивен и гораздо лучше переваривает изменения. Несомненно наличие грамотного архитектора и централизация всех изменений сильно упрощают модификацию и для не ОО-систем. Но как раз потребитель не имеет грамотных архитекторов, а желает выполнять некторые модификации своими руами (так как чужие слишком дороги).
Вобщем-то я имел ввиду только системы, у которых вся бизнес-логика написана на объектно-ориентированном ЯВУ и работает с РСУБД через ORM не используя возможности этих СУБД по обработке данных. Статистику привести не могу. Но мо мнение авторы подобных ОО-систем поколебать не смогли. :) На пример необходимых изменений в "разделенной" системе, получен пример необходимых изменений в ОО-ситеме. Это совпадает с моим мнением. Ибо более затратные телодвижения разработчика по модификации бизнес-логики естественно будут переложены на кошелек заказчика. :) Обратных примеров приведено не было ни одного. Спорным вопросом остается также совокупная стоимость железа, требуемая для работы разных систем. Включая затраты на его содержание, естественно.

Боюсь, что мы действительно пытаемся спорить о совершенно разных системах. Вернее, как заметил Iscrafm, о системах совершенно различного применения.
Правильно, системы бывают разные. Валидация данных в удаленной БД совершенно неприемлема(лишний трафик и существенные задержки). Подсчет в примере совершенно не учитывает варианты, когда после проверок БД говорит - не шмогла. Помимо этого, за счет кеширования ООП можно убрать некоторые шаги и обращения к БД.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446622
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не HibernateЕгоров АлександрНе Hibernateесть и другие варианты. В них бизнес-объекты не зависят от структуры БД и DAL(можно использовать и хранимые процедуры), это позволяет сочетать достоинства двух крайних,горячо здесь обсуждаемых, вариантов.
Именно такой вариант и предлагается. Просто его почему-то упорно называют "вся бизнес-логика в СУБД". :)Нет. Это другой крайний вариант с другим люфтом. Взять хотя бы проверку на constraine c выводом вменяемых сообщений пользователю.Речь не о "проверке констрейтов", а о выполнении бизнес-функции "проверка правильности заявки" и "обработка приема заявки". Часть БЛ, размещенная, например, на СП - говорит о том, что Заявка моджет принять статус "принята" только после валидации. Метод валидации заявки вызывается там же. Код этого метода - может быть вызовом ХП, а может и не быть. Вывод результатов валидации пользователю - стандартен и выполняется тоже на СП. Метод приема заявки - тоже самое. Он может состоять из отправки содержимого заявки на e-mail вообще без обращения к БД. Или после обработки Заявки в БД дергать какой-нить внешний веб-сервис. Все зависит от выбранного обработчика[-ов]. Пример был приведен с использованием проверки и принятия Заявки средствами БД как раз чтобы показать преимущество разнесения бизнес-логики на несколько слоев.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446833
Не Hibarnate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров АлександрНе HibernateЕгоров АлександрНе Hibernateесть и другие варианты. В них бизнес-объекты не зависят от структуры БД и DAL(можно использовать и хранимые процедуры), это позволяет сочетать достоинства двух крайних,горячо здесь обсуждаемых, вариантов.
Именно такой вариант и предлагается. Просто его почему-то упорно называют "вся бизнес-логика в СУБД". :)Нет. Это другой крайний вариант с другим люфтом. Взять хотя бы проверку на constraine c выводом вменяемых сообщений пользователю.Речь не о "проверке констрейтов", а о выполнении бизнес-функции "проверка правильности заявки" и "обработка приема заявки". Часть БЛ, размещенная, например, на СП - говорит о том, что Заявка моджет принять статус "принята" только после валидации. Метод валидации заявки вызывается там же. Код этого метода - может быть вызовом ХП, а может и не быть. Вывод результатов валидации пользователю - стандартен и выполняется тоже на СП. Метод приема заявки - тоже самое. Он может состоять из отправки содержимого заявки на e-mail вообще без обращения к БД. Или после обработки Заявки в БД дергать какой-нить внешний веб-сервис. Все зависит от выбранного обработчика[-ов]. Пример был приведен с использованием проверки и принятия Заявки средствами БД как раз чтобы показать преимущество разнесения бизнес-логики на несколько слоев.
На мой скромный взгляд, пример для показа преимуществ выноса БЛ в БД выбран весьма неудачно.
Валидацию,подсчет агрегатов, проще и удобней делать в ООП, не говоря уже о том, что процесс приема заявки может быть достаточно сложным. Добавьте хотя бы простую проверку на дубликаты в деталировке, рассмотрите крайние случаи, цифры будут не в пользу БД.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446870
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров АлександрВобщем-то я имел ввиду только системы, у которых вся бизнес-логика написана на объектно-ориентированном ЯВУ и работает с РСУБД через ORM не используя возможности этих СУБД по обработке данных.МЫ вроде бы не недостатки каких-то конкретных систем здесь обсуждаем, а некотрые общие архитектурные принципы. Можно найти огромное количество плохих систем построенных на любом архитектурном принципе. Но само наличие таких систем не доказывает, что принципы плохи. Тут надо либо статистикой оперировать, либо логические доказательства приводить.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36446983
Не Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bogdanov AndreyЕгоров АлександрВобщем-то я имел ввиду только системы, у которых вся бизнес-логика написана на объектно-ориентированном ЯВУ и работает с РСУБД через ORM не используя возможности этих СУБД по обработке данных.МЫ вроде бы не недостатки каких-то конкретных систем здесь обсуждаем, а некотрые общие архитектурные принципы. Можно найти огромное количество плохих систем построенных на любом архитектурном принципе. Но само наличие таких систем не доказывает, что принципы плохи. Тут надо либо статистикой оперировать, либо логические доказательства приводить.
За доказательствами далеко ходить не нужно. Достаточно рассмотреть для сравнения не идеальный вариант, а с ошибками ввода, которые могут повторяться. Учесть валидацию, контроль на дубликаты и добавить необходимость подсчета итоговой суммы хотя бы для 10 строк. Все это проще, быстрее, внятней для пользователя, лучше делать на клиенте с меньшей нагрузкой на БД.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36447049
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не Hibarnateа мой скромный взгляд, пример для показа преимуществ выноса БЛ в БД выбран весьма неудачно. Валидацию,подсчет агрегатов, проще и удобней делать в ООП, не говоря уже о том, что процесс приема заявки может быть достаточно сложным. Добавьте хотя бы простую проверку на дубликаты в деталировке, рассмотрите крайние случаи, цифры будут не в пользу БД.Ну, не знаю. По условию задачи данные для проверки все были в БД, поэтому и проверку проще было сделать в БД. Проверка состояла бы из единственно запроса. Дубликаты и агрегаты я бы тоже делал не в БД, а в форме ввода.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36447075
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров АлександрПроверка состояла бы из единственно запроса. Если для реализации проверки в БД достаточно одно запроса, то почему в считаете, что для реализации той же проверки в среднем слое запросов потребуется больше? В крайнем случае можно "тупо" текст хранимой процедуры переписать на язык СП и количество запросов будет ровно тем же.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36447077
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey,

Статистики или логических доказательств преимуществ архитектуры "все только на сп и только на ЯВУ" что-то вообще не видно...
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36447112
Не Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров АлександрНе Hibarnateа мой скромный взгляд, пример для показа преимуществ выноса БЛ в БД выбран весьма неудачно. Валидацию,подсчет агрегатов, проще и удобней делать в ООП, не говоря уже о том, что процесс приема заявки может быть достаточно сложным. Добавьте хотя бы простую проверку на дубликаты в деталировке, рассмотрите крайние случаи, цифры будут не в пользу БД.Ну, не знаю. По условию задачи данные для проверки все были в БД, поэтому и проверку проще было сделать в БД. Проверка состояла бы из единственно запроса. Дубликаты и агрегаты я бы тоже делал не в БД, а в форме ввода.
Если даже запрос на валидацию единственный, он достаточно мутный, если выводить подробную информацию для пользователя. Вместо моментального показа неверно введенного значения с пояснением, выводим кашу со списком ошибок, пользователю нужно запомнить все, найти нужное место, исправить, еще раз подтвердить ввод. Позиций может быть много, процесс растянется до бесконечности.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36447118
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров АлександрСтатистики или логических доказательств преимуществ архитектуры "все только на сп и только на ЯВУ" что-то вообще не видно...Во-первых, если вы со мной оппонируете, то покажте, где я предлагал "все только на сп и ЯВУ". Во-вторых, задумайтесь (или погуглите) о том почему объектное программирование вытесняет процедурное. Ну и в-третьих, постарайтесь все-таки сформилировать какую архитектуру в рамках данного обсуждения вы поддерживаете.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36447120
Не 1С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров АлександрBogdanov Andrey,

Статистики или логических доказательств преимуществ архитектуры "все только на сп и только на ЯВУ" что-то вообще не видно...
Почему не видно? Можно посмотреть статистику и стоны относительно 1С.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36447589
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyЕгоров АлександрСтатистики или логических доказательств преимуществ архитектуры "все только на сп и только на ЯВУ" что-то вообще не видно...Во-первых, если вы со мной оппонируете, то покажте, где я предлагал "все только на сп и ЯВУ". Во-вторых, задумайтесь (или погуглите) о том почему объектное программирование вытесняет процедурное. Ну и в-третьих, постарайтесь все-таки сформилировать какую архитектуру в рамках данного обсуждения вы поддерживаете.
1. Вот тут я почему-то пришел к такой мысли. Если не прав - извините.
2. Я не сомневаюсь в преимуществах объектно-ориентированного программирования перед процедурным. Я сомневаюсь в преимуществе объектно-ориентированной работы с данными в РСУБД используя технологиина базе ORM.
3. Я поддерживаю "многослойную" архитектуру для бизнес-приложений. С уклоном в сторону "манипуляцией данными лучше всего на уровне СУБД".
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36449145
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров АлександрЯ сомневаюсь в преимуществе объектно-ориентированной работы с данными в РСУБД используя технологиина базе ORM.Я опять вас не понимаю. Что значит "объектно-ориентированная работа с данными"? Вообще, что вы называете "работой с данными". У меня ни в одной системе задачи "работы с данными" не возникало. Возникали задачи реализации того или иного бизнес-процесса или "user-case". Иногда от аналитиков исходят некоторые требования к структуре данных (хотя чаще структура появляется уже в процессе разбора требований по бизнес-процессам), но никаких требований к "работе с данными" я не видел. И по-моему опыту, реализация бизнес-процессов на ОО-языках происходит эффективнее (по скорости реализации и по простоте внесения изменений).
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36449279
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyИ по-моему опыту, реализация бизнес-процессов на ОО-языках происходит эффективнее (по скорости реализации и по простоте внесения изменений).
с чем сравнивали? По моим исследованиям, подтвержденным конкретным проектами, скорость реализации, простота сопровождения и внесения изменений в системы поддержки бизнес-процессов в SOA архитектуре просто на порядки превосходит OO-программирование этих же БП. Как может императивное программирование, пусть даже завернутое в ОО фантик, быть быстрее и проще декларативного - загадка. Задайте себе этот вопрос и тоже попытайтесь на него ответить.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36449797
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmКак может императивное программирование, пусть даже завернутое в ОО фантик, быть быстрее и проще декларативного - загадка. Задайте себе этот вопрос и тоже попытайтесь на него ответить.Все встречавшиеся мне системы декларативного описания бизнес-логики на порядок сложнее для моего восприятия, чем императивное программирование. И соответственно требуют гораздо большего времени при попытке что-либо реализовать. Наверное мне попадались плохие системы. Даже чрезвычайно простой и понятный SQL большинству программистов дается гораздо хуже, чем С или Pascal.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36449821
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

Ну где же Ваша картинка с декларативным описанием условий?... ну помню, что Вы где-то на форуме показывали пример... вот только хоть убей, не могу вспомнить даже тему... тоже что-то было на тему "декларативное vs императивное"... :)
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36450188
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр,
постараюсь найти, просто сейчас в поездке, рабочего ноутбука нет с собой. Уже самому интересно, какую картинку Вы имеете ввиду.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36450190
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyiscrafmКак может императивное программирование, пусть даже завернутое в ОО фантик, быть быстрее и проще декларативного - загадка. Задайте себе этот вопрос и тоже попытайтесь на него ответить.Все встречавшиеся мне системы декларативного описания бизнес-логики на порядок сложнее для моего восприятия, чем императивное программирование. И соответственно требуют гораздо большего времени при попытке что-либо реализовать. Наверное мне попадались плохие системы. Даже чрезвычайно простой и понятный SQL большинству программистов дается гораздо хуже, чем С или Pascal.
понятно. спасибо за разъяснение.
...
Рейтинг: 0 / 0
Где должна лежать бизнес-логика в мнгоуровневом приложении
    #36450377
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

нашел только Ваш конструктор проводок. А была еще картинка, где "внутренности" бизнес-функции описывалась exel-подобными формулами и скармливалась сервису на исполнение. Что-то типа:

Код: plaintext
1.
2.
Если Товар.Стоимость <100
И Товар.ДатаВвода < 31.12.2009
И РазрешеноМенеджером(Товар)=1...
...
Рейтинг: 0 / 0
25 сообщений из 318, страница 6 из 13
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Где должна лежать бизнес-логика в мнгоуровневом приложении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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