powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / трехзвенная архитектура
310 сообщений из 310, показаны все 13 страниц
трехзвенная архитектура
    #33251258
BRita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ! поделитесь опытом, вопросов несколько:
1. Делал ли кто действительно работающие проекты с выделенным сервером приложений?
2. Чем не устаивал клиент-сервер?
3. и на чем делали этот самый сервер приложений, какая была база и какие клиенты?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33251297
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BRitaНарод! поделитесь опытом, вопросов несколько:
1. Делал ли кто действительно работающие проекты с выделенным сервером приложений? Да
BRita2. Чем не устаивал клиент-сервер? Флейм. Ищите по форуму
BRita3. и на чем делали этот самый сервер приложений, какая была база и какие клиенты? DCOM (VB6), MSSQL 7.0/Informix ,VB6

Remoting (C#), MSSQL 2000, C#
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33251527
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По опыту.
Использовать трехзвенную архитектуру только и только в том случае, если это действительно нужно.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33251551
BRita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так вот я бы и хотела устышать обьективные причины приводящие к выводу "действительно нужно" на примере конкретных систем т.е. опять же повторюсь:"причины, заставившие делать трехзвенку в конкретном случае"?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33251566
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поковыряйте поиск. Обсуждалось немыслимое количество раз в самых разных форумах.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33251571
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Тупость архитектора системы.
2) Желание быть "модным".
3) Имеющийся уже сервер приложений (пример Progress, система Облик).

В остальных случаях можно обойтись 2-х звенной архитектурой и сэкономить массу времени.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33251898
Фотография rodb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>:"причины, заставившие делать трехзвенку в конкретном случае"?

....опускаю 1001 причины которые можно реализовать в клиент-сервер
но лучше реализовать в трехзвенке.

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

Поэтому идеальным для работы в интернет будет когда, все вычисления
делает сервер приложений и возвращает клиенту одним пакетом.


ВНИМАНИЕ: все выше сказанное не относится к Объектно-Ориентированным серверам таким как Cache, Matisse итд. а так же к новым поколениям MS SQL+.Net им подобным.

http://rodb.narod.ru
Дмитрий
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252026
BRita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага...я тут уже прошлась по серверу...приблизительно к такому выводу и пришла....жаркие тут бои оказывается по этому вопросу давно идут..:)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252067
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rodbЕсть одна причина на которой будет полный тупик.
Работа через интернет.
Простой клиент-сервер будет всегда работать через медленно.
:)

rodbВремя прохождения запроса в интернет увеличивается квадратично, если запрос должен вернуть клиенту какие-то данные и клиент на основе их должен опять сделать запрос, то программа начинает тормозить до безобразия.
Поэтому идеальным для работы в интернет будет когда, все вычисления
делает сервер приложений и возвращает клиенту одним пакетом.
То, что Вы описали, называется вовсе не клиент-сервер. Это называется "вся логика на клиенте". И это расхождение ставит под сомнение истинность Ваших утверждений.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252197
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRitaНарод! поделитесь опытом, вопросов несколько:
1. Делал ли кто действительно работающие проекты с выделенным сервером приложений?
2. Чем не устаивал клиент-сервер?
3. и на чем делали этот самый сервер приложений, какая была база и какие клиенты?
1) угу.
2) Если Ваша задача выходит (или возможно будет выходить в БЛИЖАЙШЕЕ будущее) за рамки хранения и обработки данных, то сервак приложения. Если задача сводиться (в бОльшем своём обьёме) к обработке данных - то стандартный сервак БД Вас вполне удовлетворит. Кстати клиент-серверная архитектура подразумевает реализацию и клиента и сервера в Вашем программном обеспечении. По наследству технологии НЕ передаються. Посему говорить о двух, одно и прочих уровней - ээээээээээ мягко говоря не в тему.
3) Сервак обычно делаеться под ту ось, на которой планируеться сосредоточение обрабатываемых данных (Win32, Novell, Unix, AS400). Базы могут быть разные. На то и сервак приложений. И в принцепе рояли не играет (Btrieve, MSSql, Oracle, DB2). Клиенты - то обычно от задачи и от тенденции захвата рынка. Обычно под Win32 сначала, потом все остальные.


с уважением
(круглый)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252227
BRita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вот если так, скажем: сервер Oracle, много удаленных клиентов и нужен доступ по интернет, тогда добавляем скажем Apache+ Php это как уже можно назвать трехзвенкой или нет?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252272
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRitaа вот если так, скажем: сервер Oracle, много удаленных клиентов и нужен доступ по интернет, тогда добавляем скажем Apache+ Php это как уже можно назвать трехзвенкой или нет?
Фанаты - считают. Лично я полагаю, что это скорее нечто типа удаленной клавиатуры; такая же "трехзвенка", как если я зайду RAdmin-ом или другим удаленным десктопом на чужой компьютер (или например терминальный сервер) и запущу оттуда клиент-серверное приложение.

Если серьезно - зависит от того, что за Php. Ключевой признак трехзвенной архитектуры - наличие именно Сервера Приложений, то есть некоторой программы, которая обеспечивает нетривиальное совместное обслуживание многих пользователей. В той архитектуре, которая обычно имеется в виду под Apache+Php - apache работает брокером клиентских запросов, БД собственно обслуживает, а Php форматирует результаты селектов - трехзвенной систему можно назвать только сугубо формально.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252285
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRitaа вот если так, скажем: сервер Oracle, много удаленных клиентов и нужен доступ по интернет, тогда добавляем скажем Apache+ Php это как уже можно назвать трехзвенкой или нет?

по поводу определений...
Сервер - тот кто предоставляет услуги.
Клиент - тот кто использует данные услуги.

всё...
У Вас в коде реализован тот кто ПРЕДОСТАВЛЯЕТ УСЛУГИ ? Нет ? Тогда до свидание... Иначе предлогаю "двух уровневыми" клиент-серверными решениями называть такие весчи как дос, питер нортон и другие не без известные проги. Они ОТЛИЧНО юзают тот слой который обеспечивает РАСПРЕДЕЛЁННОЕ обращениек различным сервакам. аминь...


с уважением
(круглый)
ЗЫ
Данный термин пошёл в эпоху догони... Когда, один из первых вышел на эту дорогу Юникс (как пример). А кто хочет отставать ? Отсель и пошло...одно, двух, двадцать пять уровней...кто больше...
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252315
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКлючевой признак трехзвенной архитектуры - наличие именно Сервера Приложений, то есть некоторой программы, которая обеспечивает нетривиальное совместное обслуживание многих пользователей.
На мой взгляд абсолютно верно, если данные между клиентом и сервером БД проходять дополнительную обработку, реализующую бизнес логику. И этот слой можно вынести на отдельный компьютер то приложение можно назвать трехзвенным... ИМХО.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252334
BRita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот, а теперь если бы вы мне объяснили когда нужно "нетривиальное совместное обслуживание многих пользователей" на сервере приложений, который надо специально делать, а сервера БД для этих целей было бы мало, я была бы очень признательна,
хотя бы один конкретный пример...я тут читала, оживленная дисскуссия идет, жаркая...но пока ответ для себя не нашла..:)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252380
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRita
Написано же. Хотя читать, конечно, тяжело.

Например, БД хранит библиотеку изображений, а сервер приложений - Фотошоп. Ну и для полноты картины - если я использую картинку, которую Вы поменяли, мой сеанс реагирует на это (выдает предупреждение, перестраивает мою картинку итп).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252386
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRitaвот, а теперь если бы вы мне объяснили когда нужно .........


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

Добавлю, что как правило код написанный в клиент-серверной архитектуре значительно МЕНЬШЕ чем при "плоском" программировании. Так же Вы имеете возможность быстро перераспределить "центр тяжести" обработки данных при коррекции бизнес задачи.
Какие минусы и трудности. Наверное я бы отнёс следующее...
1) Очень низкая квалификация программистов пришедших с "плоского программирования". Этому нуна учиться. Читать умные книжки.
2) При ошибочных пониманиях бизнес задачи и не соответствующем дизайне можно ухудшить получаемый результат (что кстати достаточно часто встречаеться).
3) Больше затрат при проектировании приложения.


с уважением
(круглый)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33252392
BRita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот таперича более или менее вразумилась :) спасибо огромное :))
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253149
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересные каменты получились по поводу трехзвенки.
В одном из каментов было "работа через интернет" - одна из причин.
Я не вижу проблем при работе с БД из клиента, расположенную и интернете, т.к. достаточно легко включить кешировать на клиентах, а в трехзвенках это будет значительно тяжелее - из практики знаю, т.к. в книжках как раз это обычно опускают, а это - попытка пропихнуть слона в соломинку.
Далее по тексту.
Рассуждения насчет "плоского" программирования - я не понимаю такого термина, но вот судя, по тому, что он означает в тексте говорит о том, что афтар сего высказываения находится на достаточно низкой ступени, но не начинающий, читал много книжек и кое-что пробовал делать.

Общие положения:
трехзвенка не решает ни проблем быстродействия (наоборот тормозит), ни вообще никаких проблем, усложняет разработку системы, усложняет отладку и тестирование.
Вобщем сделать это можно, но зачем?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253155
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуть не забыл, есть одна весомая причина это делать - если этого хочет клиент(тот кто платит).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253274
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, мне кажется причина всё таки есть - это масштабируемость, т.е. когда
решить проблемы производительности нельзя другим способом. Но это не
касается обычного ПО типа для учёта или планирования это скорей касается
задач типа сбора показаний метеодатчиков по всей стране или чего-то такого.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253816
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024ну, мне кажется причина всё таки есть - это масштабируемость, т.е. когда решить проблемы производительности нельзя другим способом.
А когда их нельзя решить другим способом? Имхо - только если изначально выбрали плохо масштабируемый сервер БД. То есть, на пальцах, если БД ограничена 2Gb, а данных становится больше - сервер приложений может скрыть это, начиная размазывать данные между несколькими экземплярами БД. Но мораль этого - не нужно изначально делать глупостей, и потом не придется вешать неуклюжие заплаты.

Общие положения:
трехзвенка не решает ни проблем быстродействия (наоборот тормозит), ни вообще никаких проблем, усложняет разработку системы, усложняет отладку и тестирование.
Вобщем сделать это можно, но зачем?
Определенные проблемы трехзвенка таки решает. Например, представьте себе систему, которая в реальном времени предоставляет доступ к данным из кучи исхочников - just for example, какие-нибудь биржевые котировки со всего мира. В клиент-серверной архитектуре пришлось бы вязать клиентов с серверами схемой "все со всеми", имея все минусы такого подхода. В трехзвенке AS развязывает этот узел, позволяя прозрачно подключать новые источники данных, реагировать на смену форматов; может быть организовано более эффективное, предсказывающее кэширование, могут быть реализованы механизмы, отсутствующие во всех или некоторых источниках (например, оповещение о критическом изменении котировок) итп.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253875
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГЫ

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


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253883
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, 2гб это по нынешним меркам средняя бухгалтерская базка


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253899
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я работаю с приложением, в котором использована многозвенная архитектура. И не вижу способа как это приложение можно удовлетворительно сделать в архитектуре клиент-сервер. Система обработки ордеров от трейдеров/брокеров - всякие фьючерсы, опционы, и т.п. Требования к производительности - очень высокие, требуется время обработки одного ордера не более нескольких миллисекунд. При этом за это время для каждого ордера нужно успеть провести множество рассчетов. Требования к безопасности - понятны из описания системы. Требования к масштабируемости - система должна нормально обрабатывать поток в 1000 ордеров в секунду.

Как подобное можно удовлетворительно реализовать в клиент-сервер?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253930
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
ГЫ

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

Кстати, в таком режиме мог работать BDE. Поэтому я иногда привожу его как пример первого сервера приложений :)

1024Иначе это не БД а файловая система с кучей разнотипных файлов.
Не вижу разницы, куча разнотипных файлов или куча разнотипных БД. Главное, что промежуточное звено скрывает от клиента общение с разнотипными источниками.

1024что может и не надо эти котировки (или показания метеосчётчиков) в одну БД складывать - ну, может не существует пока такого железа которое будет всё с приемлимой скоростью обрабатывать.
Может и существовать - но это вовсе не означает, что есть смысл складывать. Тут надо смотреть по месту. Биржевые котировки в этом плане - по моим представлениям как раз тот вид данных, которые будет выгоднее кэшировать, нежели безусловно реплицировать в собственную БД. Впрочем, это ориентировочные представления и в этом утверждении я могу ошибиться; главное имхо - именно что надо смотреть по месту.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33253963
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmТребования к масштабируемости - система должна нормально обрабатывать поток в 1000 ордеров в секунду.
Это не требование к масштабируемости. Это требование к производительности.

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

Если в общих словах, СУБД - ровно такой же сервер (серверное приложение), как что-то еще. Соответственно, сугубо теоретически он может то же, что и любой другой сервер. Практически - существуют вещи, добиваться которых внутри СУБД неудобно или нецелесообразно; как пример я привел обработку изображений. В этом случае более сложная трехзвенная архитектура становится оправданной.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33254901
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
ну, мне кажется причина всё таки есть - это масштабируемость, т.е. когда
решить проблемы производительности нельзя другим способом. Но это не
касается обычного ПО типа для учёта или планирования это скорей касается
задач типа сбора показаний метеодатчиков по всей стране или чего-то такого.


Posted via ActualForum NNTP Server 1.3

Как раз трехзвенка никогда не решала проблему масштабиремости, масштабируемости чего? глупости? вместо того, чтобы иметь 1 сервер БД, так исчо нужно купить и сервер для сервера приложений, или объектов перенаправления данных для трехзвенки.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33254910
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Определенные проблемы трехзвенка таки решает. Например, представьте себе систему, которая в реальном времени предоставляет доступ к данным из кучи исхочников - just for example, какие-нибудь биржевые котировки со всего мира. В клиент-серверной архитектуре пришлось бы вязать клиентов с серверами схемой "все со всеми", имея все минусы такого подхода. В трехзвенке AS развязывает этот узел, позволяя прозрачно подключать новые источники данных, реагировать на смену форматов; может быть организовано более эффективное, предсказывающее кэширование, могут быть реализованы механизмы, отсутствующие во всех или некоторых источниках (например, оповещение о критическом изменении котировок) итп.


Бред - это все можно решить через шлюзы, либо через кластер либо выложить доступную информацию в интернет-сервер на репликаторе и все, собственно говоря.
А если косая планировка базы данных или неоптимизированные запросы - так при чем тут 2-х звенная архитектура? и 3-х звенная ничего не решит.
Если руки косые, так не нужно вешать проблему на технологии.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33254915
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmЯ работаю с приложением, в котором использована многозвенная архитектура. И не вижу способа как это приложение можно удовлетворительно сделать в архитектуре клиент-сервер. Система обработки ордеров от трейдеров/брокеров - всякие фьючерсы, опционы, и т.п. Требования к производительности - очень высокие, требуется время обработки одного ордера не более нескольких миллисекунд. При этом за это время для каждого ордера нужно успеть провести множество рассчетов. Требования к безопасности - понятны из описания системы. Требования к масштабируемости - система должна нормально обрабатывать поток в 1000 ордеров в секунду.

Как подобное можно удовлетворительно реализовать в клиент-сервер?

Легко и абсолютно не напрягаясь :) а вот в 3-х звенке прийдется попотеть.
Сервер БД нужно выбирать соответствующий, т.е. максимально быстрый, "быстрые" структуры данных, оптимизированные запросы и пр.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33254986
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КЛегко и абсолютно не напрягаясь :) а вот в 3-х звенке прийдется попотеть.
Сервер БД нужно выбирать соответствующий, т.е. максимально быстрый, "быстрые" структуры данных, оптимизированные запросы и пр.
Сколько Валентин К сделал аналогичных систем?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33255676
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько Валентин К сделал аналогичных систем?

*****************

я думаю что немерянно. И все рокетсьенс. Поэтому ни примеров ни ссылок мы не
увидим

8)


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33256104
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитал вопрос...начал вспоминать...
не так уж и много конечно же (нежели Валентин и Ко) :) наверное...

0) Различные приблуды к Novell.
1) Клиринговый центр, под Novell + Btrieve. Авторизация пластика (дисконта, дипозита, внешних), поддержка различных типов авторизаций (различных провайдеров), поддержка различных каналов связи, поддержка нескольких ком портов (расширяемо), сброс по опер дню всех транзакций по спец каналу. Время авторизации при открытом канале ~7 секунд (внешнии), внутреннии менее секунды. Клиенты ДОС, WIN32. Сервак - NLM. То была песня :)
2) Поисковик (задолбало искать документы непонятно где на серваках). Серваки под Novell, Win32. Клиент под Win32. Время поиска уменьшилось с несколько часов (3-4) до несколько минут (5-10). КПД сами считайте...
3) Московский филиал OpenPages. Клиентский софт под Win32. Нам в группу так и не отдали сервак писать - нагрузка была большая (4 проекта).
4) Московский филиал StorActive. Клиент-Серверное решение по бэкапу милкософтовских серваков. Win32. .Net, C#, C++. Слив ядра, файловой системы, реестра, почтовика, сиквола...Клиентский софт. Фулл, Инкрементальный, Дифиренциальный. По расписанию и явно. Накат...
5) Сейчас под форточками. C# клиент, С++ связь и сервак. Движок постгресс. Некая своя ээээээээээээээ далее уточнять не буду - то пока комерция и секреты мать её...

Это конкретика...
Пробегали мимо...(на уровне пощупал, но не серьёзно)... Unix, AS400.


с уважением
(круглый)
ЗЫ
Сложилось впечатление, что человек поверхностно знаком с терминологией...Про Валентина. Посему в дисскуссии участвовать - мало вижу смысла... Удачи всем...
ЗЫ ЗЫ
Написал - как померялся пиписьками. Сорьки перед всеми.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33256259
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsm Валентин КЛегко и абсолютно не напрягаясь :) а вот в 3-х звенке прийдется попотеть.
Сервер БД нужно выбирать соответствующий, т.е. максимально быстрый, "быстрые" структуры данных, оптимизированные запросы и пр.
Сколько Валентин К сделал аналогичных систем?

Ссылок на системы не будет, потому что они настроены под конкретные предметные области, и в продаже не стоят.

Приношу извинения, если кого-то сильно задел, но прежде чем цитировать умные фразы нужно их понимать.
А трехзвенку я делал, но смысл промежуточного сервера - данные, а не сервер приложений, технологии MIDAS и CORBA.

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

Валентин К - это все можно решить через шлюзы,
Шлюзы чего и куда? Впрочем, есть подозрение, что если я не поленюсь вытрясти из Вас определение - выяснится, что нормальная реализация этого и есть третье звено.

Валентин Клибо через кластер
Интересно, Вы когда говорите слова, имеете что-то в виду или просто так, от балды выбираете из записной книжки?

Валентин К либо выложить доступную информацию в интернет-сервер на репликаторе
Можно. Если не думать об эффективности.

Валентин К
А если косая планировка базы данных или неоптимизированные запросы - так при чем тут 2-х звенная архитектура? и 3-х звенная ничего не решит.
Похоже, тоже взяли из записной книжки, не имея никакой связи с тем, на что якобы отвечает.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33257393
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Валентин КБред
Кстати, полезная привычка - начинать текст с краткого содержания.

Валентин К - это все можно решить через шлюзы,
Шлюзы чего и куда? Впрочем, есть подозрение, что если я не поленюсь вытрясти из Вас определение - выяснится, что нормальная реализация этого и есть третье звено.

Валентин Клибо через кластер
Интересно, Вы когда говорите слова, имеете что-то в виду или просто так, от балды выбираете из записной книжки?

Валентин К либо выложить доступную информацию в интернет-сервер на репликаторе
Можно. Если не думать об эффективности.

Валентин К
А если косая планировка базы данных или неоптимизированные запросы - так при чем тут 2-х звенная архитектура? и 3-х звенная ничего не решит.
Похоже, тоже взяли из записной книжки, не имея никакой связи с тем, на что якобы отвечает.

Повеселило :) думать - полезная привычка.
Отжиг попорядку
Шлюз и репликация подразумевает одно и тоже, вынести доступную информацию из внутренней базы организации во внешнюю, или наоборот, вносить/реплицировать из внешней во внутренюю. 3-х звенная архитектура преполагает звено между пользователем и данными, посему это не одно и тоже, что сказал я.

Кластер - решение для тех, кому не хватает производительности. Решение направленное именно на усиление слабого места, когда нужна скорость. 3-х звенная архитектура ничего подобного не дает.

Когда я говорю слова - я сижу за компом и смотрю только на каменты других афторов. Лаконичность моих высказываний может конечно вызывать недоумение, но они и рассчитаны на тех, кто "на пальцах"(элементарно знаком на практике с технологиями и сам их применял) понимает о чем идет речь.

И исчо на один камент вот этот "Можно. Если не думать об эффективности."
Перекликается с первым ответом.
Репликация никогда не относилась к неэффективным решениям, поскольку репликацию можно настроить как угодно, и в угодном нам направлении. Смысл ее включения несет задача, которую нужно решить, клонировав все или часть данных на 2-х и более серверах.
Посему вопрос эффективности технологии попадает в раздел - афтар не знает о чем говорит, незачот.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33257420
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КРепликация никогда не относилась к неэффективным решениям, поскольку репликацию можно настроить как угодно, и в угодном нам направлении. Смысл ее включения несет задача, которую нужно решить, клонировав все или часть данных на 2-х и более серверах.
Посему вопрос эффективности технологии попадает в раздел - афтар не знает о чем говорит, незачот.
Репликация - это секундные задержки. Котировки с такой задержкой профессиональным трейдерам не нужны, и платить за эти данные они не будут. Секундные задержки при исполнении ордеров тоже недопустимы - так как трейдеры могут при этом терять деньги из-за того что цены за это время могут изменится. В performance-critical systems есть свои особенности, и утверждения вида Легко и абсолютно не напрягаясь :) означают отсутствие опыта работы с подобными системами.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33257426
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmРепликация - это секундные задержки. Котировки с такой задержкой профессиональным трейдерам не нужны, и платить за эти данные они не будут. Секундные задержки при исполнении ордеров тоже недопустимы - так как трейдеры могут при этом терять деньги из-за того что цены за это время могут изменится. В performance-critical systems есть свои особенности, и утверждения вида Легко и абсолютно не напрягаясь :) означают отсутствие опыта работы с подобными системами.

Отжаг попорядку.

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

Отсутствие опыта как раз приводит к неадекватности оценки системы в целом и перевод системы в разряд бога, которому нужно поклоняться, даже если он нагадит на голову...
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33257759
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К
Шлюз и репликация подразумевает одно и тоже,
То есть Вы для большей внушительности ответа дважды сказали одно и то же. Помню, видел однажды резюме админа, который в совершенстве владел "NT5, Win2000, Win2K".

Валентин ККластер - решение для тех, кому не хватает производительности.
То есть к ответу на сказанное мной никак не относится, брякнуто просто так, ну или может - для усиления эффекта.

Валентин ККогда я говорю слова - я сижу за компом и смотрю только на каменты других афторов.

Лаконичность моих высказываний может конечно вызывать недоумение, но они и рассчитаны на тех, кто "на пальцах"(элементарно знаком на практике с технологиями и сам их применял) понимает о чем идет речь.

И исчо на один камент вот этот "Можно. Если не думать об эффективности."
Перекликается с первым ответом.
Репликация никогда не относилась к неэффективным решениям, поскольку репликацию можно настроить как угодно, и в угодном нам направлении. Смысл ее включения несет задача, которую нужно решить, клонировав все или часть данных на 2-х и более серверах.
Посему вопрос эффективности технологии попадает в раздел - афтар не знает о чем говорит, незачот.[/quot]
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33257782
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу прощения, задел ctrl-enter

Валентин К
Шлюз и репликация подразумевает одно и тоже,
То есть Вы для большей внушительности ответа дважды сказали одно и то же. Помню, видел однажды резюме админа, который в совершенстве владел "NT5, Win2000, Win2K".

Валентин ККластер - решение для тех, кому не хватает производительности.
То есть к ответу на сказанное мной никак не относится, брякнуто просто так, ну или может - для усиления эффекта.

Валентин ККогда я говорю слова - я сижу за компом и смотрю только на каменты других афторов.
Тогда Вам нечего делать на sql.ru Идите в тусовку подобных.

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

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

И исчо на один камент вот этот "Можно. Если не думать об эффективности."
Перекликается с первым ответом.
Репликация никогда не относилась к неэффективным решениям, поскольку
Решение само по себе, без контекста применения, не бывает эффективным или неэффективным. Таковым оно бывает только в контексте.

Если хотите, идите ко мне на авторизованный курс - там в одном месте встречается утверждение "здесь, среди прочего, можно применить репликацию, но это будет неэффективно". Попробуете отстоять другую точку зрения.

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

Валентин КПосему вопрос эффективности технологии попадает в раздел - афтар не знает о чем говорит, незачот.
На этот раз Вы решили поместить содержание в конце своего письма?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33258013
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К

Валентин, шли бы книжнки читать, что ли! Блин, сколько лет одно и тоже... опять какие-то узкие каналы, дурак архитектор и т.д.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33258018
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как раз трехзвенка никогда не решала проблему масштабиремости, масштабируемости чего? глупости? вместо того, чтобы иметь 1 сервер БД, так исчо нужно купить и сервер для сервера приложений, или объектов перенаправления данных для трехзвенки.

Слова спеца! В школу, однозначно
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33258208
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри здесь:
http://www.gotdotnet.ru/LearnDotNet/NETFramework/125377.aspx

...и проект ...и функции ....и почему. Может сгодится.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33258269
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эхехехе.........

-- Tygra's --
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259327
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Решение само по себе, без контекста применения, не бывает эффективным или неэффективным. Таковым оно бывает только в контексте.

Если хотите, идите ко мне на авторизованный курс - там в одном месте встречается утверждение "здесь, среди прочего, можно применить репликацию, но это будет неэффективно". Попробуете отстоять другую точку зрения.


Решение может быть эффективным даже без контекста, с этим я на 100% поспорю. Например поиск по индексу - он не зависит от контекста задачи.
Кстати, вопрос к остальным умникам: кто-то знает как организовать индекс по которому искать можно без перебора значений?

Что за курс? скорее всего получится как обычно - учителя будут обучены прикланому программированию и технологиям :)
Если сообщишь что за курс - буду в Москве - посещу обязательно, повеселимся :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259329
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriКак раз трехзвенка никогда не решала проблему масштабиремости, масштабируемости чего? глупости? вместо того, чтобы иметь 1 сервер БД, так исчо нужно купить и сервер для сервера приложений, или объектов перенаправления данных для трехзвенки.

Слова спеца! В школу, однозначно

абсолютно не агрументированный ответ :), тему не раскрыл, кг/ам.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259332
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Валентин К

Валентин, шли бы книжнки читать, что ли! Блин, сколько лет одно и тоже... опять какие-то узкие каналы, дурак архитектор и т.д.

Могу задать задачку на быстродействие, которую ты не решишь... :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259497
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К

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

Угу, а если в таблице 1 запись?

абсолютно не агрументированный ответ :), тему не раскрыл, кг/ам.

Кто бы говорил :) Эту тему столько народу уже "раскрывало" - но все бестолку

Могу задать задачку на быстродействие, которую ты не решишь... :)

Сэр, я уже отучился!
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259533
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Валентин К

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

Угу, а если в таблице 1 запись?

абсолютно не агрументированный ответ :), тему не раскрыл, кг/ам.

Кто бы говорил :) Эту тему столько народу уже "раскрывало" - но все бестолку

Могу задать задачку на быстродействие, которую ты не решишь... :)

Сэр, я уже отучился!

попорядку
а если нет таблицы, какая разница, сколько в ней записей? Алгоритм индексированного поиска манипулирует данными структуры, которая может не быть связана с таблицей. И для алгоритма все равно будет там 1 запись или много. И как это связано с контекстом задачи, которую решает поиск по индексу? задача к примеру - автоматизация предприятия? Разве поиск по индексу может быть плохим решением для автоматизации, если он выполнен по наиболее быстрой технологии?

Я не знаю, что раскрывал народ, записной книжкой не пользуюсь.

Я тоже давно отучился, да вот думать от этого не перестал...
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259567
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К

И для алгоритма все равно будет там 1 запись или много.
Для алгоритма да, а вот эффективность его использования для отношений с малым числом записей мне представляется сомнительной...

Я тоже давно отучился, да вот думать от этого не перестал...

Валентин , я страшно за вас рад - думайте и дальше (и больше)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259587
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Валентин К

И для алгоритма все равно будет там 1 запись или много.
Для алгоритма да, а вот эффективность его использования для отношений с малым числом записей мне представляется сомнительной...

Я тоже давно отучился, да вот думать от этого не перестал...

Валентин , я страшно за вас рад - думайте и дальше (и больше)

Эффективность алгоритма бинарного поиска для 1 записи - очень эффективно :)
если не знаете аглогитма, тогда к чему подобное замечание.

А насчет думанья, так ответ передачи ответа достаточно прозаичен :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259595
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эффективность алгоритма бинарного поиска для 1 записи - очень эффективно :)
если не знаете аглогитма, тогда к чему подобное замечание.

Валентин К , уже не смешно - по сравнению с чем эффективно, для чего эффективно? вы эффективность чем меряете?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259599
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КРешение может быть эффективным даже без контекста, с этим я на 100% поспорю. Например поиск по индексу - он не зависит от контекста задачи.

Поясните.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259618
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriЭффективность алгоритма бинарного поиска для 1 записи - очень эффективно :)
если не знаете аглогитма, тогда к чему подобное замечание.

Валентин К , уже не смешно - по сравнению с чем эффективно, для чего эффективно? вы эффективность чем меряете?

Эффективнее чем без индексированного поиска, если записей достаточно кол-во. Потому что зачет искать запись, если ее нету, или она одна. Подобные крайние условия достаточно плоские для понимания эффективности алгоритмов поиска и их сравнения.
Например алгоритм бинарного поиска по бинарному индексу работает быстрее чем полный перебор записей для непустой таблицы в которой более 1-й записи.
Для 2-х скорость примерно одинаковая, при 1 млн записей - эффективность бинарного поиска становится очевидной по сравнению с перебором всех значений поля.

Эффективность меряется в той характеристике задачи, которая для задачи является важной. Поясняю, нельзя оценить эффективность работы какого-либо алгоритма в разрезе цен на батон в магазине.

Далее - явное непонимание того, что афтар пишет сам я обсуждать не буду.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259626
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КНапример алгоритм бинарного поиска по бинарному индексу работает быстрее чем полный перебор записей для непустой таблицы в которой более 1-й записи.
Для 2-х скорость примерно одинаковая, при 1 млн записей - эффективность бинарного поиска становится очевидной по сравнению с перебором всех значений поля.

Вы о селективности индексов что-нибудь слышали?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259639
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lamer@fools.ua Валентин КНапример алгоритм бинарного поиска по бинарному индексу работает быстрее чем полный перебор записей для непустой таблицы в которой более 1-й записи.
Для 2-х скорость примерно одинаковая, при 1 млн записей - эффективность бинарного поиска становится очевидной по сравнению с перебором всех значений поля.

Вы о селективности индексов что-нибудь слышали?

RTFM явно.
И не только слышал :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259650
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lamer@fools.ua Валентин КНапример алгоритм бинарного поиска по бинарному индексу работает быстрее чем полный перебор записей для непустой таблицы в которой более 1-й записи.
Для 2-х скорость примерно одинаковая, при 1 млн записей - эффективность бинарного поиска становится очевидной по сравнению с перебором всех значений поля.

Вы о селективности индексов что-нибудь слышали?

Но самое интересное, это то, что какое отношение имеет селективность индексов к алгоритму поиска, который может искать вообще не в индексе таблицы?
Алгоритм - это алгоритм, который применен для реализации конкретной задачи, а при чем тут совсем другая тема, раскройте пож-ста тему....
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259651
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К Lamer@fools.ua Валентин КНапример алгоритм бинарного поиска по бинарному индексу работает быстрее чем полный перебор записей для непустой таблицы в которой более 1-й записи.
Для 2-х скорость примерно одинаковая, при 1 млн записей - эффективность бинарного поиска становится очевидной по сравнению с перебором всех значений поля.

Вы о селективности индексов что-нибудь слышали?

И не только слышал :)

Не заметно.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259652
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lamer@fools.ua

Вы о селективности индексов что-нибудь слышали?

В и мне интересно

Валентин К

Я понял (c) Бинарный поиск в таблице с одной записью эффективнее чем перебор в таблице с больш и м числом записей... но.. даже это уже и есть контекст
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259657
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К Lamer@fools.ua Валентин КНапример алгоритм бинарного поиска по бинарному индексу работает быстрее чем полный перебор записей для непустой таблицы в которой более 1-й записи.
Для 2-х скорость примерно одинаковая, при 1 млн записей - эффективность бинарного поиска становится очевидной по сравнению с перебором всех значений поля.

Вы о селективности индексов что-нибудь слышали?

Алгоритм - это алгоритм, который применен для реализации конкретной задачи, а при чем тут совсем другая тема, раскройте пож-ста тему....

Вы о каком алгоритме? Алгоритм чего?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259661
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К

при чем тут совсем другая тема, раскройте пож-ста тему....

Валентин, тут не тема, тут налицо план
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259665
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Валентин К

P.S.
Правильно ли я понял, что бинарный поиск по-Вашему всегда быстрее полного перебора?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259681
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таки флейм пошел ...
Видимо есть в этой трехзвенной архитектуре какая-то чертовщинка :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259703
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КРешение может быть эффективным даже без контекста, с этим я на 100% поспорю. Например поиск по индексу - он не зависит от контекста задачи.
То есть, насколько я вижу, Вы утверждаете, что использование индекса (при поиске данных) заведомо эффективно и отказ от него как минимум не улучшит работу приложения. Я правильно понял?

Валентин ККстати, вопрос к остальным умникам: кто-то знает как организовать индекс по которому искать можно без перебора значений?
Совершенно бредовая формулировка, но возможно Вам поможет хэш-индекс.

Валентин КЧто за курс?
Оракловые, WDD. Я читаю также DWF, но не буду советовать на них идти.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259779
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Lamer@fools.ua

Вы о селективности индексов что-нибудь слышали?

В и мне интересно

Валентин К

Я понял (c) Бинарный поиск в таблице с одной записью эффективнее чем перебор в таблице с больш и м числом записей... но.. даже это уже и есть контекст

Бред, что значит перебор в таблице с 1-й записью и бинарный перебор в другой таблице с млн записей??? укуси себя гадюкой, больше сказать нечего.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259786
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lamer@fools.ua2 Валентин К

P.S.
Правильно ли я понял, что бинарный поиск по-Вашему всегда быстрее полного перебора?

Неправильно, зависит от кол-ва записей.
Поиск по прямой индексации всегда равен либо быстрее перебора значений для кол-ва значений от 0 до бесконечности.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259797
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Валентин КРешение может быть эффективным даже без контекста, с этим я на 100% поспорю. Например поиск по индексу - он не зависит от контекста задачи.
То есть, насколько я вижу, Вы утверждаете, что использование индекса (при поиске данных) заведомо эффективно и отказ от него как минимум не улучшит работу приложения. Я правильно понял?

Валентин ККстати, вопрос к остальным умникам: кто-то знает как организовать индекс по которому искать можно без перебора значений?
Совершенно бредовая формулировка, но возможно Вам поможет хэш-индекс.


При чем тут алгоритм поиска и приложение, которое ищет извлекает данные из базы данных. Например я ничего такого не заметил в 3-м томе Дональда Кнута "Поиск и сортировка" :) т.е. я привел пример алгоритма, а не индекса либо приложения. Т.е. раскрыл тему, как алгоритм может быть эффективен без контекста задачи.

Еще 1 пример.
Бинарная сортировка работает быстрее чем пузырьковая, в любом случае с кол-вом записей более 100 в неотсортированном массиве. Внимание, про индекс и приложение я ничего не говорил. Если кто-то считает это утверждение неправильным, тогда лучше не пишите.

