powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Клиентское приложение - Сервер Приложений - СУБД
25 сообщений из 155, страница 1 из 7
Клиентское приложение - Сервер Приложений - СУБД
    #39473558
Дядька с усами и часами
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, уважаемые программисты!
Прошу поделиться соображениями вот о чём.
Пишу клиентские desktop приложения (C# WinForms) под Виндовс для работы с Базами Данных (речь о веб-приложениях пока не ведём, обсуждаем только desktop).
Код: c#
1.
Клиентское приложение <----> СУБД

Напишите, какие по вашему мнению существуют преимущества у трёхзвенной схемы:
Код: c#
1.
Клиентское приложение <----> Сервер Приложений <----> СУБД

Также буду рад прочесть о случаях из вашей практики в пользу той или иной точки зрения.
Спасибо.
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39473885
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядька с усами и часами,

на среднем слое можно реализовать какую-то бизнес логику, не на расширениях SQL.

Кроме этого, если нужно иногда задействовать какие-то другие компоненты или службы, например, послать с сервера сообщение по электронной почте или что-то в этом роде, из кода в базе данных на SQL это бывает достаточно трудно сделать. А со среднего звена никаких проблем. Вообще, если управление попадает в код на SQL, из него потом трудно выбраться куда-то ещё, кроме клиента СУБД.
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39473924
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядька с усами и часами....
Напишите, какие по вашему мнению существуют преимущества у трёхзвенной схемы
....
если как у индусов, оплата по кол-ву строк кода==> можно больше написать кода ==> выше заработок
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39473937
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivна среднем слое можно реализовать какую-то бизнес логику, не на расширениях SQL.
особенно что касается разграничения прав доступа
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39473944
Дядька с усами и часами
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevможно больше написать кода ==> выше заработокможет быть ещё какие-то аргументы?
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39473946
Дядька с усами и часами
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилMasterZivна среднем слое можно реализовать какую-то бизнес логику, не на расширениях SQL.
особенно что касается разграничения прав доступанапример? на среднем звене организовать свою систему юзеров-ролей-паролей, при том, что сам Сервер Приложений ломится в БД от имени одной и той же учётки? вы это имеете ввиду?
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39473980
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядька с усами и часамиЗдравствуйте, уважаемые программисты!
Прошу поделиться соображениями вот о чём.
Пишу клиентские desktop приложения (C# WinForms) под Виндовс для работы с Базами Данных (речь о веб-приложениях пока не ведём, обсуждаем только desktop).
Код: c#
1.
Клиентское приложение <----> СУБД

Напишите, какие по вашему мнению существуют преимущества у трёхзвенной схемы:
Код: c#
1.
Клиентское приложение <----> Сервер Приложений <----> СУБД

Также буду рад прочесть о случаях из вашей практики в пользу той или иной точки зрения.
Спасибо.

А что, если слова начинать с заглавной буквы, это им дополнительный вес придает ? Просто интересно...
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474010
просто я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дядька с усами и часаминапример? на среднем звене организовать свою систему юзеров-ролей-паролей, при том, что сам Сервер Приложений ломится в БД от имени одной и той же учётки? вы это имеете ввиду?
ну "свою систему юзеров-ролей-паролей" это ваше дело, но вот сбором "в одну кучку"/расчетами/пересчетами каких-то данных из разных систем и БД, чтоб не терять время на "...кучку..." на клиенте, а отдать ему сразу - можно наверное...
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474086
alexk123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер приложений позволяет много чего:
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474092
alexk123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- организовать общие кэши, используя другую бесплатную базу типа кеу-value и т.п.
- минимизировать количество сессий на СУБД (важно, если лицензирование ведется по количеству сессий), требования к серверу СУБД становятся меньшими (как за счет меньшего количества сессий, так и переноса логики)
- появляются возможности масштабирования горизонтального (когда ERP вырастет до нескольких тысяч пользователей)
- ну и возможности языков типа JAVA и т.п., которые используются на серверах приложений, гораздо шире, чем языки СУБД
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474105
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И нафига все это нужно?
В реальном бизнес приложении?

самопальные кэши - что бы потом делать самопальные блокировки? и самопальную транзакционность? а что, у СУБД кэши не предусмотрены? Интересна, какая нагрузка на приложение, что такая порнография понадобилась? Может просто научится индексами в БД пользоваться?

минимизировать количество сессий на СУБД (важно, если лицензирование ведется по количеству сессий) - сначала купить дорогую СУБД, а потом ее НЕ использовать? Если она не нужна, зачем тогда ее покупать?

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

ну и возможности языков типа JAVA и т.п., которые используются на серверах приложений, гораздо шире, чем языки СУБД - ряд СУБД позволяют внутри себя использовать Java. Ну и СУБД надо использовать для обработки ДАННЫХ. А тут, может язык СУБД и не настолько "широк", но значительно УДОБНЕЕ (сужу по PL/SQL). А на Java, ряд дятлов вполне могут полную hibrnate'изацию и приложения, и БД устроить. После чего, hibernate и наступит. И приложению и серверу СУБД. Вот тут как раз и потребуются и кэши и горизонтальная масштабируемость. Сами себе создаем проблемы, потом сами и решаем.

Готов для бизнес приложения признать единственную реальную необходимость еще одного звена, недо-сервера приложений: сервер отчетов или сервер job'ов . Который будет заниматься исключительно отчетами и/или долго рассчитываемыми job'ами (например массовыми операциями)

IMHO & AFAIK
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474109
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядька с усами и часамиLeonid Kudryavtsevможно больше написать кода ==> выше заработокможет быть ещё какие-то аргументы?
Ну если Вы, знающий свою задачу, никаких достоинств не видите... то наверное главный плюс от переусложнения системы - потребовать за нее больше бабла. И за разработку и за саппорт.

Ну и в глобальном масштабе: борьба с безработицей, повышение жизненного уровня широких слоев программисткого населения, как следствие - рост спроса на товары и услуги, рост других отраслей производства (если Кейс и прочие теоретики капитализма правы)... в общем, плюсов много

Во всех других случаях, наверное, более простое решение и более выгодное.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474110
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevИ нафига все это нужно?
Он же написал:
- workaround тормознутости СУБД при большом количестве запросов;
- workaround тормознутости СУБД при большом количестве сессий;
- workaround предела вертикального масштабирования;
- workaround неспособности программиста написать нужную логику на языке СУБД и/или приложения.
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474117
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovLeonid KudryavtsevИ нафига все это нужно?
....
- workaround неспособности программиста написать нужную логику на языке СУБД и/или приложения.
мне кажется, можно оставить только одно
все предыдущие - просто следствие данного пункта
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474225
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474228
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevDimitry Sibiryakovпропущено...

....
- workaround неспособности программиста написать нужную логику на языке СУБД и/или приложения.
мне кажется, можно оставить только одно
все предыдущие - просто следствие данного пункта

да почему следствие-то? зачем тратить ресурсы субд на создание и убивание сессий, если можно использовать коннекшн пулы? Конечно если полтора пользователя, то пофиг, но если предпологается какая-то нагрузка, то..
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474403
alexk123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevИ нафига все это нужно?
В реальном бизнес приложении?
сначала купить дорогую СУБД, а потом ее НЕ использовать? Если она не нужна, зачем тогда ее покупать?

IMHO & AFAIK

а зачем покупать эту самую дорогую СУБД? Только для того чтобы пользоваться ее языками типа PL SQL и т.п.? Сервера приложений как раз и позволяют не использовать дорогие СУБД а по возможности и не привязываться к ним. Кому то то достаточно и постгресс, а кому то и Oracle потребуется. Но если завяжитесь на бизнес логику внутри СУБД, то навечно и клиента "прикуете к ней", то сами уже не спрыгните. Есть бюджет клиента - и если окажется что покупка СУБД и лицензий на нее равна 99% бюджета, то это уже не ваш клиент :)

А так - можно скоплектовать систему из одного или нескольких бесплатного сервера приложений и одной или нескольких бесплатных СУБД. И все это будет работать на технике не самого высокого класса. Вы цену владения такой системы для клиента рассматривайте, а не то что вам лично внутри СУБД удобно бизнес-логику писать.
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474409
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexk123...Но если завяжитесь на бизнес логику внутри СУБД, то навечно и клиента "прикуете к ней", то сами уже не спрыгните....

А так - можно скоплектовать систему из одного или нескольких бесплатного сервера приложений и одной или нескольких бесплатных СУБД. И все это будет работать на технике не самого высокого класса. Вы цену владения такой системы для клиента рассматривайте, а не то что вам лично внутри СУБД удобно бизнес-логику писать.[/quot]
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474413
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри (((
alexk123...Но если завяжитесь на бизнес логику внутри СУБД, то навечно и клиента "прикуете к ней", то сами уже не спрыгните....

А так завяжитесь на сервер приложений и клиента "прикуете к нему"
alexk123...А так - можно скоплектовать систему из одного или нескольких бесплатного сервера приложений и одной или нескольких бесплатных СУБД....
не очень понятно, чем Вам просто бесплатные СУБД не угодили
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474423
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevСорри (((
alexk123...Но если завяжитесь на бизнес логику внутри СУБД, то навечно и клиента "прикуете к ней", то сами уже не спрыгните....

А так завяжитесь на сервер приложений и клиента "прикуете к нему"Да, но этот сервер приложений будете писать вы сами. А значит и все хотелки клиента можно будет реализовывать (ну хотя бы теоретически можно).
Впрочем, сам сервер приложений тоже будет в какой-то мере привязан к СУБД... И далеко не факт что его будет легко переписать на другую СУБД. Клиента править не понадобиться, но сервер приложений все-же нужно будет серьезно переписывать.

Leonid Kudryavtsevalexk123...А так - можно скоплектовать систему из одного или нескольких бесплатного сервера приложений и одной или нескольких бесплатных СУБД....
не очень понятно, чем Вам просто бесплатные СУБД не угодилиБесплатные СУБД очень не нравятся менеджерам высокого звена. С точки зрения менеджера, лучше заплатить за лицензию и иметь возможность в случае чего потребовать от производителя помощь и/или подать на него в суд.
А за бесплатный софт (не только СУБД) не надо платить, но при этом, и за косяки в нем никого нельзя наказать.
И чем серьезнее контора, тем больше проявляется нелюбовь к бесплатному софту.
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474428
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlС точки зрения менеджера, лучше заплатить за лицензию и иметь ....
Откат. Увы, но так оно и есть.
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474430
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто, если по каким-то причинам решили купить "серьезную" СУБД, IMHO очень глупо не пользоваться теме возможностями, которые она предоставляет и за которые заплачены деньги. Покупать и платить за лицензии и техподдержку Oracle и при этом использовать его на уровне только стандартного SQL... можно конечно, но, подозреваю, в этом случае, что Oracle, что MySQL, что Postgre SQL будуд совершенно одинаково. Тогда нафига его вообще покупать? (вопрос функционирование экономики по методу распилинга и откатинга не обсуждаем)

С таким же успехом, ради переносимости, можно вообще СУБД не использовать... текстовые файлы - наше все.

Кроме того, не очень понятно, как кэши, переноимости, СУБД независимость и прочее, связаны с сервером приложений.

Нужны Вам дополнительные кэши, при чем тут сервер приложений? С таким же успехом (и даже эффективнее) можно и на клиенте данные кэшировать.

Нужна Вам кросс-платформенность от СУБД, ну так кто мешает, написать клиент-сервер не используя специфических фичь базы данных. С таким же успехом и клиент-сервер можно сделать независимым от вендора СУБД. Исключительно вопрос начального требований ТЗ и денег на тестирование. Что клиент-сервер нужно будет тестировать на разных СУБД, что трехзвенку, так же на разных СУБД нужно независимо тестировать. И так далее.

Главный недостаток трехзвенки, такой же, как и у двух-звенки. Увеличивается сложность системы, увеличивается кол-во технологий. Нужен больше штат.

На старом, добром FoxPro - нужен один человек. Знающий FoxPro

Двух звенка, нужны C# и SQL'шник. Два человека.

Трех звенка: JavaScript, Java, SQL. Три человека

Ну или ищем full stack. Который об индексах знает, что "есть такая вещь и вроде позволяет скорость выполнения запроса увеличить". Или возьмем ORM, насоздаем объекты, а дальше оно все за нас само сделать должно.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474481
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

горизонтальное масштабирование - добавим еще 10 серверов из г.и п., и например переведем на них какую то часть клиентов, например поставим в Сибири и туда всех китайцев
вертикальное - купим сервер на замену в 2 раза быстрее и в 10 раз дороже

для задач, которые хорошо параллелятся вариант 1 явно выгоднее

ну или веб - 2-звенкой трудно обойтись. ок веб не обсуждаем по условиям, но это пока не припрется директор с айпадом и не скажет - хочу...

про кэш на клиенте - это пока нет частых изменений - не для любой задачи пойдет

Еще про кэширование - что из стандартных готовых решений есть кроме таймстен?
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474545
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНа старом, добром FoxPro - нужен один человек. Знающий FoxPro
И что это человек напишет?

Вот гуляют люди по торговому центру и заходят купить тур в Грецию.
Девушка выслушивает их пожелания и накидывает в корзину перелёт, трансферы, проживание, экскурсии, гида.
И делает это не по телефону, а через клиента к системе туроператора.
А система туроператора передаёт заказ принимающим партнёрам в Греции тоже уже не по телефону, или электронной почте, а через API к их сервисам.
И в отель бронь приходит не по факсу, и гид, встречающий приезжающих в аэропорту стоит уже не с бумажкой, где у него записана рассадка в автобусе, а с планшетом.

И не треснет ли одно место у человека, знающего FoxPro, всё это автоматизировать, тестировать, внедрять и поддерживать?
...
Рейтинг: 0 / 0
Клиентское приложение - Сервер Приложений - СУБД
    #39474558
Дядька с усами и часами
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь такой вопрос.
Вот все говорят "логика на сервере приложений".

Но как делать логику на среднем звене - если логика прежде всего упирается в данные, а данные - на стороне СУБД !
Получается, раз данными заправляет СУБД, значит и логикой заправляет она же?

Или имеется ввиду, что получив данные от клиента, сервер приложений (среднее звено) будет запрашивать у СУБД дополнительные данные из таблиц (именно из таблиц, раз логики на БД нет, то и процедур - нет) и сам будет оперировать этими данными?
...
Рейтинг: 0 / 0
25 сообщений из 155, страница 1 из 7
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Клиентское приложение - Сервер Приложений - СУБД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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