powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Что лучше- клиент или сервер?
22 сообщений из 22, страница 1 из 1
Что лучше- клиент или сервер?
    #32064650
andrey_ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, помогите. Вопрос такой! Где лучше проверять корректность данных на клиенте и максимально упростить хранимую процедуру или на сервере и максимально упростить код приложения??

Расстолкуйте, пожалуйста!!!

Заранее спасибо!!
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064653
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщето, SQL сервер специально для этого затачивался...
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064666
andrey_ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Александр Гладченко

А если сервер тормозной?

Если вы скажите всё равно лучше сервер, то встречный вопрос (заранее скажу объем данных очень больной около 2 000 000 записей)

Вопрос: у меня 4 входных параметра в ХП

1 вариант- я всё проверяю на сервере, и проверяю корректность тех всех 4 вх парам в своей ХП

2-вариант нахожу золотую середину и что-то проверяю на клиенте что -то на сервере.

3-вариант- все на клиенте, увелививая таким образом код
на километры.

К чему я веду. Все 4 -е входных параметра участвуют в одной выборке, и если не полностью, но корректно будут указаны, то я не попаду в ключ к примеру и ХП будет выполняться до бесконечности долго,

но если же я максимально упрощу ХП, и передам
в неё кусок selecta к примеру передам строку: "where param1=@1 and param2=@2 ...", то она будет выполняться
очень быстро!

Какой вариант мне выбрать из 3х мною описаных?
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064675
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заведи сервер-прилоржений (middle tier) :) Почему обязательно должна быть двухзвенка .
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064679
andrey_ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Осирис

Расскажи по-подробней, что это такое за сервер- приложений! если нетрудно!
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064691
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер приложений ? Ну это тоже самое что и middle tier :)

На самом деле в инете куча материалов по этому делу.

Ну если коротко и сбивчиво то так: почему стоит ограничиваться двухзвенной архитектурой (сервер - клиент), почему нельзя зделать третье звено, четвертое, n-ое (n-tier) ? Мы так далеко не пойдем, а остановимся на трехзвенке. В данном случае схема взаимодействия будет выглядеть следующим образом (сервер - middle-tier - client). То есть, есть клиент (он кстати может быть толстым - GUI и тонким - web-интерфейс) - пользователь что-то выбирает и жмет клавиши. На основе этого клиент посылает middle-tier информацию о том, что пользовател ввел то то и то то и нажал то-то и то-то. Или попросту говоря вызывает какой нибудь метод этого среднего звена. Способов реализации этого до фига и многое зависит от того, на каком языке ты пишешь. Это может быть сделано и на основе Sockets, и на основе DCOM, и на основе MIDAS (в Delphi и Builder'е) точно. Middle-tier обрабатывает полученную информацию, проверяет ее и посылает запрос в БД, БД возвращает набор данных на middle-tier, а middle-tier возвращает данные клиенту.
Таким образом мы можем получать очень легкого клиента (практически один интерфейс), и сравнительно мало загруженный сервер баз данных. Плюс к этому вся логика у тебя сосредоточена на middle-tier (на одном компе) и в случае изменения функциональности тебе будет достаточно изменить файла на этом компе. Плюс множество дополнительных полезных фич, таких как кэширование на middle-tier возвращаемых наборов данных и т.д.
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064694
andrey_ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Осирис

Спасибо, что ввёл в курс дела, будем изучать MIDAS
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064696
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу добавить к выше сказанному что middle-tier можно расположить на другой машине...
т.е. вы можете распределять ресурсы(нагрузку)....
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064703
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> могу добавить к выше сказанному что middle-tier можно расположить на другой машине...
т.е. вы можете распределять ресурсы(нагрузку)....

Я это и подразумевал. При увеличении нагрузки на middle-tier вы можете как увеличивать характеристики машины, так и завести под это дело еще один комп. То есть, часть клиентов у вас будет коннектится к первому компу из middle-tier, часть ко второму. А каждый из них будет работать с одним и тем же SQL Server'ом.
Если пойти дальше, то можно сделать такую штуку - перед коннектом клиента к middle-tier он оценивает(запрашивает) загрузку как первого компа принадлежащего middle-tier, так и второго и уже на основании этой информации решает к кому коннектиться.

Есть только здесь одна тонкость, которая портит мне всю жизнь :) В случае с middle-tier SQL-Server считает, что к нему коннектится один клиент (middle-tier) (хм. мы еще и экономим на лицензии :). При этом, если возникают блокировки, то мы уже не можем определить кто конкеретно из клиентов вызвал эту блокировку. SQL Server показывает на middle-tier, а вот дальше проследить источника проблем мы уже не можем.... :(
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064704
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Спасибо, что ввёл в курс дела, будем изучать MIDAS

Работал с ним в Дельфях - там все очень хорошо и красиво реализовано. Кажется по Midas у меня была неплохая документация, так что если тебе нужно - напиши, я вышлю. :)
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064708
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При этом, если возникают блокировки, то мы уже не можем определить кто конкеретно из клиентов вызвал эту блокировку
при правильной реализации - можно отследить....
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064711
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> при правильной реализации - можно отследить....