по поводу "Совершенно бредовая формулировка, но возможно Вам поможет хэш-индекс." мне не нужен ни хеш-индекс, ни вообще индекс, потому что ответ предполагает, что я что-то хочу использовать из него, а мне это не нужно. Перефразирую вопрос
Как должен быть сформирован индекс, чтобы поиск в нем был при любом кол-ве данных одинаков? т.е. для поиска 1-го значения по ключу понадобилась бы 1 операция? это вопрос о том, знает ли господин, который пытается острить основы поиска?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259814
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь креатиф по 3-х звенной архитектуре.

Для умников, начинающих и пр. специалистов ИТ.
1) 3-х звенная архитектура ВСЕГДА работает медленее чем 2-х звенная при прочих одинаковых условиях.
2) реализация проекта в 3-х звенной архитектуре зачастую в практике более долгая, чем реализация 2-х звенной архитектуры.
3) Задач, кторые можно решить только в 3-х звенной архитектуре и нельзя решить в 2-х звенной на практике очень и очень мало.

Комментарии
по п.1.
Принять как есть, т.к. вы будете очередным претендентом наступить на теже грабли.

по п.2.
Исключение - передача готового сервера приложений и написание клиента под него. На практике может быть быстрее, может медленее, в зависимости от концепции и реализации наследования форм в проекте в 2-х звенной архитектуре.

по п.3.
Всегда лучше точно выяснить возможность реализации в 2-х звенной архитектуре, чем сразу говорить, что такое невозможно для данной задачи.

Просьба пиписьками не размахивать и не вырывать предложения из абзаца.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259821
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Валентин КЧто за курс?
Оракловые, WDD. Я читаю также DWF, но не буду советовать на них идти.

Прошу прояснить: какое отношение имеет курс по ORACLE (ORACLE чего, администрирование, программирование) к 3-х звенной архитектуре.
По ORACLE (DBA) курсы уже проходил, посему 2-х раз не сильно хочется.

Что такое WDD и DWF ??? если не сложно - напиши хотябы на английском.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259826
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КПоиск по прямой индексации всегда равен либо быстрее перебора значений для кол-ва значений от 0 до бесконечности.

Не всегда. Если селективность у индекса низкая, то запросто может оказаться, что полный перебор сработает быстрее. Правда, это зависит также от применяемой СУБД. Я наиболее "близок" к MS SQL Server.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259835
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lamer@fools.ua Валентин КПоиск по прямой индексации всегда равен либо быстрее перебора значений для кол-ва значений от 0 до бесконечности.

Не всегда. Если селективность у индекса низкая, то запросто может оказаться, что полный перебор сработает быстрее. Правда, это зависит также от применяемой СУБД. Я наиболее "близок" к MS SQL Server.

А ты знаешь, что такое прямая индексация? она как раз является прямой, что не просто ничего не перебирает, а сразу берет ссылку на запись?
Вобщем что-то я углубился, такое в ORACLE и MS SQL не используется, поэтому представить сложно :).

А если селективности вообще нету, она не ведется сервером базы данных, тогда твое утверждение теряет смысл, а мое нет. Понятие может остаться конечно, но при случае что сервера БД вообще нет - селективность теряет смысл совсем, а алгоритм поиска не теряет. Вот в чем разницу я пытался объяснить...

Но вижу, что никто не пытается о чем-то рассуждать, все уперлись в конкретные сервера баз данных и пытаются спорить, при чем по вопросам, которые раскрывают тему подхода(концепции), а не конкретного сервера баз данных.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259863
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К

Сэр, С вами приятно разговаривать и вы, судя по всему, добрый человек, но вы очень во много заблуждаетесь!
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259908
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К softwarerТо есть, насколько я вижу, Вы утверждаете, что использование индекса (при поиске данных) заведомо эффективно и отказ от него как минимум не улучшит работу приложения. Я правильно понял?
При чем тут алгоритм поиска и приложение, которое ищет извлекает данные из базы данных.
Действительно, откуда Вы взяли какие-то базы данных? Не подскажете?

Валентин КНапример я ничего такого не заметил в 3-м томе Дональда Кнута "Поиск и сортировка" :)
Хм. Читаю еще раз: "при чем тут алгоритм поиска..... например я ничего такого не заметил в 3-м томе...."

Может, стоит читать Кнута внимательнее?

Валентин Кт.е. я привел пример алгоритма, а не индекса либо приложения.
Если точнее, Вы сказали: "например, поиск по индексу...". А когда я спросил про "использование индекса при поиске" Вы понесли что-то про базы данных, причем оказалось, что привели пример алгоритма.

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

Валентин КЕще 1 пример.
Бинарная сортировка работает быстрее чем пузырьковая,
Начинается любимый прием маркетологов - сравнение с заботливо выбранным общеизвестным аутсайдером.

Нет уж, если Вы отстаиваете "эффективность без контекста", давайте про эффективность без контекста. Готовы ли Вы сказать, что "бинарная сортировка" в любом нетривиальном случае не окажется существенно медленнее какого-либо другого алгоритма?

Валентин ККстати, вопрос к остальным умникам: кто-то знает как организовать индекс по которому искать можно без перебора значений?
Совершенно бредовая формулировка, но возможно Вам поможет хэш-индекс.
[/quot]

Валентин ККак должен быть сформирован индекс, чтобы поиск в нем был при любом кол-ве данных одинаков? т.е. для поиска 1-го значения по ключу понадобилась бы 1 операция?
Для сведения: это называется O(1).

Валентин Кэто вопрос о том, знает ли господин, который пытается острить основы поиска?
Аффтарство не впечатлило, пошло банальное мерянье пиписьками.

Что ж, один из возможных ответов - "такой индекс называется индексом массива".
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33259910
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КПрошу прояснить: какое отношение имеет курс по ORACLE (ORACLE чего, администрирование, программирование) к 3-х звенной архитектуре.
Вы не помните того, о чем мы говорили считанные письма назад?

Валентин КПо ORACLE (DBA) курсы уже проходил, посему 2-х раз не сильно хочется.
(мучительно раздумывая: "конечно, DBA на WDD не похоже, но надо же что-то сказать")

Валентин КЧто такое WDD и DWF ??? если не сложно - напиши хотябы на английском.
И поиском пользоваться не умеет. Эти аббревиатуры почти наверняка есть в том списке, в котором Вы искали курсы DBA.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260037
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КА ты знаешь, что такое прямая индексация? она как раз является прямой, что не просто ничего не перебирает, а сразу берет ссылку на запись?
Вобщем что-то я углубился, такое в ORACLE и MS SQL не используется, поэтому представить сложно :).

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

Валентин КА если селективности вообще нету, она не ведется сервером базы данных, тогда твое утверждение теряет смысл, а мое нет. Понятие может остаться конечно, но при случае что сервера БД вообще нет - селективность теряет смысл совсем, а алгоритм поиска не теряет. Вот в чем разницу я пытался объяснить...

Не путайте собственно селективность со статистикой. Селективность можно и "вручную" подсчитать, без СУБД.

З.Ы. Складывается впечатление, что Вы чужие сообщения толком не читаете. Я не претендую на роль гуру, но вот высказывание Решение может быть эффективным даже без контекста, с этим я на 100% поспорю. Например поиск по индексу - он не зависит от контекста задачи. выставляет Вас явно не в лучшем свете. СУБД принадлежит контексту задачи. И реализация индексирования в конкретной СУБД тоже принадлежит. От реализации индексирования и подсистемы обработки запросов (как минимум) в конкретной СУБД зависит эффективность использования поиска по индексу.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260283
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень жаль что нет проходит обсуждение по существу поднятого вопроса, причем ни на одном сайте. А вопрос то интересный. А тут ещё новые технологии. Может быть модераторы занялись чисткой нитки?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260412
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри за офтоп.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260427
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Валентин К

Сэр, С вами приятно разговаривать и вы, судя по всему, добрый человек, но вы очень во много заблуждаетесь!

Заблуждение - цена знания.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260471
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Lamer@fools.ua
З.Ы. Складывается впечатление, что Вы чужие сообщения толком не читаете. Я не претендую на роль гуру, но вот высказывание Решение может быть эффективным даже без контекста, с этим я на 100% поспорю. Например поиск по индексу - он не зависит от контекста задачи. выставляет Вас явно не в лучшем свете. СУБД принадлежит контексту задачи. И реализация индексирования в конкретной СУБД тоже принадлежит. От реализации индексирования и подсистемы обработки запросов (как минимум) в конкретной СУБД зависит эффективность использования поиска по индексу.[/quot]

Ладно, вернумся немного назад.
Задача внедрение системы учета, направление задачи - управление изменениями при внедрении программного продукта.
Алгоритм поиска по индексу в контексте управления измененими несет сильно большой смысл. Я понимаю, что это просто софистика, но для того, чтобы было понятнее иногда приходится отделать теорию от практики.
Кстати в конкретном случае с субд сравнивать алгоритм поиска по индексу и перебор значений вообще выходит за область алгоритмов поиска по индексу. Т.к. при переборе значений нет индекса. Тем не менее, если уважаемый афтар съехал с темы, тогда съехал и я, абстрагировав задачу от индекса вообще. В своем глазу... знаете ли.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260488
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Валентин ККак должен быть сформирован индекс, чтобы поиск в нем был при любом кол-ве данных одинаков? т.е. для поиска 1-го значения по ключу понадобилась бы 1 операция?
Для сведения: это называется O(1).
Что ж, один из возможных ответов - "такой индекс называется индексом массива".
насчет "для сведения" - мне говорить не нужно, просто манипулирование понятиями, о которых не знает аудитория - не самое мое любимое дело, если же вы знаете что это такое - значит я неправильно оценил аудиторию. Но в контексте других ответов я не думаю, что сильно уж занизил познания собравшихся в области быстрого манипулирования данными.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260494
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевОчень жаль что нет проходит обсуждение по существу поднятого вопроса, причем ни на одном сайте. А вопрос то интересный. А тут ещё новые технологии. Может быть модераторы занялись чисткой нитки?

Ну как же? Было по существу:
Валентин КА теперь креатиф по 3-х звенной архитектуре.

Для умников, начинающих и пр. специалистов ИТ.
1) 3-х звенная архитектура ВСЕГДА работает медленее чем 2-х звенная при прочих одинаковых условиях.
2) реализация проекта в 3-х звенной архитектуре зачастую в практике более долгая, чем реализация 2-х звенной архитектуры.
3) Задач, кторые можно решить только в 3-х звенной архитектуре и нельзя решить в 2-х звенной на практике очень и очень мало.
Эти утверждения лично я поддерживаю.
И их хватит, чтобы закончить обсуждать существо и продолжить флейм, бессмысленный и беспощадный :))

-- Tygra's --
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260912
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>tygra
>Ну как же? Было по существу:
> ......
>Эти утверждения лично я поддерживаю.

Извините,
но я посчитал (или мне так очень хочется думать), что топик о том в каких областях можно применять, какие функции выполняет, на чем и как построить многоуровневку.
Для меня есть аксиома - многозвенки имеют право на существование. Где бы найти сайт и топик где думают также?

Относительно утверждений Валентина - батенька, они не совсем точны.
1. Что такое всегда медленнее? Если критерий - доставка их клиенту, то многое зависит как они обрабатываются на средних уровнях, как распараллелены вычисления.
2. Если с нуля, то да, иначе какого качества ранее подготовленный проект (насколько хороша болванка, которую ты подгоняешь)
3. Мы просто пока не умеем и не готовы ставить соответствующие задачи (а может в них пока и нет нужды).

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

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260944
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не отрицаю ненужности существования 3-х звенной архитектуры. Когда она была сильно в моде достаточно плотно ее изучил и сделал выводы.
Выводы к сожалению не на стороне 3-х уровневой архитектуры, я с удовольствием буду присать в 3-х уровнях, но только если за это заплатят.

Например, когда меня спрашивают, могу ли я писать на яве, я отвечаю, что могу, только это будет стоить в 2 раза дороже чем на делфи или си, только потому что отношусь к этому как к модной фишке. Если кратко, то примерно так: это сделать можно в таком виде как вам нравится, но в 2 раза дороже.
Примерно такое же отношение к 3-х звенной архитектуре, т.е. я не отрицаю ее абсолютную полезность, но и при проектировании системы никогда не выбиру ее в реализации, если только заказчик явно не захочет чтобы она была и заплатит за подобное.

Это как гламурная фишечка, нахрен не нужная в практике, но вот прикрутить ее модно и престижно и крутая надпись будет в проспекте и презентации по продукту. А сделать быстрый, простой и мощный продукт в 2-х звенке, как-то немодно. Какая разница, что он решает все поставленные задачи, если в предентации нельзя написать про крутость реализации....

Щас конечно накинутся прохожие и начнут ногами пинать, типа гад какой, обосрал на корню великие идеи, опустил до плинтуса чаяния начинающих программистов в то, что крутизна возможна настолько заоблачная, что писять кипятком хочется и пр... :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33260963
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КА теперь креатиф по 3-х звенной архитектуре.

Для умников, начинающих и пр. специалистов ИТ.
1) 3-х звенная архитектура ВСЕГДА работает медленее чем 2-х звенная при прочих одинаковых условиях.
2) реализация проекта в 3-х звенной архитектуре зачастую в практике более долгая, чем реализация 2-х звенной архитектуры.
3) Задач, кторые можно решить только в 3-х звенной архитектуре и нельзя решить в 2-х звенной на практике очень и очень мало.
1. Отсутствует знание предмета. Многозвенную архитектуру применяют именно в тех проектах, где требуется максимальная производительность.
2. Верно практически всегда.
3. Решить как? Чтобы решение как-то работало или чтобы решение работало с нужной производительностью и было достаточно масштабируемым? Если первое в двузвенке можно почти всегда, то второе не всегда.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261369
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин Кнасчет "для сведения" - мне говорить не нужно,
Значит, говорите
Валентин КЗаблуждение - цена знания.?
Похоже, Вы настроены выплатить цену по полной программе.

Валентин КНо в контексте других ответов я не думаю, что сильно уж занизил познания собравшихся в области быстрого манипулирования данными.
Ну, как минимум ни один из собравшихся таковыми не блещет. Правда и повода нет.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261383
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КЩас конечно накинутся прохожие и начнут ногами пинать, типа гад какой, обосрал на корню великие идеи, опустил до плинтуса чаяния начинающих программистов в то, что крутизна возможна настолько заоблачная, что писять кипятком хочется и пр... :)
Вы себе льстите. Плюс, похоже, считаете, что "плыть против течения" - менее (либо более) глупое занятие, нежели "плыть по течению".
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261526
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Валентин КЗаблуждение - цена знания.?
Похоже, Вы настроены выплатить цену по полной программе.

Вы себе льстите. Плюс, похоже, считаете, что "плыть против течения" - менее (либо более) глупое занятие, нежели "плыть по течению".


Философия не относится к вашим сильным сторонам.

"Плыть против течения" - это подразумевает наличие как минимум "течения".
В данном контексте я не вижу "течения" и никуда не "плыву", поэтому и не могу расценить как умно это или глупо.
Общественное мнение меня давно не интересует по поводу теоретических аспектов различных технологий, потому как я работаю на несколько ином уровне понимания решения проблем и вопросов, связанных с ИТ. Цель высказываний сводится к тому, что те некоторые, кто пришел к пониманию, близкому к моему составят интересную дисскуссию.

И что меня как всегда порадовало, так это то, что в мой адрес написано, что я использую цитаты из книжек, в контексте подходов как раз оппоненты высказывались заученными утверждениями, нежели действительно колоритно короткими и информационно насыщенными фразами о своих собственных выводах.
Интересно, что похожее на высказывания в форуме понимание было мной изучено в различных книгах по 3-х звенной архитектуре систем. Но практичесие примеры просто расставили все на свои места.

Вывод: массовое заблуждение не порок. Открывать глаза - ни есть моя цель, заблуждайтесь наздоровье.

Ебитесь в рот, ваш Валентин и К.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261555
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Валентин К
> Щас конечно накинутся прохожие и начнут ногами пинать, ...

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

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

Но это не задачи сервера базы данных. А по своей нагрузке на процессор они мало уступают задаче построения выборки. Решать их в среде сервера и на языке хранимых процедур? Не знаю. Отказался от этой идеи. Многозвенка лучше.

Валентин, Вы пожалуйста не горячитесь, подумайте и согласитесь - многозвенки имеют право на существование. Но отсюда совершенно не следует - только они и всегда.
Есть задача и над её решением архитектор должен думать, но! имея перед собой варианты. Одним! из которых - многозвенка.

С уважением, Владимир.

p.s. валентин, думаю Вам стоит дезавуировать ваше последнее сообщение. Право не стоит.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261567
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot ВМоисеевp.s. валентин, думаю Вам стоит дезавуировать ваше последнее сообщение. Право не стоит.[/quot]

Как дезавуровать? я что-то даже кнопки редактирования не виду в форуме, и удаления тоже для своих сообщений.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261570
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин, извини.
p.s. валенин ... , а надо так - p.s. Валентин ...

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261586
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Но попробуем выйти за пределы локалки. И сразу вопросы:
а) тысячи клиентов,
б) конфиденциальность информации,
в) невысокие скорости обмена информацией.
Решение (рассматриваю информационные системы - много данных, мало вычислений):
сжатие выборки и шифрование трафика.

Но это не задачи сервера базы данных. А по своей нагрузке на процессор они мало уступают задаче построения выборки. Решать их в среде сервера и на языке хранимых процедур? Не знаю. Отказался от этой идеи. Многозвенка лучше.


Если хотите я проясню аспекты быстродействия без 3-х звенке, как это рекомендую делать, только далеко не всем. Иногда я могу просто промолчать :) И не в локалке, я давно не манипулирую понятиями, в локальной сети или нет. В системах, которыми я занимаюсь понятие клиентов вообще не рассматривается, т.к. ограничения нет и в работе многопользовательность работает вполне привычно, а если клиентов тысячи, так для работы системы это никак не скажется. Главно просто правильно понимать узкие места и заранее их расширять, но не за счет наращивания некоторого звена, а за счет определенных подходов к понятию движения данных.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261617
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, Валентин. Меня интересуют варианты. Ссылку на свою статью ранее давал.
С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261684
Дуче
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmМногозвенную архитектуру применяют именно в тех проектах, где требуется максимальная производительность.

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

С удовольствием прочитал статью
http://www.gotdotnet.ru/LearnDotNet/NETFramework/125377.aspx

По поводу стиля - стиль хорошо выдержан, количество абзацев достаточное. Изложение материала четкое и понятное.стиль - зачот.

По сути статьи. Все правильно, я бы тоже так делал лет так 5-6 назад.
Перечислю и прокомментирую пункты статьи:
1) аутентификации пользователя, инициирующего обмен;
Стандартная идентификация пользователем сервером БД вполне подходит, пароль шифруется.
2) авторизации пользователя в процессе работы;
Полезно, сделать опять же нетрудно, используя запомненные пользователем в клиенте логин и пароль.
3) ограничения доступа к функциям и записям таблиц базы данных
информационной системы (управление доступом);
Стандартная безопасность на уровне базы данных.
4) защиты трафика;
Легко включить ssl-шифрование, и/или туннельное подключение к серверу БД.
5) страничного представления информации клиенту;
Проще некуда, конструкция LIMIT, если поддерживается сервером + оптимизированные на данный вопрос компоненты датасета.
6) компрессии информации;
Не проблема в принципе, достаточно включить компрессию в драйвере подключения к БД, если сервер БД поддерживает жатие данные в соединении. Нужно выбирать сервер, чтобы поддерживал.
7) защиты клиентского приложения от несанкционированной модификации;
Тут фантазии нет предела.
8) адаптации структуры системы к информационной нагрузке,
сервер БД нужно выбирать быстрый, проектировать БД в расчете на высокую нагрузку, т.е. продуманная легковесная структура. - этот пункт на самом деле очень глубокий и краеугольный. Его можно обсуждать долго и нудно. Для правильно решения нужно знать на практике возможности сервера БД и его "захеры".

Раскрытие сути представленной реализации - зачот.
Оптимальность представленных решений - незачот.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261689
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КФилософия не относится к вашим сильным сторонам.
И главное, абсолютно здесь не при чем. Если точнее, не более "при чем", нежели в любом другом месте.

Валентин К"Плыть против течения" - это подразумевает наличие как минимум "течения".
В данном контексте я не вижу "течения" и никуда не "плыву",
Зато Вы склонны буквально трактовать афоризмы и либо не можете, либо не хотите раскрыть прямую ссылку на довольно известную фразу.

Валентин КЦель высказываний сводится к тому, что те некоторые, кто пришел к пониманию, близкому к моему составят интересную дисскуссию.
В сторону - интересная структура фразы. Пользуйтесь уж лучше "короткими и насыщенными". И, кстати, "дискуссия" пишется с тремя "с".

Если так - вам осталось научиться правильно добиваться своих целей.

Валентин КИ что меня как всегда порадовало, так это то, что в мой адрес написано, что я использую цитаты из книжек,
Плохо цитируете. Не "цитаты из книжек", а "умные слова из записной книжки".

Валентин Кв контексте подходов как раз оппоненты высказывались заученными утверждениями,
Боюсь, не готов обсуждать подходы Ваших оппонентов.

Валентин Кнежели действительно колоритно короткими и информационно насыщенными фразами о своих собственных выводах.
Это те, которыми Вы щеголяли в начале, типа "аффтар жжот"?

Валентин КВывод: массовое заблуждение не порок.
И с логикой у Вас не в порядке. Что-то говорите, говорите, потом вдруг берете первую попавшуюся фразу и объявляете ее выводом.

Аристотель бы этого не оценил.

Валентин КОткрывать глаза - ни есть моя цель, заблуждайтесь наздоровье.
Я бы даже отметил - с удовольствием.

Валентин КЕбитесь в рот, ваш Валентин и К.
А вот на такое ограничение я не согласен. Впрочем, подобное отношение к единственно верной колее - вполне в Вашем духе, не спорю.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261690
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дуче andsmМногозвенную архитектуру применяют именно в тех проектах, где требуется максимальная производительность.

А разве вытаскивать данные из БД, чтобы обработать их на сервере приложений будет быстрее, чем обработать их прямо на месте, в БД ?

и я о томже :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261718
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Очень качественные замечания. Чувствуется хватка.
Парирование возможно такое:
Пинать ногами других - очень качественное направление развития карьеры, вот только это не вяжется к технологиям, а в жизни знакомы такие индивидуумы. Приятно поговорить, только вот укусить в ответ не даю :)
В итоге в форуме отсутствуют высказывания по поводу обсуждаемой технологии, раскрывающие тему со стороны вас. Тема абзаца: что-то делать всегда сложнее, чем обсуждать деяния других.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261775
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КОчень качественные замечания. Чувствуется хватка.
Не прошло и четырех страниц, как Вы это поняли :)

Валентин КПарирование возможно такое:
Пинать ногами других
Ой, ну не жалобьте :) Или тогда уж не пытайтесь одновременно парировать.

Валентин К - очень качественное направление развития карьеры,
Ошибаетесь. Глупо махать ногами в реальном бою с сильным противником. А на слабых противниках качественной карьеры не построишь - хотя некоторые пытались.

Валентин Квот только это не вяжется к технологиям,
Так о технологиях Вы ничего интересного не говорите.

Валентин Ка в жизни знакомы такие индивидуумы. Приятно поговорить, только вот укусить в ответ не даю :)
Интересная мысль. То есть Вы c ними приятно разговариваете, они пытаются укусить в ответ, Вы не даете, и тогда они начинают пинать Вас ногами? И судя по формулировке, случалось больше одного раза?

Хочется ответить цитатой - на этот раз из уважения к Вашим недосткам скажу, что это из замечательного советского фильма "Не бойся, я с тобой": "Туда ехали - за ними гнались. Обратно едут - за ними гонятся. Какая интересная у людей жизнь!"

Валентин КВ итоге в форуме отсутствуют высказывания по поводу обсуждаемой технологии,
Все разумное по поводу этой технологии было сказано до того, как Вы появились в этом топике.

Валентин Краскрывающие тему со стороны вас.
Хм. Вас не затруднит разговаривать по-русски?

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


Пожалуй это наиболее сильно показывает как бы так сказать, чтобы не обидеть .... "узколобость" и неконструктивность мышления. Хотя академический шарм присутствует и качественно вуалирует отсутствие собственного мнения. Обычная психология, когда собственного мнения нет - либо цеплятся за слова оппонента, либо отстаивать чужие выводы, взятые из книжки. Достаточно сложно сформировать свое мнение, для этого нужно работать в интересующем направлении
За мной никогда и никто не гоняется :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261929
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Валентин.
>По сути статьи. Все правильно, я бы тоже так делал лет так 5-6 назад ...

Не скрываю, что ищу интересные идеи, незабывая приэтом делиться своими.
Я не большой специалист SQL серверам. Поэтому меня интересуют их возможности.
Постараюсь задавать внятные вопросы, и буду благодарен, если получу ответы.
Как Вы поддерживаете связь между сервером и клиентом? Держит ли клиент свой Connect активным?

С уважением, Владимир.
p.s. Уважаемый профессор, как человек упрямый, я повторно приду сдавать зачет (и далее в цикле)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33261946
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КПожалуй это наиболее сильно показывает как бы так сказать, чтобы не обидеть ....
Не беспокойтесь, Вам это не грозит. Единственно, как модератор соседнего раздела, я бы таки посоветовал оставаться в рамках правил и не портить пятницу моим коллегам.

Валентин К"узколобость" и неконструктивность мышления.
Узколобость - допустим; ход дискуссии при определенной точке зрения позволяет так думать. "Неконструктивность" - я бы предположил, снова из записной книжки. Если, конечно, не считать конструктивным метание бисера.

Валентин КХотя академический шарм присутствует
Вот этим Вы меня заинтересовали. Можно поподробнее?

Валентин Ки качественно вуалирует отсутствие собственного мнения.
:)

Валентин КОбычная психология, когда собственного мнения нет
А, еще и психолог-любитель.

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

Валентин КДостаточно сложно сформировать свое мнение, для этого нужно работать в интересующем направлении
Что ж, поздравляю, заметный прогресс как в мысли, так и в умении ее выразить. Но, увы, пока что можно только записать в афоризмы, поскольку по сути неверно.

Валентин КЗа мной никогда и никто не гоняется :)
Ээ.. реминисценция на Неуловимого Джо?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262004
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

заняться нечем? :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262087
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем-то так.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262147
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Как Вы поддерживаете связь между сервером и клиентом? Держит ли клиент свой Connect активным?

Это зависит от конкретной задачи.
Для той, что в статье можно поставить таймер для автозакрытия коннекта. Когда юзер дернется что-то смотреть, тогда коннект возобновится автоматически по логину-паролю при входе.
Изменения в таблицах можно кешировать - т.е. поставить cachedupdates и специяальную кнопку для сброса изменений одного или нескольких датасетов в базу.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262212
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Мне стало интересно, в чем же все таки проблема с вами.
Открыл вашу страничку http://softwarer.ru
и порадовался за вас/тебя.
И что наиболее бросилось в глаза, это не знания и умения, хотя широта охвата тем работы с данными достаточная, от программирования клиента до OLAP... так вот, отвлекся... бросается в глаза полная устремленность в себя, жуткое себялюбие и себяжаление. Себялюбие - неплохое качество, вот только когда оно позволяет относится к другим через призму себялюбия, вобщем вопрос тоже интересный и вообще выходит за тему сайта...
Далее, совершенно не заметно попытки оценить изученные технологии.
Хотя достаточно правильные подходы к оптимизации кода в делфи.
Я тоже люблю делфи, считаю его лучшим инструментом для прикладных задач, не в ущерб остальным конечно...
В стороне осталось переосмысление работы с базами данных, скорее всего оттого, что объемы данных в конкретных проектах были маленькими, может конечно и другие причины. Например кроме всего прочего упущены вопросы, связанные с обработкой массивов в приложениях, что перекликается с темой данных.
В итоге в вопросе ты плаваешь, скрываешься за терминами, хотя надо отдать должное память хорошая.

В резюме например можно не указывать кол-во строчек кода более млн, т.к. не ты, ни команда в которой ты работал такого кол-ва строк написать за указанные сроки не успела бы. речь скорее всего идет о кол-ве строк, которое указывается при сборке проекта в окошке компиляции. Там указывается общее кол-ва кода в проекте, код написан как специалистами из борланда, так и другими разработчиками сторонних компонентов... посему я это расцениваю, как аккуратное присвоение чужих достижений себе.
Я для интереса сбилдил сборку системы под 1 предприятие - общее кол-во строк кода 302 тыс. Но совершенно не сложно сделать млн строчек, достаточно использовать побольше компонентов. Я же стараюсь без надобности не увеличивать размер исполнимого файла и используемых компонентов.

пара каментов по резюме
"Репликация данных (более 40 серверов)." - какая разница, сколько серверов :) если репликацию настроить можешь, то будет их 2 или 400 роли уже не играет.
"Организация серверных приложений (аптайм одной из моих программ составляет более 3800 часов - с 26.05.2003 по 02.11.2003 и был прерван из-за замены "железа")." - вообще странная характеристика, какая разница сколько висит в памяти серверное приложение?

Вот и у меня появилась возможность покритиковать :)
Вобщем примерно то, что я и думал. Удачи.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262397
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо попробуем выйти за пределы локалки. И сразу вопросы:
а) тысячи клиентов,
б) конфиденциальность информации,
в) невысокие скорости обмена информацией.
Решение (рассматриваю информационные системы - много данных, мало вычислений):
сжатие выборки и шифрование трафика.

Но это не задачи сервера базы данных. А по своей нагрузке на процессор они мало уступают задаче построения выборки. Решать их в среде сервера и на языке хранимых процедур? Не знаю. Отказался от этой идеи. Многозвенка лучше.
ASA 9: криптография БД, сеансовая оффлайн репликация, криптографие и сжатие протоколов работы с БД и передаваемых пакетов репликации. А так же XML, работа с внешними веб-сервисами, организация своих, функции для криптографии и сжатия и т.д. и т.п. Все штатно, все есть, все работает, ничего писать не нужно.

Все таки мне кажется в большинстве случаев написание многозвенок, мотивируется такими же громкими словами (особенно радует упоминание про независимость от используемой СУБД) - а на самом деле авторы творений прикрывают свое элементарное незнание РСУБД (и частенько это люди, программирующие на Си, как наиболее ярые поклонники "своих решений"). Лично для меня лишнее звено имело бы смысл только тогда, когда на данные, хранящиеся в БД, должны производится некие сложные расчеты, невозможные для реализации на ХП, влияющие на целостность БД и вызываемые при изменениях информации (то есть не предварительный расчет данных с целью ее сохранения в БД и в дальнейшем простого извлечения). Однако и это неплохо решается средствами СУБД с помощью написания расширенных хранимых процедур и классов на тех же Java, а теперь и C#.

Валентин К Для той, что в статье можно поставить таймер для автозакрытия коннекта. Когда юзер дернется что-то смотреть, тогда коннект возобновится автоматически по логину-паролю при входе.
Изменения в таблицах можно кешировать - т.е. поставить cachedupdates и специяальную кнопку для сброса изменений одного или нескольких датасетов в базу.
Можно просто таймаут поставить на idle соединения. У меня так и сделано - если клиент какое то время бездействует, ASA автоматом обрубает ему соединение, при любом обращении к БД клиент заново автоматом поднимает соединение, сами изменения данных в клиенте отложенные (пакетные).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262427
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS Лично для меня лишнее звено имело бы смысл только тогда, когда на данные, хранящиеся в БД, должны производится некие сложные расчеты, невозможные для реализации на ХП, влияющие на целостность БД и вызываемые при изменениях информации (то есть не предварительный расчет данных с целью ее сохранения в БД и в дальнейшем простого извлечения). Однако и это неплохо решается средствами СУБД с помощью написания расширенных хранимых процедур и классов на тех же Java, а теперь и C#.


Мы делаем трехзвенке по причинам
1. У нас разные СУБД, которые между собой интегрируются на логическом уровне. Для их интеграции используем сервер интеграции. Расчетов как таковых нет в этой задаче (хотя, вопрос - что считать расчетами)

2. Используются разные технологии и для интеграции приложений используются промежуточные серверные компоненты. можно все загнать в ХП, но технологии включают не реляционные в том числе, например, Lotus. Но не это главное. Зачем каждому самому обращаться к базе данных за выполнением однотипного действия и знать что делает ХП. Большинство разработчиков обращаются к серверной компоненте без обращения к базе данных. Но это нам так удобнее (мы используем Web-service, они описываются автомтаически + мы делаем описание вручную, оно доступно по http, всем программистам). Возможно для нашего коллектива и наших задач - это решение дает лучшие результаты. Программистов 10, функционирующих проектов 40.

3. Пользователей десятки тьсяч, каждый со своим именем и логином. Баз - 10. Пользователи обновляются за год на 30%. Для каждого делать вручную своего в нужных базах это нереально , а не забыть о поддержке акутальности ..
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262464
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrame
Мы делаем трехзвенке по причинам
1. У нас разные СУБД, которые между собой интегрируются на логическом уровне. Для их интеграции используем сервер интеграции. Расчетов как таковых нет в этой задаче (хотя, вопрос - что считать расчетами)

2. Используются разные технологии и для интеграции приложений используются промежуточные серверные компоненты. можно все загнать в ХП, но технологии включают не реляционные в том числе, например, Lotus. Но не это главное. Зачем каждому самому обращаться к базе данных за выполнением однотипного действия и знать что делает ХП. Большинство разработчиков обращаются к серверной компоненте без обращения к базе данных. Но это нам так удобнее (мы используем Web-service, они описываются автомтаически + мы делаем описание вручную, оно доступно по http, всем программистам). Возможно для нашего коллектива и наших задач - это решение дает лучшие результаты. Программистов 10, функционирующих проектов 40.

3. Пользователей десятки тьсяч, каждый со своим именем и логином. Баз - 10. Пользователи обновляются за год на 30%. Для каждого делать вручную своего в нужных базах это нереально , а не забыть о поддержке акутальности ..

1. Это не причина. Причину можно не только обойти, а просто решить этот вопрос на более высоком уровне. Например создать хранилище данных, куда сыпать сервисами разные данные, приводя их к централизованной концепции хранения. Причины просто не возникнет для звена, которое интегрирует запросы на уровне логики, а не на уровне данных.

2. 2 раза прочитал, и не совсем понял причину. Ну и что что ХП, или однотипные действия... можно на динамик-sql сделать все необходимые манипуляции.

3. Вообще причина выносить логику в 3-е звено не просматривается. Делать вручную - это не причина, она достаточно легко решается хп для регистрации и пр. стартовых параметров для нового пользователя. А поддержка актуальности - так ее легче реализовывать в централизованных хранилищах. Тогда будет 1 место, которое нужно поддерживать в наиболее актуальном состоянии...

без цитирования.
ASA - хороший сервер БД. Для хранилищ данных я бы рекомендовал MySQL, более быстрого сервера при высоком уровне функционала сложно найти.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262500
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrame1. У нас разные СУБД, которые между собой интегрируются на логическом уровне. Для их интеграции используем сервер интеграции. Расчетов как таковых нет в этой задаче (хотя, вопрос - что считать расчетами)
Централизованное хранилище данных, удаленные сервера, веб-сервисы, SOAP процедуры.

MainFrame2. Используются разные технологии и для интеграции приложений используются промежуточные серверные компоненты. можно все загнать в ХП, но технологии включают не реляционные в том числе, например, Lotus. Но не это главное. Зачем каждому самому обращаться к базе данных за выполнением однотипного действия и знать что делает ХП. Большинство разработчиков обращаются к серверной компоненте без обращения к базе данных. Но это нам так удобнее (мы используем Web-service, они описываются автомтаически + мы делаем описание вручную, оно доступно по http, всем программистам). Возможно для нашего коллектива и наших задач - это решение дает лучшие результаты. Программистов 10, функционирующих проектов 40.
Интеграция приложений с другими компонентами неплохо выглядит и на клиенте. Вроде как COM и OLE никто не отменял. Чем серверная компонента будет лучше ХП и почему к ней легче обращаться, чем к ХП вопрос не понятный. Если уж приложение не должно напрямую обращаться к БД, ну сделайте Вы SOAP сервис на ХП и вызывайте ХП как веб-сервис. Для ADO.NET Вам вообще полноценный DATASET вернут сразу в XML как родной. У нас БД сами тянут и курсы валют с ЦБ и новости с Яндекса и каталоги товаров с других сайтов, на которых открыты веб-сервисы, пару строчек кода на WatcomSQL и никаких звеньев, тут даже и клиент то не участвует. Да и помощь кстати по тому же HTTP клиентам БД и выбрасывает.

