Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Небольшая предистория: В нашу фирму поступил заказ по разработке скдского ПО. Клиент требовал FireBird. Прикинули ТЗ-ху, утвердили. Вроде было все тип-топ. Когда начали сдавать альфа-версию клиент уперся выдав чтото типа: клиентзачем вам столько хранимых процедур. Мы всегда (а у него есть еще и свои программеры) делали бизнес-логику в приложении. Зачем ее переносить в БД? У нас конечно все офигели... 3 недели разработок коту под хвост. т.к. все было ориентировано на ХП и все действия с базой данных были сведены до атомарного вызова той или иной процедуры. Вот шеф и поставил задачу: Подготовь мне списочек, как можно больше, ЗА то чтобы бизнес-логику держать в БД. Заказчик конечно забугорный и программеры у них там "умные" сидят... все гарварды всякие там позаканчивали и 3-х месячные курсы по дельфям, вот и советуют шнягу вякую. Народ, помогите придумать как можно больше "за" чтобы не переделывать все заново, а то нам пока не удается переубедить клиента :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 10:33 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Есть такое понятие "толстый сервер", вот от него и надо плясать... >>>делали бизнес-логику в приложении. При разработке приложений С\S, такие высказывания выглядят как предложение продать душу дьяволу... ибо все это от нечистого... >>>сведены до атомарного вызова той или иной процедуры Это стандартный проверенный механизм... Ну и надо доказать это остолопам.... что они лохи позорные.... С графиками загрущенности сервера и клиентских мест... С графиками надежности и безопасности... И побольше умных цифр .... )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 10:43 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
sidor36С графиками загрущенности сервера и клиентских мест... С графиками надежности и безопасности... да я бы с радостью... но не хотят они ставить это дело у секбя пока... а у нас то что? ну напихаю я тестовых данных в бд под завязку, а всеравно реальной картины: 200 клиентов из разных концов мира я не смогу им показать. А ведь оптимальность этого метода проявляется какраз когда какой-нить клиент с медленным коннектом выполняет процедурку которая возвращает 0 или 1, но для того чтобы найти этот 0 или 1 перелопачивает горы инфы в базе (образно) тоесть если для медленных коннектов мы минимизируем количество данных передаваемых между сервером и клилентом само собой мы выигрываем, только не ведутся они на это все... они умные... пофиг что вместо мегабайтов по сети 2-3 килобайта трафика ходит, им либо пример на реальных системах подать (что мы сейчас не в силах сделать), либо теоретически интелектом задавить, что в данном случае и требуется :) З.Ы.: самый тупой клиент, это клиент который считает что разбирается в сути вопроса :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 10:51 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Крик о помощи :)200 клиентов обшибся - 200 тысяч имелось ввиду :) З.Ы.: да и ваще фаерберд для такой системы был не лучшим решением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 10:53 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
а FireBird Classic ? или SS ? (судя по всему у Вас ошибка проектирования, а клиент прав) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 11:08 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
не знаю, как для FB, а для ms есть такие аргументы 1. Минимизация траффика, особенно, когда действительно люди ведут обработку данных и расчеты на клиенте. на сервере всяк спокойнее 2. безопасность. надежнее дать права на процедуру и зашить в нее логику обработку данных, чем раздавать права на таблицы и затем пытаться реализовать сохранность данных на триггерах 3.кэширование планов запросов, особенно хорошо смотрится при большом числе пользователей - реальная экономия на парсинге и оптимизации запроса 4. возможность изменения логики работы системы в одном-единственном месте 5. современные сервера обеспечивают бОльшую надежность, чем современные клиенты, соответсвенно там зачастую проще реализовывать обработку ошибок и всё такое (проще в глобальном смысле) 6. независимость клиента от структуры данных. клиент может и не знать, что база изменилась до неузначаемости (опять-таки, п.4) -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 11:15 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
1. Уменьшение сетевого траффика 2. Хранимые процедуры выполняются в адресном пространстве сервера - выше быстродействие (т.е. рядом с данными) - уменьшение времени реакции системы 3. ХП хранится как откомпиленый код с уже готовым планом выполнения запросов - уменьшение времени реакции системы 4. Изменение бизнес-логики не требует перекомпиляции и переустановки клиентского ПО (особенно критично на этапе опытной эксплуатации) - снижение совокупной стоимости владения. 5. Снижение требований к клиентским компам - опять же снижение совокупной стоимости владения. 6. Язык разработки ХП "заточен" для работы с данными, в отличие от васиков, С, дельфей и т.д... - повышается скорость разработки = снижение трудоемкости = снижение стоимости разработки И тд и тп... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 11:17 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Мы просто всем сомневающимся клиентам демонстрируем работу нашего ПО на низких каналах связи. Приезжаем с ноутбуком, на нем установлено клиентское приложение с 2 типами подключений - одно напрямую через хост нацелено на консолидированную БД в нашей конторе, другое на локальную СУБД, связанную с консолидированной через оффлайн-репликацию по FTP, опять же в нашей конторе. Втыкаем BlueTooh-Adapter, соединяем через GRPS, демонстрируем, как работает клиент с консолидированной БД через хранимки, проводим изменения сверху данных узла, принадлежащих ноутбуку. Конечно не быстро, но достаточно удовлетворительно. Дальше подрубаем того же клиента, но к локальной СУБД, так же проводим изменения, запускаем репликацию, показываем что в обоих версиях клиента что в консолидированной, что в удаленной изменения были проведены и отображены. Таким образом демонстрируем, что на низких и даже не постоянных каналах доступа можно спокойно организовывать работу удаленных точек, причем работа может вестись в смешанном режиме, например у удаленного узла все клиентские приложения работают напрямую с консолидированной, а локальная БД периодически реплицирует на себя изменения. В случае падения канала будет достаточно перевести клиентские приложения на локальную БД и работа не будет остановлена, только что появится задержка в обмене данных между центром и удаленным узлом, равная периоду проведения репликации. Дальше уже достаточно показать, как с помощью ХП и триггеров организована система доступа прав от самих обьектов БД до бизнес-логики, централизованное администрирование удаленных узлов, автоматическое обновление структуры БД через репликацию и легкость сопровождения клиентского приложения и вопросы отпадают сами собой. Дальше обычно клиенты начинают упираться в платформу клиентского приложения, настаивая на веб-интерфейсе, чтоб было круто, но это уже другая тема разговора :) Ну а к Locky я бы добавил: 7. Облегчение логики клиентского приложения, увеличивает легкость его сопровождения 8. Так как FB поддерживает SELECT FROM ХП(), то это позволяет скрывать от клиента сложную структуру БД, но не обрезать его в использовании SQL и плодить ХП 9. Возможность наращивать функциональность (логирование, репликация через вызовы ХП и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 11:21 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
ASCRUSМы просто всем сомневающимся клиентам демонстрируем работу нашего ПО на низких каналах связи. Приезжаем с ноутбуком, на нем установлено клиентское приложение с 2 типами подключений - одно напрямую через хост нацелено на консолидированную БД в нашей конторе, другое на локальную СУБД, связанную с консолидированной через оффлайн-репликацию по FTP, опять же в нашей конторе. Втыкаем BlueTooh-Adapter, соединяем через GRPS, демонстрируем, как работает клиент с консолидированной БД через хранимки, проводим изменения сверху данных узла, принадлежащих ноутбуку. Конечно не быстро, но достаточно удовлетворительно. Дальше подрубаем того же клиента, но к локальной СУБД, так же проводим изменения, запускаем репликацию, показываем что в обоих версиях клиента что в консолидированной, что в удаленной изменения были проведены и отображены. Таким образом демонстрируем, что на низких и даже не постоянных каналах доступа можно спокойно организовывать работу удаленных точек, причем работа может вестись в смешанном режиме, например у удаленного узла все клиентские приложения работают напрямую с консолидированной, а локальная БД периодически реплицирует на себя изменения. В случае падения канала будет достаточно перевести клиентские приложения на локальную БД и работа не будет остановлена, только что появится задержка в обмене данных между центром и удаленным узлом, равная периоду проведения репликации. Дальше уже достаточно показать, как с помощью ХП и триггеров организована система доступа прав от самих обьектов БД до бизнес-логики, централизованное администрирование удаленных узлов, автоматическое обновление структуры БД через репликацию и легкость сопровождения клиентского приложения и вопросы отпадают сами собой. Дальше обычно клиенты начинают упираться в платформу клиентского приложения, настаивая на веб-интерфейсе, чтоб было круто, но это уже другая тема разговора :) потом подключаете одновременно 10% от 200 тысяч пользователей и начинаете сильно удивляться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 11:32 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
авторпотом подключаете одновременно 10% от 200 тысяч пользователей и начинаете сильно удивляться :) Может быть сразу от миллиона пользователей ? Чего уж там мелочиться то с нашей широкой душой, а вдруг столько у клиента пользователей лет так через сто появится ? :) ЗЫ: Да и пожалуйста, 2 штуки коннектов ASA нормально выдерживает, если сервак и ОС правильные :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 11:36 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
ASCRUS авторпотом подключаете одновременно 10% от 200 тысяч пользователей и начинаете сильно удивляться :) Может быть сразу от миллиона пользователей ? Чего уж там мелочиться то с нашей широкой душой, а вдруг столько у клиента пользователей лет так через сто появится ? :) ЗЫ: Да и пожалуйста, 2 штуки коннектов ASA нормально выдерживает, если сервак и ОС правильные :) а подняться вверх и почитать внимательно посты автора влом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 11:39 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что вопросы клиента вызваны опасением: "А как это все сопровождать?" Может, имеет смысл об этом поговорить (с клиентом), а не только о технологических преимуществах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 12:03 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
> Клиент требовал FireBird. Обычный тупой клиент. > Мы всегда (а у него есть еще и свои программеры) делали бизнес-логику > в приложении. Зачем ее переносить в БД? Обычный продвинутый тупой клиент. > Подготовь мне списочек Добавить к уже сказанному нечего. > все гарварды всякие там позаканчивали Это отличный повод взять с них денег за консалтинг. Эмулировать требуемую нагрузку с разными вариантами реализации, продемонстрировать, что: 1. FB для 200к клиентов... не очень подойдет, 2. единственно возможный вариант реализации бизнес-логики - на сервере, другие варианты - от лукавого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 12:04 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Предлагаю автору спросить о проблеме на форуме Interbase/Fireird, раз уж сервер у него выбран Firebird. Возможно при 200 тыс. клиентов кто-нибуть расскажет про особенности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 12:49 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
далеко не всякий бизнес-процесс можно запихнуть в хп-обертку. Есть бп которые требуют промежуточных рассчетов, промежуточных состояний, бп которые оперируют бизнес-объектами в рамках какой-либо единицы работы, и эти бизнес-объекты должны быть сохранены только когда вся единица работы complite. Конечно потом результат этой единицы работы можно завернуть в одну хп и отправить на сервер одним вызовом, но то что до complete гораздо красивее ложиться в промежуточное звено и на нормальный ООП-язык, чем на трудно читаемую логику на TSQL с кучей временных таблиц и еще невесть чего. По поводу скорости разрботки, я все так и придерживаюсь такой позиции: все что можно сгенерировать на основе модели, а именно CRUD, - правильно в хп, если нет - стоит подумать в зависимости от ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 13:16 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
авторУ нас конечно все офигели... 3 недели разработок коту под хвост. т.к. все было ориентировано на ХП и все действия с базой данных были сведены до атомарного вызова той или иной процедуры. Ну если в ТЗ ничего не было сказано про ХП или НЕ ХП, то пошлите клиента далеко и надолго - его проблемы, что сразу не оговорил. Но если с клиентом никакого договора нет - тады ой -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 15:41 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
да фигня это всё. Вопрос из другой плоскости. Договор был заключён, ТЗ подписано, клиент требует пересмотра ТЗ. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 15:41 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
1024 да фигня это всё. Вопрос из другой плоскости. Договор был заключён, ТЗ подписано, клиент требует пересмотра ТЗ. Posted via ActualForum NNTP Server 1.3 Тогда нужно быть максимально конструктивными и пойти клиенту навстречу. Т.е. оговорить масштабы переделки и... сумму, в которую все это выльется для клиента ;0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 18:07 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Если у клиента есть "очень умный" специалист, который считает себя проффессионалом, то никакие ссылки на аргументы солидных людей не дадут результата. Следующий пересмотр ТЗ будет произведен, когда логика будет решена на клиенте, но "не правильно организована структура модулей" или "использованы не удачные объекты". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 18:10 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Все правильно. За отдельные деньги переделать все - вынести логику на клиента, а потом когда он заплачет и попросит все вернуть, продать другую версию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 18:28 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
Забугорные специ правы, никогда не делай бизнесс логику на сервере баз данных он для этого не предназначен. Можно сделать если есть корпаративный сервак процессоров на 8 XEON MP минимум. А если пользователей человек 200 будет.... НУЖНО логику делать на сервере приложений, но это уже не подьёная задача для средней организации. Для мелких кантор.... Крутиться на локальной машине твоя логика и берёт данные для работы из базы (хранилище данных) и ВСЁ !!!!!!!!!!!!!!!!!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 04:33 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
RЗабугорные специ правы, никогда не делай бизнесс логику на сервере баз данных он для этого не предназначен. Можно сделать если есть корпаративный сервак процессоров на 8 XEON MP минимум. А если пользователей человек 200 будет.... НУЖНО логику делать на сервере приложений, но это уже не подьёная задача для средней организации. Для мелких кантор.... Крутиться на локальной машине твоя логика и берёт данные для работы из базы (хранилище данных) и ВСЁ !!!!!!!!!!!!!!!!!!!!!!!!!!! Можно подумать, что сервер приложений не ту же тучу запросов будет на тех же 200 пользователей слать на СУБД, что и ХП. Другое дело, если "спецы" окромя алгоритмического программирования, то есть ветвления, циклов и курсорчиков по другому никак бизнес-логику делать не умеют, тогда ДА - лучше пусть они ее в клиентских приложениях или 3-ем звене делают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 07:01 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
ASCRUS, R давайте не будем вгонять топик в старую идеалогическю войну. "никогда не говори никогда" (с). Все зависит от требований к конкретной системе, ну и опыт, навыки разработчиков не на последнем месте, конечно. Сервер же приложений может и одним батчем весь запрос закинуть, равно как и кучу запросов по сохранению можно обернуть в одну хп-обертку, это уже только логики касается, а никак не способов ее реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 09:21 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
2 R А если у меня 7 XEON MP - можно БЛ на сервере делать или уже нет? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 09:26 |
|
||
|
Бизнес-логика в БД посредством ХП. за и против
|
|||
|---|---|---|---|
|
#18+
> Все зависит от требований к конкретной системе Конечно. Если в числе требований максимальное количество геморроя, нулевая сопровождаемость, практическая невозможность апдейтов, невозможность масштабирования, невозможность балансирования нагрузки, тогда, конечно, т. н. бизнес-логику необходимо реализовывать на клиенте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 09:39 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33240692&tid=1545690]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
14ms |
get forum data: |
6ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 455ms |

| 0 / 0 |