Вот это уже интересно. Каким образом ?

Жизнь себе, я все равно не облегчу, так как наше middle-tier реализовано не нами, а мы можем его лишь слегка модифицировать. Но все равно очень интересно.
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064716
Oleg F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала автор вопроса спрашивает, где проверять данные (наверное имея ввиду данные, которые хранятся в таблице).
Затем он пишет
в неё кусок selecta к примеру передам строку: "where param1=@1 and param2=@2 ...", то она будет выполняться
очень быстро!

из чего можно заключить, что его интересует не проверка данных, а проверка входных параметров (т.е. того, что ввёл пользователь).
Это абсолютно разные вещи.
Что касается трёхзвенки или MIDAS, то завтра возникнет вопрос "а где лучше проверять данные, во 2-м звене или третьем? " и вопрос останется нерешённым.

Данные желательно контролировать на сервере. Очень часть стандартных возможностей CONSTRAINT и приходится дописывать хранимые процедуры, функции, триггеры, которые реализуют более ложные алгоритмы контроля, чем PRIMARY KEY, CHECK или FOREIGN KEY.

Параметры желательно контролировать на клиенте, до отправки на сервер. Т.е. пользователь ввёл неправильные данные в поле экранной формы - и сразу получил сообщение об ошибке. Если одинаковые фунции контроля используются в разных приложениях, то можно выносить эти функции в библиотеки общего пользования (которые можно оформлять в виде DLL или COM или OLE-объектов). COM или OLE-объект может назодиться и на сервере (т.е. можно использовать DCOM-технологию Microsoft). Но в этом случае приложение на клиенте должно знать не только имя объекта, но и имя компьютера, на котором этот удалённый объект находится.
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064718
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имперсонате....сквозная авторизация.....
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064795
LOX___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, мимо шел, но что такое для СКЛ сервера
2 млн. записей - может это и не сервер вовсе, а так игрушка.

Если , кто мне скажет, что для 2000 СКЛ это напряг - завтра ухожу на Оркал.

И не надо огород городить с МИДАСОМ (конечно классная полезняшка) - он полохо кончил, или почти.

Другой вопрос , что в нашей базе 52 табл. и парочка из них содержит 120 полей , да под 4 млн., да на ОДБСи
и усе пучком.

2000000 - трудно-НЕВЕРЮ!!!!!!!!!!!
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064895
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так человек, спросил, как будет лучше. Никто и не говорил, что невозможно.

>> И не надо огород городить с МИДАСОМ (конечно классная полезняшка) - он полохо кончил, или почти.

Ну это еще не известно, а потом MIDAS это еще не весь middle-tier. Или DCOM тоже близок к кончине ? :)

Могу привести еще один плюс трехзвенки - независимость от сервера баз данных. При грамотно написанном среднем звене, я могу работать как с SQL Server'ом, так и с Oracle не меняя приложения. В принципе я так и делаю.
Хотел бы я посмотреть, как вы будете переносить все триггеры и хранимые процедуры с MSSQL на Oracle. Опять же, не говорю, что это не возможно, но зачем, когда можно решить эту проблему меньшей кровью.
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064913
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Осирис
Могу привести еще один плюс трехзвенки - независимость от сервера баз данных. При грамотно написанном среднем звене, я могу работать как с SQL Server'ом, так и с Oracle не меняя приложения. В принципе я так и делаю.
Хотел бы я посмотреть, как вы будете переносить все триггеры и хранимые процедуры с MSSQL на Oracle.