MainFrame3. Пользователей десятки тьсяч, каждый со своим именем и логином. Баз - 10. Пользователи обновляются за год на 30%. Для каждого делать вручную своего в нужных базах это нереально , а не забыть о поддержке акутальности ..
Опять же удаленные сервера с прокси-хранимыми процедурами, веб-сервисы или репликация, если все БД на ASA (тут вообще для удаленных БД, что изменение схемы БД, что управление пользователями, что администрирование - вопрос кода не стоит, за бугром существуют консолидированные БД, у которых только до 10 000 удаленных БД, связанных через репликацию и как то никто не напрягается).

Валентин КASA - хороший сервер БД. Для хранилищ данных я бы рекомендовал MySQL, более быстрого сервера при высоком уровне функционала сложно найти.
Ага - без транзакций, нормального оптимизатора и функционала - действительно куда уж быстрее. Только мне такая быстрота что то не очень нравится. Хороша только для сайтов, где юзер вставил запись в форум и забыл, тут точно MySQL обладает несравненной быстротой. А чуть сложнее - достаточно посмотреть, как народ на PHP чудеса вытворяет, всю бизнес-логику полностью пихая на него. Вот уж действительно многозвенка выходит самая настоящая из за убогого функционала сервера.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262525
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Валентин КASA - хороший сервер БД. Для хранилищ данных я бы рекомендовал MySQL, более быстрого сервера при высоком уровне функционала сложно найти.
Ага - без транзакций, нормального оптимизатора и функционала - действительно куда уж быстрее. Только мне такая быстрота что то не очень нравится. Хороша только для сайтов, где юзер вставил запись в форум и забыл, тут точно MySQL обладает несравненной быстротой. А чуть сложнее - достаточно посмотреть, как народ на PHP чудеса вытворяет, всю бизнес-логику полностью пихая на него. Вот уж действительно многозвенка выходит самая настоящая из за убогого функционала сервера.

Не согласен по поводу MySQL.
Если хранимые процедуры, триггера, вьюхи, репликация, шифрование, сжатие в коннекте, кластеризация - слабый функционал при хорошей скорости, тогда чем же лучше ASA?
Под нагрузкой в 2000-3000 запросов в секунду ASA чувствует себя не лучшим образом, а MySQL весьма комфортно. Кроме этого смею заметить, что транзакции в MySQL присутствуют в нормальном виде, посмотрите тип таблиц InnoDB (главный разработчик пришел из ORACLE).
В любом случае каждый выбирает за себя сам, я просто подчеркнул вопрос в некотором упушении. Действиетельно, ваше высказывание актуально для 2004 года. Сразу могу услышать в ответ, что MySQL 5 в бета-фазе, но смею заметить, что перевод в релиз при таком кол-ве разработчиков компания сделает за полгода. А реальное портирование системы, либо ее разработка быстрее полу года обычно не длится....
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262546
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин Кбросается в глаза полная устремленность в себя,
Это называется интроверсия. Пожалуй скорее согласен, хотя знакомые, пытавшиеся определить мой психотип, не приходили к однозначному мнению в этом вопросе.

Валентин К жуткое себялюбие
Безусловно.

Валентин К и себяжаление.
Oops.. Кажется, Вы решили доказать ошибочность мнения о Вашей бедной фантазии.

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

Валентин КДалее, совершенно не заметно попытки оценить изученные технологии.
Думаю, Вы правы. Полагаю, можно назвать еще как минимум несколько сотен вещей, которые там незаметны :)

Валентин КХотя достаточно правильные подходы к оптимизации кода в делфи.
:) Delphi, к сожалению, не дает в этом плане больших возможностей. Та статья, на которую, видимо, Вы ссылаетесь - всего лишь демонстрация того, что минимальными усилиями можно уйти от "совсем жуткого" кода.

Валентин КВ стороне осталось переосмысление работы с базами данных, скорее всего оттого, что объемы данных в конкретных проектах были маленькими, может конечно и другие причины.
Неплохо. Ведь можете же иногда изящно донести свою мысль.

Какие-то глобальные вопросы БД не рассмотрены по одной простой причине: доступно вполне достаточное количество материалов примерно того же уровня, который будет у меня без больших затрат времени.

Валентин КНапример кроме всего прочего упущены вопросы, связанные с обработкой массивов в приложениях, что перекликается с темой данных.
Как и вообще упущена тема данных.

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

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

Валентин КВ резюме например можно не указывать кол-во строчек кода более млн, т.к. не ты, ни команда в которой ты работал такого кол-ва строк
То есть, с большими проектами Вы не работали. Не стыдитесь, так и скажите.

Валентин Кнаписать за указанные сроки не успела бы.
Интересно, какие сроки имеются в виду :)

В первую очередь это утверждение означает абсолютное непонимание чисел. Просто для сведения: если полагать, что программист пишет 250 строк в день, что весьма немного, то миллион строк - это годовой результат шестнадцати программистов. Также подскажу, что в восьмичасовом рабочем дне 480 минут, соответственно 250 строк в день - это примерно пол-строки в минуту.

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

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

Ладно, оставим сторонние компоненты, меня больше интересует код "специалистов из борланда". Для того, чтобы заставить его оставить след в "окошке компиляции", нужно использовать какую-либо бредовую технологию.

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

Валентин Кпосему я это расцениваю, как аккуратное присвоение чужих достижений себе.
Рад за Вас. Я не против повозить Вас носом по батарее, но буду рад, если Вы не получите в результате глубокой душевной травмы. А самообман - весьма действенное средство достижения подобного результата.

Валентин КЯ для интереса сбилдил сборку системы под 1 предприятие - общее кол-во строк кода 302 тыс.
То есть, если предположить, что там нет постороннего кода - примерно как в проекте ДМС для РОСНО, в котором я участвовал в Алсофте.

Валентин К Но совершенно не сложно сделать млн строчек, достаточно использовать побольше компонентов.
Кстати, задумался, как Вы могли бы достигнуть сравнимого результата. У меня был один халтурный проект, в котором заказчик захотел использования VirtualTreeView (если не в курсе - совершенно неадекватного размера... продукт) и пары интерфейсных библиотек - и то, если не изменяет память, внешнего кода получилось меньше 400 тысяч строк.

Валентин КЯ же стараюсь без надобности не увеличивать размер исполнимого файла и используемых компонентов.
Безусловно, это повод гордиться своими маленькими победами.

Валентин К
пара каментов по резюме
"Репликация данных (более 40 серверов)." - какая разница, сколько серверов :) если репликацию настроить можешь, то будет их 2 или 400 роли уже не играет.
Ну раз Вы не понимаете... ладно, пару фраз объяснения на пальцах. Например, если репликация идет по звезде, нагрузка на центральный сервер оказывается в сорок раз больше. Если репликация идет по снежинке - настройка оказывается несколько сложнее, а если в схеме репликации возможны циклы - еще сложнее. При репликации двух серверов для записи решается только один вопрос - "слать или не слать"; для сорока серверов правило репликации, благодаря которому данная конкретная запись окажется на восьмом, двенадцатом и двадцать четвертом серверах - тоже малость сложнее. Ну и наконец - представьте себе, что Вы допустили возникновение "пятиминутной проблемы". На двух серверах Вы исправите все за десять минут; на сорока - потребуется почти три с половиной часа.

Валентин К"Организация серверных приложений (аптайм одной из моих программ составляет более 3800 часов - с 26.05.2003 по 02.11.2003 и был прерван из-за замены "железа")." - вообще странная характеристика, какая разница сколько висит в памяти серверное приложение?
Считайте, что никакой. А если хотите - поинтересуйтесь, почему админы любят меряться аптаймами своих серверов. С помощью поиска этом форуме Вы легко найдете буквально несколькодневной давности письмо "такой аптайм под виндой? не верю".

Валентин КВот и у меня появилась возможность покритиковать :)
Ах, сколько времени Вам не давали этого делать :)

Валентин КВобщем примерно то, что я и думал. Удачи.
Уже лучше. Роста.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262555
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSОднако и это неплохо решается средствами СУБД с помощью написания расширенных хранимых процедур и классов на тех же Java, а теперь и C#.
Можно, но не всегда лучший вариант. Имхо тут вопрос в пропорции - безусловно, лучше сделать КС-приложение и пять-десять внешних хранимок, но не вижу смысла делать, допустим, тысячу внешних хранимок ради сохранения КС. По сути это получится то же промежутчное звено, только запрятанное внутрь БД и поэтому вынужденное бороться с дополнительными проблемами - например, ограничениями внутренней java-машины, например, с сохранением контекста.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262568
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Валентин КВ резюме например можно не указывать кол-во строчек кода более млн, т.к. не ты, ни команда в которой ты работал такого кол-ва строк
То есть, с большими проектами Вы не работали. Не стыдитесь, так и скажите.

Как-то глупо перед тобой хвастаться чем-либо, т.к. ты этого не заслуживаешь. Поэтому могу написать, что высказывание некорректно.
softwarer Валентин Кнаписать за указанные сроки не успела бы.
Интересно, какие сроки имеются в виду :)
Если нажать в Project\BUILD и внимательно посмотреть на компилируемые модули можно увидеть очень много модулей, в который не делались изменения, мне вообще как-то странно такое объяснять "профи". И общее кол-во строк не отражает, сколько там реально строк только в ваших модулях, при таком опыте это уже нужно знать.
softwarer Валентин К
пара каментов по резюме
"Репликация данных (более 40 серверов)." - какая разница, сколько серверов :) если репликацию настроить можешь, то будет их 2 или 400 роли уже не играет.
Ну раз Вы не понимаете... ладно, пару фраз объяснения на пальцах. Например, если репликация идет по звезде, нагрузка на центральный сервер оказывается в сорок раз больше. Если репликация идет по снежинке - настройка оказывается несколько сложнее, а если в схеме репликации возможны циклы - еще сложнее. При репликации двух серверов для записи решается только один вопрос - "слать или не слать"; для сорока серверов правило репликации, благодаря которому данная конкретная запись окажется на восьмом, двенадцатом и двадцать четвертом серверах - тоже малость сложнее. Ну и наконец - представьте себе, что Вы допустили возникновение "пятиминутной проблемы". На двух серверах Вы исправите все за десять минут; на сорока - потребуется почти три с половиной часа.

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

Вообще подобный разговор я отношу к разряду "ниачем". Обычный флуд, типа у кого-то пиписька длинее.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262579
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer ASCRUSОднако и это неплохо решается средствами СУБД с помощью написания расширенных хранимых процедур и классов на тех же Java, а теперь и C#.
Можно, но не всегда лучший вариант. Имхо тут вопрос в пропорции - безусловно, лучше сделать КС-приложение и пять-десять внешних хранимок, но не вижу смысла делать, допустим, тысячу внешних хранимок ради сохранения КС. По сути это получится то же промежутчное звено, только запрятанное внутрь БД и поэтому вынужденное бороться с дополнительными проблемами - например, ограничениями внутренней java-машины, например, с сохранением контекста.

Согласен с ASCRUS.
У оппонета некорректные сравнения с тысячей ХП. Как будто кол-во элементарных действий в системе уменьшится, если сделать КС. Как всегда глубина высказывания была не понята оппонентом, от чего и неуравновешенные примеры. Сделать можно в принципе что угодно, смысл как раз в том, чтобы не делать "дурную" работу. Всегда есть простые и эффективные решения, которые ASCRUS и высказал.
Единственное замечание - к расширенным ХП, делать таковые целесообразно в очень малом кол-ве случаев, в 99% случаев можно обойтись обычными ХП на PL/SQL (Если речь идет об ORACLE).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262587
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КТо есть, с большими проектами Вы не работали. Не стыдитесь, так и скажите.
Как-то глупо перед тобой хвастаться чем-либо,[/quot]
Было бы замечательно, если бы Вы заодно избегали и других глупостей.

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

Вы, вероятно, имели в виду "высказывание ложно" либо "вывод некорректен". Без комментариев - поскольку, если честно, мне это неинтересно. Я в данном случае всего лишь показывал, что Вы сами выставили себя в весьма неудачном свете.

softwarer Валентин Кнаписать за указанные сроки не успела бы.
Интересно, какие сроки имеются в виду :)
Если нажать в Project\BUILD и внимательно посмотреть на компилируемые [/quot]
Хм. Сколько ни смотри на Project/Build, боюсь, никаких сроков там не увидишь. Так что вопрос остается в силе.

Валентин Кмодули можно увидеть очень много модулей, в который не делались изменения, мне вообще как-то странно такое объяснять "профи".
Было бы более странно, если бы Вы ответили на заданный вопрос - какую бредовую технологию Вы ухитрились применить, что в результате ребилда оказался затронут код "специалистов из борланда".

Валентин К
И общее кол-во строк не отражает, сколько там реально строк только в ваших модулях, при таком опыте это уже нужно знать.
Разумеется, будете повторять как попугай.

Интересно, на какую сумму Вы согласились бы поспорить, отстаивая утверждение "количество строк, выводимое в окно результатов компиляции при ребилде проекта, всегда отличается от количества строк в (собственных) исходных модулях, если проект использует стандартные и/или чужие компоненты".

softwarer
Ну раз Вы не понимаете... ладно, пару фраз объяснения на пальцах. Например, Валентин КНиачем.
Ну раз Вы даже на пальцах не понимаете - боюсь, не буду помогать. Нецелесообразно растить те пальцы, на которых Вы поймете.

softwarerА вот мой комментарий корректен с точки зрения службы персонала.
То есть ламеров. Что ж - если Вам нравится эта позиция, там и оставайтесь. Хотя из любви к роду человеческому я бы таки советовал прогрессировать.

Валентин КВообще подобный разговор я отношу к разряду "ниачем". Обычный флуд, типа у кого-то пиписька длинее.
То есть не прошло и пяти страниц, как Вы поняли, зачем влезли в этот топик?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262592
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Валентин КВообще подобный разговор я отношу к разряду "ниачем". Обычный флуд, типа у кого-то пиписька длинее.
То есть не прошло и пяти страниц, как Вы поняли, зачем влезли в этот топик?
Прошло 5 страниц, а вы так и не поняли, что это высказвание относится лично к вам, а не к тому, что я пишу в этом топике по поводу ИТ технологий.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262600
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К softwarer
Валентин КВообще подобный разговор я отношу к разряду "ниачем". Обычный флуд, типа у кого-то пиписька длинее.
То есть не прошло и пяти страниц, как Вы поняли, зачем влезли в этот топик?
Прошло 5 страниц, а вы так и не поняли, что это высказвание относится лично к вам, а не к тому, что я пишу в этом топике по поводу ИТ технологий.
То, что Вы "пишете по поводу ИТ технологий" относится к той же категории "обычный флуд". Несколько верных в силу тривиальности мыслей (первая из них - использовать трехзвенку только тогда, когда она действительно нужна), затем - куча надутых щек, перемежающихся бредом. Последний Вы легко забываете, например, на вопрос о технологии сборки предпочли не отвечать.

В общем - для человека, выступающего с позиции службы персонала, Вы действуете не худшим образом. Но здесь, знаете ли, профессиональный форум.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262601
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Валентин Кмодули можно увидеть очень много модулей, в который не делались изменения, мне вообще как-то странно такое объяснять "профи".
Было бы более странно, если бы Вы ответили на заданный вопрос - какую бредовую технологию Вы ухитрились применить, что в результате ребилда оказался затронут код "специалистов из борланда".

А разве на сайте в отделе оптимизация не изменен код модулей, например Windows и др, которые явно вы не писали? или все-таки вы написали указанные модули и делфи заодно?

При сборке (Build) проекта компилируются только модули, которые написали вы и команда, и не компилируются компоненты сторонних разработчиков (не входящих в стандартную поставку Delphi), которые используются в проекте?
Вопрос остается в силе. После этого я его помещу в ветку Delphi, для того, чтобы не только я мог оценить глубину высказывания.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262602
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
В общем - для человека, выступающего с позиции службы персонала, Вы действуете не худшим образом. Но здесь, знаете ли, профессиональный форум.
Вообще-то я вас отношу к уровню персонала поддержки, но не как к уровню архитектора ИТ. И это естественно проясняется.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262611
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КБыло бы более странно, если бы Вы ответили на заданный вопрос - какую бредовую технологию Вы ухитрились применить, что в результате ребилда оказался затронут код "специалистов из борланда".

А разве на сайте в отделе оптимизация не изменен код модулей, например Windows и др, которые явно вы не писали?
или все-таки вы написали указанные модули и делфи заодно?
Очередная бредовая формулировка, поэтому постараюсь ответить "широко", накрывая спектр возможных вариантов.

1) Мысль "менять стандартные модули" уже весьма однозначно характеризует Вас как разработчика, дальше некуда. Если Вы приписываете ее мне - Вы явно не прочитали вот это , особенно третий абзац.

2) У меня на сайте нет отдела оптимизации и нет никаких измененных стандартных модулей. Также, если мне не изменяет память, там нет исходников, написанные не мной.

3) Я догадываюсь, каким образом Вы то ли пришли к этому впечатлению, то ли не приходили, но сейчас пытаетесь натянуть. Если верить в Вашу искренность - что ж, читать стоит внимательно, ну и само собой - см. ссылку выше.

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

5) Упоминание модуля Windows в данном контексте свидетельсвует еще и о том, что Вы плохо ориентируетесь в стандартных модулях Delphi.

При сборке (Build) проекта компилируются только модули, которые написали вы и команда, и не компилируются компоненты сторонних разработчиков (не входящих в стандартную поставку Delphi), которые используются в проекте?
Вопрос остается в силе. После этого я его помещу в ветку Delphi, для того, чтобы не только я мог оценить глубину высказывания.
Помещайте. Там больше людей смогут оценить Вашу смехотворность. И не забудьте про борландеровский код, дабы люди совсем ухохотались. Кстати, таки на какую сумму Вы поспорили бы? Говорю сразу - сугубо теоретически. Просто интересно, во сколько Вы оцениваете собственную уверенность.

Кстати - это вовсе не обязательно для обоснования моего утверждения, просто чтобы показать, насколько Вы то ли не думаете, что говорите, то ли плохо разбираетесь в дельфе. С чего Вы взяли, что компоненты сторонних производителей подключаются только в исходниках? Дельфа позволяет распространять только бинарники, и в этом случае при всем желании не удастся включить в ребилд проекта отсутствующие исходники сторонних компонент :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262614
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К softwarer
В общем - для человека, выступающего с позиции службы персонала, Вы действуете не худшим образом. Но здесь, знаете ли, профессиональный форум.
Вообще-то я вас отношу к уровню персонала поддержки, но не как к уровню архитектора ИТ. И это естественно проясняется.
Да относите куда угодно, если только сможете донести. Особенно - если это делает Вас еще более забавным.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262640
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer При сборке (Build) проекта компилируются только модули, которые написали вы и команда, и не компилируются компоненты сторонних разработчиков (не входящих в стандартную поставку Delphi), которые используются в проекте?
Вопрос остается в силе. После этого я его помещу в ветку Delphi, для того, чтобы не только я мог оценить глубину высказывания.
Помещайте. Там больше людей смогут оценить Вашу смехотворность. И не забудьте про борландеровский код, дабы люди совсем ухохотались. Кстати, таки на какую сумму Вы поспорили бы? Говорю сразу - сугубо теоретически. Просто интересно, во сколько Вы оцениваете собственную уверенность.

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

Ответа на вопрос не получено, о чем можно еще говорить? уровень оппонента раскрыт. А выкручиваться с исходниками или без исходников смешно, естественно с исходниками, я ведь думал, что говорю с профессионалом. Извините ошибся.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262644
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Валентин К softwarer
В общем - для человека, выступающего с позиции службы персонала, Вы действуете не худшим образом. Но здесь, знаете ли, профессиональный форум.
Вообще-то я вас отношу к уровню персонала поддержки, но не как к уровню архитектора ИТ. И это естественно проясняется.
Да относите куда угодно, если только сможете донести. Особенно - если это делает Вас еще более забавным.
Мне для этого ничего не нужно делать, не всегда корректные высказывания достаточно четко очерчивают уровень ваших знаний, умений и теоретической подготовки к решению простых и сложных вопросов.
По Делфи ответа не получено, по проектированию систем - вы явно плаваете, когда дело касается как конкретных алгоритмов, так и проектирования предметной области. Общие фразы да и только, которые вы явно не можете раскрыть. Можете хвастаться в окружении несведующих в ИТ людей - это для вас будет самое место.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262691
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КОтвета на вопрос не получено, о чем можно еще говорить? уровень оппонента раскрыт. А выкручиваться с исходниками или без исходников смешно, естественно с исходниками,
Так и думал, что Вы нырнете в подставленную дырку. То есть таки не уверены.
И правильно, кстати, не уверены. Хотя "выкручиваться" - это Вы уже обнаглели; специально указал, что Вы просто по-глупому просмотрели совсем очевидный вариант, но и наличие исходников ничуть не мешает.

Давайте, давайте, пишите на дельфовый форум. Не стесняйтесь показать свой уровень. Честная самооценка - первый шаг на пути к профессиональному росту.

Валентин Кя ведь думал, что говорю с профессионалом.
Быстро же Вы меняете точку зрения; только в предыдущем письме классифицировали совершенно по-другому. Это профессиональная гибкость или личная?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262692
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КПод нагрузкой в 2000-3000 запросов в секунду ASA чувствует себя не лучшим образом, а MySQL весьма комфортно. Кроме этого смею заметить, что транзакции в MySQL присутствуют в нормальном виде, посмотрите тип таблиц InnoDB (главный разработчик пришел из ORACLE).
В любом случае каждый выбирает за себя сам, я просто подчеркнул вопрос в некотором упушении. Действиетельно, ваше высказывание актуально для 2004 года. Сразу могу услышать в ответ, что MySQL 5 в бета-фазе, но смею заметить, что перевод в релиз при таком кол-ве разработчиков компания сделает за полгода. А реальное портирование системы, либо ее разработка быстрее полу года обычно не длится....
Нет у меня задач с такими нагрузками. Однако помня ограниченность SQL в MySQL и отсутствие ХП могу предположить (глядя на друзей PHP-шников), что на ASA такое кол-во запросов уменьшится волшебным образом. Или у Вас 2000 сессий одновременно в секунду такое кол-во запросов шлют ? Насчет бета-версии ничего говорить не буду, в ASA с момента ее создания (это 1988 год) изначально были поддержка транзакций, лог-файла, прямых соединений и подзапросов. Поэтому говорить, что вот в 21-веке радоваться, что какая то СУБД решилась таки обзавестись транзакциями по крайней мере странно. Видимо для тех областей, где MySQL применяется, транзакции то особо и не нужны. Не удивлюсь, если народ останется на 4-ой проверенной версии :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262699
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин и ASCRUS,
пожалуйста обратите своё внимание и на первую шеренгу моих баранов - Connect-ы.

Повторяюсь, не являюсь большим специалистом по базам данных, за исключением, пожалуй, VFP. Но писать приходилось и под MSSQL и Oracle. И всегда администраторы предупреждали, что клиентский Connect, это серьезный системный ресурс.

В прототипе защищенных информационных систем этот вопрос решен кардинально - ни! один клиент не имеет ни! одного Connect-а с базой данных.
Сессия клиента полностью задается одной записью в таблице базы данных. Реально в системе могут быть одновременно активны сессии тысяч клиентов. Все определяется возможностями IIS и их числом.
В прототипе тип базы данных не имеет принципиального значения - имелся бы соответствующий ADO.NET провайдер.

Валентин, для конкретики, давайте выберем конкретную базу данных. Если я в ней не бум-бум, то наши коллеги помогут. И рассмотрим работу 10 000 клиентов в Вашем подходе. Мой подробно описан в статье.

ASCRUS, какой величины time-out реально Вы ставите для определения неактивности клиента? Для меня это вопрос не праздный. Если правильно понял, в течении этого времени Connect клиента с базой данных существует? Сколько Connect-ов одновременно допускает ваша база данных?

С искренним уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262703
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевРеально в системе могут быть одновременно активны сессии тысяч клиентов. Все определяется возможностями IIS и их числом.
Простите, что Вы в данном случае называете активными - "подключенные в данный момент" или "выполняющие операцию в данный момент"?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262716
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>softwarer,
>Простите, что Вы в данном случае называете активными - "подключенные в данный момент" или "выполняющие операцию в данный момент"?

Пославшие запрос на построение выборки и ждущие ответ в виде требуемой страницы.
С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262717
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Все зависит от задачи и типа доступа. Для локальных клиентов можно и час поставить, на удаленных клиентов и 5-10 минут, чтобы БД долго не держала отвалившихся по удаленной сети клиентов. При большом кол-ве коннектов можно и вообще не держать постоянно сессию активной. Ограничение для ASA - на каждый коннект тратиться 4 кб ресурсов. Я правда не очень понимаю, чем так страшно большое кол-во коннектов. Вот если они все реально тяжелые запросы начнут выполнять одновременно, тогда да - страшно, однако здесь уже не с ASA нужно сравнивать, а с Oracle, так как он побольше настроек балансировки нагрузок имеет. Но чем тут многозвенка помочь может ?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262725
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>ASCRUS,

Я не пытаюсь сравнивать базы данных - нет достаточного опыта и знаний. Но создавал прототип и для шустрых каналов и для 9600 по мобильнику.

ASA, как я понимаю, передает выборку клиенту во время доступного временного интервала при активном Connect, если бы число Connect-ов было ограничено, то ...

Коллеги, подскажите пожалуйста, какие факторы определяют число одновременно активных Connect-ов в Oracle и имеет ли смысл минимизация их числа?

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262735
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевКоллеги, подскажите пожалуйста, какие факторы определяют число одновременно активных Connect-ов в Oracle и имеет ли смысл минимизация их числа?
Во-первых стоит отметить, что в Oracle есть встроенный "минимизатор" - так называемый shared server или MTS. С точки зрения пользователя это что-то типа connection pool-а; каждый пользователь прозрачно работает в своей сессии, с сохранением контекста (состояния переменных, открытых курсоров итп), но они конкурируют за использование заданного количества "реальных соединений".

Определяющими, насколько я понимаю, являются два фактора. Во-первых - память; я слышал, что каждая оракловая сессия занимает довольно много; самому измерять мне не требовалось. Реально - я видел максимум 700 одновременных сессий на сервере (в режиме dedicated), нерешимых задач перед админами это не ставило. Во-вторых - как говорили те же админы, при превышении количеством активных (выполняющих запрос) сессий некоего порога наблюдается падение производительности, сервер начинает тратить много ресурсов на "одновременность". Но MTS, по идее, эту проблему гарантированно решит.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262743
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Во время передачи выборки на клиентский компьютер, клиентская сессия использует "реальное соединение"?

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262751
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевВо время передачи выборки на клиентский компьютер, клиентская сессия использует "реальное соединение"?
Насколько я понимаю, Вы имеете в виду вопрос "если передача на клиента идет медленно, не заблокирует ли это "реальное соединение?". Признаться, не готов сходу ответить. Если хотите, сегодня днем проэкспериментирую, но думаю Вы получите лучший ответ, если спросите в форуме Oracle.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262753
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевВо время передачи выборки на клиентский компьютер, клиентская сессия использует "реальное соединение"?
В принципе, в документации: http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c09procs.htm#19210 сказано, что результаты обработки запроса помещаются в некую Responce Queue, откуда диспетчер передает их клиенту; таким образом можно предположить, что сама по себе передача не блокирует серверный процесс.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262759
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки не удержался и проэкспериментировал. Проверил следующие варианты:

- Выполнение долгого запроса: "select count(*) from (выборка на три миллиарда строк)". Намертво забирает "реальный процесс" и не параллелится.

- Выполнение простого запроса с прорвой возвращаемых данных (выборка на сто тысяч строк). Спокойно выполнялась из пяти сессий одновременно (во всех бежали счетчики проfetchенных записей).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262829
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer, спасибо.
Приятно иметь дело с профессионалом (-ами).

Мечта детства, неторопясь, пункт за пунктом дать беспошадный (наверное нужно какое-то другое слово) анализ информационной задачи, методов ее решения (клиент-сервер и многозвенки) и на чем делать, но оставаясь только!!! в техническом поле, не переходя в литературно-художественное или около литературно-художественное. Эх, если бы хватило терпения, да и выдержки бы ...

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

Хорошо,
но как связаны клиентские лицензии и Connect-ы. Сколько будет стоить подобное решение.
Насколько это решение типовое?
Все ли базы данных им оснащены?

Как отмечал ранее, многозвенка-прототип работает с любыми серверами баз данных, был бы провайдер. Решение типрвое. А идея таже - а-ля Connect-pools Oracle, но "размазанный" в вычислительной среде по её компьютерам.

Хочу для себя уяснить, если клиент-сервер, то типового решения подключения тысяч клиентов к SQL серверу не существует? Или везде Oracle (MSSQL,DB2)?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262888
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевКак я понял в Oracle сей вопрос решен окончательно - тысячи клиентов могут быть обслужены и есть соответствующий инструментарий.
К сожалению, для моих задач не требовалось искать максимума в этом вопросе, поэтому затруднюсь назвать точно достижимую цифру. В тысяче клиентов я уверен; если говорить о 10.000 без кластера - для себя считаю вполне возможным, но не поручусь.

ВМоисеевно как связаны клиентские лицензии и Connect-ы. Сколько будет стоить подобное решение.
Оракловые решения делятся на "очень дорого" и "безумно дорого" :)

При покупке есть выбор между процессорными лицензиями и лицензированием named user-ов; в Вашем случае имеет смысл говорить только о первом варианте. Процессорная лицензия - это от $20.000 на процессор. "До" - затруднюсь точно сказать без залезания на оракловый сайт, видимо в районе 80-100 тысяч.

ВМоисеевНасколько это решение типовое?
Все ли базы данных им оснащены?
Если говорить про Oracle, то все редакции. Если про другие СУБД - очень сомневаюсь, что найдется везде.

ВМоисеевКак отмечал ранее, многозвенка-прототип работает с любыми серверами баз данных, был бы провайдер.
К сожалению, эта идея хорошо работает только на уровне прототипов :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262917
Yo!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у оракла есть встроеный connection pool:

The choices are:

* Basic OCI Sessions

This works by using user name and password over a dedicated OCI server handle. This is the no-pool mechanism. See earlier notes of when to use it.

If authentication is obtained via external credentials, then user name or password is not required.
* Session Pool Sessions

These sessions are from the session pool cache. Some sessions may be tagged. These are stateless sessions. Each OCISessionGet() and OCISessionRelease() call gets and releases a session from the session cache. This saves the server from creating and destroying sessions.

See the earlier notes on connection pool sessions versus session pooling sessions versus no-pooling sessions.
* Connection Pool Sessions

These are sessions created using OCISessionGet() and OCISessionBegin() calls from an OCI Connection Pool. There is no session cache as these are stateful sessions. Each call creates a new session and the user is responsible for terminating these sessions.

The sessions are automatically migratable between the server handles of the connection pool. Each session can have user name and password or be a proxy session. See the earlier notes on connection pool sessions versus session pooling sessions versus no-pooling sessions.
* Sessions Sharing a Server Handle

You can multiplex several OCI Sessions over a few physical connections. The application does this manually by having the same server handle for these multiple sessions. It is preferred to have the session multiplexing details be left to OCI by using the OCI Connection Pool APIs.
* Proxy Sessions

This is useful if the password of the client needs to be protected from the middle-tier. Proxy sessions can also be part of OCI Connection Pool and OCI Session Pool.

http://download-west.oracle.com/docs/cd/B14117_01/appdev.101/b10779/oci09adv.htm#471179
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262923
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>softwarer,
>К сожалению, эта идея хорошо работает только на уровне прототипов ...

Эта идея и на её основе решение конкретной примитивной задачи описанной в статье целиком базируется на .Net Remoting и IIS. Как сам понимаешь, нет у меня достаточно серьёзных опытных данных по их работоспособности. Хотя на IIS функционируют биловские сайты, но согласен - вопрос открыт.

Хорошо,
к Oracle эффективно подключены 1000 удалённых клиентов. Они вводят Login, Password и получают доступ к серверу. Например все клиенты - Guest. Как ограничить их прожорливость и любопытство. Как понимаю, они могут выдавать любые SQL запросы?

В прототипе клиенты в принципе вообще не работают напрямую с SQL предложениями. Это дело промежуточных уровней. Здесь же осуществляется жесткий контроль за действиями клиента.
Как обстоит дело в Oracle? И можно ли считать решения Oracle типовыми для других серверов баз данных.

Решение прототипа тужится на типовость. Клиентское приложение заказывает выполнение требуемых функций сервисами промежуточных уровней. О Connect-aх и SQL предложениях на уровне клиента речи не идет.

Softwarer, мне очень хочется найти те изюминки архитектуры, где эффективна именно многозвенка, где эффективно распараллеливание вычислений.

Валентин мне поставил неуд, как архитектору, за выбор не оптимального решения. Но его лекции слышать не приходилось и прочитать их ни где не могу, хоть бы одним глазком подсмотреть вид функционала. Но профессором не спорят по-пусту, надо знать предмет.

Хотелось услышать мнение наших коллег о том как решены данные вопросы в рамках других серверов данных, да и постановку других вопросов.

С уважением, Владимир.

p.s. Посмотри, уважаемый softwarer, почти страницу исписали, и ни одного грубого слова. Можем же ведь, а ...
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262936
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!!у оракла есть встроеный connection pool:

These sessions are from the session pool cache. Some sessions may be tagged. These are stateless sessions. Each OCISessionGet() and OCISessionRelease() call gets and releases a session from the session cache. This saves the server from creating and destroying sessions.
Сомневаюсь, что эта функциональность работает через ADO provider.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262938
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Специалисты, пожалуйста, прокомментируйте ответ Yo!! для неособо одаренных.
Как понял, разработчики Oracle уделяют должное внимание вопросу построения сессий и взаимодествии их с Connect-ами.
Какая схема из приведенных будет более эффективна для такой задачи - удаленный клиент оформляет свою сессию (Login,Password) и в её рамках выдаёт запрос на построение выборки, получает её на свою станцию и локально урчит над ней. Ни фическая связь не Connect в это время ему не нужны.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262958
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>К сожалению, эта идея хорошо работает только на уровне прототипов ...

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


ВМоисеевХорошо,
к Oracle эффективно подключены 1000 удалённых клиентов. Они вводят Login, Password и получают доступ к серверу. Например все клиенты - Guest. Как ограничить их прожорливость и любопытство. Как понимаю, они могут выдавать любые SQL запросы?
Это два разных вопроса. Ответ на второй - любые в рамках своих прав. Как, собственно, и требуется. Грубо говоря, если Вам даны права исключительно на записи с type=128 из таблицы SomeData - хоть убейтесь, а записей с type=129 Вы не увидите. Ответ на первый - если Вы имеете в виду под прожорливостью потребность в ресурсах - есть соответствующие средства администрирования http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c10rsmgr.htm#CNCPT009

ВМоисеевВ прототипе клиенты в принципе вообще не работают напрямую с SQL предложениями. Это дело промежуточных уровней. Здесь же осуществляется жесткий контроль за действиями клиента.
Поверьте, в этом нет ничего выдающегося. В первую очередь, трехзвенка для этого совершенно не нужна. Во вторую очередь, в "напрямую не работают" нет ничего особенно хорошего. (Только прошу - не надо высыпать стандартный микрософтовский набор преимуществ. Не поручусь за их силу в случае MSSQL - может, для него другие подходы хуже оптимизированы, но в общем случае они критики не выдерживают).

ВМоисеевКак обстоит дело в Oracle? И можно ли считать решения Oracle типовыми для других серверов баз данных.
Указанное спокойно делается и в Oracle, и, насколько я в курсе, в других серьезных БД.

