powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / трехзвенная архитектура
25 сообщений из 310, страница 6 из 13
трехзвенная архитектура
    #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
25 сообщений из 310, страница 6 из 13
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / трехзвенная архитектура
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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