|
|
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые программисты! Прошу поделиться соображениями вот о чём. Пишу клиентские desktop приложения (C# WinForms) под Виндовс для работы с Базами Данных (речь о веб-приложениях пока не ведём, обсуждаем только desktop). Код: c# 1. Напишите, какие по вашему мнению существуют преимущества у трёхзвенной схемы: Код: c# 1. Также буду рад прочесть о случаях из вашей практики в пользу той или иной точки зрения. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2017, 10:56 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Дядька с усами и часами, на среднем слое можно реализовать какую-то бизнес логику, не на расширениях SQL. Кроме этого, если нужно иногда задействовать какие-то другие компоненты или службы, например, послать с сервера сообщение по электронной почте или что-то в этом роде, из кода в базе данных на SQL это бывает достаточно трудно сделать. А со среднего звена никаких проблем. Вообще, если управление попадает в код на SQL, из него потом трудно выбраться куда-то ещё, кроме клиента СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 02:29 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Дядька с усами и часами.... Напишите, какие по вашему мнению существуют преимущества у трёхзвенной схемы .... если как у индусов, оплата по кол-ву строк кода==> можно больше написать кода ==> выше заработок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 09:08 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
MasterZivна среднем слое можно реализовать какую-то бизнес логику, не на расширениях SQL. особенно что касается разграничения прав доступа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 09:35 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevможно больше написать кода ==> выше заработокможет быть ещё какие-то аргументы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 09:52 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
ИзопропилMasterZivна среднем слое можно реализовать какую-то бизнес логику, не на расширениях SQL. особенно что касается разграничения прав доступанапример? на среднем звене организовать свою систему юзеров-ролей-паролей, при том, что сам Сервер Приложений ломится в БД от имени одной и той же учётки? вы это имеете ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 09:55 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Дядька с усами и часамиЗдравствуйте, уважаемые программисты! Прошу поделиться соображениями вот о чём. Пишу клиентские desktop приложения (C# WinForms) под Виндовс для работы с Базами Данных (речь о веб-приложениях пока не ведём, обсуждаем только desktop). Код: c# 1. Напишите, какие по вашему мнению существуют преимущества у трёхзвенной схемы: Код: c# 1. Также буду рад прочесть о случаях из вашей практики в пользу той или иной точки зрения. Спасибо. А что, если слова начинать с заглавной буквы, это им дополнительный вес придает ? Просто интересно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 10:36 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Дядька с усами и часаминапример? на среднем звене организовать свою систему юзеров-ролей-паролей, при том, что сам Сервер Приложений ломится в БД от имени одной и той же учётки? вы это имеете ввиду? ну "свою систему юзеров-ролей-паролей" это ваше дело, но вот сбором "в одну кучку"/расчетами/пересчетами каких-то данных из разных систем и БД, чтоб не терять время на "...кучку..." на клиенте, а отдать ему сразу - можно наверное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 11:08 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Сервер приложений позволяет много чего: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 13:00 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
- организовать общие кэши, используя другую бесплатную базу типа кеу-value и т.п. - минимизировать количество сессий на СУБД (важно, если лицензирование ведется по количеству сессий), требования к серверу СУБД становятся меньшими (как за счет меньшего количества сессий, так и переноса логики) - появляются возможности масштабирования горизонтального (когда ERP вырастет до нескольких тысяч пользователей) - ну и возможности языков типа JAVA и т.п., которые используются на серверах приложений, гораздо шире, чем языки СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 13:09 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
И нафига все это нужно? В реальном бизнес приложении? самопальные кэши - что бы потом делать самопальные блокировки? и самопальную транзакционность? а что, у СУБД кэши не предусмотрены? Интересна, какая нагрузка на приложение, что такая порнография понадобилась? Может просто научится индексами в БД пользоваться? минимизировать количество сессий на СУБД (важно, если лицензирование ведется по количеству сессий) - сначала купить дорогую СУБД, а потом ее НЕ использовать? Если она не нужна, зачем тогда ее покупать? появляются возможности масштабирования горизонтального - честно говоря, где горизонтальное масштабирование, а где вертикальное, я разбираюсь плохо. А просто СУБД с таким же успехом не отмасштабировать? если задача позволяет? ну и возможности языков типа JAVA и т.п., которые используются на серверах приложений, гораздо шире, чем языки СУБД - ряд СУБД позволяют внутри себя использовать Java. Ну и СУБД надо использовать для обработки ДАННЫХ. А тут, может язык СУБД и не настолько "широк", но значительно УДОБНЕЕ (сужу по PL/SQL). А на Java, ряд дятлов вполне могут полную hibrnate'изацию и приложения, и БД устроить. После чего, hibernate и наступит. И приложению и серверу СУБД. Вот тут как раз и потребуются и кэши и горизонтальная масштабируемость. Сами себе создаем проблемы, потом сами и решаем. Готов для бизнес приложения признать единственную реальную необходимость еще одного звена, недо-сервера приложений: сервер отчетов или сервер job'ов . Который будет заниматься исключительно отчетами и/или долго рассчитываемыми job'ами (например массовыми операциями) IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 13:25 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Дядька с усами и часамиLeonid Kudryavtsevможно больше написать кода ==> выше заработокможет быть ещё какие-то аргументы? Ну если Вы, знающий свою задачу, никаких достоинств не видите... то наверное главный плюс от переусложнения системы - потребовать за нее больше бабла. И за разработку и за саппорт. Ну и в глобальном масштабе: борьба с безработицей, повышение жизненного уровня широких слоев программисткого населения, как следствие - рост спроса на товары и услуги, рост других отраслей производства (если Кейс и прочие теоретики капитализма правы)... в общем, плюсов много Во всех других случаях, наверное, более простое решение и более выгодное. IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 13:29 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevИ нафига все это нужно? Он же написал: - workaround тормознутости СУБД при большом количестве запросов; - workaround тормознутости СУБД при большом количестве сессий; - workaround предела вертикального масштабирования; - workaround неспособности программиста написать нужную логику на языке СУБД и/или приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 13:38 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovLeonid KudryavtsevИ нафига все это нужно? .... - workaround неспособности программиста написать нужную логику на языке СУБД и/или приложения. мне кажется, можно оставить только одно все предыдущие - просто следствие данного пункта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 13:51 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 16:03 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevDimitry Sibiryakovпропущено... .... - workaround неспособности программиста написать нужную логику на языке СУБД и/или приложения. мне кажется, можно оставить только одно все предыдущие - просто следствие данного пункта да почему следствие-то? зачем тратить ресурсы субд на создание и убивание сессий, если можно использовать коннекшн пулы? Конечно если полтора пользователя, то пофиг, но если предпологается какая-то нагрузка, то.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 16:07 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevИ нафига все это нужно? В реальном бизнес приложении? сначала купить дорогую СУБД, а потом ее НЕ использовать? Если она не нужна, зачем тогда ее покупать? IMHO & AFAIK а зачем покупать эту самую дорогую СУБД? Только для того чтобы пользоваться ее языками типа PL SQL и т.п.? Сервера приложений как раз и позволяют не использовать дорогие СУБД а по возможности и не привязываться к ним. Кому то то достаточно и постгресс, а кому то и Oracle потребуется. Но если завяжитесь на бизнес логику внутри СУБД, то навечно и клиента "прикуете к ней", то сами уже не спрыгните. Есть бюджет клиента - и если окажется что покупка СУБД и лицензий на нее равна 99% бюджета, то это уже не ваш клиент :) А так - можно скоплектовать систему из одного или нескольких бесплатного сервера приложений и одной или нескольких бесплатных СУБД. И все это будет работать на технике не самого высокого класса. Вы цену владения такой системы для клиента рассматривайте, а не то что вам лично внутри СУБД удобно бизнес-логику писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 19:07 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
alexk123...Но если завяжитесь на бизнес логику внутри СУБД, то навечно и клиента "прикуете к ней", то сами уже не спрыгните.... А так - можно скоплектовать систему из одного или нескольких бесплатного сервера приложений и одной или нескольких бесплатных СУБД. И все это будет работать на технике не самого высокого класса. Вы цену владения такой системы для клиента рассматривайте, а не то что вам лично внутри СУБД удобно бизнес-логику писать.[/quot] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 19:15 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Сорри ((( alexk123...Но если завяжитесь на бизнес логику внутри СУБД, то навечно и клиента "прикуете к ней", то сами уже не спрыгните.... А так завяжитесь на сервер приложений и клиента "прикуете к нему" alexk123...А так - можно скоплектовать систему из одного или нескольких бесплатного сервера приложений и одной или нескольких бесплатных СУБД.... не очень понятно, чем Вам просто бесплатные СУБД не угодили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 19:19 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevСорри ((( alexk123...Но если завяжитесь на бизнес логику внутри СУБД, то навечно и клиента "прикуете к ней", то сами уже не спрыгните.... А так завяжитесь на сервер приложений и клиента "прикуете к нему"Да, но этот сервер приложений будете писать вы сами. А значит и все хотелки клиента можно будет реализовывать (ну хотя бы теоретически можно). Впрочем, сам сервер приложений тоже будет в какой-то мере привязан к СУБД... И далеко не факт что его будет легко переписать на другую СУБД. Клиента править не понадобиться, но сервер приложений все-же нужно будет серьезно переписывать. Leonid Kudryavtsevalexk123...А так - можно скоплектовать систему из одного или нескольких бесплатного сервера приложений и одной или нескольких бесплатных СУБД.... не очень понятно, чем Вам просто бесплатные СУБД не угодилиБесплатные СУБД очень не нравятся менеджерам высокого звена. С точки зрения менеджера, лучше заплатить за лицензию и иметь возможность в случае чего потребовать от производителя помощь и/или подать на него в суд. А за бесплатный софт (не только СУБД) не надо платить, но при этом, и за косяки в нем никого нельзя наказать. И чем серьезнее контора, тем больше проявляется нелюбовь к бесплатному софту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 19:55 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
White OwlС точки зрения менеджера, лучше заплатить за лицензию и иметь .... Откат. Увы, но так оно и есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 20:13 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Просто, если по каким-то причинам решили купить "серьезную" СУБД, IMHO очень глупо не пользоваться теме возможностями, которые она предоставляет и за которые заплачены деньги. Покупать и платить за лицензии и техподдержку Oracle и при этом использовать его на уровне только стандартного SQL... можно конечно, но, подозреваю, в этом случае, что Oracle, что MySQL, что Postgre SQL будуд совершенно одинаково. Тогда нафига его вообще покупать? (вопрос функционирование экономики по методу распилинга и откатинга не обсуждаем) С таким же успехом, ради переносимости, можно вообще СУБД не использовать... текстовые файлы - наше все. Кроме того, не очень понятно, как кэши, переноимости, СУБД независимость и прочее, связаны с сервером приложений. Нужны Вам дополнительные кэши, при чем тут сервер приложений? С таким же успехом (и даже эффективнее) можно и на клиенте данные кэшировать. Нужна Вам кросс-платформенность от СУБД, ну так кто мешает, написать клиент-сервер не используя специфических фичь базы данных. С таким же успехом и клиент-сервер можно сделать независимым от вендора СУБД. Исключительно вопрос начального требований ТЗ и денег на тестирование. Что клиент-сервер нужно будет тестировать на разных СУБД, что трехзвенку, так же на разных СУБД нужно независимо тестировать. И так далее. Главный недостаток трехзвенки, такой же, как и у двух-звенки. Увеличивается сложность системы, увеличивается кол-во технологий. Нужен больше штат. На старом, добром FoxPro - нужен один человек. Знающий FoxPro Двух звенка, нужны C# и SQL'шник. Два человека. Трех звенка: JavaScript, Java, SQL. Три человека Ну или ищем full stack. Который об индексах знает, что "есть такая вещь и вроде позволяет скорость выполнения запроса увеличить". Или возьмем ORM, насоздаем объекты, а дальше оно все за нас само сделать должно. IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 20:19 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, горизонтальное масштабирование - добавим еще 10 серверов из г.и п., и например переведем на них какую то часть клиентов, например поставим в Сибири и туда всех китайцев вертикальное - купим сервер на замену в 2 раза быстрее и в 10 раз дороже для задач, которые хорошо параллелятся вариант 1 явно выгоднее ну или веб - 2-звенкой трудно обойтись. ок веб не обсуждаем по условиям, но это пока не припрется директор с айпадом и не скажет - хочу... про кэш на клиенте - это пока нет частых изменений - не для любой задачи пойдет Еще про кэширование - что из стандартных готовых решений есть кроме таймстен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2017, 22:36 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevНа старом, добром FoxPro - нужен один человек. Знающий FoxPro И что это человек напишет? Вот гуляют люди по торговому центру и заходят купить тур в Грецию. Девушка выслушивает их пожелания и накидывает в корзину перелёт, трансферы, проживание, экскурсии, гида. И делает это не по телефону, а через клиента к системе туроператора. А система туроператора передаёт заказ принимающим партнёрам в Греции тоже уже не по телефону, или электронной почте, а через API к их сервисам. И в отель бронь приходит не по факсу, и гид, встречающий приезжающих в аэропорту стоит уже не с бумажкой, где у него записана рассадка в автобусе, а с планшетом. И не треснет ли одно место у человека, знающего FoxPro, всё это автоматизировать, тестировать, внедрять и поддерживать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 07:22 |
|
||
|
Клиентское приложение - Сервер Приложений - СУБД
|
|||
|---|---|---|---|
|
#18+
Теперь такой вопрос. Вот все говорят "логика на сервере приложений". Но как делать логику на среднем звене - если логика прежде всего упирается в данные, а данные - на стороне СУБД ! Получается, раз данными заправляет СУБД, значит и логикой заправляет она же? Или имеется ввиду, что получив данные от клиента, сервер приложений (среднее звено) будет запрашивать у СУБД дополнительные данные из таблиц (именно из таблиц, раз логики на БД нет, то и процедур - нет) и сам будет оперировать этими данными? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 08:34 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39473924&tid=1340354]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
160ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 454ms |

| 0 / 0 |