ВМоисеевРешение прототипа тужится на типовость. Клиентское приложение заказывает выполнение требуемых функций сервисами промежуточных уровней. О Connect-aх и SQL предложениях на уровне клиента речи не идет.
Допускаю, что с точки зрения чего-нибудь это безумно красиво. Но за исключением этого, ничего априори впечатляющего в этом нет.

ВМоисеевSoftwarer, мне очень хочется найти те изюминки архитектуры, где эффективна именно многозвенка, где эффективно распараллеливание вычислений.
Хм. Полагаю, направление поиска довольно очевидно, и Вы вполне правильно к нему подошли. Каждое звено - это дополнительные накладные расходы, и при разработке, и при эксплуатации. Следовательно, введение промежуточного звена оправдано там, где существующие звенья будут работать плохо.

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

В моей текущей работе система разрабатывается, как способная работать и в КС, и в трехзвенном вариантах. Точнее, она состоит из "логики на сервере БД", "промежуточного движка", "gui-интерфейса" и "движка web-интерфейса". Детально причины этого потребуется расписывать долго; если коротко - с одной стороны, требуется много разных вариантов работы, в частности интеграция с оракловыми портальными решениями, с другой - именно в таком случае приложение получается наиболее удачным в реализации.

p.s. Посмотри, уважаемый softwarer, почти страницу исписали, и ни одного грубого слова. Можем же ведь, а ...
А что Вас удивляет?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33262989
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый software продолжим обсуждение, хотя откровенно не люблю длинные вопросы и ответы на них.

>В том-то и дело, что переход от решения примитивной задачи к решению более сложных оказывается существенно непримитивен
Даже не знаю, что и сказать. Если есть метадология и инструментарий ...

>Это два разных вопроса ...
Дело в том, что записей с type=128 достаточно много и для одного клиента, не говоря о 1000.

>Поверьте, в этом нет ничего выдающегося.
Думаю, что анализ запроса клиента должен проводиться и именно на промежуточных уровнях, и клиенты не должны знать параметры физического Connect-а.

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

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263055
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевВ том-то и дело, что переход от решения примитивной задачи к решению более сложных оказывается существенно непримитивен
Даже не знаю, что и сказать. Если есть метадология и инструментарий ...
То у них есть "область применимости". В качестве простого примера - из того, что на Бейсике тривиально написать программу в 50 строк, не следует, что на нем тривиально написать программу в 50.000 строк.

ВМоисеев>Это два разных вопроса ...
Дело в том, что записей с type=128 достаточно много и для одного клиента, не говоря о 1000.
Если точнее, их "ровно столько, сколько нужно".

Грубо говоря, в этом вопросе на сервере приложения Вы не сможете сделать ничего, чего нельзя легко и просто сделать непосредственно в БД. Мало того, решение уровня БД заведомо надежнее, поскольку хакер, сломавший вход (например, нашедший место для SQL injection) тем не менее не сможет получить неограниченный доступ к данным, как было бы, если бы защита была сосредоточена на промежуточном уровне.

ВМоисеев>Поверьте, в этом нет ничего выдающегося.
Думаю, что анализ запроса клиента должен проводиться и именно на промежуточных уровнях, и клиенты не должны знать параметры физического Connect-а.
Я нисколько не собираюсь влиять на Ваше мнение. Просто названное Вами - аргументы из серии "я плохо знаю возможности СУБД и поэтому трехзвенка дает мне запрограммировать многое из того, что как потом окажется уже запрограммировано в СУБД".

ВМоисеевБолее того, это единственный способ построения реальных систем управления технологическими процессами.
Что Вам сказать.. считайте, что единственный.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263094
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>software,
>Грубо говоря, в этом вопросе на сервере приложения Вы не сможете сделать ничего ...

Как же так,
все возможности сервера баз данных работающих на конкретного клиента доступны и серверу приложений. Он не подменяет сервер данных, а только дополняет. Но сервер приложений имеет также доступ к сессии клиента и имеет возможность проверить данные и сформировать! сиквел запрос на сервер данных.
Если проанализировать архитектуру прототипа, то станет ясно, что хакеру весьма проблематично добраться даже до КриптоСервера, неговоря уж за сервер данных.
В этом вопросе согласиться с Вами не могу.

>Если точнее, их "ровно столько, сколько нужно".
Не совсем понимаю как. Если разрешен гостевой доступ, то запрос, например, показать все лекарства во всех аптеках Твери, будет доступен для всех в случае прямого доступа к базе данных.
Промежуточный же уровень прототипа передаст клиентской станции только станицу данных, как бы тот не изголялся. И это верно для любых!, подчеркиваю, серверов баз данных имеющих соответствующий провайдер.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263105
Yo!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев
Не совсем понимаю как. Если разрешен гостевой доступ, то запрос, например, показать все лекарства во всех аптеках Твери, будет доступен для всех в случае прямого доступа к базе данных.
Промежуточный же уровень прототипа передаст клиентской станции только станицу данных, как бы тот не изголялся. И это верно для любых!, подчеркиваю, серверов баз данных имеющих соответствующий провайдер.


не будет :) в оракле есть row level security с которым фокус не пройдет.
а по поводу спора - это что-то типа самолет vs поезд, хз что круче, самолет везде пролетит, но поезд надежней ;)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263155
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>Грубо говоря, в этом вопросе на сервере приложения Вы не сможете сделать ничего ...
Веселая получилась цитата :)

ВМоисеевКак же так,
все возможности сервера баз данных работающих на конкретного клиента доступны и серверу приложений. Он не подменяет сервер данных, а только дополняет. Но сервер приложений имеет также доступ к сессии клиента и имеет возможность проверить данные и сформировать! сиквел запрос на сервер данных.
Верно. Вы доказали, что множество возможностей AS+RDBMS >= множества возможностей RDBMS. Но Вы не доказали соотношения "строго больше". И если оставаться в рамках такой системы - не докажете, потому что оно не выполняется.

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

ВМоисеевЕсли проанализировать архитектуру прототипа, то станет ясно, что хакеру весьма проблематично добраться даже до КриптоСервера, неговоря уж за сервер данных.
В этом вопросе согласиться с Вами не могу.
С чем Вы не согласны? Ваше возражение - "и так будет трудно". Возможно, так и есть. Но тем не менее, мое утверждение элементарно доказывается сугубо формально. Это чуть ниже.

Но Вы не обратили внимания - я не зря упомянул SQL injection. Этот метод взлома замечателен тем, что он собственно не требует проникновения хакера куда-нибудь (дальше пользовательского интерфейса). Это очень элегантный, "чистый" метод, против которого бессильна любая "общая" защита, за исключением ограничения прав на уровне сервера БД.

ВМоисеев
>Если точнее, их "ровно столько, сколько нужно".
Не совсем понимаю как. Если разрешен гостевой доступ, то запрос, например, показать все лекарства во всех аптеках Твери, будет доступен для всех в случае прямого доступа к базе данных.
Запрос - будет доступен. И вернет только лекарства, разрешенные для "гостя" из аптек, разрешенных для "гостя".

ВМоисеевПромежуточный же уровень прототипа передаст клиентской станции только станицу данных, как бы тот не изголялся.
Правильно. Вопрос - каких данных. Единственный SQL injection - и "все лекарства всех аптек" у меня в кармане. Это, конечно, несколько утрировано - потрудиться таки придется.

ВМоисеевИ это верно для любых!, подчеркиваю, серверов баз данных имеющих соответствующий провайдер.
И что из этого? Назвать СУБД, где этого проблематично добиться встроенными средствами, довольно сложно. Возможно, MySQL.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263160
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Централизованное хранилище данных, удаленные сервера, веб-сервисы, SOAP процедуры.

1. Центарлизованные хранилища - это совершенно иной способ интеграции, который абсолютно для других задач, а не наших. Задачи с релаьным временем с хранилищами не работают

2. что имеется в виду под удаленными серверами не понятно
3. веб-службы (и SOAP - это же одно и тоже) - это и есть серверы приложений - , которые релаимзуют интеграцию. Это отдельный слой, а как имнено он реализован - веб-служьбами, приложениями, сервисами и т.п. не имеет значения.
ASCRUS

Интеграция приложений с другими компонентами неплохо выглядит и на клиенте. Вроде как COM и OLE никто не отменял. Чем серверная компонента будет лучше ХП и почему к ней легче обращаться, чем к ХП вопрос не понятный. Если уж приложение не должно напрямую обращаться к БД, ну сделайте Вы SOAP сервис на ХП и вызывайте ХП как веб-сервис. Для ADO.NET Вам вообще полноценный DATASET вернут сразу в XML как родной. У нас БД сами тянут и курсы валют с ЦБ и новости с Яндекса и каталоги товаров с других сайтов, на которых открыты веб-сервисы, пару строчек кода на WatcomSQL и никаких звеньев, тут даже и клиент то не участвует. Да и помощь кстати по тому же HTTP клиентам БД и выбрасывает.


Еще раз - веб-службы - эт о отдельный слой. Можно и на COM делать, если у вас только Windows - у нас не так. Мне кажется , вы почему-то сичтате веб-службы частью СУБД.

ASCRUS
Опять же удаленные сервера с прокси-хранимыми процедурами, веб-сервисы или репликация, если все БД на ASA (тут вообще для удаленных БД, что изменение схемы БД, что управление пользователями, что администрирование - вопрос кода не стоит, за бугром существуют консолидированные БД, у которых только до 10 000 удаленных БД, связанных через репликацию и как то никто не напрягается).

чувствует веб-сервыисы прямо магичесоке слово. Ну используем мы их ;))) Даже чаще, чем хотелось, но считаем их третьим слоем.
Но не понятно Ваше предолжение. как удаленные серверы помогут в решении проблем поддержки в актулаьн6ом состоянии порядка 15 тыс. пользователей, когда 5 тыс обновляется каждый год ? У нас учетные записи создаются автоматически и права им назначаются автоматически. И соответсвенно ресурсы им доступные актуализируются автоматически и при измении ресурсов парва уже созданные меняюися автоматически. Но создавать 15 тыс. пользователей в базе данных ..Да и по поводу никто не напрягается ... если человек нормально работает, то напрягается - хоть одна база , хоть 10 тыс.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263167
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К
1. Это не причина. Причину можно не только обойти, а просто решить этот вопрос на более высоком уровне. Например создать хранилище данных, куда сыпать сервисами разные данные, приводя их к централизованной концепции хранения. Причины просто не возникнет для звена, которое интегрирует запросы на уровне логики, а не на уровне данных.

2. 2 раза прочитал, и не совсем понял причину. Ну и что что ХП, или однотипные действия... можно на динамик-sql сделать все необходимые манипуляции.

3. Вообще причина выносить логику в 3-е звено не просматривается. Делать вручную - это не причина, она достаточно легко решается хп для регистрации и пр. стартовых параметров для нового пользователя. А поддержка актуальности - так ее легче реализовывать в централизованных хранилищах. Тогда будет 1 место, которое нужно поддерживать в наиболее актуальном состоянии...

1. Причина, см. ответ ARCUS. Создание хранилища кроме того, это не более выкоий , а более низкий уровень.
2. Не удобно нам, а Вы умеете из ХП вытягивать данные из Лотуса ? мы нет, нам проще сделать веб-службу, чтобы она вытянула.
3. Пользователь создатемся автомтаически, ему автомтаически же назначюатся права при регистрации в зависимости от его прав в организации, кроме этих прав у него есть права и в других системах, например, в сети, регистарция одна. Давать права на таблицы, когда можно оперировать абстракциями на уровне предметной области, это не наш путь, мы идем вторым путем.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263182
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrame1. Центарлизованные хранилища - это совершенно иной способ интеграции, который абсолютно для других задач, а не наших. Задачи с релаьным временем с хранилищами не работают
Согласен.

MainFrame2. что имеется в виду под удаленными серверами не понятно
Механизм Remote Server и прокси-обьекты. Если сервера различных СУБД находятся в зоне прямой видимости, то они спокойно могут между собой общаться, видеть таблицы, вызывать ХП, без какого либо дополнительного ПО.


MainFrame3. веб-службы (и SOAP - это же одно и тоже) - это и есть серверы приложений - , которые релаимзуют интеграцию. Это отдельный слой, а как имнено он реализован - веб-служьбами, приложениями, сервисами и т.п. не имеет значения.
...
Еще раз - веб-службы - эт о отдельный слой. Можно и на COM делать, если у вас только Windows - у нас не так. Мне кажется , вы почему-то сичтате веб-службы частью СУБД.
Я не считаю. Веб-службы и есть часть СУБД ASA 9, которая может работать как веб-сервер и осуществляет полноценную поддержку собственно описанных на WatcomSQL веб-служб и доступ к сторонним веб-службам. Пара строчек кода и мы прямо с БД всегда имеем курс валют с ЦБ или же собственную ХП обвязываем как SOAP процедуру и позволяет внешним клиентам по тому же 80-му порту ее вызывать и получать данные (иногда хорошая замена Remote Server). Я не спорю, что кроме ASA по моим сведениям пока никто не имеет такой интегрированной и легкой поддержки веб-служб, но ... в том же MSSQL2005 я думаю эмулировать ее через встроенный C# не будет предоставлять таких уж больших трудностей.

MainFrameНо не понятно Ваше предолжение. как удаленные серверы помогут в решении проблем поддержки в актулаьн6ом состоянии порядка 15 тыс. пользователей, когда 5 тыс обновляется каждый год ? У нас учетные записи создаются автоматически и права им назначаются автоматически. И соответсвенно ресурсы им доступные актуализируются автоматически и при измении ресурсов парва уже созданные меняюися автоматически. Но создавать 15 тыс. пользователей в базе данных ..Да и по поводу никто не напрягается ... если человек нормально работает, то напрягается - хоть одна база , хоть 10 тыс.
Гм, а чем плохо создать сколько нужно групп прав доступа и уже по этим группам создавать в БД 15 000 пользователей ? Так же при назначении пользователю нужной группы (групп) ему будут автоматически присвоены все нужные права, при изменении грантов в группе всем пользователям этой группы они так же автоматом будут изменены. Дополнительную защиту, выходящую за рамки грантов СУБД, элементарно реализовать через ХП и триггера.
Для удаленных БД, связанных репликацией, можно не напрягаясь организовать репликацию пользователей между всеми БД (у меня так и сделано, вплоть до изменении пользователем пароля в одной БД, он автоматом меняется на его логин в других БД, так что этот пользователь, даже уехав в самый удаленный офис, спокойно войдет в их БД под своим логином и новым паролем и имея достаточно прав доступа к информации этого узла, сможет работать). Однако для "смешанных" БД разных производителей, организовывать все придется через Remote Server, написав те же ХП, через которые создаются пользователи и вызываются ХП удаленных серверов для проведения аналогичных операций (да и по любому придется писать ХП, кто же даст обычному логину пользователя, пусть и администратора, полные права DBA, вся логика пользователя-администратора будет заложена в соотвествующие ХП, которые и будут разрешаться на выполнение таким администраторам, сами они не смогут не имея прав DBA сделать что нибудь выходящее за логику, предусмотренную разработчиками БД).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263191
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай те малость итоги подведем. Мое личное мнение:
1. Права доступа однозначно должны быть реализованы в БД, даже если они есть где то еще (вынесены в звено).
2. Если БД что то умеет, то смысла делать "свое" не имеет. Лишний код, лишние проблемы, лишние ошибки, больше проблем в сопровождении.
3. Перед тем как делать многозвенку неплохо бы ознакомиться со всеми возможностями используемого СУБД. Стоит помнить, что полностью скрывая БД своим слоем, мы не только добавляем функциональности, но и срезаем универсальность. Думаю не стоит обьяснять, что БД никуда не девается и при расширении или изменении схемы БД, гораздо легче и быстрее написать или изменить ХП в БД, чем дополнительно возится с скрывающим реализацию звеном.
Соответствующе если поставленная задача не может быть целиком решена средствами СУБД, тогда имеет смысл ввода в действие сервера приложений. Однако для меня остается вопросом - а стоит ли буквально все обвязывать слоем и вводить запрет на доступ к БД клиентских приложений ? Не легче ли реализовать только то, чего действительно не хватает, оставив остальное в логике самой БД ?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263310
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Нет у меня задач с такими нагрузками. Однако помня ограниченность SQL в MySQL и отсутствие ХП могу предположить (глядя на друзей PHP-шников), что на ASA такое кол-во запросов уменьшится волшебным образом. Или у Вас 2000 сессий одновременно в секунду такое кол-во запросов шлют ? Насчет бета-версии ничего говорить не буду, в ASA с момента ее создания (это 1988 год) изначально были поддержка транзакций, лог-файла, прямых соединений и подзапросов. Поэтому говорить, что вот в 21-веке радоваться, что какая то СУБД решилась таки обзавестись транзакциями по крайней мере странно. Видимо для тех областей, где MySQL применяется, транзакции то особо и не нужны. Не удивлюсь, если народ останется на 4-ой проверенной версии :)

Не согласен, транзакции в MySQL с версии 3.23.44
Из мануала:
Beginning with MySQL 4.0, InnoDB is enabled by default, so the following information applies only to MySQL 3.23.
InnoDB tables are included in the MySQL source distribution starting from 3.23.34a and are activated in the MySQL-Max binaries of the 3.23 series. For Windows, the MySQL-Max binaries are included in the standard distribution.

У меня пока нет такой нагрузки. На порталах yahoo и др. бывает подобная нагрузка, и ничего выдерживает, хотя железо там не самое продвинутое.
Стаблилизация MySQL AB обычно делает с начала беты примерно за 6-12 месяцев. Так что о каком-то отдаленном будущем речь не идет. Причем, если не сильно издеваться над триггерами и процедурами, версия например 5.0.10 ведет себя очень корректно.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263377
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrame Валентин К
1. Это не причина. Причину можно не только обойти, а просто решить этот вопрос на более высоком уровне. Например создать хранилище данных, куда сыпать сервисами разные данные, приводя их к централизованной концепции хранения. Причины просто не возникнет для звена, которое интегрирует запросы на уровне логики, а не на уровне данных.
2. 2 раза прочитал, и не совсем понял причину. Ну и что что ХП, или однотипные действия... можно на динамик-sql сделать все необходимые манипуляции.

1. Причина, см. ответ ARCUS. Создание хранилища кроме того, это не более выкоий , а более низкий уровень.
2. Не удобно нам, а Вы умеете из ХП вытягивать данные из Лотуса ? мы нет, нам проще сделать веб-службу, чтобы она вытянула.


1. По хранилищу: его можно поставить в централизованную репликацию по отнощению к оперативным БД. Что вы тогда скажете об актуальности? если фактически в правильно спланированном хранилище добыть нужную информацию окажется чутьли не быстрее чем в оперативном? я имею ввиду постоение сложных отчетов. И это не будет мещать работе операторов.
2. Из лотуса проще тянуть(толкать) самим лотусом :) как ни странно, инструментария там хватает. А если лень читать энциклопедию программиста под домино, можно написать сервис, который просто из лотусовской базы будет вытягисать нужную информацию. Можно ли такой сервис отнести к 3-му промежуточному звену, если он не работает с клиентом? мое мнение - нет. Сервисных служб подвожных хватает во всяких реализациях, и никто не считает их многозвенным 3-м звеном. Например листенер в ORACLE - служба, но она не является 3-м звеном. Специ по ORACLE ответят, что она нужна для прослушивания порта и перенаправлении запрососв на коннект другой служба БД.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263552
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К
1. По хранилищу: его можно поставить в централизованную репликацию по отнощению к оперативным БД. Что вы тогда скажете об актуальности? если фактически в правильно спланированном хранилище добыть нужную информацию окажется чутьли не быстрее чем в оперативном? я имею ввиду постоение сложных отчетов. И это не будет мещать работе операторов.
2. Из лотуса проще тянуть(толкать) самим лотусом :) как ни странно, инструментария там хватает. А если лень читать энциклопедию программиста под домино, можно написать сервис, который просто из лотусовской базы будет вытягисать нужную информацию. Можно ли такой сервис отнести к 3-му промежуточному звену, если он не работает с клиентом? мое мнение - нет. Сервисных служб подвожных хватает во всяких реализациях, и никто не считает их многозвенным 3-м звеном. Например листенер в ORACLE - служба, но она не является 3-м звеном. Специ по ORACLE ответят, что она нужна для прослушивания порта и перенаправлении запрососв на коннект другой служба БД.
1. Хранилище никогда не достигнет необходимой актуальности, цель у него другая . Меня не сложные отчеты волнуют, а работа "операторов". В одной системе данные вносят, а вдругой они должны быть СРАЗУ видны, иначе клиент уйдет.
2. что значит толкать лотусом, если работает совсем не лотусовский клиент? да и написано в энциклопедии, что наилучший способ интеграции с лотусом - написать на java веб-службы и интегрируйся на здоровье.
3. спор перешел на виток "есть ли жизнь на Марсе" или что считать третьим слоем. Все умываю руки, проявив солидарность с последним постом ARCUS.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263617
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MainFrame
1. Хранилище никогда не достигнет необходимой актуальности, цель у него другая . Меня не сложные отчеты волнуют, а работа "операторов". В одной системе данные вносят, а вдругой они должны быть СРАЗУ видны, иначе клиент уйдет.
2. что значит толкать лотусом, если работает совсем не лотусовский клиент? да и написано в энциклопедии, что наилучший способ интеграции с лотусом - написать на java веб-службы и интегрируйся на здоровье.

1. Все зависит от задач. Клиент не уйдет, если ему сделать то что он хочет (относящееся к ИТ). Когда база небольшая - тогда хранилище не нужно. Когда база у вас будет хотябы 50-100 млн. записей в нескольких основных таблицах (какие это таблицы - зависит от предметной области), тогда мнение может поменятся. При таких объемах ошибки технологий проектировки и др. становятся видны, и теоретические высказывания о том, что должно быть и как лучше - на практике получаются не совсем ожидаемые результаты.
2. Смотря что интегрировать, если вытягивать данные из лотуса в другую БД, тогда зачем веб-служба? Опять же все зависит от задач. Это не критика, а просто попытка смотреть на вещи с различных точек зрения.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263623
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSДавай те малость итоги подведем. Мое личное мнение:
1. Права доступа однозначно должны быть реализованы в БД, даже если они есть где то еще (вынесены в звено).
2. Если БД что то умеет, то смысла делать "свое" не имеет. Лишний код, лишние проблемы, лишние ошибки, больше проблем в сопровождении.
3. Перед тем как делать многозвенку неплохо бы ознакомиться со всеми возможностями используемого СУБД. Стоит помнить, что полностью скрывая БД своим слоем, мы не только добавляем функциональности, но и срезаем универсальность. Думаю не стоит обьяснять, что БД никуда не девается и при расширении или изменении схемы БД, гораздо легче и быстрее написать или изменить ХП в БД, чем дополнительно возится с скрывающим реализацию звеном.
Соответствующе если поставленная задача не может быть целиком решена средствами СУБД, тогда имеет смысл ввода в действие сервера приложений. Однако для меня остается вопросом - а стоит ли буквально все обвязывать слоем и вводить запрет на доступ к БД клиентских приложений ? Не легче ли реализовать только то, чего действительно не хватает, оставив остальное в логике самой БД ?
Согласен.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263726
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>softwarer,
>Запрос - будет доступен. И вернет только лекарства, разрешенные для "гостя" из аптек, разрешенных для "гостя".

Но объем данной информации очень большой и для одного клиента, не говоря уже о 1000 одновременно.

Функция row security не есть де факто для других типов баз данных. Проме жуточный уровень нивелирует это различие. Для этих целей использовал и битовое поле и дополнительную таблицу. Только клиентов группировал. И ограничение доступа групп к строкам.

Судя по тому, что коллеги говорят про Oracle, это уже не просто база данных, в неё встраиваются возможности операционной системы. Нужно ли это? Да и не все дороги ведут в ... Oracle.

C уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263895
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSДавай те малость итоги подведем. Мое личное мнение:
Целиком согласен. Что, наверное, неудивительно.

ASCRUSОднако для меня остается вопросом - а стоит ли буквально все обвязывать слоем и вводить запрет на доступ к БД клиентских приложений ? Не легче ли реализовать только то, чего действительно не хватает, оставив остальное в логике самой БД ?
С моей точки зрения опять же вопрос в пропорциях. В моем конкретном случае удобнее знать, что "все остальное приложение" пользуется исключительно методами нескольких основных объектов-менеджеров, ну и возвращаемыми ими объектами. Логика в БД при этом является "движком для движка", то есть вызывать ее непосредственно с клиента просто незачем по смыслу задачи. Другой вопрос - если третье звено на 90% состоит из тривиальных процедур вида "передать полученные параметры в ХП и вернуть ее результат обратившемуся" - в таком промежуточном звене смысла... много меньше.

Есть такое понятие - dumb код; "тупой" код, например, всевозможные автосгенерированные функции, stub-ы и прочее. С моей точки зрения, количество dumb кода в приложении прямо пропорционально dumbовости самого решения.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263930
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>softwarer,
>Запрос - будет доступен. И вернет только лекарства, разрешенные для "гостя" из аптек, разрешенных для "гостя".

Но объем данной информации очень большой и для одного клиента, не говоря уже о 1000 одновременно.
Не понял, на что это влияет. Объем информации - величина объективная; если по смыслу задачи ее надо целиком передать на клиента - значит, ее надо передать на клиента. Если не надо - никто передавать не будет.

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

ВМоисеевФункция row security не есть де факто для других типов баз данных.
Именно что есть де факто, только реализация может различаться. Делается везде, где есть понятие "view" или "ХП, возвращающая набор данных", то есть на сегодняшний день - практически везде.

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

ВМоисеевСудя по тому, что коллеги говорят про Oracle, это уже не просто база данных, в неё встраиваются возможности операционной системы.
Затрудняюсь как-либо понять Ваше высказывание.

ВМоисеевНужно ли это? Да и не все дороги ведут в ... Oracle..
Безусловно, не все. Но мои ответы нисколько не относятся "только к Oracle". Не говоря уже о том, что вопрос, на который я стал отвечать, был именно о нем.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263938
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При создании многозвенки лучше по максимуму использовать возможности СУБД - если только нет цели "максимальная переносимость". Иначе запросто может получится медленное приложение, которое будет очередным примером из серии "как не нужно делать многозвенки".
У нас база (MSSQL2k) оптимизирована по максимуму (хотя все же есть еще что улучшить, этим я и занимаюсь), стоит на недешевом кластере (~100k$). Рядом с компьютером SQL Server-a стоят еще немало других компьютеров, попроще, на которых работают компоненты сервера приложений. Все что можно сделать с удовлетворительным результатом в SQL Server, делается в базе. Все что не получается сделать - выносится на уровень сервера приложения. Основные причины почему что-либо не получается сделать на уровне СУБД - либо недостаточная скорость, например из-за сложных расчетов или из-за того что требуется какая-либо информация в режиме реального времени, либо необходимость взаимодействия с внешними компонентами - причем у нас взаимодействие с внешними компонентами тоже очень чувствительное к скорости.
Еще немного о скорости. Большинство когда говорят о скорости подразумевают скорее что-то вроде "80% типовых запросов должны быть выполнены не более чем за столько то времени, для 20% допустимы задержки". У нас в системе это не так - 100% запросов должны быть обработаны менее чем за 100 мс. По каждому случаю, когда выполнение какой-либо транзакции превысило это время, проводится изучение причин почему это произошло. Требования к производительности - система должна выдерживать поток в 1000 ордеров в секунду.
Система очень нетипичная, и как обойтись в этом случае без многозвенки я не вижу. Скажу банальность - многозвенки нужно применять только тогда когда без них сложно обойтись. Это либо требования к работе в режиме близком к режиму реального времени, либо сложные расчеты, либо взаимодействие с другими системами.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263944
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>softwarer,
Но объем данной информации очень большой и для одного клиента, не говоря уже о 1000 одновременно.
Функция row security не есть де факто для других типов баз данных. Проме жуточный уровень нивелирует это различие. Для этих целей использовал и битовое поле и дополнительную таблицу. Только клиентов группировал. И ограничение доступа групп к строкам.
Судя по тому, что коллеги говорят про Oracle, это уже не просто база данных, в неё встраиваются возможности операционной системы. Нужно ли это? Да и не все дороги ведут в ... Oracle.
C уважением, Владимир.
Есть такие мысли.
Для ORACLE это уже как полгода модная тема - Виртуальные частные базы. Тема то модная, только реализации ее мне не нравятся.
Тема скрытия на уровне строк не нова в принципе уже давно. Просто так работать в этом направлении не стоит, но если действительно задача такая стоит, тогда реализовать ее можно на любом сервере БД, например с помощью Вьюха+хранимая функция, или запрос + хранимая функция.
Смысл этой хранимой функции для строки найти по признаку возможность видимости строки. В реальной работе для сервера это достаточно напряжное действо. Поэтому изучив все детали задачи иногда выкручиваются на частных случаях.

И еще замечание о кол-ве одновременных клиентов. Если под клиентами подразумеваются соединения в серверу БД, то почти для всех серверов это совсем не страшно, сколько их будет (обычно есть пороги подтормаживания от кол-ва коннектов к БД даже пассивных, кроется это в реализации изоляции транзакций в разных серверах БД). Нагрузка зависит как всегда от кол-ва активных завпросов отрабатывающий в данный момент времени.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263949
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевПромежуточный уровень нивелирует это различие.
Видите ли в чем дело, это та палка, которая, как известно, бьет обоими концами. "Нивелирует" - это не только, не столько и далеко не всегда "хорошо".

Как пример - метрах в трех от меня лежит книга "Эффективное программирование на Java" Брюса какого-то. В главе про кэширование он сначала долго рассказывает, как это хорошо, потом приводит код - и этот код можно прямой наводкой вставлять в главу Кайта "как не надо программировать для Oracle". Потому что он прежде всего - вырубает весь эффект от кэша БД, дальше пытается построить собственный, гораздо менее эффективный :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33263977
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmЕще немного о скорости. Большинство когда говорят о скорости подразумевают скорее что-то вроде "80% типовых запросов должны быть выполнены не более чем за столько то времени, для 20% допустимы задержки". У нас в системе это не так - 100% запросов должны быть обработаны менее чем за 100 мс. По каждому случаю, когда выполнение какой-либо транзакции превысило это время, проводится изучение причин почему это произошло. Требования к производительности - система должна выдерживать поток в 1000 ордеров в секунду.

Когда строк станет хотя-бы 5 млн, MSSQL не удержится на пороге 100мс, это в принципе понятно, от природы его работы с данными, тогда что? переписывать базу? 1000 ордеров в секунду - это что 1000 документов с 1-несколько строками в 1 секунду вставляются? как происходит внесение документа? через буфер с последующей вставкой 1-й транзакцией? В вашей ситуации высокоскоростная планировка всех действий системы просто необходима - иначе будет как обычно.
Рад за то что вы поставили высокую планку, вот хватит ли сил справится... в общем сразу скажу - удачи !!!
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264017
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К В вашей ситуации высокоскоростная планировка всех действий системы просто необходима - иначе будет как обычно.
Рад за то что вы поставили высокую планку, вот хватит ли сил справится... в общем сразу скажу - удачи !!! Система находится не в стадии проектирования/разработки, она работает.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264028
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsm Валентин К В вашей ситуации высокоскоростная планировка всех действий системы просто необходима - иначе будет как обычно.
Рад за то что вы поставили высокую планку, вот хватит ли сил справится... в общем сразу скажу - удачи !!! Система находится не в стадии проектирования/разработки, она работает.
Известная ситуация, которая на практике приводила к перепроектированию системы "на лету". Я так и понял, что система запущена. Поэтому и написал такую аннотацию.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264038
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsm Валентин К В вашей ситуации высокоскоростная планировка всех действий системы просто необходима - иначе будет как обычно.
Рад за то что вы поставили высокую планку, вот хватит ли сил справится... в общем сразу скажу - удачи !!! Система находится не в стадии проектирования/разработки, она работает.
(с)запустить систему в эксплуатацию - не значит удержать быстродейсвие системы в процессе долгосрочной работы.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264445
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Валентин,
>И еще замечание о кол-ве одновременных клиентов. Если под клиентами подразумеваются соединения в серверу БД, то почти для всех серверов это совсем не страшно, сколько их будет ...

А как же замечание Yo! про пулы соединений. Да и MSSQL также о них говорят. А реально сколько соединений в пуле.

И всетаки хочу получить ответ на свой вопрос.
Если информационная система по схеме клиент-сервер и не используя промежуточный слой для формирования сиквел предложений серверу данных, то с любой клиентской станции могу выдать на сервер запрос построения выборки из всех доступных строк очень большой таблицы и получить очень большую выборку. И допустимо, что это сделают одновременно 1000 клиентов.
Некоторые разработчики делают инстументы построения сиквел предложений у клиента.
Информация должна быть передана клиентам. Что происходит с пулами соединений и сессий. Они заняты?
В прототипе этот вопрос решается формированием сервером данных страницы ограниченного размера по запросу КриптоСервера, передаче ее КриптоСерверу и запрос конкретного клиента частично обработан. Сервер данных от клиента свободен.

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

А как же замечание Yo! про пулы соединений. Да и MSSQL также о них говорят. А реально сколько соединений в пуле.

Это речь о пуле в ORACLE. Каждый сервер БД справляется с этим вопросом по разному, но всегда есть советы по конкретному серверу БД, как оптимизировать это дело.
Для примера в MySQL кол-во одновременных подключений ограничено только переменной сервера, конечно, кол-во выделенной памяти растет на стороне сервера с каждым подключением, но это не существенно на самом деле. Значительно больше нагрузки сервер тратит смотря от реализации изоляции транзакций, нежели от самого соединения.
Вобщем если планируется большое кол-во подключений - нужно выбирать сервер, который может быстро выполнять подключение новой сессии пользователя, хорошо "чувствует" себя при большом кол-ве подключений.
На самом деле ради только этого я бы не писал промежуточное 3-е звено, которое будет собирать эти соединения, т.к. это не правильно. В коннекте каждого клиента могут быть объявлены различные переменные, временные таблицы, которорые для каждого должны быть "видны" только в его сессии.
Опять же вернусь к ORACLE - в нем лучше не работать со временными таблицами, потому что он долго их создает, уничтожает, вобщем это для него сильно дорогостоящие манипуляции. В MSSQL, MySQL - это особо не обременят сервер, отработка происходит очень быстро и удаление тоже. На практике в этих серверах юзают временные таблицы просто и естественно.

Так что универсальной таблетки не получится, т.е. болезнь может исчезнуть, если выбирать саму ее причину(с).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264542
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевЕсли информационная система по схеме клиент-сервер и не используя промежуточный слой для формирования сиквел предложений серверу данных, то с любой клиентской станции могу выдать на сервер запрос построения выборки из всех доступных строк очень большой таблицы и получить очень большую выборку. И допустимо, что это сделают одновременно 1000 клиентов.
Можно. Если вдруг это полагается неправильным - например, бессмысленно пытаться передавать такую выборку по плохому каналу - можно ввести ограничители либо - не знаю, как сказать по-русски - paginators, оставаясь в КС.

ВМоисеевИнформация должна быть передана клиентам. Что происходит с пулами соединений и сессий. Они заняты?
Для оракла - я Вам ответил. Судя по моему эксперименту, fetch данных не требует удержания соединения. Не проверял, но полагаю, что при очень длинном фетче будут повторные обращения к серверу за следующей порцией данных (с конкуренцией на общих началах).

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

