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


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