А Вы что, триггеры и хранимые процедуры вообще не используете при трехзвенке? :) А зачем Вам тогда SQL Server, на dbase все также будет ))))

Трехзвенка, мне так думается, прежде всего для случаев, когда напрямую к серверу нельзя подключиться - через инет, например, а все другие случаи - это так, для красоты и самовыражения. :)

И никак трехзвенка на заданный вопрос не отвечает.

Обработку корректности данных конечно на сервере нужно делать. Тогда все действия по добавлению в клиента еще одного вызова процедуры будут очень просты, а иначе придется везде городить городушки :)
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064936
AISOFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая-то часть данных может быть проверена на клиенте, а какая-то часть данных на сервере. Все зависит от действий выполняемых при проверке данных, а также от важности кооректности данных. Если существует опасность обхода проверки и перадачи ошибочных данных, то данные должны проверяться не сервере. Если при проверке используются статические данные, то скорее всего, проверка должна выполняться на клиенте, если динамические то на сервере. К динамическим данным, я отношу данные которые или могут изменяться другими пользователями, или требуют большого числа обращений к серверу для получения данных. Использование трехзвенки с целью универсальной работы с базами данных, что позволит не учитывать специфику реализации СУБД, типа Oracle, MS SQL, так это приводит к не оптимальным решениям. Трезвенку имеет смысл использовать с целью отделения представления данных на клиенте от обработки и хранения данных.
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32064990
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> А Вы что, триггеры и хранимые процедуры вообще не используете при трехзвенке? :) А зачем Вам тогда SQL Server, на dbase все также будет ))))

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

>> а все другие случаи - это так, для красоты и самовыражения. :)

Как сказать. Если каждый день мы дописываем ту или иную часть в приложении, то возвожность заменить на одном копмьютере middle-tier не меняя клиентов мне уже не кажется пустяком. :)
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32065032
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изменить что-то, не меняя клиентов - это значит изменить это что-то в обработке данных, но не в их представлении. То же самое я могу сделать в хранимой процедуре, это даже проще.

А уж если серьезное приложение и его массово продают фирмам, то уж тут не фирма диктует, на чем БД работает, потому как фирма покупает конечный продукт.

Ну что-то мы уже не в ту степь пошли, человеку то другое надо было :)
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32065182
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Ну что-то мы уже не в ту степь пошли, человеку то другое надо было :)

Соглсен, но вопрос был задан соответствующе. :)

Решая вопрос о том, где проверять корректность данных нужно учитывать множество факторов, например таких как для чего предназначена система, как и гед ее собираются эксплуатировать, она для себя или на продажу, сколько будет пользователей и как интенсивно они будут работать, будет ли нужен доступ через интернет и т.д.
Не сформулировав все эти требования человек в ответ получает лишь общие соображения и рекомендации :)
...
Рейтинг: 0 / 0
Что лучше- клиент или сервер?
    #32065201
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использую самый безотказный вариант - на клиенте проверяю все, что можно проверить на этапе подготовки для сервера входящих данных без сложной обработки (например значение поля заведомо не подходит), а на сервере проверяю все, в том числе даже то, что проверяется на клиенте и ошибки, которые заведомо не могут возникнуть при правильной работе, но могут серьезно повлиять на правильность данных или же логику какой-то обработки данных . Проверять на сервере надо все, потому что от этого зависит целостность и правильность данных БД и согласитесь если генерируется ошибка, которая по идее при правильной работе сервера и клиента не должна происходить, то в работе программы что то не так, и лучше такую ошибку увидеть, чем получить плавающий глюк. На клиенте тоже проверяйте все, что можно проверить без дополнительного обращения к серверу - экономия трафика, гибкость (проверка по ходу ввода документов, а не при попытки их записи в БД), и кстати тоже тестирование (т.е. если сервер возвращает ошибку на данные, которые клиент посчитал безошибочными, то явно ошибка обработки логики или в клиенте, или же в сервере).
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Что лучше- клиент или сервер?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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