В любом случае, такой же механизм беспроблемно делается внутри БД и получается скорее более эффективным (за счет отстутствия дополнительной перекачки данных).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264559
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К
Опять же вернусь к ORACLE - в нем лучше не работать со временными таблицами, потому что он долго их создает, уничтожает,
Какой ужас :((

To ВМоисеев :

следует читать так: в Oracle надо работать со временными таблицами так, как правильно для Oracle. Для некоторых задач, решаемых в MSSQL и подобных серверах через временные таблицы, в Oracle стоит использовать коллекции.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264634
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Валентин К
Опять же вернусь к ORACLE - в нем лучше не работать со временными таблицами, потому что он долго их создает, уничтожает,
Какой ужас :((
To ВМоисеев :
следует читать так: в Oracle надо работать со временными таблицами так, как правильно для Oracle. Для некоторых задач, решаемых в MSSQL и подобных серверах через временные таблицы, в Oracle стоит использовать коллекции.
Не буду спорить с гиперпрофи по ORACLE, замечу только, что видел реализацию не через коллекции, например в Парус 8.5.1
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264667
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КНе буду спорить с гиперпрофи по ORACLE, замечу только, что видел реализацию не через коллекции, например в Парус 8.5.1
Коллекции - не панацея, и не для всех задач их стоит использовать.

Что касается Паруса - если хотите, поищите в форуме Oracle мнение администраторов о качестве этой системы. Найдете много мата :) Сам я с ней не сталкивался и соответственно ровным счетом ничего сказать не могу.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33264676
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Валентин КНе буду спорить с гиперпрофи по ORACLE, замечу только, что видел реализацию не через коллекции, например в Парус 8.5.1
Коллекции - не панацея, и не для всех задач их стоит использовать.

Что касается Паруса - если хотите, поищите в форуме Oracle мнение администраторов о качестве этой системы. Найдете много мата :) Сам я с ней не сталкивался и соответственно ровным счетом ничего сказать не могу.
Я же не говорил, что Парус - хорошая система :) лично послал эту организацию с ее гиперпродуктом вдаль.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33265771
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Валентин
>На самом деле ради только этого я бы не писал промежуточное 3-е звено, которое будет собирать эти соединения, т.к. это не правильно. В коннекте каждого клиента могут быть объявлены различные переменные, временные таблицы, которорые для каждого должны быть "видны" только в его сессии.

Не совсем так.
Архитектура многозвенки в моем представлении.
Клиентская часть занимается графическим отображением информации из лоальной базы данных - DataSet.
Для её получения следует запрос ( идентификатор функции и параметры, но не сиквел предложение, сжатое, шифрованное с идентификатором сессии в понятии логики бизнес-уровня, у меня КриптоСервер) на следующий коммуникационный уровень. Это либо IIS, либо .Net Remoting сервер. Их сервисы выполняют примитивные функции: поддерживают физическую связь с клиентом на время обработки запроса и работают с абонентскими ящиками, выполняющие функции демфера и развязки. Кладут запрос в ящик и ждут ответа.
С другой стороны, абонентские ящики опрашивают КриптоСервера, получают запрос, дешифрируют и декомпрессируют, строят сиквел предложение и передают на сервер данных. Они ни как не ограничивают возможности серверов данных и их настройки и используют их наилучший, оптимальный вариант. Промежуточный слой КриптоСерверов осуществляет функцию посредника - что хорошо для клиента, хорошо и для КриптоСервера.
Их число определяется информационной нагрузкой. И значительно (в десятки раз) меньше числа активных клиентов.
Затем Крипто получают выборку, сжимают, шифруют и кладут в абонентский ящик.
КриптоСервер, абонентский ящик - это сервисы, и могут располагаться в любом месте вычислительной среды (на любом компьютере с установленноы Framework).
Повторяюсь, нагрузка на процессор операций сжатия и шифрования ничуть не меньше, чем выборка данных. А при достаточной длине ключа шифрования, может и значительно превзойти эту величину. Так что распараллеливание этих операций считаю разумным актом.
И подход к построению информационных систем становится типовым, и мало зависит от типа сервера данных (и в некотором смысле и от его функциональных возможностей - нет требуемой функции, реализуем на промежуточном уровне).
В прототипе строятся не пулы сессий и соединений (хотя и используют их, если это дает какое-то качество), но "пулы" запросов/ответов.

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

Я противник "размазывания" теории по непонятным задачам. Например, зачем IIS, если информация не обображаетя на страничках броузера? и пр.
Все зависит от конкретной задачи.
Вопрос шифрования в подавляющем большинстве случаев значительно легче обрабатывается сервером, чем запросы в аналитические отчеты на большом объеме данных.
Например zlib - библиотечка паковки на лету работает легко на стримах, на практике практически не заметно, что сервер сжимает информацию в коннектах на загрузке процессора.
Для конкретной задачи можно выписать "узкие" места и те вопросы, которые могут грузить сервер предположительно в список. И просто с ним поработать. Это ускорит путь к оптимальному решению в проектироке и как всегда не следует забывать об имеющихся мощностях команды и сроках.
Повторюсь: все что делает сервер БД, либо другие зарекомендованные сервисы - я считаю нецелесообразным выносить в отдельное звено.
Что касается доступа к серверу вебсервером для генерации страниц - это отдельная тема, и в разных серверах может быть решена, а может быть и нет. Тогда тоже нет смысла выдумывать велосипед. Собственно брать и делать вебпроект на тех мощностях, которые имеются - это поможет избежать различного рода извращений в проекте и сэкономить время в разработке.
Я думаю, что вы со временем прийдете к подобному пониманию вещей и в разработке систем тоже.
Вы спрашивали за не веду ли я какие-либо семинары/лекции. Нет не веду, т.к. пока нет времени на это. Возможно в следующем году что-либо подобное буду делать. Часто у начинающих программистов натыкаюсь на непонимание простоты подходов - 99% хотят вместо решения задачи делать жутко сложные манипуляции в проекте, что на практике очень сильно затягивает сроки.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33267065
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КНапример zlib - библиотечка паковки на лету работает легко на стримах, на практике практически не заметно, что сервер сжимает информацию в коннектах на загрузке процессора. zlib грузит процессор, и очень основательно. В одном из проектов я эту библиотеку использовал для сжатия данных при передаче по медленной сети, процессоры прогружались основательно - требовался один компьютер сервера приложений на каждые несколько десятков пользователей.
Валентин К
Часто у начинающих программистов натыкаюсь на непонимание простоты подходов - 99% хотят вместо решения задачи делать жутко сложные манипуляции в проекте, что на практике очень сильно затягивает сроки.
Одно из немногих высказываний Валентин К, с которым я согласен. Хотя он производит впечатление как раз начинающего программиста.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33267150
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmzlib грузит процессор, и очень основательно. В одном из проектов я эту библиотеку использовал для сжатия данных при передаче по медленной сети, процессоры прогружались основательно - требовался один компьютер сервера приложений на каждые несколько десятков пользователей.

Какая использовалась степень сжатия?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33267209
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsm Валентин КНапример zlib - библиотечка паковки на лету работает легко на стримах, на практике практически не заметно, что сервер сжимает информацию в коннектах на загрузке процессора. zlib грузит процессор, и очень основательно. В одном из проектов я эту библиотеку использовал для сжатия данных при передаче по медленной сети, процессоры прогружались основательно - требовался один компьютер сервера приложений на каждые несколько десятков пользователей.

Смею несогласится, все дело в руках. Аналог танцора.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33267221
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot andsm
Валентин К
Часто у начинающих программистов натыкаюсь на непонимание простоты подходов - 99% хотят вместо решения задачи делать жутко сложные манипуляции в проекте, что на практике очень сильно затягивает сроки.
Одно из немногих высказываний Валентин К, с которым я согласен. Хотя он производит впечатление как раз начинающего программиста.[/quot]
Форум - в некотором роде отдых, поэтому на фоне отдыха прошу не оценивать :).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33267225
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsm
ПС.
Кстати zlib я привел для примера, а не как обязательный аттрибут. Когда креатиф о подходах, я пишу например - это не обязательно самое лучшее, это именно например. Каждый конечно в креативе видит свое, просто я отмечаю, что смысл как раз не в zlib-е :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33268395
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин,
операции сжатия и шифрования серьезно напрягают процессор, фактор объема также существеннен. Можете проэспериментировать на файлах. Что бы было более отчетливо, запустите одновременно несколько компрессоров на длинных файлах.

Интересно, почему Вы не хотите признать, что распараллеливание вычислений, это иногда хорошо. И для этого можно сделать многозвенку.

И почему, то что сделами в рамках базы данных, здорово и писать скрипты на варварском языке, тоже здорово. Применять .Net и C#, это бяка - на чем-то писать алгоритм обработки все равно придется.

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

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

С уважением, Владимир.
p.s. Валентин, а как же Вы подключаете тысячи клиентов к серверу данных по инет?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33269312
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевВалентин,
операции сжатия и шифрования серьезно напрягают процессор, фактор объема также существеннен. Можете проэспериментировать на файлах. Что бы было более отчетливо, запустите одновременно несколько компрессоров на длинных файлах.
Я не заметил напряжения процессора, когда включил в драйвере сжатие данных. Может это зависит от сервера? Точных экспериментов в этом направлении я не делал, поэтому, возможно вы правы, а возможно нет :) Проверял на MySQL.
ВМоисеев
Интересно, почему Вы не хотите признать, что распараллеливание вычислений, это иногда хорошо. И для этого можно сделать многозвенку.
Многозвенка и распараллеливание вычислений вещи разные. Распараллеливание вычислений зачастую это миф, т.к. если они происходят на сервере, то почти все сервера БД ведут расчет в 1 транзакции не более чем на 1 процессоре. Я вообще не вижу смысла вычисления выносить в отдельное звено, т.к. на сервере это делать всегда быстрее. Опять же после оптимизации всех запросов и расчетов это окажется оптимальнее, чем выносить в отдельное звено и там делать велосипед.
Я только однажды выносил вычисления с сервера, когда база была на interbase/firebird , часть операций сервер выполняет крайне неэффективно, это качается нескалярных объединений с процедурами. Поэтому значительно быстрее (на порядок) было на сервере только сосканить данные о движении за период, а суммарные операции и прочие рейтинговые расчеты произвести в самом клиенте. Заодно пришлось научится работе с большими массивами и фокусам для значительного ускорения расчетов в многомерных пространствах данных. Поэтому, я считаю, что о быстродействии я могу рассуждать, т.к. добился в этом направлении весьма простых и впечатляющих результатов.

ВМоисеев
p.s. Валентин, а как же Вы подключаете тысячи клиентов к серверу данных по инет?
Никак, этим занимаются провайдеры :) пока в проектах этого делать было не нужно, но я уверен на 99,99% что когда понадобится сделать в проекте выход в инет проблем с быстродействием не возникнет, т.к. практика проектирования оптимальных по быстродействию структур в базе данных уже есть и знание путей оптимизации всякого рода извлечения данных или трудоемких расчетов тоже :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33269543
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валентин К1) Тупость архитектора системы.
2) Желание быть "модным".
3) Имеющийся уже сервер приложений (пример Progress, система Облик).
В остальных случаях можно обойтись 2-х звенной архитектурой и сэкономить массу времени.


Общие положения:
трехзвенка не решает ни проблем быстродействия (наоборот тормозит), ни вообще никаких проблем, усложняет разработку системы, усложняет отладку и тестирование.
Вобщем сделать это можно, но зачем?


Согласен на все 100.
Имхо идеи трехзвенки пиарятся сейчас с такой силой исключительно, потому, что умные дяди посчитали, что такая архитектура позволит продать больше копий ОС, железа, серверов БД итп.

Допускаю, что есть задачи где она уместна, но те системы, которые я видел - (автоматизация склада, торговли итп для не особо больших предприятий (100-200раб мест) ) к таким имхо не относятся.
Тема для меня, можно сказать, больная потому что каждый день приходится бодаться с МаладымиСпецыалистами, которые думают, что если они сделают АппСервер то написание бизнес-логики облечится в 8-9 раз :) Они точно знают, даже график производительности труда нарисовать могут :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33269854
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrKonitoДопускаю, что есть задачи где она уместна, но те системы, которые я видел - (автоматизация склада, торговли итп для не особо больших предприятий (100-200раб мест) ) к таким имхо не относятся.
Безусловно. Здесь нет вариантов, при которых многозвенка пригодится - помним, что она имеет смысл только для задач, для которых КС в чем-то неудачен, а вот уж что много лет успешно решается на КС, так это именно названные задачи :)

C моей точки зрения здесь можно говорить только о том, что в некоторых случаях пригодится формальная многозвенка. Формальная - имеется в виду, что одно из звеньев не имеет собственного логического смысла, а выполняет сугубо технические функции. Я такие системы не считаю многозвенными, но есть любители.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33269906
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
C моей точки зрения здесь можно говорить только о том, что в некоторых случаях пригодится формальная многозвенка. Формальная - имеется в виду, что одно из звеньев не имеет собственного логического смысла, а выполняет сугубо технические функции. Я такие системы не считаю многозвенными, но есть любители.
не очень понял - вы имеете в виду 2х звенку с бизнес-логикой вынесенной в отдельный слой на клиенте?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33269958
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Валентин.
Похоже, мы вряд ли поймем друг друга, но попытка не пытка. Хочу привести один пример из жизни. Заранее оговариваюсь, то в то время этой задачи не решил.
В конце 70-х занимался автоматизацией одного хим. процесса. "Горшок", в него наливают, мешают, добавляют, вообшем варят "кашу", не пшонку конечно. В колбах все прекрасно, а далее тормоз.
Самой собой, все злые как собаки. Наука требует одно, технологи творят другое, а аппаратчики как обычно - свое. Никакой воспроизводимости.
Наш главный ногами топает - все технологические данные в базу данных и хранить. Циклы съема от 2 до 10 секунд. Да и параметров в районе десятка. Сейчас это ерунда, тогда - другое дело. Горшок в Навои, наука в Ленинграде. Науке требуются кривые. Передать такой объем данных по тем линиям связи не смогли. Какая то умная голова выдала, если им требуются графики, то давайте аппраксимируем сплайном. При этой идее сжатие тысяче кратное. Очень красиво - передавать только параметры сплайна. Причем сплайн строится по выборке и её размер можно варьировать, задавая временной интервал, и можно однимать точность аппроксимации. Сейчас, имея прототип, я бы её решил.
База данных, здесь не пуп земли.
Не знаю, на сколько удобно применять, например, T-SQL для задач вычислительной математики.
Чем хорош здесь .Net - могу применять разные молули из разных языков. Больше всего интересна связь C# и Fortran.
Смею заметить, что такие задачи есть. Мы просто не умеем их готовить.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33269979
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrKonitoне очень понял - вы имеете в виду 2х звенку с бизнес-логикой вынесенной в отдельный слой на клиенте?
Нет. Я имею в виду, например, типичное веб-приложение, в котором "клиентом" называется то, что в обычном КС называется драйвером дисплея :) Или промежуточное звено, которое обеспечивает специфическую прокачку данных между сервером и клиентом и ничего более. Или прочее в том же духе.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33269981
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевКакая то умная голова выдала, если им требуются графики, то давайте аппраксимируем сплайном. При этой идее сжатие тысяче кратное. Очень красиво - передавать только параметры сплайна.
Хм. Вообще-то это очень давно известное решение :) В семидесятых годах его могли скорее "вспомнить", чем "придумать".

Сейчас, имея прототип, я бы её решил.
А зачем для этого "прототип"?

Не знаю, на сколько удобно применять, например, T-SQL для задач вычислительной математики.
Чем хорош здесь .Net - могу применять разные молули из разных языков.
Ну и применяйте .Net Его обещали встроить в Oracle 10gR2, который уже вышел. Не проверял, встроили ли. Обещают поддержку и в T-SQL. А Java уже давно поддерживается.

Смею заметить, что такие задачи есть. Мы просто не умеем их готовить.
Ключевая - вторая фраза :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33269991
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеевЗдравствуйте, Валентин.
Смею заметить, что такие задачи есть. Мы просто не умеем их готовить.
С уважением, Владимир.

Так ктож спорит-то.
На SQL-е многие вещи пишутся плохо.

Но ради одной фичи не всегда стоит устраивать классическую многозвенку, имхо. Всегда можно обойти как-нибудь. В вашем примере я бы написал, условно говоря, на фотране некий сервис, который раз в 5 сек считывал факты из БД, рассчитывал параметры сплайна и засовывал их бы в ту же\другую БД.

А клиенты бы забирали параметры сплайна уже из БД, через обычный SQL запрос.
Цена вопроса- 5 секундная задержка результата.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33270072
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrKonito
А зачем так сложно? Написать на чем угодно и подключить в СУБД как внешнюю процедуру. Упоминалось раньше в этом топике.

Если говорить об Oracle - у него есть такая интересная особенность, как картриджи. Фактически это - плагины к серверу. Например, картриджем реализованы работа с географический информацией и полнотекстовый поиск. Интерфейс специфицирован, можно сесть и дописать, если задача достаточно сложна и просто внешних процедур будет маловато.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33270792
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не к кому конкретно.
Я не люблю писать внешние процедуры просто так ради набивания руки. Их смысл еть только при обращении к внешним источникам, например отправка почты или ее проверка и пр.
Постоянно происходит изменения, поэтому подходы в 70-х немого отличались от теперешних, не сильно, но различие есть, и основное - это наличие кучи серверов БД, которые имеют сильные и слабые стороны.
Например, если нужно делать полнотекстовый поиск, как обязательное звено в проекте, я не задумываясь поставлю под задачу MySQL, т.к. так это естественно и небезобразно, очень быстро и широко раскручено, очень экономичные и быстрые алгоритмы и пр.
Но для каки-либо других задач - опять же взять другой сервер БД.
Например, для каких-либо промежуточных расчетов, типа сплайнов, можно сделать хп с результатами во временной таблице, а потом отдать пользователю результирующий набор. Это наиболее простой и естественный ход.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33271556
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>softwarer,
>А зачем для этого "прототип"?

Свой подход к решению задач подобного класса привел в статье "К вопросу построения прототипа защищенных информационных систем". Ссылка есть в топике.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33271900
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer DrKonito
А зачем так сложно? Написать на чем угодно и подключить в СУБД как внешнюю процедуру. Упоминалось раньше в этом топике.


Имхо наоборот это самый простой вариант.
Не всякий сервак БД дает возможность делать расширенные хранимки.
А если и дает то пишутся они обычно на ЦПП (MS SQL 2000).
А я вот например на ЦПП писать не умею.
Да и вообще, не хотелось бы грузить в адресное пространство боевого сервака самопальную длл.
А так на чем хошь, на том и пиши- хошь на шарпе, хошь на фортране, хошь на прологе. Можно и батник в конце концов :).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33272321
Так_забежал_просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrKonito
А если и дает то пишутся они обычно на ЦПП (MS SQL 2000).
А я вот например на ЦПП писать не умею.

Так, вроде, если на Цпп можно, то и на известно какой разновидности паскалЯ можно? И... гм... на ассемблере? Главное, чтобы язык поддерживал разные способы передачи параметров в функции.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33275345
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так_забежал_просто DrKonito
А если и дает то пишутся они обычно на ЦПП (MS SQL 2000).
А я вот например на ЦПП писать не умею.

Так, вроде, если на Цпп можно, то и на известно какой разновидности паскалЯ можно? И... гм... на ассемблере? Главное, чтобы язык поддерживал разные способы передачи параметров в функции.

Написать-то можно, но вот .h файлы переводить в .pas занятие часто не из благодарных.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33275350
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrKonito
А зачем так сложно? Написать на чем угодно и подключить в СУБД как внешнюю процедуру. Упоминалось раньше в этом топике.

Имхо наоборот это самый простой вариант.
Как Вам сказать... это мнимая простота. Примерно так же "проще" не пользоваться "сложной" конструкцией цикла, заменив ее "простыми" if-goto.

DrKonitoНе всякий сервак БД дает возможность делать расширенные хранимки.
Хм. Не всякий сервак вообще дает делать хранимки :) Но мы кажется говорим о мало-мальски серьезных проектах; да и адекватного сервака, который не дает делать внешних хранимок, я сходу не назову.

DrKonitoА если и дает то пишутся они обычно на ЦПП (MS SQL 2000).
Хм. "Обычно" - это, безусловно, сильный аргумент. И при чем тут MSSQL?

DrKonitoА я вот например на ЦПП писать не умею.
Это тоже сильный аргумент.

По моему опыту именно от такого подхода порождается наибольшее количество неприятностей. "Такого" - это "не умею сделать прямо, поэтому сделаю криво. Потом сделаю другую кривизну, которая нужна чтобы подладиться к этой. Потом - еще большую кривизну, чтобы эти хоть как-то работали. В итоге - буду гордо говорить, что "реальная работа и теоретические заморочки - две большие разницы"".

DrKonitoДа и вообще, не хотелось бы грузить в адресное пространство боевого сервака самопальную длл.
Ну и не грузите, если не хотите, никто не заставляет. Хотя лично я бы предпочел просто хорошо ее написать.

DrKonitoА так на чем хошь, на том и пиши- хошь на шарпе, хошь на фортране, хошь на прологе. Можно и батник в конце концов :).
О подключении внешней процедуры из батника не думал, хотя наверное возможно. Да и все остальное без проблем.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33289533
DrKonito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
DrKonitoДа и вообще, не хотелось бы грузить в адресное пространство боевого сервака самопальную длл.
Ну и не грузите, если не хотите, никто не заставляет. Хотя лично я бы предпочел просто хорошо ее написать.
Вы наверное умеете писать на ЦПП вообще без ошибок или по крайней мере обладаете кучей свободного времени для всесторонней отладки. Тогда наверное нельзя не согласиться с вашим видением проблемы :)


softwarer
По моему опыту именно от такого подхода порождается наибольшее количество неприятностей. "Такого" - это "не умею сделать прямо, поэтому сделаю криво. Потом сделаю другую кривизну, которая нужна чтобы подладиться к этой. Потом - еще большую кривизну, чтобы эти хоть как-то работали. В итоге - буду гордо говорить, что "реальная работа и теоретические заморочки - две большие разницы"".
А кто вам сказал, что расширенная хранимая процедура это прямо? Если для решения задачи достаточно батника - писать и отлаживать расширеннуюХП мягко говоря неразумно. И на хрена тогда вообще нужна эта расширенная ХП, если вопрос в 90% случаев решается на уровне администратора БД и джоба в 3 строчки?


softwarer DrKonitoА я вот например на ЦПП писать не умею.
Это тоже сильный аргумент. Посрамлен. Обязательно выучу чтобы было чем понтится на форумах.
Если серьезно -по поводу ЦПП, у меня вообще сложилось устойчивое мнение, что если корпоративное приложение требует кусков на ЦПП для нормальной работы, то у этого приложения что-то сильно не так с архитектурой. За последние 20 лет написано достаточно всего, чтобы позволить себе не думать об освобождении памяти и сортировках.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33298385
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrKonito softwarer
DrKonitoДа и вообще, не хотелось бы грузить в адресное пространство боевого сервака самопальную длл.
Ну и не грузите, если не хотите, никто не заставляет. Хотя лично я бы предпочел просто хорошо ее написать.
Вы наверное умеете писать на ЦПП вообще без ошибок или по крайней мере обладаете кучей свободного времени для всесторонней отладки. Тогда наверное нельзя не согласиться с вашим видением проблемы :)
Все проще - я не люблю фразу "у меня нет времени делать хорошо", и обычно отвечаю на нее "а у меня нет времени делать плохо и потом переделывать".

Также обращаю Ваше внимание на то, что не хотите dll - не делайте. Ну и по-прежнему не понимаю, причем тут ЦПП - складывается впечатление, что у Вас какой-то пунктик на эту тему.

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

расширеннуюХП мягко говоря неразумно. И на хрена тогда вообще нужна эта расширенная ХП, если вопрос в 90% случаев решается на уровне администратора БД и джоба в 3 строчки?
Боюсь, Ваша мысль так стремительно меняет темы, что мне трудно за ней успеть.

Если вопрос хорошо решается способом X - его надо решать способом X. Если вопрос криво решается способом Y - надо избегать решения его способом Y. Вопрос "нафига способ X если можно криво решить способом Y" - я удачным не считаю.

Почему в данном случае решение будет кривым - потому что на пустом месте требуется организовать взаимодействие процессов, что при серьезной реализации есть весьма нетривиальная задача. Например, я абсолютно уверен в том, что код, который Вы имеете в виду, не сможет написать пользователю: "Извините, но Вам придется подождать часика два-три, поскольку job, который должен вернуть мне данные, тормозится другим длинным job-ом и не может выполниться из-за слишком малого значения параметра job_queue_processes". Например, мне сразу вспоминается, как на сервере однажды глюканули аппаратные часы, и системное время (а за ним и next_date у всех job-ов) перепрыгнули в 2019-й год. Далее системное время вернули на место.... ну а описанная Вами программа так и будет ждать 2019-го года, дабы вернуть результат.

Итого - из-за того, что Вы боитесь слов "внешняя процедура", Вы предлагаете сделать решение, кое-как скрепленное, нуждающееся в присмотре администратора и либо без адекватной реакции на ошибки, либо существенно более сложное в реализации. Далее - вопрос точки зрения, как называть такое решение.

DrKonito softwarer DrKonitoА я вот например на ЦПП писать не умею.
Это тоже сильный аргумент. Посрамлен. Обязательно выучу чтобы было чем понтится на форумах.
Увы, снова слишком быстрый для меня полет мысли. Я так полагал, мы обсуждаем средства реализации задачи. Собственно, я так вообще полагаю одним из критериев профессионализма - умение и желание выбрать инструмент, наиболее подходящий для той или иной конкретной задачи. Меня всегда удивляла, например, позиции OracleForms-щиков: мол, не нужно учить еще один язык, чтобы писать клиентов, достаточно PL/SQL.

С Вашей точки зрения, как я понял, необразованностью следует гордиться, ликвидировать ее - только ради понтов на форумах, а что касается "выбрать подходящий инструмент" вопрос не стоит - нет, только ЦПП, поскольку Вы его не знаете и знать не хотите.

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

За последние 20 лет написано достаточно всего, чтобы позволить себе не думать об освобождении памяти и сортировках.
Хм. Боюсь, абсолютно не вижу смысла в этой фразе. Просто не понимаю, какую именно мысль Вы пытались донести.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33299003
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Если серьезно -по поводу ЦПП, у меня вообще сложилось устойчивое мнение, что если корпоративное приложение требует кусков на ЦПП для нормальной работы, то у этого приложения что-то сильно не так с архитектурой.
Не понимаю, как Вы ухитряетесь смешать в одной мысли столь разные уровни - уровень архитектуры приложения и уровень рабочих технических решений. Если язык, на котором решено писать приложение или какую-либо его часть, влияет на архитектурные решения - значит, процесс разработки перевернут с ног на голову.

За последние 20 лет написано достаточно всего, чтобы позволить себе не думать об освобождении памяти и сортировках.
Хм. Боюсь, абсолютно не вижу смысла в этой фразе. Просто не понимаю, какую именно мысль Вы пытались донести.
Проходил мимо, и опять господин softwarer поразил меня своей циничностью к оппонентам.
На первое - если место строения не влияет на строение, значит мы в космосе :)
На второе - ответ - просто непонятно зачем.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33299347
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин КПроходил мимо, и опять господин softwarer поразил меня своей циничностью к оппонентам.
Вы ухитряетесь постоянно быть наполовину правым. В данном случае стоило бы сказать так: к некоторым оппонентам.

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

1. Мы действительно в космосе. Если говорить об ИТ-разработке, мы удивительно, на зависть остальным инженерным специальностям, независимы от "земли".

2. Вы действительно перевернули мир с ног на голову. Язык программирования - это не "место строения", это "материал" - доски, кирпичи, панели.. Место строения - это предметная область, особенности заказчика - в общем то, что можно объединить словами "техническое задание".

3. Глядя, как с грузовика сгружают и ставят стандартную для Москвы синюю будочку, я убеждаюсь, что "место строения" в типовых случаях очень мало влияет на "строение" - в пределах пары досок, подложенных с той либо с другой стороны.

Валентин КНа второе - ответ - просто непонятно зачем.
Поскольку ответ непонятно на что, выглядит более чем логично :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33326587
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте добавлю свои 5 копеек к обсуждению...
Тут приводился контраргумент на тему организации системы security средствами app-сервера, сводящийся к тому, что на app-сервере можно выполнить sql-injection и т.п. Не обсуждая саму такую возможность и следовательно криво написанный app-сервер, скажу, что для случая удаленного доступа к СУБД (не из локальной сети) существует довольно обоснованное правило закрывать доступ к СУБД снаружи, т.к. довольно часто обнаруживаются различные уязвимости, да и всякие DoS - атаки никто не отменял. В принципе и с использованием 3-х звенной архитектуры не мешает правильно настроить security на уровне СУБД, но дополнительный уровень защиты будет совсем не лишним (особенно в случае удаленного доступа). Я помню время, когда достаточно регулярно появлялись различные дыры и черви под MSSQL - это нам много проблем доставило.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33328586
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К...
Общие положения:
трехзвенка не решает ни проблем быстродействия (наоборот тормозит), ни вообще никаких проблем, усложняет разработку системы, усложняет отладку и тестирование.
Вобщем сделать это можно, но зачем?

Не согласен.

Есть понятие «разделение труда». Оно определяет эффективность производства, и означает, что если каждый делает не всё подряд, а только то, что у него лучше всего получается – общая эффективность увеличивается в разы.

ИС можно рассматривать в виде фабрики по обработке данных.

Каждое «звено» архитектуры - класс вычислительных узлов, настроенных на выполнение определённых действий. Чем более специализированными они будут, чем меньше действий придётся выполнять каждому звену – тем эффективнее будет работа, при условии, конечно, наличия между ними сети, достаточно быстрой, чтобы не быть «бутылочным горлышком».

Почти у каждой ИС есть функции «быстро и красиво построить пользовательский интерфейс», «быстро и гибко обработать информацию» и «быстро и надёжно сохранить информацию». Они предъявляют к вычислительному узлу противоречивые требования.

Интерфейс – наверное, тяжёлая графическая оболочка.
Обработка – наверное, быстрая, простая в поддержке вычислительная среда.
Хранение – наверное, много дисковых операций, реляционная алгебра.

Увеличение количества звеньев – способ преодоления этих противоречий.

Чем больше в сети "клиентов" - тем более оправдан ввод дополнительных звеньев.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33328835
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даешь по 20 звеньев на систему!!!!!!!!!!!!!!!!!!!!

Каждому клиенту - свое звено!!!!!!!!!!!!!!!!!!!!

Каждой операции - звеньевого!!!!!!!!!!!!!!!!!!!!

-- Tygra's --
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33328837
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygra wrote:
> *Даешь по 20 звеньев на систему!!!!!!!!!!!!!!!!!!!!*
>
> *Каждому клиенту - свое звено!!!!!!!!!!!!!!!!!!!!*
>
> *Каждой операции - звеньевого!!!!!!!!!!!!!!!!!!!!*
>
> /-- *Tygra's* --/
>
Ты чо, братан? БРИГАДИРА! Мы ить - БРИГАДА!!!
:-)


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33332600
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChНе обсуждая саму такую возможность и следовательно криво написанный app-сервер,
Безусловно. Вопрос в том, что надежность аппсервера (как кода, написанного для решения частной задачи) в этом разрезе заведомо ниже, нежели надежность любой стандартной системы безопасности (в том числе СУБДшной). Поэтому отказ от последней - грубая ошибка; как известно, надежность системы определяется надежностью слабейшего компонента.

VladiChВ принципе и с использованием 3-х звенной архитектуры не мешает правильно настроить security на уровне СУБД, но дополнительный уровень защиты будет совсем не лишним
Безусловно. Тут уже идет вопрос соотношения целей и средств.

Ключевой момент - именно правильная настройка. Если аппсервер ходит к БД с правами администратора, достаточно обмануть аппсервер, чтобы вся система оказалась беззащитной. "Клиент-серверной" аналогией этого будет СУБД, в которой защита реализована целиком на клиенте, и достаточно подсоединиться к БД через sqlplus, чтобы сделать в базе что угодно.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333257
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer"Клиент-серверной" аналогией этого будет СУБД, в которой защита реализована целиком на клиенте, и достаточно подсоединиться к БД через sqlplus, чтобы сделать в базе что угодно.
Аналогия не совсем правильная - например для моего примера удаленного доступа (с закрытой снаружи СУБД) "обмануть" app-сервер (в смысле обойти его) не получится - можно его только взломать.
И в этом случае вопрос
softwarerВопрос в том, что надежность аппсервера (как кода, написанного для решения частной задачи) в этом разрезе заведомо ниже, нежели надежность любой стандартной системы безопасности (в том числе СУБДшной). является довольно интересным. Cтандартная система безопасности СУБД не всегда "лучше кода, написанного для решения частной задачи". Особенно если одной из этих частных задач является как раз обеспечить максимальный уровень безопасности. Ну что за примерами ходить - встроенная система безопасности MSSQL 2000 довольно хлипкая сама по себе (если не используется Windows-аутентификация, что для удаленного доступа как раз неудобно). Есть практически "стандартные" хакерские средства для ее взлома, которые успешно используются. Т.е. этот принцип может быть в общем случае и верен, но дьявол, как известно, прячется в деталях.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333411
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChАналогия не совсем правильная - например для моего примера удаленного доступа (с закрытой снаружи СУБД) "обмануть" app-сервер (в смысле обойти его) не получится - можно его только взломать.
Это вопрос скорее терминологии. С моей точки зрения тот же SQL injection - обман, а не взлом. Мы не преодолеваем инструмент, а пользуемся им. Может быть и вариант обхода аппсервера - то есть взлом его хоста каким-либо стандартным методом.

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

VladiCh
И в этом случае вопрос .... является довольно интересным. Cтандартная система безопасности СУБД не всегда "лучше кода, написанного для решения частной задачи".
Не всегда. Вопрос в том, что "код, написанный для решения частной задачи" очень редко выверяется адекватным с точки зрения безопасности образом. Если потратить на него столько же денег - конечно, он будет лучше. А так, как делается обычно - сомнительно.

Действует фактор известности - для любой стандартной системы безопасности довольно настойчиво ищут дыры, и всегда есть опасность того, что я взломаю сервер просто по инструкции, найденной в инете. Он, разумеется, резко повышает привлекательность частных решений, но не является абсолютным аргументом - хотя бы потому, что всегда есть люди, имеющие доступ к исходникам системы защиты.

Именно поэтому, с моей точки зрения, в разумном ценовом диапазоне оптимально комбинированное решение - когда СУБД уберегается от прямого доступа и соответствующих стандартных методов взлома, но в то же время ее средства безопасности не дают аппсерверу выполнить неразрешенную операцию. В этом случае с какой стороны ни зайди - придется преодолеть минимум два софтовых барьера.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333537
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChНу что за примерами ходить - встроенная система безопасности MSSQL 2000 довольно хлипкая сама по себе (если не используется Windows-аутентификация, что для удаленного доступа как раз неудобно). Есть практически "стандартные" хакерские средства для ее взлома, которые успешно используются.Поподробнее, please, и если можно, сопроводите ссылочкой.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333612
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здесь
Особенно интересна самая верхняя статейка (в конце дается ссылка на программу для взлома).
здесь - то же самое
То, что хэш вычисляется для 2-х вариантов пароля - оригинального и upper-cased, соответственно по upper-cased варианту его проще подобрать.
Конечно, если очень длинные пароли вводить, то это не проблема, но разве у всех поользователей в вашей базе пароль длиннее 6-7 символов?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333631
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется, для того, чтобы так подбирать пароли, надо выцепить этот хэш, а для этого наверное иметь хоть какие-то права на уровне MSSQL или Windows - но это решается другими методами :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333699
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу что за примерами ходить - встроенная система безопасности MSSQL 2000 довольно хлипкая сама по себе (если не используется Windows-аутентификация, что для удаленного доступа как раз неудобно). Есть практически "стандартные" хакерские средства для ее взлома, которые успешно используются.

авторРазумеется, для того, чтобы так подбирать пароли, надо выцепить этот хэш, а для этого наверное иметь хоть какие-то права на уровне MSSQL или Windows - но это решается другими методами :)
Не хоть какие-то права, а админские.
А если они у вас есть - зачем вам пароли подбирать?

А в вашей системе нет вообще уязвимостей? Пароль подобрать нельзя? Просто взломать - нельзя? Вы наверное патентованными методами пользуетесь - MS до них не доросла пока?

====

Блин, детский сад
Изобреталей влосипедов

-- Tygra's --
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333766
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНе хоть какие-то права, а админские.
А если они у вас есть - зачем вам пароли подбирать?
Хм. Да все затем же - чтобы грамотно нагадить. Одно дело - когда я зайду с консоли как sysdba и сделаю НЕЧТО, другое - когда я сделаю это НЕЧТО, залогинившись из интернет-кафе как пользователь tygra .

Прошу учесть что глобально я не разбираюсь в вопросе [не]уязвимости MSSQL и не имею мнения по этому поводу; просто отвечаю на очень частный вопрос.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333774
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChМетодом brute-force можно взломать практически любую систему, при соблюдении определенных условий, и ничем особым тут MSSQL не выделяется. Для этого даже не надо вычислять хешей. Кстати, с программой "John the Ripper" когда-нибудь сталкивались, чем она занимается в курсе ?
VladiChдля того, чтобы так подбирать пароли, надо выцепить этот хэш, а для этого наверное иметь хоть какие-то права на уровне MSSQL или Windows - но это решается другими методамиНаверное ? Понятно, Вы, несомненно, очень крупный специалист по MSSQL. Впрочем, tygra уже все сказал.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33333890
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAМетодом brute-force можно взломать практически любую систему, при соблюдении определенных условий, и ничем особым тут MSSQL не выделяется. Для этого даже не надо вычислять хешей. Кстати, с программой "John the Ripper" когда-нибудь сталкивались, чем она занимается в курсе ?
В курсе. Насчет того, что любую систему можно взломать методом brute-force - я и не спорю. Подбор паролей без вычисления хэша - гораздо более длительная операция и нормальные системы ее удлиняют еще сильнее, не давая к примеру логиниться за одну сессию больше нескольких раз.
Так что вопрос только во времени взлома. Если эта система позволяет на порядок сократить время такого взлома (как в случае с MSSQL обстоит дело) - значит что-то в ней не так...

tygraА в вашей системе нет вообще уязвимостей? Пароль подобрать нельзя? Просто взломать - нельзя? Вы наверное патентованными методами пользуетесь - MS до них не доросла пока?
Блин, детский сад
Изобреталей влосипедов
Это вы к чему, интересно? По существу вам сказать опять нечего? Переходить на личности - это у вас как я вижу самый главный аргумент.
Насчет доступа только под правами админа - почитайте здесь . Это некоторые ваши заблуждения на этот счет развеет (если вы конечно будете это читать, в чем у меня есть сомнения судя по вашему сообщению). А вообще, на будущее - после еще одного сообщения в таком стиле дальнейшие ваши сообщения я буду игнорировать.

ChAНаверное ? Понятно, Вы, несомненно, очень крупный специалист по MSSQL. Впрочем, tygra уже все сказал.
Присоединяетесь к тигре? Да ради бога... Вы сторонник открытого доступа к MSSQL снаружи? Ну что же, флаг Вам в руки. Слабость хранения хэшей в MSSQL - просто один из примеров, которых и без этого достаточно. Поверьте, грамотному специалисту взломать типичный MS SQL сервер (который админит не настолько же грамотный специалист) не составит особого труда. Конечно, для всяких средств взлома есть методы противодействия, но чтобы полностью обезопасить свою СУБД самый дешевый и надежный способ - закрыть к ней доступ снаружи. Остальные способы дороже, как минимум на разницу зарплаты типичного админа и хорошего специалиста по компьютерной безопасности, которых не так много.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33334041
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Позвольте и мне слово молвить

>softwarer
Код: plaintext
Безусловно. Вопрос в том, что надежность аппсервера (как кода, написанного для решения частной задачи) в этом разрезе заведомо ниже, нежели надежность любой стандартной системы безопасности (в том числе СУБДшной). Поэтому отказ от последней - грубая ошибка; как известно, надежность системы определяется надежностью слабейшего компонента.

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

Здесь
http://www.gotdotnet.ru/LearnDotNet/NETFramework/223738.aspx
попытался раскрыть свой подход к построению клиентской сессии.
Покажите, как в прототипе клиент в принципе может взломать сервер данных. Я буду Вам благодарен.
Не знаю, в какой базе данных решается вопрос о том, как помешать несанкционированному изменению клиентского приложения.

С уважением, Владимир
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33334075
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChЕсли эта система позволяет на порядок сократить время такого взлома (как в случае с MSSQL обстоит дело) - значит что-то в ней не так...Да, да, разумеется :) Там одни лохи сидят :)
Насколько понимаю, подобной же слабостью страдают практически все системы с хешированием паролей, среди которых, заметим, далеко не только MSSQL, несмотря на потенциальную "слабость" этого метода. Кроме того, не забываем, что хеши еще добыть надо, какая-никакая, а проблема. Мы ведь не считаем, что сервер открыт для всех желающих и вообще стоит посреди улицы ?

VladiChНасчет доступа только под правами админа - почитайте здесь .Полистал, но не понял, причем здесь MS. Подобных способов хоть отбавляй практически к любой достаточно популярной системе, например, как ее взломать, как получить администраторские права, exploits и прочая хрень. Более того, некоторые до сих пор работают. Или Вы будете настаивать, что этими недостатками больны только продукты MS ? Более известными, соглашусь, цена за распространенность и популярность ее продуктов, у продукции какой компании еще столько "тестеров" ?

VladiChВы сторонник открытого доступа к MSSQL снаружи?Вот только передергивать не надо. Тема Вашей реплики и моего вопроса были совсем другие. Не думаю, что вообще есть сторонники открытого доступа к любой СУБД, не сломают, так завалят. В конце концов, они ведь создавались для другой среды и целей. Правда это уже совсем другая тема.

VladiChПоверьте, грамотному специалисту взломать типичный MS SQL сервер (который админит не настолько же грамотный специалист) не составит особого труда.Опаньки, вот только не надо сказок про "грамотных" специалистов, впрочем, их, опять же, уверен, можно отнести к любой СУБД, все дело лишь в цене вопроса. Гораздо проще сделать так называемый социальный хакинг, то бишь, с людьми надо уметь общаться :). Самое слабое звено всегда человеческое, понадобится, Вы про все сами раскажете,покажете или даже принесете на блюдечке. Большинство крупных "взломов" именно так и происходит, без участия всяких "грамотных" специалистов с обоих сторон, по крайней мере, технических.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33334751
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевВопрос достаточно спорный, особенно, если app, опираясь на существующую систему безопасности сервера данных, урезает его возможности и блокируем прямой доступ удаленного клиента к серверу данных.
Признаться, не очень понял формулировку, но речь как раз о том, что апп должен опираться на систему безопасности сервера и дополнять ее. Проблемы безопасности будут, если апп подменяет безопасность СУБД, прежде всего - как водится во многих решениях - коннектится к СУБД с правами суперпользователя.

ВМоисеевНе знаю, в какой базе данных решается вопрос о том, как помешать несанкционированному изменению клиентского приложения.
Я не верю в решаемость этого вопроса для внешнего приложения. Можно лишь затруднить, но...

Не помню, рассказывал я Вам или нет, поэтому повторю, как я однажды вскрыл одну защищенную базу. Автор там приложил очень много усилий к тому, чтобы запутать/защитить саму систему защиты; я не счел разумным, как баран, пробиваться напрямую, а попросту написал небольшую дополнительную программу, которая села "над" защищенным приложением, мониторила его работу, и в нужный момент воспользовалась дешифровщиком собственно приложения для того, чтобы вытащить информацию.

ВМоисеев
http://www.gotdotnet.ru/LearnDotNet/NETFramework/223738.aspx
попытался раскрыть свой подход к построению клиентской сессии.
Покажите, как в прототипе клиент в принципе может взломать сервер данных. Я буду Вам благодарен.
Признаться, весьма мельком просмотрел статью. Моих знаний .net мягко говоря не хватит для серьезного разговора, в частности я не понял, что именно Вы имели в виду под узловой сборкой. Сходу - я не понял, кто мешает мне сделать так:

- подправить клиентское приложение так, чтобы дешифрованная либо полученная расшифрованная узловая сборка оказалась у меня в удобном для обработки виде (попросту записать в файл)

- раздеталировать и подправить ее как мне хочется

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

В целом, если помните, мы уже говорили, и у меня осталось впечатление, что Вы делаете очередной, очень мощный и накрученный велосипед, который может и пригодится, если в качестве SQL Server-а использовать Paradox, MySQL или что-то типа того.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33334852
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAПолистал, но не понял, причем здесь MS. Подобных способов хоть отбавляй практически к любой достаточно популярной системе, например, как ее взломать, как получить администраторские права, exploits и прочая хрень. Более того, некоторые до сих пор работают. Или Вы будете настаивать, что этими недостатками больны только продукты MS .
Я не пойму, вы надо мной издеваетесь? Здесь кажется речь шла о том, что _очень_ желательно держать СУБД закрытой снаружи на сетевом уровне, потому как существует масса exploits и прочей хрени как вы говорите. В качестве примера я привел парочку для MSSQL, т.к. в безопасности других СУБД я плохо ориентируюсь. Вы же мне здесь сами и подтвердили мою точку зрения. А при чем здесь MS - я не знаю, вопрос конкретно про MS вообще не стоял. Вы сами перевели разговор в эту плоскость.
Если все согласны с тем, что СУБД надо держать закрытой снаружи, то теперь, внимание, вопрос: каким образом организовывать удаленный доступ к системе? Есть 2 варианта - или терминальный доступ или промежуточное звено. Причем терминальный доступ - это тоже не самая удобная вещь в плане безопасности под windows. начиная от уязвимости windows terminal services к DoS - атакам и заканчивая просто сложностью правильной настройки security, чтобы к примеру пользователь не мог ничего больше делать кроме использования указанного приложения.

ChAВот только передергивать не надо. Тема Вашей реплики и моего вопроса были совсем другие. Не думаю, что вообще есть сторонники открытого доступа к любой СУБД, не сломают, так завалят. В конце концов, они ведь создавались для другой среды и целей. Правда это уже совсем другая тема.
Тема разговора была как раз об этом. Не верите - прочитайте последние 10 сообщений. Это как раз Вы начали уводить разговор в другую сторону, а я просто дал ссылки на интересующую Вас информацию.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33334862
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAДа, да, разумеется :) Там одни лохи сидят :)
Насколько понимаю, подобной же слабостью страдают практически все системы с хешированием паролей,
Пример в студию! В какой еще системе пароль хэшируется в upper-cased - варианте? Это между прочим раз в 10-20 сокращает время подбора типичного пароля.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33335323
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

>Признаться, не очень понял формулировку, ...

Вы правы - app усиливает (ужесточает) защиту, опираясь на имеющиеся средства, но не подменяет их.

>Я не верю в решаемость этого вопроса для внешнего приложения ...

Если приложение не связано с app, то видимо Вы правы. Если эта связь есть, то app может в некотором смысле контролировать работу приложения, пересылая последнему зонд в виде сборки или класса. Приложение обязано ответить ... или будет будет блокировано вместе с клиентом ( не гостевым конечно).

> ... что Вы делаете очередной, очень мощный и накрученный велосипед ...

Далеко не все дороги ведут в конюшню Oracle. Приходилось на фоксе делать задачи, которые или Oracle вряд-ли по зубам или карману заказчика - хранение информации с датчиков технологического процесса.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33335342
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли все согласны с тем, что СУБД надо держать закрытой снаружи, то теперь, внимание, вопрос: каким образом организовывать удаленный доступ к системе? Есть 2 варианта - или терминальный доступ или промежуточное звено.
Есть еще VPN - очень хорошо защищает. Или у вас и про нее pdf-ы имеются? :)

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

И никакой самодеятельности в security.

То, что вам app-сервер ходит под sa в СУБД, никак не увеличивает безопасности - как бы вы внутри арр-сервера не извращались, к СУБД доступ все-равно можно получить и без него, а тогда смысл в извращениях теряется.

---------

Да в общем странный разговор - куча компаний работают без арр-серверов и ничего. А если трясти бумажками с расписанными хакерскими методами ... Волков бояться - в лес не ходить. :)

-- Tygra's --
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33335412
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевЕсли эта связь есть, то app может в некотором смысле контролировать работу приложения, пересылая последнему зонд в виде сборки или класса.
Любой зонд можно обмануть. Обратите внимание на мой же пример - мало какой зонд обнаружил бы мою присосавшуюся сверху программу.

В целом, я не вижу большого смысла развивать именно это направление, поскольку оно заведомо уязвимо. Если приложение внутри сервера - то есть всякие веб-, терминальные и прочие подобные клиенты - оно и так неплохо спрятано, а иначе - система безопасности должна исходить из предположения, что коннектится хрен знает кто.

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

ВМоисеев Приходилось на фоксе делать задачи, которые или Oracle вряд-ли по зубам или карману заказчика - хранение информации с датчиков технологического процесса.
Я в общем даже не удивлюсь, если это было оправданно. Хотя не вижу, почему эта задача ораклу не по зубам. Да и карману заказчика $750 на оракл понравятся вряд ли меньше, нежели $N на дополнительные сервера :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33335453
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraЕсть еще VPN - очень хорошо защищает. Или у вас и про нее pdf-ы имеются? :)
Согласен, VPN - это тоже вариант, но не для всех случаев он подходит. PDF-ы приводить не буду, хотя их тоже хватает :).

tygraИ никакой самодеятельности в security.
Интересно... Ну-ка, расскажите мне, как вы без самодеятельности в security сможете обеспечить аутентификацию через веб-сервисы? Единственный стандартный в настоящее время вариант - через windows-аутентификацию, что для удаленного доступа неудобно.

tygraТо, что вам app-сервер ходит под sa в СУБД, никак не увеличивает безопасности - как бы вы внутри арр-сервера не извращались, к СУБД доступ все-равно можно получить и без него, а тогда смысл в извращениях теряется.
Я здесь где-то упоминал про хождение апп-сервера под sa? В этом топике я кстати вообще тему апп-сервера не поднимал, но у вас какая-то болезненная реакция на мои посты - везде чудится сервер приложений :). Насчет промежуточного звена я писал выше, что оно не отменяет настройки security на уровне СУБД. Справедливости ради могу только сказать, что если например открыть доступ к СУБД только app-серверу на сетевом уровне, то никакой пользователь напрямую к базе данных не достучится. Это тоже один из вариантов обеспечения безопасности, в некоторых случаях единственный.

tygra
Да в общем странный разговор - куча компаний работают без арр-серверов и ничего. А если трясти бумажками с расписанными хакерскими методами ... Насчет кучи компаний - это не аргумент. Вернее такой же аргумент как и "раз они потратили на этот сервер XXX M$, значит с безопасностью у него все нормально. Не вижу никакой корелляции. На разработку Windows 2000 были потрачены огромные деньги, тем не менее попробуйте поставить ее без сервис-паков на открытую машину - максимум в течение часа она станет сервером спам-рассылки для китайских подростков :)

По теме этого сообщения у вас есть что сказать?
Как вы думаете, какой вариант будет более универсальным и защищенным - через веб-сервисы коннект к внешнему http-серверу, доступ внутрь сети через VPN или терминальный доступ? Разумеется, последние 2 - это тоже приемлемые варианты, можно поместить сервер доступа в dmz с возможностью коннекта только к СУБД и никуда более и т.п. Просто организационно более трудоемкие и менее безопасные. Зато с их помощью можно организовать так любимый вами прямой коннект клиента к sql-серверу.

2ChA - я жду примеров :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33335479
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, tygra, чтобы облегчить ответ на вопрос, приведу более конкретный пример. Есть система заказов. Есть торговая компания, у нее есть партнеры (очень много, количество может тысячами измеряться). Каждому предоставляется доступ к системе заказов. Как бы вы реализовали удаленный доступ в этой системе? (промежуточный слой на вебсервисах, терминальный доступ, vpn, ваш вариант). P.S. Приложение обязательно должно быть десктопным, не web (по условиям задачи).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33335530
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. последний вопрос не только для tygra, пусть все желающие что-нибудь скажут на эту тему, т.е. достоинства и недостатки того или иного способа, и какой из них лучше подходит с точки зрения безопасности...
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33335655
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятны условия задачи. Если партнерам необходима только система заказов, то под нее идеально ложится именно веб. В качестве наглядного примера Озон ;) Если же партнерам необходима полноценная работа с информацией согласно правам их доступа, то выгоднее десктопное приложение. Здесь я бы рассматривал 3 пути (если в качестве платформы берем ASA):
1. Веб-сервисы (ХП) на ASA, в качестве клиентского приложения C# (веб-сервисы ASA могут сразу генерить XML, заточенный для DataSet ADO.NET). Решение хорошо подходит, если у всех партнеров выделенные каналы и нормальный интернет. Не имея логина и пароля для авторизации к веб-сервисам ASA доступ к БД не возможен, для доступа к веб-сервисам к серверу открыт доступ только на 80-й порт встроенного веб-сервера ASA (ну или какой определим), порт прямого подключения закрыт.
2. Оффлайн репликация по MAIL или FTP (сжатие и криптография) - каждый партнер получает вместе с клиентским приложением вдовесок встроенную РСУБД с сразу настроенной репликацией и может спокойно работать с БД в оффлайне, синхронизируясь по мере необходимости с центральной БД. Здесь партнер вообще не имеет прямой области видимости центрального сервера, все идет закриптованными пакетами через тот же FTP, сервера в интернете не открыты. Для защиты БД на стороне партнера можно включить криптографию БД по ключу, партнеру не доступны пароли DBA, все управление идет централизованно с консолидированного сервера, опять же через репликацию.
3. Десктопное приложение работает с открытым портом прямого доступа ASA, где на сервере включена сжатие криптография протоколов по указанному ключу и при подключении клиентское приложение обязано через драйверы ASA указывать этот ключ (можно его жестко вшить в клиента).

Мне лично удобнее всего вариант 2, однако если бы партнеры зажали пару сотен баксов на покупку лицензии ASA, то тогда вполне нормально выглядят варианты 1 и 3.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33336327
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле это конечно не полноценная реальная задача, скорее отдельный кусок более крупной, тут Вы правы - если это только система заказов -действительно проще было бы обойтись веб-приложением.
Насчет оффлайн - репликации - идея интересная, спасибо...
Как я понимаю, если использовать MSSQL и MSDE для клиентов, то можно обойтись и без 200 баксов за лицензию, правда с некоторыми ограничениями MSDE.
Я вижу 3 минуса использования этого метода:
1. оффлайновость. за время между соединениями информация в локальной базе может стать неактуальной.
2. непонятно, каким образом будет осуществляться оффлайн-репликация в обратную сторону, т.е. синхронизация каталога товаров с клиентами. если такая возможность все же есть, то появляется третья проблема:
3. трафик. репликация двусторонняя, следовательно все изменения на основном сервере будут выкачиваться на всех клиентов, что может быть не очень удобно.
Зато есть один несомненный плюс:
1. По поводу безопасности нареканий вообще нет (если репликация действительно полностью оффлайновая и двусторонняя).

По поводу первого решения - использует ли ASA какой-нибудь стандартный, возможно слегка модифицированный http-сервер (к примеру apache) или это полностью разработка Sybase? Если это их разработка - это с одной стороны плюс, т.к. наверняка его меньше пытаются взломать и опубликованных exploit'ов может быть мало, с другой стороны минус, примерно по той же причине, т.е. возможно его безопасностью никто серьезно и не занимался.

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

В целом при возникновении задачи с указанными условиями я выбрал бы вариант именно с веб-сервисами, т.к. минусы, которые можно найти в этом решении, придется рассматривать под лупой, в отличие от других вариантов.
По поводу репликации - тоже интересный вариант, хотя с безопасностью тут все нормально, но могут быть ограничения по функциональности.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33336397
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПо поводу репликации - тоже интересный вариант, хотя с безопасностью тут все нормально, но могут быть ограничения по функциональности.
Для репликаций ASA ограничений по функциональности нет. Репликация идет по лог-файлу, считываются SQL операторы, криптуются и пакуются в пакеты, далее пакеты отсылаются по указанному протоколу (FTP, MAPI, SMTP, LOTUS, FILE), при получении пакеты выполняются на сервере так же, как и были запущены на удаленном сервере. Таким образом нагрузки на сервер БД минимальны.

На базе репликации ASA можно построить не только полноценную двусторонний обмен информации между консолидированной БД и удаленными узлами, но и целую иерархию узлов, где каждый узел может являться удаленным по отношению вышестоящему консолидированному и консолидированным по отношению к нижестоящим узлам. Там, где нужна интеграция с сторонними приложениями, можно подключить еще и гетерогенную репликацию, где удаленным узлом является ASA, а консолидированным помимо ASA еще могут быть ASE, MSSQL, Oracle и DB2.

автороффлайновость. за время между соединениями информация в локальной базе может стать неактуальной.
Ну - это все зависит от задачи. Можно поставить репликацию раз в 30 секунд и узлы будут непрерывно обмениваться пакетами. Можно критические участки вывести на уровне ХП через веб-сервисы - например у партнера своя БД по репликации с каталогом цен и прочим. Однако когда он делает заказ, то проверка наличия товара и резервирование на складе вызывается как веб-процедура центрального сервера (ASA позволяет шарить на веб-сервисах ХП и описывать веб-сервисы как удаленные ХП с указанием URL - таким образом сервера могут друг у друга через интернет вызывать ХП так, как будто бы это локальные ХП). Достоинством данного решения будет, что с одной стороны партнер не зависит от центрального сервера и может работать автономно. С другой стороны он в онлайн сможет узнать, есть ли товар на складе. Если же упадет интернет, то он всегда может в оффлайн в свою БД выложить заказ, которые потом через репликацию, как только появится интернет уйдет на центральный сервер.

автор непонятно, каким образом будет осуществляться оффлайн-репликация в обратную сторону, т.е. синхронизация каталога товаров с клиентами
3. трафик. репликация двусторонняя, следовательно все изменения на основном сервере будут выкачиваться на всех клиентов, что может быть не очень удобно.
Зато есть один несомненный плюс:
В репликациях ASA есть возможность в публикации на таблицы указывать движение информации по коду подписчика. В коде подписика мы можем указать или поле таблицы или же SQL выражение (тот же SELECT). Каждый подписчик при создании своей подписки указывает свой код подписки и уже по этому коду информация всех таблиц, на которых стоит разделение по коду подписки, автоматически доставляется по нужным подписчикам. Даже больше - если например изменить у записи значение поля кода подписки на другого партнера, то консолидированная БД автоматически сгенерит в репликацию удаление этой записи у текущего подписчика и вышлет вставку записи для нового владельца этой записи. Для случаев, когда информацией владеют все узлы и они все имеют право ее изменять, существует возможность писать на таблицы свои триггеры конфликтов обновлений версий записей, когда 2 узла изменило одну и ту же запись и во время проведения репликации на консолидированном узле теперь следует решить, чья версия и будет считаться последней и актуальной.

В общем - вывод как всегда простой и закономерный - все зависит только от грамотной и тщательной проектировки БД, при достаточно вдумчивом подходе на репликации ASA можно действительно творить чудеса, здесь ограничением является только отсутствие опыта или неправильный подход к проектированию БД.

авторПо поводу первого решения - использует ли ASA какой-нибудь стандартный, возможно слегка модифицированный http-сервер (к примеру apache) или это полностью разработка Sybase? Если это их разработка - это с одной стороны плюс, т.к. наверняка его меньше пытаются взломать и опубликованных exploit'ов может быть мало, с другой стороны минус, примерно по той же причине, т.е. возможно его безопасностью никто серьезно и не занимался.

По поводу третьего решения - минусы я уже описывал. Здесь основная проблема не в перехвате информации (что устраняется шифрованием), а в возможной уязвимости самого сервиса к различного рода хакерским атакам.
Все эти 2 абзаца ложатся в одно утверждение - впервую очередь по ASA больше всего внимания уделятся именно безопасности по всем направлениям, сервер имеет сертификаты C2, FIPS 140-2 и кучу алгоритмов криптографии. Для тех же веб-сервисов организована полноценная защита, вот здесь можно почитать. Общий обзор безопасности здесь .
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33336411
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати как пример использования веб-сервисов могу привести считывание курса валют с сайта ЦБ средствами ASA. В нашем FAQ описано как это сделать. Реализацию можно посмотреть по этой ссылочке: http://support.rs-erc.ru . Здесь обращаясь к этой ссылке мы попадаем на веб-сервер ASA (он собственный, никаких IIS и Apache) на HTML веб-сервис. Он вызывает удаленную процедуру, описанную в FAQ и результаты ее выполнения собирает в HTML и выплевывает браузеру, причем код веб-сервиса выглядит как один SELECT на удаленную процедуру без каких либо курсоров, что достигается засчет возможности использовать в запросах ХП и групповой функции List, позволяющей собрать все записи в одну строку. По этой ссылке стоит уже защищенный средствами ASA веб-сервис, на который возможно получить доступ, только указав логин и пароль пользователя БД.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33337112
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за информацию по репликации на ASA - довольно интересно.
Я все же не понял, каким образом реализовать именно двустороннюю оффлайн-репликацию. Т.е. с закачиванием на сервер понятно, а обратно?
Выкладываются изменения на тот же FTP и оповещается клиент?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33337227
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А тут и я :)

По поводу задачи.
Опять же наглядным примером будет Озон :)
Я уже сделал систему доступа к Озону из обычного клиентского приложения: там можно искать товары, просматривать списки, имеется корзина, которой можно управлять, а так же можно делать заказы (как без этого то?:)).
Ну еще кое-какие применения.
Сделал еще ..... пару лет назад.
Все это работает через вебсервисы, написано на Delphi, используются практически те же ХП (!!!), которые использует интернет-версия.

Такая же система будет использована для callcenter, который обслуживает нас.

Так что ничего сложного здесь нет - я бы нигде не приводил примеры вебсервисов в качестве толстого драйвера, если бы сам не использовал.

-- Tygra's --
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33337288
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChСпасибо за информацию по репликации на ASA - довольно интересно.
Я все же не понял, каким образом реализовать именно двустороннюю оффлайн-репликацию. Т.е. с закачиванием на сервер понятно, а обратно?
Выкладываются изменения на тот же FTP и оповещается клиент?
Гм, ее не нужно организовывать - 2-у сторонняя репликация по умолчанию идет. В консолидированной БД есть публикатор и публикации. Создаются удаленные пользователи, которые подписываются на публикации. Публикатор и удаленные пользователи имеют свои коды и ящики подписки (здесь ящиком подписки будет папка на диске, каталог FTP или имя почтового ящика, тут зависит от настроек протокола работы с удаленным пользователем). Соответствующе все что происходит в консолидированной БД, выкладываются по нужным ящикам. На удаленном сервере наоборот удаленный пользователь является публикатором, а публикатор консолидированной БД является одновременно как удаленным пользователем, так и консолидированным пользователем (так как реально подписка по любому ему принадлежит). В том же порядке, все изменения, которые произошли в удаленной БД, выкладываются на ящик консолидированного пользователя, а все что пришло в ящик удаленной БД применяется на БД. Естественно, чтобы это все красиво работало в оффлайн необходимы мощные механизмы отслеживания хода репликации и уведомлений между серверами. И эти механизмы проработаны в ASA на ура - даже в случаях сбоев, частичной или полной потери или искажения пакетов, ASA самостоятельно решает все проблемы. Если все таки возникают какие то проблемы, то существует режим прямой трансляции SQL на удаленный сервер через репликацию, что позволяет администратору прямо скриптом изменить настройки репликации, режим работы сервера, DML и DDL операторы, вызовы ХП и прочее. На всякий пожарный есть команда полной ресинхронизации удаленного узла с консолидированным (все данные, участвующие в подписке, будут удалены с удаленного узла и отправлены заново с консолидированной БД). Так же в комплекте с ASA идет утилиты разворачивания удаленной БД по удаленному подписчику - фактически при ее запуске с консолидированной БД создается новая БД, полная копия консолидированной на уровне схемы БД, но только с теми данными, которые попадают под условия фильтрации и области видимости подписки для указанного удаленного пользователя. Так что даже если у удаленной точки рухнет абсолютно все - и база и репликация и бакупы, то всегда можно поднять им новую БД с консолидированной. Вкупе с тем, что под ASA есть утилиты на все случаи жизни, легко делать инсталяцию сервера, то фактически тем, кто работает на ASA, не нужно ездить по своим удаленным точкам - высылаем инсталяцию, местные пользователи (даже не АСУшники) ее запускают, получают сразу установленный сервер СУБД и репликации, уже прописанные как сервисные службы, с настроенной на консолидированную БД по нужному протоколу репликацией и на клиентских машинах нужные дрова (ODBC, OLE DB, ADO.NET, JDBC) и само клиентское приложение (при необходимости через утилиту ASA даже можно и DSN под ODBC создать). Администрировать по этому узлу работу репликации, синхронизировать изменения структуры с консолидированной БД можно так же централизованно, все что касается обьемов данных, нагрузок и оптимизации ASA берет на себя, на событийной модели можно описать различные модели поведения в тех или иных ситациях, система почты позволяет рассылать по мылу уведомления нужным администраторам - в итоге получаем действительно систему с нулевым администрированием на удаленных узлах, непотопляемую, с низкими требованиями к ресурсам и каналам связи, очень надежную в работе и что мне очень нравится - очень легкую и простую в освоении, но мощную по функционалу.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33337439
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, с репликацией ситуация понятная. Смущает конечно то, что она жестко привязана к одной конкретной СУБД (ASA), т.к. скажем на MSSQL такие вещи так просто и легко сделать не получится.

tygraА тут и я :)
По поводу задачи.
Опять же наглядным примером будет Озон :)
Я уже сделал систему доступа к Озону из обычного клиентского приложения: там можно искать товары, просматривать списки, имеется корзина, которой можно управлять, а так же можно делать заказы (как без этого то?:)).
Ну еще кое-какие применения.
Сделал еще ..... пару лет назад.
Все это работает через вебсервисы, написано на Delphi, используются практически те же ХП (!!!), которые использует интернет-версия.
Такая же система будет использована для callcenter, который обслуживает нас.
Так что ничего сложного здесь нет - я бы нигде не приводил примеры вебсервисов в качестве толстого драйвера, если бы сам не использовал.


К чему это я все писал - к тому, чтобы показать, что часто промежуточный слой необходим не по причине того, что на него надо выносить бизнес-логику и т.п., а по другим причинам, в частности из-за повышения безопасности и доступности системы. Теперь представим - у нас уже есть такой промежуточный слой, который выполняет функции "толстого драйвера". Почему бы его не нагрузить дополнительной работой, разгрузив при этом БД?
Самое простое и часто встречающееся дело - это кэширование данных на промежуточном слое. Не надо говорить, что с этим СУБД лучше справляется - часто необходимо кэширование, зависящее от логики приложения, о которой СУБД ничего не знает. Ну и затем могут идти различные другие варианты, уже некоторым образом завязанные на бизнес-логику. К примеру, управление блокировками (имеется в виду своя реализация, опять же зависящая от логики приложения, а не СУБД) и тому подобные сервисные вещи. Если идти дальше - то средний слой может предоставлять наружу объектное API, еще дальше - реализовывать некоторую часть бизнес-логики и т.п. Каждый из этих вариантов при определенных условиях и ограничениях имеет право на жизнь.

Поэтому мне все-таки непонятен догматизм некоторых участников форума, которые высказываются категорически против среднего слоя, делая оговорки типа "ну возможно, только если это толстый драйвер" и т.п. Я понимаю, что каждый кулик хвалит свое болото, в данном случае СУБД - но ведь это все-таки не единственное звено в информационной системе, и некоторые вещи целесообразно по разным причинам, к примеру, организационным, связаным с разделением труда и т.п. выносить в средний слой. Зачем эти возможности отрицать с таким упорством - мне действительно непонятно...

На этом я хочу завершить свое участие в обсуждении 3-хзвенной архитектуры, которое уже не в одном топике идет. Думаю, что ничего нового здесь сказано уже не будет, можно этот флейм еще долго гонять по кругу с периодическим подключением новых участников, но смысла в этом особого нет.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33337476
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно очень простой ответ?

авторТеперь представим - у нас уже есть такой промежуточный слой, который выполняет функции "толстого драйвера". Почему бы его не нагрузить дополнительной работой, разгрузив при этом БД?
Зачем его нагружать и т.д., если:
1. На СУБД у нас все и так хорошо работает
2. Повышать сложность системы из-за "просто_так" - нет смысла и себе дороже
3. Уменьшать надежность системы - см. п1,2
4. Отбирать у системы важное достоинство - возможность работы с ней практически из любой программы, которая умеет работать с СУБД - зачем это нам?
5. Ухудшать поддержку и доработку системы - не наш путь.
......
И много много пунктов.

Маяться чепухой, надстраивая что-то только из-за того, что есть вебсервисы - это какая травка нужна? :))

Другое дело, если без распределения системы по звеньям или еще чему-то система очень плохо работает или вообще невозможно - тогда да. Но таких задач почти нет, а те, что есть, не входят в круг обсуждаемых.

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

-- Tygra's --
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33337486
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiCh,
>P.S. последний вопрос не только для tygra, ...

Мое решение раскрыто здесь http://www.gotdotnet.ru/LearnDotNet/NETFramework/223738.aspx

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

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33337552
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
>Любой зонд можно обмануть. Обратите внимание на мой же пример - мало какой зонд обнаружил бы мою присосавшуюся сверху программу.

Позвольте с Вами не согласиться. Процесс зондирования выявляет наличие не санкционированных изменеий в клиентском приложении. Арр сервер блокирует клиентскую сессию и может быть и возможность дальнейшей работы данного клиента.

Не совсем понимаю, какую собственно информацию снимает (получает) ваша присосавшаяся программу.

>В целом, я не вижу большого смысла развивать именно это направление, поскольку оно заведомо уязвимо ...

Право, слишком сильное заявление. На чем Вы основываетесь?

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33337887
nizkzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КОШМАР!!!!!
кто здесь?


===============

пацаны, вы выйдите и набейте друг другу морды!
в топике только пару умных фраз.
Дело в том что вы не обсуждаете трёхзвенку - а меряетесь у кого больше.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33338285
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевПозвольте с Вами не согласиться. Процесс зондирования выявляет наличие не санкционированных изменеий в клиентском приложении.
Какие изменения? Нет никаких изменений :) В том случае, который я рассказал, в клиентском приложении не менялось ни байта. Можно было сканировать файл на диске, образ в памяти, что угодно - любая проверка прошла бы. Более существенно то, что даже при наличии изменений процесс зондирования не "выявляет", а "имеет шанс выявить". Тут уже идет соревнование: кто кого обманет, автор зонда или хакер, причем все козыри в руках хакера. Чтобы не ходить далеко за примерами, вспомните про такую разновидность софта как стелс-вирусы - как раз инструмент обмана зонда-антивируса.

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

Право, слишком сильное заявление. На чем Вы основываетесь?
На сказанном выше. Зондирование - это игра на чужом поле.

Итак, я взламываю Вашу систему. Разобрал по косточкам клиентское приложение, увидел, что оно получает и выполняет зонд. Что я делаю: приписываю кусок кода, который получает зонд, расшифровывает итп, записывает в файл. Если я ленив - далее попросту имитируется сбой клиента, если не ленив - мой код самоубирается из памяти, восстанавливает все как должно было бы быть в оригинальном приложении, зонд выполняется и продолжается нормальная работа. Далее я разбираю по косточкам зонд, и в том месте, где должен вернуться результат проверки, ставлю return true. Следующий запуск, приложение получает зонд и выполняет его пропатченную версию, которая сообщает, что все в порядке.

Что делаете Вы, обнаружив мой взлом. Вы садитесь и пишете некий динамический генератор зондов, чтобы лишить работоспособности разобранную мной версию.

Что делаю я, обнаружив такой облом. Пишу стелс, скидываю зонды в файлы, анализирую и в конце концов пишу динамический патчер для динамических зондов.

Итп. Соревнование в лучшем случае на равных условиях. Тоже метод защиты, конечно, но имхо непродуктивный - лучше сосредоточить усилия там, где у защиты все преимущества, то есть на серверах.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33338962
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

>Какие изменения? Нет никаких изменений :) ...
>Итак, я взламываю Вашу систему. Разобрал по косточкам клиентское >приложение, увидел, что оно получает и выполняет зонд. Что я делаю: >приписываю кусок кода, ...

Не все так просто.
Зонд - это или (вариант 1) объект некоторого класса, или (вариант 2), некоторая сборка, - являюшийся частью клиентского приложения. Оно откомпилировано со строгими именами. Передается в клиентское приложение и запускается там только после аутентификации клиента в ситеме безопасности информационной системы.
Оба варианта зонда не будут работать в другой среде, кроме как в среде клиентского приложения, где было создано.
Зонд обязан передать некоторую информацию серверу приложения в течении некоторого промежутка времени. Если информация не поступит, видимо будет принято решение блокировать клиента и последует отработка ситуации по не штатной ситуации. Несомненно и зонд будет заменен и видимо, клиентское приложение.

>Что делаете Вы, обнаружив мой взлом. Вы садитесь и пишете некий динамический генератор зондов, чтобы лишить работоспособности разобранную мной версию.

Нет. Заменяю клиентское приложение и больше не имею дел с подобным клиентом (если он что-то может менять в базе данных).

>Итп. Соревнование в лучшем случае на равных условиях. Тоже метод защиты, конечно, но имхо непродуктивный - лучше сосредоточить усилия там, где у защиты все преимущества, то есть на серверах ...

Идеальной защиты конечно же нет. Вы правы.
Вынуждено, последовательно строим рубежи защиты.
И на серверах приложений (ограничиваю клиенткое любопытство только подмножеством допустимых ему (группе, куда он входит) функций - никаких SQL предложений !) и на сервере данных.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33339017
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Не все так просто.
Зонд - это или (вариант 1) объект некоторого класса, или (вариант 2), некоторая сборка, - являюшийся частью клиентского приложения.
Замечу - слабо связанной частью. Иначе клиентское приложение не сможет запуститься-аутентифицироваться-получить зонд.

ВМоисеевПередается в клиентское приложение и запускается там только после аутентификации клиента в ситеме безопасности информационной системы.
Это не имеет значения. Если полагаться на то, что злоумышленник не пройдет аутентификацию, все следующие ступени просто излишни.

ВМоисеевОба варианта зонда не будут работать в другой среде, кроме как в среде клиентского приложения, где было создано.
Не верю. Вопрос может быть только в том, сколько сил потребуется для адекватной подмены среды.

И отмечу, что зонд вообще говоря даже не обязан работать - до тех пор пока Вы не приходите к динамической генерации зондов. Взломщику вполне хватит варианта "получить зонд и послать нужный ответ".

ВМоисеевЗонд обязан передать некоторую информацию серверу приложения в течении некоторого промежутка времени. Если информация не поступит, видимо будет принято решение блокировать клиента и последует отработка ситуации по не штатной ситуации. Несомненно и зонд будет заменен и видимо, клиентское приложение.
Это, простите, фантастика. На каждый сбой модема у одного из десяти тысяч пользователей Вы будете заменять клиентское приложение?

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

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

ВМоисеевИдеальной защиты конечно же нет. Вы правы.
Вынуждено, последовательно строим рубежи защиты.
Если у нас бесконечное количество сил, безусловно, защищаем все рубежи. В реальных же условиях я сосредоточился бы в первую очередь на тех рубежах, на которых легче эффективно защищаться.

ВМоисеевИ на серверах приложений (ограничиваю клиенткое любопытство только подмножеством допустимых ему (группе, куда он входит) функций - никаких SQL предложений !)
"Никаких SQL предложений" не добавляет к защите ровным счетом ничего.

ВМоисееви на сервере данных.
Прежде всего на сервере данных. Сервер данных - это единственное место, где можно относительно легко организовать вполне пристойную защиту.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33339063
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый softwarer,
хочу выразить свою признательность, за то что нашли время для делового обсуждения поднятых вопросов. И если позволите - продолжим.

>Замечу - слабо связанной частью. ...
С точностью до наоборот.
Повторяю, классы и зонды компилируются в составе единого клиентского приложения, которое представляет собой многофайловую сборку. Некоторое количество .dll представляют собой зонды, но клиенту они явно не передаются.

>Это не имеет значения.
Сильное заявление. Важно идентифицировать, кто шалит.

>Не верю. Вопрос может быть только в том, сколько сил потребуется для адекватной подмены среды.
Ничего вразумительного по этому поводу сказать не могу. Это вопрос Биллу. Читаю тех. литературу, верю-проверяю, тому что написано и пользуюсь этими знаниями.

>Это, простите, фантастика. На каждый сбой модема ...
Простите, не на каждый сбой модема. А только сбой в одной контретной ситуации - при работе зонда. Это не штатная ситуация. И работа клиента должна быть блокирована.

>Во-первых, возможность либо невозможность менять данные значения не имеет. ...
Не согласен. Принципиальное значение. Одно дело, когда клиент смотрит наличие лекарств в аптеках города (наличие товара в магазинах города и наличие оного на складах), и совсем другое, когда он начинает что-то менять (изменять не своё).

>Если у нас бесконечное количество сил, безусловно, защищаем все рубежи.
Всего три на первом этапе. Думаю - это разумно.

>"Никаких SQL предложений" не добавляет к защите ровным счетом ничего.
Не согласен. Привожу пример ситуации. На клиетской машине плохого умного человека (Мориарти) есть возможность строить SQL предложения. Он знает, что есть ему доступная о...чень большая таблица. И он строит нечто несуразное - сортировку (Like ...) по текстовому полю и наверное многое что. Два - три (десятка) подобных запросов и сервер блокирован. Не есть хорошо.

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

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33339349
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
С точностью до наоборот.
Повторяю, классы и зонды компилируются в составе единого клиентского приложения, которое представляет собой многофайловую сборку. Некоторое количество .dll представляют собой зонды, но клиенту они явно не передаются.
Возможно, я слишком сплю, чтобы понять Вас. В моем понимании дела обстоят следующим образом:

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

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

- Может существовать защита на уровне среды выполнения. Тут уже вопрос - можно ли ее обойти, но в целом - она опять же доступна хакеру для разборки по винтику.

ВМоисеевСильное заявление. Важно идентифицировать, кто шалит.
С этой точки зрения - да. Я имел в виду, что "передача только после аутентификации" не усиливает защищенность системы (в смысле ее способности противостоять взлому, по крайней мере без вмешательства администратора).

ВМоисеевНичего вразумительного по этому поводу сказать не могу. Это вопрос Биллу. Читаю тех. литературу, верю-проверяю, тому что написано и пользуюсь этими знаниями.
Насколько мне известно, Mono уже неплохо работает и доступен в исходниках. Так что это вопрос уже даже не к Биллу.

ВМоисеев
>Это, простите, фантастика. На каждый сбой модема ...
Простите, не на каждый сбой модема. А только сбой в одной контретной ситуации - при работе зонда. Это не штатная ситуация. И работа клиента должна быть блокирована.
Сформулирую так: с моей точки зрения, в коммерческой системе такая защита вызовет существенные неудобства (проблемы для админов, недовольство клиентов итп).

Кроме того, это совершенно замечательный способ помочь хакеру выполнить одну из стандартных задач, а именно - блокировать работу системы. По сути хакеру почти ничего не надо делать, только подсадить нескольким вашим клиентам вирус, который будет в случайные моменты времени инициировать подобный сбой.

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

ВМоисеев>"Никаких SQL предложений" не добавляет к защите ровным счетом ничего. Не согласен. Привожу пример ситуации. На клиетской машине плохого умного человека (Мориарти) есть возможность строить SQL предложения. Он знает, что есть ему доступная о...чень большая таблица. И он строит нечто несуразное - сортировку (Like ...) по текстовому полю и наверное многое что. Два - три (десятка) подобных запросов и сервер блокирован. Не есть хорошо.
Хм. В первую очередь стоит отметить, что вызов SQL с сортировкой очень_большой_таблицы или вызов процедуры отсортируй_очень_большую_таблицу в данном случае особо не различаются. Почему: в том числе потому, что во вторую очередь пользователи регулярно требуют выполнить ту или иную долгую операцию. Я сходу не вспомню полномасштабной информационной системы, в которой в том или ином виде не видел бы фразы: "требуемый поиск/сортировка/фильтрация/отчет... может выполняться долго. Продолжить? (Д/н)". Можно привести и другие аргументы, но не хочется утонуть в обсуждении конкретных деталей, поэтому если Вы не согласны - давайте зафиксируем, что эту точку зрения я не собираюсь особо отстаивать.

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

ВМоисеевДругое дело, как можно исключить подобное развитие событий в двухзвенке. Но это не сфера моих интересов. Если есть эффективное решение, на уровне app воспользуемся, нет - там и сделаем
Хм. Вы совершенно напрасно делаете здесь противопоставление двухзвенка-трехзвенка. С моей точки зрения, в большинстве случаев стоит пользоваться понятием layer (слой, уровень), потому что оно позволяет взглянуть на ситуацию с нужным уровнем абстракции. Те слои, из которых состоит многозвенка, обычно можно размазать по двум звеньям без заметного изменения логики взаимодействия уровней. В данном случае - не думаю, что нечто, что Вы можете "там и сделать", не получится сделать на сервере. Опять же, отдельно отмечается роль трехзвенки как "велосипеда для работы с MySQL".
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33340095
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTheRaven
ИС можно рассматривать в виде фабрики по обработке данных.
Каждое «звено» архитектуры - класс вычислительных узлов, настроенных на выполнение определённых действий. Чем более специализированными они будут, чем меньше действий придётся выполнять каждому звену – тем эффективнее будет работа, при условии, конечно, наличия между ними сети, достаточно быстрой, чтобы не быть «бутылочным горлышком».
Почти у каждой ИС есть функции «быстро и красиво построить пользовательский интерфейс», «быстро и гибко обработать информацию» и «быстро и надёжно сохранить информацию». Они предъявляют к вычислительному узлу противоречивые требования.
Интерфейс – наверное, тяжёлая графическая оболочка.
Обработка – наверное, быстрая, простая в поддержке вычислительная среда.
Хранение – наверное, много дисковых операций, реляционная алгебра.
Увеличение количества звеньев – способ преодоления этих противоречий.
Чем больше в сети "клиентов" - тем более оправдан ввод дополнительных звеньев.
Давно не был, но решил зайти в эту ветку.
Итак.
Разделение производства на технологические стадии послужило качественным скачком в производстве и переходом на мануфактуры из кустарного производста. Курс истории читал.
Все зависит во первых от масштаба проекта, его бюджета, а не от того, кто и что может сделать.
Я например могу организовать и сделать практически любой проект, но всегда есть сроки. И когда например для написания элементарной учетной системы я начту городить по кавырнадцать звеньев - это странно и вылезет далеко за декларированные мной сроки. С другой стороны, если я разобью задачу на модули 2-х звенки - от этого разработка только ускорится, т.к. каждый разработчик будет меньше зависим от всех остальных, но при этом ядро интерфейса и база общие и внесение изменений подсиняется определенной политике-стилю.

Если например у меня есть удаленные клиенты - 1-е я спрошу, достаточно ли им удобно работать в броузере? если да, тогда велосипед выдумывать я не буду, сделаю отражение нужных форм им с возможностью внесения информации, естественно с кучей секьюрных наворотов или в канале vpn.
Красивые теории, декларируемые Вами подкупают красивыми словами и высокими стремлениями, но на практике все это как для телеги 5-е колесо.

На практике: например ORACLE купил Innobase oy, а зачем? да потому что скорость асинхронной работы в InnoDB значительно выше чем в оракле, и сколько не применяли высоких теорий, все равно только пена. А их же сотрудник, который от них ушел переплюнул великих и могучих :) такая вот штука.
Но другое дело бабло - "бабло побеждает зло" :) за деньги навесить можно любой лапши, это просто бизнес.
В жизни все связано воедино - поэтому не рекомендую соискателям красивых велосипедов их на самом деле делать (хотя для самых потенциальных все таки 1 изобрести надо, иначе не будет понято где правда а где нет), а для начала изучить что же уже сделано.

Такой вот креатиф.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33342721
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
>Все, что заранее собрано в клиентское приложение, может быть сильно связано, но я (хакер) имею полную возможность разобрать это по винтикам и изменить как угодно, прежде чем связываться (измененным приложением) с сервером. Соответственно, включенные туда зонды будут передавать то, что я им скажу, итд.

Дело в том, что клиентское приложение в том виде, как оно передано клиенту не содержит сборок(.dll) зондов. Так что хакер долго может искать черную кошку.

Подписанная сборка не запустится в измененной среде. Но как Вы понимаете, это в некоторой степени виртуальное предположение. Всё зависит от реализации среды мелкими или еже с ними.

>Кроме того, это совершенно замечательный способ помочь хакеру выполнить одну из стандартных задач, а именно - блокировать работу системы. По сути хакеру почти ничего не надо делать, только подсадить нескольким вашим клиентам вирус, который будет в случайные моменты времени инициировать подобный сбой.

Извините, но здесь опять не могу с Вами согласться. Клиент в этом случае в принципе должен быть блокирован.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33345674
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевДело в том, что клиентское приложение в том виде, как оно передано клиенту не содержит сборок(.dll) зондов. Так что хакер долго может искать черную кошку.
Если не содержит - значит, связь таки слабая. Значит, клиентское приложение изначально запускается без _отъемлимой_ части.

ВМоисеевПодписанная сборка не запустится в измененной среде.
Хм. А кто-то обязывался ее запускать? Получить и разобрать на винтики это не помешает.

ВМоисеевНо как Вы понимаете, это в некоторой степени виртуальное предположение. Всё зависит от реализации среды мелкими или еже с ними.
Я так понимаю, что эта точно такая же доступная хакеру часть клиентского приложения, которую можно не спеша разобрать по винтикам :)

ВМоисеевИзвините, но здесь опять не могу с Вами согласться. Клиент в этом случае в принципе должен быть блокирован.
Должен - так должен. Это означает, что Вы затрудняете атаку одного типа за счет того, что даете хакеру превосходный инструмент осуществления атаки другого типа. Возможно, это оправданно, по крайней мере для приложений, в которых главное - защита информации, а не доступность.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33345851
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевНо как Вы понимаете, это в некоторой степени виртуальное предположение. Всё зависит от реализации среды мелкими или еже с ними.
softwarerЯ так понимаю, что эта точно такая же доступная хакеру часть клиентского приложения, которую можно не спеша разобрать по винтикам :)Более того, есть реализации .NET Framework в исходниках под Windows, тот же Mono + reference - реализация Microsoft (aka Rotor). Достаточно одну из них скомпилировать, убрав некоторые "ненужные" вещи (к примеру, проверку подписи на сборках). После этого можно будет прекрасно запускать модифицированные сборки.

Вообще обеспечить гарантию неизменности клиента - задача нереальная, да и смысла в этом я особого не вижу.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33345875
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladiCh
Вообще обеспечить гарантию неизменности клиента - задача нереальная, да и смысла в этом я особого не вижу.

Аппаратно вероятно решаемо и будет таки решено. Например, с переменным успехом это удается делать производителям игровых приставок (XBOX, PS ...) , которые ведут постоянную борьбу с пользователями, модифицирующими эти приставки для разных целей. Разработанные в этой борьбе технологии элементарно затем перенесутся и во все другие области.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33345950
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo VladiCh
Вообще обеспечить гарантию неизменности клиента - задача нереальная, да и смысла в этом я особого не вижу.

Аппаратно вероятно решаемо и будет таки решено. Например, с переменным успехом это удается делать производителям игровых приставок (XBOX, PS ...) , которые ведут постоянную борьбу с пользователями, модифицирующими эти приставки для разных целей. Разработанные в этой борьбе технологии элементарно затем перенесутся и во все другие области.
Ох хо хо - то то у меня чипованный XBOX делает то, что у MS даже за деньги нет, да многое даже и второй уже официальной версии не будет Да и винт там уже давно не 8-гигов стоит и все программы/игры не с DVD запускаются. Даже пробовал обычный DVD подоткнуть, они защитились на уровне изменения сигнала открытия/закрытия привода, при желании и это можно было бы обойти.

Так что пока можно сказать, что борьба приставок с пиратством даже на аппаратном уровне полностью себя не оправдала. Больше пользы приносит борьба на софтверном уровне, где например чипованные приставки и ломанные игры не могут подключаться через интернет к игровым официальным серверам и это жестко контролируется. Хотя ... если XBOX подцеплен по сетке к компьютеру, поиграть не только по локалке, но и через интернет без официальных серверов не так уж сложно - уже давно есть специально ПО для компов под это дело, организующих связь между XBOX.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33346107
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChБолее того, есть реализации .NET Framework в исходниках под Windows, тот же Mono
Я об этом упоминал :)

VladiChВообще обеспечить гарантию неизменности клиента - задача нереальная, да и смысла в этом я особого не вижу.
Собственно, именно эту мысль я и пытаюсь обосновать :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33346131
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey RovdoАппаратно вероятно решаемо и будет таки решено.
Угу. Сразу вспоминается, как в далеком уже тысяча девятьсот каком-то году некий пытливый канадский студент обнаружил, что буквально одним движением паяльника можно из модема USR Sportster сделать модем USR Courier (стоивший на тот момент баксов на двести дороже).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33347372
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo VladiCh
Вообще обеспечить гарантию неизменности клиента - задача нереальная, да и смысла в этом я особого не вижу.

Аппаратно вероятно решаемо и будет таки решено. Например, с переменным успехом это удается делать производителям игровых приставок (XBOX, PS ...) , которые ведут постоянную борьбу с пользователями, модифицирующими эти приставки для разных целей. Разработанные в этой борьбе технологии элементарно затем перенесутся и во все другие области.
Полностью нерешаемо в принципе. Аппаратный взлом просто более дорогой, не у каждого хакера есть доступ к соответствующему оборудованию и технологиям. Я согласен, если есть _грамотная_ аппаратная защита, обойти ее очень сложно, но ничего невозможного нет :).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33347393
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и как правило обход аппаратной защиты производится программными средствами, т.к. возможности современных процессоров позволяют программно эмулировать кучу разнообразных аппаратных примочек.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33347408
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С моей точки зрения, аппаратная защита на относительно бытовом уровне не станет основным инструментом по одной причине: для того, чтобы она была действительно эффективна, необходима очень высокая степень интеграции (то есть засунуть в один чип практически весь компьютер вместе с защитой). Да, в этом случае не останется ничего как только разработать другой чип, без такой защиты. Но даже если опустить технические моменты - остается вопрос стоимости. Мало кто будет покупать такой интегрированный чип до тех пор, пока его стоимость (то есть стоимость апгрейда, он же полная замена) не окажется в диапазоне ста-двухсот баксов.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33347423
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softvarer,

>Если не содержит - значит, связь таки слабая. Значит, клиентское приложение изначально запускается без _отъемлимой_ части.

Полный экземпляр клиентского приложения содержит и некоторое число .dll зондов и располагается на сервере (файловом), доступном app. Клиентское приложение компилируется со строгими именами. Но клиенту передвается не полная версия - без зондов.

>Хм. А кто-то обязывался ее запускать? Получить и разобрать на винтики это не помешает.

На это требется время, а его то клиенту app и не дает.

>Я так понимаю, что эта точно такая же доступная хакеру часть клиентского приложения, которую можно не спеша разобрать по винтикам :)

Любая программная система наверное декодируема. Вопрос в ресурсах. Правда что-то не слышно о клонах Windows.

>Собственно, именно эту мысль я и пытаюсь обосновать :)

Не могу согласиться с Вами.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33347663
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Если не содержит - значит, связь таки слабая. Значит, клиентское приложение изначально запускается без _отъемлимой_ части.

Полный экземпляр клиентского приложения содержит и некоторое число .dll зондов и располагается на сервере (файловом), доступном app. Клиентское приложение компилируется со строгими именами. Но клиенту передвается не полная версия - без зондов.
Я таки перестал понимать суть Ваших возражений. Да, клиенту передается не полная версия. Да, потом ему передается остаток. И чему это мешает? Главное - факт наличия или отсутствия зонда принципиально не мешает (модифицированному) приложению работать.

ВМоисеев>Хм. А кто-то обязывался ее запускать? Получить и разобрать на винтики это не помешает.

На это требется время, а его то клиенту app и не дает.
Я говорил, что такой подход - если после каждого случая Вы останавливаете систему на N времени, пока не замените целиком систему зондирования - пожалуй вполне себе адекватен в случае, если главное - уберечь данные. Заодно таким образом Вы даете хакеру превосходный инструмент обеспечения регулярного Out of service Вашей системы, что считается недопустимым для большинства приложений.

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

ВМоисеевЛюбая программная система наверное декодируема. Вопрос в ресурсах. Правда что-то не слышно о клонах Windows.
А кому они нужны? Или Вы никогда не слышали о пиратских виндах?

ВМоисеевНе могу согласиться с Вами.
Полагаю, мы исчерпали свои аргументы. А оценка их значимости у каждого своя.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33351310
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
>Я таки перестал понимать суть Ваших возражений. Да, клиенту передается не полная версия. Да, потом ему передается остаток. И чему это мешает? Главное - факт наличия или отсутствия зонда принципиально не мешает (модифицированному) приложению работать.

Модифицированное приложение не может работать. Последовательность построения клиентской сессии состоит из некоторого числа этапов. Одни из них - реакция зондов, запущенных в клиентской машине. Длительность ожидения app реакции зондов не бесконечна по времени. Если time-out закончен, клиент, но не система, блокируется. Сессия не будет построена. Остальные клиенты работают.
Клиентское приложение на стороне клиента содержит зашифрованную базовую сборку (она достаточно большая что-бы передавать её по сети для каждойй сессии и отвечает за взаимодействие с app). Не зная её кода, не знаю что можно сделать.

>Я говорил, что такой подход - если после каждого случая Вы останавливаете систему на N времени, ...

Не будет создана сессия для одного конкретного шаловливого клиента. Но так должно быть в принципе. Система здесь не причем.
Зонд, запущенный на клиентской машине с неизвесным функционалом - серьёзная броня. Хакер - снаряд. Результат - развитие защиты.

>Полагаю, мы исчерпали свои аргументы. А оценка их значимости у каждого своя.

Согласен. За обсуждение - спасибо.

С уважением, Владимир.

p.s. Насчет динамического синтеза зондов. Здесь с Вами солидарен. Но потратил некоторое время и ничего не смог сделать. Пока остался при своих - зонды создаются единожды при компиляции клиентского . Может в будующем.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33351359
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
По моему мнению и мению многих уважаемых мною посетителей форума - трехзвенка - Г. Без аргументов. Устал их писать
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33351411
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевЕсли time-out закончен, клиент, но не система, блокируется. Сессия не будет построена. Остальные клиенты работают.
Это практически бессмысленно. На практике это означает следующее: я с одного клиента запрашиваю зонд, разбираю его на винтики, иду на другой клиент и творю что хочу. Здесь я имею в виду под клиентами более-менее отдельные рабочие места или интернет-пользователей. Если же Вы имеете в виду блокировку некоторой крупной группы клиентов, например компании, от одного из сотрудников которой были подозрительные действия, то итогом этого будет тот же out of service, только в более скромных масштабах. И я почему-то подозреваю, что серьезные клиенты очень скоро потребуют от Вас убрать такую защиту (см. замечательный фильм "Как украсть миллион").
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33351463
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

>Это практически бессмысленно. На практике это означает следующее: я с одного клиента запрашиваю зонд, разбираю его на винтики, иду на другой клиент и творю что хочу...

Ничего вы сотворить не сможете. Вы будете блокированы. Зонд будет считаться раскрытым и больше в действие вводиться не будет.

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

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33351543
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевНичего вы сотворить не сможете. Вы будете блокированы. Зонд будет считаться раскрытым и больше в действие вводиться не будет.
И сколько таких зондов Вы заранее заготовите? Больше, чем клиентов у системы? И если я их израсходовал массовой атакой - остановите систему, пока не напишете сотню-другую новых?

Cнова приходим к тому, что без динамических зондов здесь не обойтись.

ВМоисеевНо повторяю, это только первый рубеж защиты данных от несанкционированного доступа к данным (изменения данных).
И? Мы, кажется, обсуждаем именно целесообразность этого рубежа. Говоря "это только первый" Вы фактически говорите "нестрашно, если его пробьют, есть и другие". Это в принципе верно, но вопрос в том - нужен ли такой рубеж.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33351568
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
>И сколько таких зондов Вы заранее заготовите? Больше, чем клиентов у системы? И если я их израсходовал массовой атакой - остановите систему, пока не напишете сотню-другую новых?
Cнова приходим к тому, что без динамических зондов здесь не обойтись.

Планировал где-то от 32 до 256 на каждый вариант клиентского приложения. Не понимаю, что вы понимаете по массовой атакой. Зонд будет транспортирован и активизирован только после аутентификации клиента. В информационных системах наподобия прсмотра наличия лекарств в аптеках города клиенты типа Guest могут выполнять только примитивные функции и в принципе (app не допустит) не могут менять информацию базы данных. Клиенты-аптеки же должны быть идентифицированы.

Эх, если бы я знал, как написать динамический зонд в среде .Net. Помогите. Пока могу только мечтать.

> И? Мы, кажется, обсуждаем именно целесообразность этого рубежа. Говоря "это только первый" Вы фактически говорите "нестрашно, если его пробьют, есть и другие". Это в принципе верно, но вопрос в том - нужен ли такой рубеж.

Несколько нетак. Вопросы защиты - материя тонкая. 100% гарантии не даёт никто. Обычно каждый рубеж даёт время на активизацию следующего. Я не собираюсь вгонять вопрос в абсолют. Необходимость будет выбита в ТЗ. Мне важно, чтобы разработчик программных систем имел понятие о данном вопросе и у него под рукой была бы отлаженная "рыба" на момент "ч".

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33351608
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевПланировал где-то от 32 до 256 на каждый вариант клиентского приложения.
Честно говоря, мне уже где-то интересно посмотреть, как Вы будете писать 256 существенно разных зондов. Существенно разных - в том смысле, что разобрав на винтики штуки три, я не смогу заменить их универсальной отмычкой.

ВМоисеевНе понимаю, что вы понимаете по массовой атакой.
Вирус, который залезет на 33 клиентских места и будет рвать связь аккурат после аутентификации.

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

ВМоисеевЭх, если бы я знал, как написать динамический зонд в среде .Net. Помогите. Пока могу только мечтать.
Боюсь, про эту среду я не знаю абсолютно ничего, но я пока что не видел интерпретатора, который не позволял бы на ходу дополнить исполняемую программу указанным исходником.

ВМоисеевМне важно, чтобы разработчик программных систем имел понятие о данном вопросе и у него под рукой была бы отлаженная "рыба" на момент "ч".
Угу. Плох тот программист, который в детстве не писал ОС :)
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33351798
Andres 1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевЛюбая программная система наверное декодируема. Вопрос в ресурсах. Правда что-то не слышно о клонах Windows.
Качество, конечно, не для релиза, но вот клон Windows: http://www.reactos.com/
softwarer
Боюсь, про эту среду я не знаю абсолютно ничего, но я пока что не видел интерпретатора, который не позволял бы на ходу дополнить исполняемую программу указанным исходником.

Для .NET? Кое-что есть.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfMicrosoftVsa.asp
The Microsoft.Vsa namespace contains interfaces that allow you to integrate Script for the .NET Framework script engines into applications, and to compile and execute code at run time.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33352173
Фотография Lamer@fools.ua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer ВМоисеевЭх, если бы я знал, как написать динамический зонд в среде .Net. Помогите. Пока могу только мечтать.
Боюсь, про эту среду я не знаю абсолютно ничего, но я пока что не видел интерпретатора, который не позволял бы на ходу дополнить исполняемую программу указанным исходником.

System.CodeDom.Compiler namespace
Microsoft.CSharp.Compiler class
System.Runtime.CompilerServices namespace
?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33374276
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подниму топик....
На 9 странице тут обсуждалась проблема слабости хэшей в MSSQL.
Недавно оказалось, что и Oracle в этом плане ничем не лучше, если не хуже.
Подробности тут . Так что... еще один камень в огород тех, кто полагается только на механизмы security СУБД.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33375155
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм. Боюсь, с этой ссылкой у меня что-то не в порядке, но подозреваю, речь в очередной раз идет о теоретической возможности вскрыть по хэшу пароль сиса.

В принципе сказана ключевая фраза про "только на". Разумеется, чем больше препятствий на пути - тем лучше; камни со стороны БД лично я кидаю на тех авторов трехзвенок, которые полагаются только на свою защиту и лезут в базу с правами суперпользователя.

Если же говорить о возможности такого вскрытия, то она на мой взгляд сугубо теоретическая. Точнее, относится только к возможности вскрытия "изнутри" - собственным сотрудником в случае, если администратор сервера совсем не соображает, что делает, например раздает всем подряд привилегию SELECT ANY TABLE.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33377185
pashAkka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фуххх!
прочитал всю ветку, правда в некоторых местах через строчку, т.к. не интересно и не по теме.

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

Сама программа проедставляет собой многофункциональную банковскую систему для обслуживания клиентов в отделениях банка. На данный момент система состоит из двух структ. единиц:
1. Центральная база
2. Отделение

они между собой обмениваются репликациями (собственный формат).
каждая из таких единиц содержит СУБД и клиентские места.

хотелось бы реализовать это дело на 3-х уровневой структуре, но при этом не потерять локальной автономности удаленных клиентов. Т.е., чтобы при нарушении связи с головным офисом, отделение продолжало функционировать (пусть даже с некоторыми ограничениями) используя локальный кеш, который при возобновлении связи будет передан.

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

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

я так понял, что в данном случае обойтись клиент-серверной моделью ну ни как не получится.

буду рад, если всетаки найдутся приемлемые решения, которые обойдуться "малой кровью" :)

з.ы. насчет опыта тут правильно высказывались, довольно много нового приходится учить, чтобы реализовать подобную систему.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33377650
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pashAkkaУ меня назревает задача сделать систему, точнее переделать существующую так, чтобы клиентам не пришлось бы покупать СУБД а также минимизировать послеустановочную настройку приложения.
Хм. Я так понял, что под "не пришлось бы покупать" Вы имеете в виду адаптацию приложения под несколько хост-СУБД?

pashAkkaхотелось бы реализовать это дело на 3-х уровневой структуре,
Зачем? "Хотелось бы" здесь читается как "слышали, интересно попробовать".

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

pashAkkaнасчет актуальности данных можно сильно не беспокоиться, т.к. каждое отделение работает в своем пространстве системных номеров и, в основном, друг от друга не зависит.
Номера - наименьшая из проблем, бо тривиально решается. Основная проблема - на уровне логики, в коллизиях, конфликтных операциях, которые могут возникнуть. Если для них в принципе есть возможность, то количество проблем в зависимости от отставания репликации растет нелинейно, скорее экспоненциально.

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

pashAkkaбуду рад, если всетаки найдутся приемлемые решения, которые обойдуться "малой кровью" :)
Если серьезно, то это отдельный большой разговор, для которого Вы пока дали мало информации.

Честно говоря, пока все выглядит чуть несерьезно - на рынке банковских систем есть серьезные игроки, крутятся очень неплохие деньги, и тут назревает задача, у которой Вы выглядите единственным исполнителем, заглядывающим в новую тему. В любом случае, я бы посоветовал Вам создать новый топик, в котором детально описать, что у вас есть "включая использованные технологии и инструменты" и каковы должны быть характеристики новой версии.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33379888
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerХм. Боюсь, с этой ссылкой у меня что-то не в порядке, но подозреваю, речь в очередной раз идет о теоретической возможности вскрыть по хэшу пароль сиса.
Там во втором фрейме должен pdf-документ открываться. Прямая ссылка тут . Да, речь идет о взломе хэша. Возможность для меня тоже чисто теоретическая, т.к. я сам взолмом профессионально не занимаюсь, но я знаю пару людей, которые этим занимаются вполне профессионально, и это для них сугубо практическая возможность. Если вы читали например мое сообщение про способ обойти стандартную систему security MSSQL, то поймете в чем дело. Там даже не надо иметь права на чтение из системных таблиц. Да, у инсайдера больше возможностей для такого взлома, т.к. как правило члены домена имеют бОльшие права на сервере СУБД, чем внешние пользователи. Но и у внешних пользователей такие возможности есть плюс постоянно появляются новые и сисадмину нужно очень быстро закрывать различные дырки, т.к. если кто-то целенаправленно хочет взломать именно эту систему, он будет использовать все имеющиеся возможности для этого.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33380089
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChи это для них сугубо практическая возможность.
Я имел в виду "теоретическая" в другом плане - допустимо (с моей точки зрения) малый шанс пройти нормальную защиту; не воспользоваться откровенной глупостью защищающихся, а именно что взломать защищенную систему.

Позволю себе процитировать ключевую фразу этой статьи:

Assuming an attacker has access to optimized DES-cracking hardware, an
organization may need to enforce 12-character passwords and a password expiration duration of 60 days to mitigate a brute-force attack against the password hash.

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

Давайте так. Эта статья аккуратно собрала известные факты, не сказав, в общем, ничего нового. Ее процитированный вывод имхо вполне практичен, если мы говорим об организации, которая думает о своей защищенности. Для защиты раздолбаев возможностей только Oracle не хватит, это давно известно.

Я не считаю себя серьезным специалистом по взлому, и поэтому не хотел бы излагать свои рассуждения; действительно специалистов я бы сам с удовольствием послушал. Мои же выводы таковы: во-первых, сочетая имеющиеся инструменты и пару мелких трюков, возможность атаки Oracle через хэш можно свести до сугубо теоретической; во-вторых, я думал, как ломал бы этот сервер, и считаю более перспективным другое направление, о котором, по-моему, особо никто не задумывался (во всяком случае не видел публикаций на эту тему).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33381751
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerМои же выводы таковы: во-первых, сочетая имеющиеся инструменты и пару мелких трюков, возможность атаки Oracle через хэш можно свести до сугубо теоретической; во-вторых, я думал, как ломал бы этот сервер, и считаю более перспективным другое направление, о котором, по-моему, особо никто не задумывался (во всяком случае не видел публикаций на эту тему).
Какое направление вы считаете болеее перспективным, если не секрет?

Принципиальных противоречий с Вашей точкой зрения на указанный вопрос я не вижу, дело только в акцентах.
Вывод этой статьи конечно практичен, но он тоже не панацея.Я считаю, что организация, для которой важна стабильная работа СУБД и конфиденциальность хранящейся в ней информации, должна строить многуровневую защиту, желательно с ограничением доступа на сетевом уровне - промежуточный слой, VPN и т.п. Полагаться в этом случае полностью на механизмы СУБД просто безответственно. Стабильность работы СУБД может быть нарушена DoS - атакой, конфиденциальность информации - различными дырами и недоработками в этой области. Ну и не надо полагаться на сисадмина на все 100%. Если систему security надо долго и сложно настраивать, чтобы она стала действительно устойчивой к атакам, то всегда есть вероятность, что человек что-то забудет или сделает не так. Нужно чтобы система безопасности была устойчива к мелким ошибкам в администрировании, а это опять же упирается в введение нового уровня.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33383434
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторорганизация, для которой важна стабильная работа СУБД и конфиденциальность хранящейся в ней информации, должна строить многуровневую защиту, желательно с ограничением доступа на сетевом уровне - промежуточный слой, VPN и т.п. Полагаться в этом случае полностью на механизмы СУБД просто безответственно. Стабильность работы СУБД может быть нарушена DoS - атакой, конфиденциальность информации - различными дырами и недоработками в этой области. Ну и не надо полагаться на сисадмина на все 100%. Если систему security надо долго и сложно настраивать, чтобы она стала действительно устойчивой к атакам, то всегда есть вероятность, что человек что-то забудет или сделает не так. Нужно чтобы система безопасности была устойчива к мелким ошибкам в администрировании, а это опять же упирается в введение нового уровня.
Если так серьезно подходить к этому вопросу и делать такие выводы, то счеты, кантонский диалект китайского языка и кубометр бумаги А4 будет самым лучшим выходом - никто не взломает и ничего не поймет :)) Ну еще бутылка керосина и зажигалка - на случай прихода налоговой :)

-- Tygra's --
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33383799
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChКакое направление вы считаете болеее перспективным, если не секрет?
Хмм...

[/quot softwarer]Я не считаю себя серьезным специалистом по взлому, и поэтому не хотел бы излагать свои рассуждения[/quot]

VladiChВывод этой статьи конечно практичен, но он тоже не панацея.
Если смотреть с Вашей (видимо) точки зрения, панацеи нет вообще. Есть авторы, которых будем считать компетентными, которые высказали свое мнение - подсчитав числа на основании какого-то внутреннего убеждения "что есть достаточная защищенность, а что - недостаточная". Вы говорите: по моей внутренней убежденности то, что они считают достаточным, недостаточно. Это факт, обсуждать который бессмысленно - можно лишь так или иначе относиться к нему. Я здесь разделяю точку зрения Tygra , и несколько подозреваю, что Вы в данном случае не повторяли их подсчетов, но просто имеете в виду точку зрения "два всегда лучше, чем один".

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

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

Итого - в случае организации действительно надежной защиты лично я полагаю правильным проконсультироваться с серьезными специалистами в этой области и не думать за него, как ему лучше работать. В случае "нормальной" защиты, полагаю, искусственно громоздить уровни не обязательно, хватит имеющихся.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33383817
Slider_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, что в трехзвенной архитектуре требование к системе безопасности можно обеспечить лучше и проще, например, клиент и клиентская машина может просто физически не видеть БД и его сервера, т.к. все общение с сервером реализовано на среднем слое, который не обязательно должен работать на том же сервере, что и БД. Плюс проверка подлинности клиента средним слоем и анализ атак также реализовать проще.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384036
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВывод этой статьи конечно практичен, но он тоже не панацея.Если смотреть с Вашей (видимо) точки зрения, панацеи нет вообще.

Абсолютно верно.
softwarer
Есть авторы, которых будем считать компетентными, которые высказали свое мнение - подсчитав числа на основании какого-то внутреннего убеждения "что есть достаточная защищенность, а что - недостаточная".
Вы говорите: по моей внутренней убежденности то, что они считают достаточным, недостаточно. Это факт, обсуждать который бессмысленно - можно лишь так или иначе относиться к нему.

Вы меня несколько неправильно поняли. Я вполне доверяю этим авторам и думаю что если следовать их рекомендациям, то взлом пароля через хэш будет малореальным. Но существуют и другие способы взлома, для которых эти рекомендации не подойдут, в том числе такие, которые пока не преданы широкой огласке. По предыдущему опыту известно, что различные дыры, связанные с переполнением буфера, позволяющим выполнять произвольный код и подобными вещами проявляются довольно регулярно, для MSSQL в довольно массовом порядке в свое время появлялись черви, эксплуатирующие эти дыры.

softwarer
VladiChЯ считаю, что организация, для которой важна стабильная работа СУБД ...... Полагаться в этом случае полностью на механизмы СУБД просто безответственно.
Возможно, Вы правы. Возможно - нет. В любом случае, ключевой вопрос - метрическая оценка того, что Вы называете "важно".
Здесь все очень просто: если потери от простоя СУБД в случае подобной атаки будут превышать стоимость организации необходимой защиты, то собственно такая защита необходима. Время простоя можно оценить с более-менее приемлемой точностью.

softwarer
Далее, на любой приведенный Вами аргумент легко найти ответ, например, DoS-атака - СУБД может быть устойчива к ней, а вот предыдущий уровень рухнуть и позволить атакующему решить свою задачу. И не забывайте, что ахиллесова пята многоуровневой защиты - возможность (при мелкой ошибке в ее организации) достичь необходимого, не взламывая последние рубежи.

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

softwarer
Итого - в случае организации действительно надежной защиты лично я полагаю правильным проконсультироваться с серьезными специалистами в этой области и не думать за него, как ему лучше работать. В случае "нормальной" защиты, полагаю, искусственно громоздить уровни не обязательно, хватит имеющихся.

Разумеется. Я регулярно консультируюсь с такими специалистами по различным вопросам, и считаю что моих знаний + знаний этих консультантов вполне хватит для того, чтобы продумать стратегию защиты. Конкретные меры конечно же должны принимать соответствующие специалисты.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384124
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygra
Если так серьезно подходить к этому вопросу и делать такие выводы, то счеты, кантонский диалект китайского языка и кубометр бумаги А4 будет самым лучшим выходом - никто не взломает и ничего не поймет :)) Ну еще бутылка керосина и зажигалка - на случай прихода налоговой :)

Эх, тигра, тигра... Вы просто мастер утритровать все и доводить до абсурда. Конечно, защита должна быть адекватна стоящим перед компанией задачам.
В компании "Шараш-монтаж" такая защита скорее всего не нужна. А скажем в банках, других финансовых организациях, в некоторых госучреждениях, в торговых организациях, сталкивающихся с большой конкуренцией, да в и в куче других областей нужно серьезно задумываться о конфиденциальности даных как минимум, для некоторых также важна бесперебойная работа. Просто для таких организация стоимость взлома может быть на порядки меньше, чем потери такой организации или прибыль конкурента от этого, поэтому у многих людей могут возникнуть соответствующие соблазны.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384431
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChНо существуют и другие способы взлома, для которых эти рекомендации не подойдут, ....
OK, то есть от хэша мы отвязывается.

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

VladiChПо предыдущему опыту известно, что различные дыры, связанные с переполнением буфера, позволяющим выполнять произвольный код и подобными вещами проявляются довольно регулярно, для MSSQL в довольно массовом порядке в свое время появлялись черви, эксплуатирующие эти дыры.
Я как-то просматривал списки известных уязвимостей оракла - по мелочи конечно много, но ничего серьезного. Нисколько не имею в виду, что этого нет, просто опять же - неизвестно.

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

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

VladiChDoS-атака как правило не позволяет получить контроль над атакуемой машиной, просто выводит соответствующий сервис из строя на некоторое время или до перезагрузки. Следовательно, в случае ограничения доступа к СУБД на сетевом уровне это атакующему никак не поможет, только сломает внешний интерфейс к СУБД, внутренний будет работать как и работал.
Где-то сломанного внешнего интерфейса будет достаточно. Где-то - внешнего интерфейса вообще нет, есть только внутренний. Где-то названная Вами ситуация - устраивает. Oracle, насколько я помню, от DOS-атак защищался. В любом случае все это надо смотреть применительно к конкретному случаю, не из общих соображений.

Поясню: мне, собственно, не нравится точка зрения "заведомо не защищен". Ничего более.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384552
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
VladiChЗдесь все очень просто: если потери от простоя СУБД в случае подобной атаки будут превышать стоимость организации необходимой защиты, то собственно такая защита необходима. Время простоя можно оценить с более-менее приемлемой точностью.
Не возражаю. Повторюсь: начинать имхо следует именно с этого, а не "любой организации, которой важна стабильная работа..."

Это я и подразумевал, говоря "важна стабильная работа", так что противоречия не вижу.
softwarer
VladiChDoS-атака как правило не позволяет получить контроль над атакуемой машиной, просто выводит соответствующий сервис из строя на некоторое время или до перезагрузки. Следовательно, в случае ограничения доступа к СУБД на сетевом уровне это атакующему никак не поможет, только сломает внешний интерфейс к СУБД, внутренний будет работать как и работал.
Где-то сломанного внешнего интерфейса будет достаточно. Где-то - внешнего интерфейса вообще нет, есть только внутренний. Где-то названная Вами ситуация - устраивает. Oracle, насколько я помню, от DOS-атак защищался. В любом случае все это надо смотреть применительно к конкретному случаю, не из общих соображений.
Поясню: мне, собственно, не нравится точка зрения "заведомо не защищен". Ничего более.
Если стабильность внешнего интерфейса важна для компании (в том же смысле, что и "важна стабильная работа"), то это отдельный разговор, также как и в случае когда есть только внутренний интерфейс. Разумеется, в каждой конкретной ситуации есть много своих нюансов, но я считаю, что некий обобщенный подход к обеспечению безопасности СУБД можно вывести.

И первым принципом в этом подходе должен быть как раз принцип "заведомо не защищен". То есть мы не можем в настоящее время гарантировать, что не появятся новые способы взлома, помимо известных, которыми не успеет кто-либо воспользоваться. Поэтому надо прогнозировать ситуацию вперед и использовать методы защиты, гарантирующие от определенных классов таких способов сразу. Вероятность появления нового класса способов значительно ниже. Вторым - принцип разумной необходимости, чтобы отсечь необоснованно дорогостоящие и трудозатратные методы защиты. То есть я за то, чтобы подходить к оценке безопасности системы изначально пессимистически. Последний абзац не претендует на истину в последней инстанции, считайте это моим ИМХО.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384630
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЧестно говоря, обсуждать некую глобальную "защищенность вообще" я не готов, во всяком случае детально. Давайте локально сойдемся вот на чем: данная статья сама по себе никак не свидетельствует о том, что Oracle беззащитен и обязательно должен быть укрыт от непосредственного доступа.
Согласен, данная статья об этом не говорит, она говорит только об одной проблеме и способе относительно надежно эту проблему решить. Но я говорю о проблеме обеспечения безопасности СУБД, которая гораздо шире, а данные из этой статьи являются для меня одним из аргументов в пользу дополнительных уровней защиты.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384675
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChЭто я и подразумевал, говоря "важна стабильная работа", так что противоречия не вижу.
Противоречие в том, что Ваше понимание стабильности (метрика, которой Вы пользуетесь), не единственно. Как любили когда-то говорить - "поосторожней с кванторами".

Позволю себе цитату:

Я считаю, что организация, для которой важна стабильная работа СУБД и конфиденциальность хранящейся в ней информации, должна строить многуровневую защиту,

Резюме: я считаю, что многим организациям, для которых важна стабильная работа СУБД и конфиденциальность информации в ней, одноуровневая защита даст вполне адекватное решение.

Разница между моим "важно" и Вашим "важно" - исключительно в численном значении метрики.

VladiChЕсли стабильность внешнего интерфейса важна для компании (в том же смысле, что и "важна стабильная работа"), то это отдельный разговор, также как и в случае когда есть только внутренний интерфейс. Разумеется, в каждой конкретной ситуации есть много своих нюансов, но я считаю, что некий обобщенный подход к обеспечению безопасности СУБД можно вывести.
Некий обобщенный подход вывести можно, но в практичности полученного результата я изрядно сомневаюсь. Это будет очередной монстр.

Собственно, такие вот обобщенные подходы уже выведены в других областях. Например, они называются SAP R/3 и Oracle E-Business Suite. Следует ли из этого, что любой фирме, которой важна автоматизация бизнеса, следует внедрять один из этих продуктов?

VladiChИ первым принципом в этом подходе должен быть как раз принцип "заведомо не защищен".
Причем, примененный абсолютно к любому применяемому инструменту, в том числе к системе защиты. Итого - ничего не защищено, расслабляемся и ожидаем получения удовольствия.

VladiChПоэтому надо прогнозировать ситуацию вперед и использовать методы защиты, гарантирующие от определенных классов таких способов сразу.
Я вижу один такой способ - рубануть топором по интернет-кабелю. В существование других я не верю.

Вы в данном случае говорите только о подмене одного фасада другим, соответственно одних уязвимостей - другими. Чем одно лучше другого - если говорить абстрактно, то не вижу. Предметно - надо смотреть.

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

VladiChТо есть я за то, чтобы подходить к оценке безопасности системы изначально пессимистически.
Если говорить о "взламывается все" - безусловно. Вопрос в том, что далеко не всегда имеет смысл подходить к безопасности с точки зрения информации, стоящей, допустим $10.000.000.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384682
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChСогласен, данная статья об этом не говорит, она говорит только об одной проблеме и способе относительно надежно эту проблему решить. Но я говорю о проблеме обеспечения безопасности СУБД, которая гораздо шире, а данные из этой статьи являются для меня одним из аргументов в пользу дополнительных уровней защиты.
Хм. Боюсь, не вижу логики в рассуждении: "проблема может быть надежно решена, но тем не менее ее существование является аргументом в пользу поиска дополнительных решений". Опять-таки, пока мы не говорим о некоей абсолютно максимизированной защите.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384764
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerСобственно, такие вот обобщенные подходы уже выведены в других областях. Например, они называются SAP R/3 и Oracle E-Business Suite. Следует ли из этого, что любой фирме, которой важна автоматизация бизнеса, следует внедрять один из этих продуктов?
Аналогия несколько некорректна. Вы путаете подход с конкретными средствами. Подход сам по себе более гибок и не исключает использования различных средств, в том числе средств обеспечения безопасности.

softwarerХм. Боюсь, не вижу логики в рассуждении: "проблема может быть надежно решена, но тем не менее ее существование является аргументом в пользу поиска дополнительных решений". Опять-таки, пока мы не говорим о некоей абсолютно максимизированной защите.
В отрыве от контекста может быть и нет логики. Но если учесть, что в области безопасности ситуация совсем не статична, что наличие таких проблем свидетельствует о том, что безопасности самого продукта уделяли недостаточно много внимания и т.п.

В конечном итоге, вопрос о выборе стратегии защиты, как Вы правильно сказали, упирается в количественные и качественные оценки ситуации, которые, как я вижу, для Вас существенно зависят от доверия к конкретному производителю СУБД. А любая подобная проблема автоматически снижает уровень доверия. Хотя по моему убеждению, доверие - это то, что должно влиять на оценку ситуации в последнюю очередь.

Вы рассуждаете несколько абстрактно об этом, а теперь попробуйте поставить себя на место человека, который, я извиняюсь, своей задницей отвечает за безопасность системы, и при этом есть довольно ненулевая вероятность того, что эту систему будут ломать. Я думаю, в этом случае для Вас приоритеты выстроятся примерно в той же последовательности.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33384820
Aviant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerХм. Боюсь, не вижу логики в рассуждении: "проблема может быть надежно решена, но тем не менее ее существование является аргументом в пользу поиска дополнительных решений". Нагло залез в ваше обсуждение.
Даже не зная о чем вы говорите :), логика в этой фразе есть, если слово "дополнительных" заменить на слово "альтернативных"
Т.е. можно решить проблему, но если есть решения, где ее нет вообще - имеет смысл их рассмотреть. Только что вернулся с совещания, где об этом шла речь.
Если я это сказал "не в тему", прошу извинить.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33388962
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаль зафлеймили тему.

www.uncommon-logic.com/urry/3t/scheme1.htm - заготовка классификации 2/3 звенной архитектуры. Где-то была нормальная (не нашел). Пришлось лабать по памяти.

t - это время на маршаллинг/анмаршаллинг данных между компонентами приложения.

Насколько понял - основная война здесь между адептами п.5, которые думают, что "нормальная" трехзвенка - это 6. и спецов, которые ничего плохого в п.9. не видят.

ИМХО. доказывать кому-то, что п.9. работоспособен - пустая трата времени. Каждый вариант оптимален для своего случая.

Утверждение "трехзвенка ВСЕГДА медленнее .." отношу к потешным казусам.

Ибо:
T - Время затраченное на выполнение работы R
t - время, затраченное на передачу данных между приложения.
Тn - время затраченное на выполнение части работы Т в отдельном компоненте приложения.

Имеются такие значения T и Тn, при которых (T1+t1+T2+t2+T3) < T
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33389627
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrryMcAзаготовка классификации 2/3 звенной архитектуры. Где-то была нормальная (не нашел). Пришлось лабать по памяти.
Я бы отделил варианты User Interface и Remote UI Engine / Terminal (например, для того же веба). Это довольно сильно меняет картину с точки зрения защищенности (в частности, второй вариант в определенной степени защищает бизнес-логику от ошибок переполнения или несовместимой комбинации параметров).

UrryMcAНасколько понял - основная война здесь между адептами п.5, которые думают, что "нормальная" трехзвенка - это 6. и спецов, которые ничего плохого в п.9. не видят.
Не вижу, с чего Вы сделали такой вывод, как впрочем и нашли "войну". Такое впечатление, что просто наткнулись на любимую тему.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33389754
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Я бы отделил варианты User Interface и Remote UI Engine / Terminal (например, для того же веба). Это довольно сильно меняет картину с точки зрения защищенности (в частности, второй вариант в определенной степени защищает бизнес-логику от ошибок переполнения или несовместимой комбинации параметров).

Можно картинку?

>>Не вижу, с чего Вы сделали такой вывод, как впрочем и нашли "войну".

Слово "война" конечно преувеличение, но конфликт налицо.

>>Такое впечатление, что просто наткнулись на любимую тему

Тема N-tier - скорее "больная" или "животрепещущая".
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33389773
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChАналогия несколько некорректна. Вы путаете подход с конкретными средствами.
Нисколько. Я указал известный представителей определенного класса средств, реализующих подобный подход.

Попросту - далеко не всегда осмысленно палить из пушки по воробьям.

VladiChВ отрыве от контекста может быть и нет логики. Но если учесть, что в области безопасности ситуация совсем не статична, что наличие таких проблем свидетельствует о том, что безопасности самого продукта уделяли недостаточно много внимания и т.п.
Повторюсь: "достаточно", "недостаточно" - либо вопрос количественных оценок, либо же цели "максимизировать настолько, насколько это вообще возможно".

Если говорить о безопасности Оракла, в ней безусловно есть проблемы (как и в любом другом распространенном продукте), но как раз в данном случае я проблемы не вижу ("делайте пароль достаточной длины" - рекомендация абсолютно ко всем).

VladiChВ конечном итоге, вопрос о выборе стратегии защиты, как Вы правильно сказали, упирается в количественные и качественные оценки ситуации, которые, как я вижу, для Вас существенно зависят от доверия к конкретному производителю СУБД.
Отнюдь. Если говорить о качественной оценке ситуации, то я в первую очередь не доверяю наколеночным решениям - из-за низкой вероятности того, что стратегия защиты была продумана компетентными специалистами и реализована со знанием необходимых деталей. Я полагаю эту опасность более серьезной, чем опасность известности проблем известного же продукта.

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

Это, разумеется, не относится к частным решениям проверенного и подтвержденного качества.

VladiChВы рассуждаете несколько абстрактно об этом, а теперь попробуйте поставить себя на место человека, который, я извиняюсь, своей задницей отвечает за безопасность системы, и при этом есть довольно ненулевая вероятность того, что эту систему будут ломать. Я думаю, в этом случае для Вас приоритеты выстроятся примерно в той же последовательности.
У меня на это будет два ответа.

1. То есть, говоря абстрактно, Вы таки ставите задачу максимизации; сколь возможно защищено независимо от стоимости. Если помните, я сразу сказал, что в этом случае, безусловно, защита СУБД должна быть последним рубежом и перед ней должна быть куча других.

2. Я стоял на этом месте, только не в плане безопасности, а в плане надежной-бесперебойной работы. Довольно быстро моим рекомендациям стали доверять, по-моему не столько из-за аргументации, сколько из-за того, что предсказанные мной проблемы пару раз сбывались.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33389832
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrryMcAМожно картинку?

[Storage, BL] <---> [BL, Remote UI Engine] <---> [Terminal/Browser], примерно так.

UrryMcAСлово "война" конечно преувеличение, но конфликт налицо.
Таки не вижу, где Вы его нашли. На первых страницах был мой конфликт с Валентином, еще ряд острых высказываний, и в общем-то все.

UrryMcA>>Такое впечатление, что просто наткнулись на любимую тему
Тема N-tier - скорее "больная" или "животрепещущая".
И это тоже.

Просто, судя по Вашим письмам, Вы пробежали тему весьма мельком (что вполне понятно, учитывая размер) и говорите "по старой памяти", по следам кучи других таких тем. Например, я здорово не уверен, что Вы сможете показать в этой теме хоть одного "апологета 5", если не спутал, "который считает, что трехзвенка - это 6". А такой подход типичен для случая, когда позиция сформирована, забронирована и принципиально непоколебима задолго до начала обсуждения. Сравните, например, с письмом Aviant чуть выше.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33389877
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Просто, судя по Вашим письмам
?? Вообще-то оно первое и единственное было

>>Таки не вижу, где Вы его нашли. На первых страницах был мой конфликт с
>>Валентином, еще ряд острых высказываний, и в общем-то все.

>>не уверен, что Вы сможете показать в этой теме хоть одного "апологета 5", если не спутал, "который считает, что трехзвенка - это 6". А такой подход типичен для случая, когда позиция сформирована, забронирована и принципиально непоколебима задолго до начала обсуждения. Сравните, например, с письмом Aviant чуть выше.

вывод сделан на основе достаточно безапеляционных высказываний Валентина К. Отчасти я с ним согласен, но это не означает, что он прав на все 100%.

Предлагаю мое ИМХО забыть и таки продолжить обсуждать не персоналии, а архитектуру.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33390083
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Я бы отделил варианты User Interface и Remote UI Engine / Terminal
>>(например, для того же веба). Это довольно сильно меняет картину с точки
>>зрения защищенности (в частности, второй вариант в определенной степени
>>защищает бизнес-логику от ошибок переполнения или несовместимой
>>комбинации параметров).
>>[Storage, BL] <---> [BL, Remote UI Engine] <---> [Terminal/Browser], примерно так.

Полностью согласен - вечером сделаю изменения в схеме.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33390084
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
1. То есть, говоря абстрактно, Вы таки ставите задачу максимизации; сколь возможно защищено независимо от стоимости. Если помните, я сразу сказал, что в этом случае, безусловно, защита СУБД должна быть последним рубежом и перед ней должна быть куча других.


Говоря абстрактно, я ставлю задачу максимизации защиты при определенном бюджете. Причем в определенных пределах могу влиять на размер выделяемого для этой цели бюджета. Разумеется, при максимально возможной защите ее стоимость будет стремиться к бесконечности, так что здесь речь об этом не идет.

Еще раз повторюсь - речь я веду о случае, когда к системе требуется удаленый доступ извне локальной сети.
Здесь возможны варианты -
1. 2-хзвенная система, СУБД открыта наружу
2. 3-звенная система, СУБД закрыта снаружи
3. 2-хзвенная система, в которой СУБД закрыта снаружи, а доступ производится дополнительными средствами - терминал, VPN, а лучше их комбинацией.
Я согласен, что для многих случаев варианта 1 вполне достаточно - это те случаи, когда стоимость взлома СУБД выше чем ценность хранящейся в ней информации. Боюсь, что в большинстве компаний, не относящихся к малому бизнесу, стоимость хранящейся информации превышает стоимость взлома некоей усредненной СУБД с администратором средней квалификации.
Варианты 2 и 3 более-менее равнозначны по защищенности и могут подходить для большинства случаев.
Наиболее просто реализовать вариант 3 в случае, когда система изначально писалась с рассчетом на 2-хзвенку, но вариант 2 тоже довольно неплох и для многих случаев удобне 3-го.

softwarerЯ бы отделил варианты User Interface и Remote UI Engine / Terminal (например, для того же веба). Это довольно сильно меняет картину с точки зрения защищенности (в частности, второй вариант в определенной степени защищает бизнес-логику от ошибок переполнения или несовместимой комбинации параметров).
Кстати, веб-приложения - это все-таки 3-хзвенка. В вырожденном варианте, когда браузер используется только для отображения информации, эта модель близка к 2-хзвенной, по моей классификации к варианту 3, но сейчас тенденции таковы, что клиентские приложения, выполняемые в браузере, все больше и больше "тяжелеют", логика их работы больше смещается в сторону десктопных приложений.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33390208
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OK. В целом я согласен с Вами, исключительно отдельные замечания, которые наверное стоит опустить для экономии места и времени.

Кстати, веб-приложения - это все-таки 3-хзвенка. В вырожденном варианте, когда браузер используется только для отображения информации, эта модель близка к 2-хзвенной,
У меня на эту модель есть хороший пример - это такая же трехзвенка, как если я возьму RAdmin, XWindows или любое другое приложение, поддерживающее концепцию удаленного десктопа, зайду им на машину, на которой крутится клиент "обычного двухзвенного приложения" и буду так работать.

С точки защиты, конечно, это "более трехзвенка", нежели с точки зрения программирования - поскольку появляется лишний потенциально уязвимый канал. Но тем не менее, между таким вот терминальным клиентом и толстым клиентом есть практическое важное отличие: ездят "данные" или ездят "нажатия на кнопки".
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33390296
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerУ меня на эту модель есть хороший пример - это такая же трехзвенка, как если я возьму RAdmin, XWindows или любое другое приложение, поддерживающее концепцию удаленного десктопа, зайду им на машину, на которой крутится клиент "обычного двухзвенного приложения" и буду так работать.

С точки защиты, конечно, это "более трехзвенка", нежели с точки зрения программирования - поскольку появляется лишний потенциально уязвимый канал. Но тем не менее, между таким вот терминальным клиентом и толстым клиентом есть практическое важное отличие: ездят "данные" или ездят "нажатия на кнопки".
Данные ездят в любом веб-приложении, так что сравнивать их с терминалом некорректно. Но я говорил не об этом. Веб-приложения бывают ведь разные. К примеру, сейчас довольно популярен такой принцип их разработки как AJAX, т.е. когда страница - это по сути полнофункциональное приложение, загружается один раз и дальше взаимодействует с сервером путем вызова различного рода веб-сервисов. От толстого клиента по сути дела ничем не отличается, кроме первоначальной загрузки с сервера (хотя может грузиться и с локального диска - тут это значения не имеет). Загрузка с сервера только избавляет от проблемы обновления клиента. Технологии эти пока еще не совсем зрелые, но уже многими используются - посмотрите например google-овские сервисы - тот же GMail и т.п. Ну и скажем веб-приложение с Java-апплетом - это ведь тоже веб-приложение? Oracle кстати такие приложения очень любит. Чем они от толстого клиента отличаются?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33390367
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChДанные ездят в любом веб-приложении, так что сравнивать их с терминалом некорректно.
Данные в тонком клиенте ездят практически так же, как в терминале, только собранными в пакеты.

Главное здесь - в обоих случаях, вмешавшись в работу на этом участке, я не смогу сделать того, чего не позволяет интерфейс (в том виде, как он реализован на UI Engine). Если же я подключаюсь непосредственно к слою бизнес-логики, я могу вызвать любые процедуры в любой последовательности с любыми параметрами итп - соответственно, возрастает уязвимость этого слоя.

VladiChНо я говорил не об этом. Веб-приложения бывают ведь разные.
Безусловно. И если не ошибаюсь, я нигде не говорил, что "все веб-приложения являются тонкими клиентами". Я сказал "например, веб" - поскольку такая организация типична именно для веб-приложений.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33390996
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Если подключаюсь непосредственно к слою бизнес-логики, я могу вызвать
>>любые процедуры в любой последовательности с любыми параметрами итп -
>>соответственно, возрастает уязвимость этого слоя.

Не факт.

До того как данные дойдут до слоя бизнес-логики они в любом случае пройдут ч/з процесс аутенификации, анмаршаллинга и валидации (это кстати заметно увеличит время отклика).

"Просто так" послать "от балды" пакет данных и повесить сервер(испортить данные) не получится (по крайней мере в грамотно спроектированой системе).
Это можно сделать только "разобрав" клиента и переписав его.

Но и это не даст 100% гарантии хака БД. Т.к. есть еще слои, которые отвечают за логическую целостность БД и система прав доступа. Для того, чтобы "правильно" сломать систему (перегнать деньги именно на свой банковский счет, а не счет ходорковского), а не просто подвесить - нужно как минимум знать архитектуру системы.

В общем и целом - защита N-tier систем является отдельной обширной и занимательной темой.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33392975
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrryMcA>>Если подключаюсь непосредственно к слою бизнес-логики, я могу вызвать
>>любые процедуры в любой последовательности с любыми параметрами итп -
>>соответственно, возрастает уязвимость этого слоя.

Не факт.
Факт. Впрочем, возможно мы уперлись в терминологические различия.

UrryMcAДо того как данные дойдут до слоя бизнес-логики они в любом случае пройдут ч/з процесс аутенификации, анмаршаллинга и валидации (это кстати заметно увеличит время отклика).
Безусловно, пройдут. Все это - сугубо технические операции, не имеющие отношения к сути выполняемых действий.

UrryMcA"Просто так" послать "от балды" пакет данных и повесить сервер(испортить данные) не получится (по крайней мере в грамотно спроектированой системе).
Это можно сделать только "разобрав" клиента и переписав его.
C точностью до терминологии - безусловно. И "от балды" - нигде не предлагается.

Постараюсь сформулировать еще раз, максимально четко:

Допустим, у нас есть бизнес-функции P1, P2, ... PN, PSuper.

Интерфейс может быть организован и практически всегда организован так, что эти бизнес-функции могут быть вызваны только в некоторых из теоретически возможных комбинаций. Например, только так: Pi 1 , PSuper, Pi 2 , PSuper, .....

В случае, если клиент (звено) общается непосредственно со слоем бизнес-логики (звено), имитируя работу клиента, я могу вызвать эти бизнес-функции в произвольной последовательности, не встречающейся в нормальной практике работы приложения, например Pi 1 , Pi 2 , Pi 3 , PSuper.

Такая последовательность вызовов может нарушить нормальную работу системы.

В случае, если терминальный сервер, ?sp-движок итп. расположен на промежуточном звене, подобное нарушение невозможно.

Вывод: организация сервера "с открытой наружу бизнес-логикой" в принципе является определенным фактором риска и терминальная организация работы с этой точки зрения имеет некоторое преимущество.

UrryMcAНо и это не даст 100% гарантии хака БД. Т.к. есть еще слои, которые отвечают за логическую целостность БД и система прав доступа.
Безусловно. Но мы же говорим с позиции человека, которому нужно 0% вероятности..
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33393048
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Вывод: организация сервера "с открытой наружу бизнес-логикой" в
>>принципе является определенным фактором риска и терминальная >>организация работы с этой точки зрения имеет некоторое преимущество.

Согласен 100%.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33396008
awhiler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Допустим, у нас есть бизнес-функции P1, P2, ... PN, PSuper.

Интерфейс может быть организован и практически всегда организован так, что эти бизнес-функции могут быть вызваны только в некоторых из теоретически возможных комбинаций. Например, только так: Pi 1 , PSuper, Pi 2 , PSuper, .....

В случае, если клиент (звено) общается непосредственно со слоем бизнес-логики (звено), имитируя работу клиента, я могу вызвать эти бизнес-функции в произвольной последовательности, не встречающейся в нормальной практике работы приложения, например Pi 1 , Pi 2 , Pi 3 , PSuper.

Такая последовательность вызовов может нарушить нормальную работу системы.


Это значит ошибку архитектора.
Если некие безнесфункции могут быть выполнены только в в определнной последовательности значит это не несколько бузнесфункций, а одна.
И наружу аппсервера она должна торчать как одна атомарная операция.
А уж на что она там распадается внутри - неважно.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33397052
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
awhilerЭто значит ошибку архитектора.
Допустим. И кому легче от того, что система будет взломана из-за ошибки архитектора?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33397074
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ветка все еще не утихнет...
По безопасности в базах данных, их реализации на практике, которые годятся и для банков тоже советую почитат в Королевстве Делфи. Статья, и не одна касается не Делфи, а именно подходов и конкретных реализаций защиты, экстренного разрушения и прочего.

Не хочу пересказывать, но коментатары узнают для себя достаточно интересного, лежащего под носом.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33398335
awhiler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerДопустим. И кому легче от того, что система будет взломана из-за ошибки архитектора?
По крайней мере такую ошибку не очень сложно отловить еще на этапе проектирования.
И она не имеет отношения к тому, будет ли третий слой, будет ли чистый БД, или терминальный доступ.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33398628
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
awhilerПо крайней мере такую ошибку не очень сложно отловить еще на этапе проектирования.
В первую очередь стоит отметить, что человек, отвечающий за защиту в конкретной организации, часто не имеет возможности участвовать в этапе проектирования.

Наоборот. Такую ошибку можно отловить только на готовой реализации, поскольку основная ее причина - контекст сессии; различного рода объекты, переживающие вызов бизнес-функции. Единственный путь заранее гарантировать себя от нее - не пользоваться контекстом вообще, то есть в каждом вызове бизнес-функции передавать информацию начиная от имени-пароля пользователя.

Разумеется, с практической точки зрения маловероятна действительно опасная уязвимость подобного рода; скорее всего проблемы ограничатся мелкими шалостями в пределах прав пользователя. Но "совсем несуществующей" такую проблему тоже не назовешь.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33399417
awhiler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Единственный путь заранее гарантировать себя от нее - не пользоваться контекстом вообще, то есть в каждом вызове бизнес-функции передавать информацию начиная от имени-пароля пользователя.

Да, полностью согласен. Так и надо делать. И никаких сессий.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33401303
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>awhiler
>Да, полностью согласен. Так и надо делать. И никаких сессий.

Нет, без построения сессии пожалуй не обойтись. Другой вопрос - какую информацию должен содержать блок данных сессии.

С уважением, Владимир.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33401720
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри - выложил схему под другим именем и не заметил.



http://www.uncommon-logic.com/urry/3t/scheme2.htm
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33403614
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЕдинственный путь заранее гарантировать себя от нее - не пользоваться контекстом вообще, то есть в каждом вызове бизнес-функции передавать информацию начиная от имени-пароля пользователя.

Это невозможно в некоторых случаях:

например, когда операция включает в себя несколько атомарных операций в рамках одной транзакции.

В этом случае нужно либо хранить контекст на клиенте целиком (включая все блокированые объекты), либо таки использовать контекст сессии на сервере (это всяко легче).
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33405655
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrryMcAЭто невозможно в некоторых случаях:
Согласен. А даже когда возможно - далеко не факт, что оправданно.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33410966
awhiler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UrryMcA
например, когда операция включает в себя несколько атомарных операций в рамках одной транзакции.


Не понял. Что значит "несколько атомарных операций в одной транзакции"? Транзакция на то и транзакция что она атомарна и неделима. Вы предлагаете на одну транзакцию делать несколько вызовов сервера с клиента? Зачем? Можно привести конкретный пример?
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33413618
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Основная идея моего поста - "контекст сессии на сервере необходим в определенных случаях"

>>Что значит "операция включает в себя несколько атомарных операций в <
>>рамках одной транзакции"?
>>Можно привести конкретный пример?

Операция "Проведение документа расходная накладная". В рамках операции производятся следующие операции: блокировка регистра* остатков товара, блокировка регистра резервов, блокировка регистра взаиморасчетов. Расчеты учитывающие общее состояние учетной системы, конкретного клиента и пользователя проводящего документ.

Все это выполняется в рамках одной транзакции.

Т.о. существуют разделяемые ресурсы, которые должны быть зафиксированы между клиентскими сессиями. Передача разделяемых ресурсов на клиент - неоправдано дорогая операция.
--------------------------------------------------------------------
*"блокировка регистра" не означает блокировку таблицы. Блокируются и изменяются только определенные записи.

>>Вы предлагаете на одну транзакцию делать несколько
>>вызовов сервера с клиента?

Это происходит в любом случае, если для успешного завершения транзакции необходимо получить информацию из БД непосредственно во время выполнения транзакции. "Забирать" весь контекст на клиента до выполнения транзакции и освобождать их по завершении транзакции нереально в некоторых случаях т.к. "длинные" транзакции могут противоречить задачам системы.

======================================================

У меня есть сомнения, что я правильно понял Ваш последний вопрос. В этом случае просьба - если хотите получить нормальный ответ, а не бред (с Вашей точки зрения) - задавайте вопрос в более развернутом и конкретном виде. У меня нет желания спорить из-за отсутствия словаря базовых определений или из-за неправильно понятого вопроса.
...
Рейтинг: 0 / 0
трехзвенная архитектура
    #33724356
Валентин КСсылок на системы не будет, потому что они настроены под конкретные предметные области, и в продаже не стоят.

Приношу извинения, если кого-то сильно задел, но прежде чем цитировать умные фразы нужно их понимать.
А трехзвенку я делал, но смысл промежуточного сервера - данные, а не сервер приложений, технологии MIDAS и CORBA.Прокомментируйте, пожалуйста:In case you haven't realized it, building computer systems is hard. As the complexity of the system gets greater, the task of building the software gets exponentially harder. ...At its worst business logic can be very complex. Rules and logic describe many different cases and slants of behavior, and it's this complexity that objects were designed to work with. A Domain Model creates a web of interconnected objects, where each object represents some meaningful individual, whether as large as a corporation or as small as a single line on an order form.
...
Рейтинг: 0 / 0
310 сообщений из 310, показаны все 13 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / трехзвенная архитектура
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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