Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
авторЕсли возможно, расскажите по-подробнее о взаимодействии триады - клиент <--> веб-сервис <--> сервер данных. А что тут говорить? Есть веб сервис, который имеет методы. Внутри метода вызов ХП СУБД и отдача результата наружу. Сервисы xml, не soap. Клиент по http(s) дергает вебсервис, обратно получает xml, превращает его в датасет и показывает. авторНа всё время, пока активен клиент, ему соответствует и активный веб-сервис на веб-сервере? Нет такого понятия "активный вебсервис". Это как обычный вебсайт работает. Можно только сказать, что пока вы держите живой коннект к вебсервису то сохраняется ваша текущая сессия. Если коннект рвался - сессия будет новая. авторЕсли клиент запросил построения выборки всей достаточно большой таблицы, то как данная информация передаётся клиенту? Коннект клиентского веб-сервиса с базой данных остается активным на все это время? Я не допускаю возможности передачи большого количества данных - даже в локале, не то что через вебсервисы. Это недостаток архитектуры системы. Могут быть только небольшие выборки. Хотя смотря о каком объеме идет речь. Собственно зависит только от толщины интернет-канала. Т.к. вебсервис между вызовами не живет, то и коннект вебсервиса не может храниться. Но у меня сервисы ходят через пул коннектов, которые всегда живые. авторСколько клиентов одновремено активны в системе? Что будет, если клиент пойдет покурить в процессе закачки данных в локальный комп? Количество активных клиентов может быть любым - это решается количеством нод, на которых стоят вебсервисы, и мощью СУБД. Собственно не отличается от обычной к-с. Если клиент пойдет покурить - и что? Данные придут и покажутся :)) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 10:37 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
Интересно, как СП подойдей при таком раскладе: Юзеру требуется создать TEMPORARY TABLE, потом залить в нее данные (заливка осуществляется интерактивно . Затем обработать временную таблицу. Если работа СП осушествляется через пул соединений, то... 1) Каждому соединению на стороне сервера всегда должно соответствовать определенное соединение в пуле коннекций СП к серверу БД. 2) Получается что мультиплексирование (N-клиентских коннекций/M-коннекций СП к серверу БД будет невозможно из-за конфликта имен) И, почему бы не рассмотреть работу СП с временными таблицами. Что тут можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 10:48 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
gardenmanИнтересно, как СП подойдей при таком раскладе: Юзеру требуется создать TEMPORARY TABLE Это немного напоминает "как СП подойдет при раскладе "пользователю требуется работать без СП"". Юзеру не может требоваться TEMPORARY TABLE. Юзеру может требоваться некоторая функциональность, для которой было бы удобно применить нечто типа TEMPORARY TABLE. Из этого начинают набираться возможные пути - сделать на СП буфер данных (собственно эту таблицу), возможно в момент начала обработки таки скидывать ее на сервер БД, возможно фиксировать сессию со временной таблицей, возможно использовать постоянную таблицу в роли временной. Общего можно сказать одно. Все пользователи одновременно могут вызвать функцию X, а следовательно, если мы не хотим иметь однозначное соответствие пользовательских сессий коннектам к БД, нужно выдумывать некое более сложное решение. В клиент-серверной архитектуре аналог такой ситуации придумать трудно (сессии однозначны и без вариантов); разве что можно соотнести решения типа ораклового MTS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 14:50 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
2 softwarer вобщем все понятно. Хреново все. СП подходит разве что для тривиальных задачек. Чуть сложнее - обкакается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 16:35 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
Вы наверняка знаете, что при некотором желании легко доказать все что угодно. Например, "а вот пусть Ваш мерседес попробует переехать через ручей по доске шириной 22 сантиметра.... то-то, подходит разве что для тривиальных задачек, чуть сложнее - обкакается" (доставая велосипед "Орленок"). Вы полагаете, здесь было недостаточно словоблудства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 16:51 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
сколько настрочили, однако... Сторонникам двухзвенки. Объяснюсь в 1Совских терминах, по другому не умею. Предположим, Вам нужно провести расходную накладную. (примитивно, да ?) При этом нужно примерно вот что: 1. проверить правильность заполнения накладной. 2. списать товары по бух.учёту. С достаточно универсальным алгоритмом, позволяющим настроить ЛЮБОЙ способ списания. С учётом того, что товар может быть комиссионный, кроме того он может оказаться материалом или основным средством, что он может храниться на складах или без них, что дополнительная аналитика по характеристикам или по сериям может использоваться или нет. Отразить НДС. Всё это для любой учётной политики, для любого режима налогобложения. (всё это делать, попутно пересчитывая в нужные валюты) 3. то же для упр. и налогового учёта. В налоговом учёте рассчитать временный или постоянные разницы при необходимости. 4. распределить стоимость услуг по товарам (если есть услуги) 5. сделать проводку по взаиморасчётам. Выделить авансы при необходимости. С учётом возможности разной детальности ведения взаиморасчётов - по договорам, по документам, при необходимости проконтролировать глубину кредита. 6. учесть суммовые разницы при необходимости. 7. снять с резерва при необходимости. 8. ну да мало ли ещё что. Дык вот, делать это на клиенте весьма не оптимально. Написать всё это на sql можно ? Можно. Если заняться больше нечем (читай - деньги девать некуда). Т.е. если в конторе всё уже автоматизировано в усмерть и можно позволить себе годами ковырять нечитабельный, несопровождаемый, нетехнологичный код на sql, добиваясь какого-то повышения производительности. Ну или если просто нашли чудака, готового платить за всё это. Я кончил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 17:31 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
ХерресЯ кончил. Мои поздравления!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 18:27 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
gardenmanИнтересно, как СП подойдей при таком раскладе: Юзеру требуется создать TEMPORARY TABLE, потом залить в нее данные (заливка осуществляется интерактивно . Затем обработать временную таблицу. Если работа СП осушествляется через пул соединений, то... 1) Каждому соединению на стороне сервера всегда должно соответствовать определенное соединение в пуле коннекций СП к серверу БД. 2) Получается что мультиплексирование (N-клиентских коннекций/M-коннекций СП к серверу БД будет невозможно из-за конфликта имен) И, почему бы не рассмотреть работу СП с временными таблицами. Что тут можно сделать? Совсем не понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 22:24 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
>Mainframe Спасибо за деловой стиль ответа. Постараюсь отвечать и задавать вопросы в том же духе. >веб-служба , точнее метод вызывается по http(s) в момент вызова ... В прототипе (см. цитированную статью) веб-сервис на веб-сервере (IIS) активен на время обработки запроса. Как только ответ будет передан клиенту, веб-сервис самоуничтожается. Для веб-сервиса запрос - последовательность байтов - byte[], ответ - аналогично. Клиент готовит запрос в форме некоторой структуры, затем сериализует её binary формат (не xml, а именно binaty). Полученная строка байтов сжимается (и шифруется). И по каналам Интернета передается на веб-сервер в формате 6-ти битных байтов (SOAP протокол). Веб-сервис данного клиента получает байтовую строку запроса и записывает её в свободный абонентский ящик - ещё один сервер приложения. Это программная конструкция и может располагаться на любом компьютере сети. > Коннект можно организовать по-разному... Я сделал так - с каждым конкретным СП абонентского ящика связано семейство СП КриптоСерверов ( серверов приложений а-ля бизнес-логики). Каждый КриптоСервер имеет постоянное фиксированное число коннектов с базой данных (у меня - 1 коннект) и они активны пока работает СП. Никакой динамики. За одним СП абонентских ящиков закреплен с одной стороны веб-сервер (IIS) - СП, а с другой - КриптоСерера (1-8 штук). Эта конструкция - вычислительный узел. Число узлов определяется задачей. Каждый КриптоСервер сканирует абонентские ящики, при наличии запроса считывает байтовую строку из ящика дешифрирует, декомпрессирует, десериализует её в структуру запроса и стрит на её основе SQL предложение (SELECT, UPDATE,INSERT, DELETE) и вызывает сервер данных. Нужные SQL-предложения (UPDATE, INSERT, DELETE) (или дешифрованную байтовую строку запроса) храню на СП модифицирующих предложений для поддержки реплик. В качестве ответа обычно получаю некоторую выборку, возможно достаточно большого размера. Система не сможет протащить byte[] полной выборки по уровням, емкость буферов особенно на абонентских ящиках и IIS невелика по сравнению с возможностся сервера данных. Из всей выборки вырезаю запрашиваемую страницу и её передаю (страница - 240 строк, например). Т.е. "жадному" клиенту могу показать весь объём выборки, но в несколько приемов. >Ну пусть курит .. данные передадутся ... Если большая выборка хранится во временной таблицы, ассоциированной с соответствующим клиентом, до тех пор пока с ней работает клиент, то какой же объём винтовой системы потребуется, при нескольких тысячах активных клиентов. Если ограничить объем пула коннектов, то заснувшие клиенты быстро его израсходуют. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 22:26 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
как связана интерактивная закачка данных на клиенте с обработкой их и на сервере приложений и при этом с пулом соединений с БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 22:27 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
Херрессколько настрочили, однако... Сторонникам двухзвенки. Объяснюсь в 1Совских терминах, по другому не умею. Не вопрос:) Херрес Предположим, Вам нужно провести расходную накладную. (примитивно, да ?) При этом нужно примерно вот что: 1. проверить правильность заполнения накладной. Это проверять лучше в процессе ввода... Херрес 2. списать товары по бух.учёту. С достаточно универсальным алгоритмом, позволяющим настроить ЛЮБОЙ способ списания. С учётом того, что товар может быть комиссионный, кроме того он может оказаться материалом или основным средством, что он может храниться на складах или без них, что дополнительная аналитика по характеристикам или по сериям может использоваться или нет. Отразить НДС. Всё это для любой учётной политики, для любого режима налогобложения. (всё это делать, попутно пересчитывая в нужные валюты) 3. то же для упр. и налогового учёта. В налоговом учёте рассчитать временный или постоянные разницы при необходимости. 4. распределить стоимость услуг по товарам (если есть услуги) 5. сделать проводку по взаиморасчётам. Выделить авансы при необходимости. С учётом возможности разной детальности ведения взаиморасчётов - по договорам, по документам, при необходимости проконтролировать глубину кредита. 6. учесть суммовые разницы при необходимости. 7. снять с резерва при необходимости. 8. ну да мало ли ещё что. Вот это все преднастроенные проводки(в моем понимании), все одинаково и прозрачно. И все что происходит при проведении - это создание правильных проводок. Это и есть все Ваши пункты включая "мало ли еще" Херрес Дык вот, делать это на клиенте весьма не оптимально. А то.... Херрес Написать всё это на sql можно ? Можно. Если заняться больше нечем (читай - деньги девать некуда). Т.е. если в конторе всё уже автоматизировано в усмерть и можно позволить себе годами ковырять нечитабельный, несопровождаемый, нетехнологичный код на sql, добиваясь какого-то повышения производительности. Ну или если просто нашли чудака, готового платить за всё это. Проще нужно все делать, проще. Да и код годами ковырять не придется, если написано без ошибок У нас так все и проводится. И провожу я накладную легко, удаленно, через мобилку:) Херрес Я кончил. Как же я за Вас рад:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 00:34 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
Да, Херрес повеселил Сразу признался, что в SQL он ни бельмеса, потому все делает с клиента, по-старинке. Когда наконец-то у вас будет нечего делать и вы выучите таки sql, тогда приходите Херрес, поговорим, а пока что покурите дальше ту травку :)) 2 ВМоисеев Я что-то не понял смысла всех превращений - зачем ящики, СП и т.д.? Какие проблемы в том, чтобы прямо при вызове метода вебсервиса расшифровывать запрос, посылать его в БД и сразу отправлять обратно, предварительно зашировав и сжав? Зачем столько наворочено? авторЕсли большая выборка хранится во временной таблицы, ассоциированной с соответствующим клиентом, до тех пор пока с ней работает клиент, то какой же объём винтовой системы потребуется, при нескольких тысячах активных клиентов. Если ограничить объем пула коннектов, то заснувшие клиенты быстро его израсходуют. Не понял - при чем тут выборка, винты и тысячи клиентов? Требуется пояснение, о чем собственно речь идет. Желательно с примером -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 09:34 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
iscrafmкак связана интерактивная закачка данных на клиенте с обработкой их и на сервере приложений и при этом с пулом соединений с БД? Попробую еще раз. Медленно. Юзер работает с очень большой таблицей. Ему нужно спуцифическим образом обработать большое количество записей. (Для примера - отобрать контрагентов по специфическим критериям и всем им выслать письма с коммерческим предложением). Напрашивается вариант - создается временная таблица, в которую по всем критериям в несколько этапов заносятся ID контрагентов. Далее временная таблица обрабатывается. Мы ведь знаем что временную таблицу можно выдеть только через соединение, которое ее создало. Поэтому нужно чтобы каждому соединению клиента с СП, ставился в соответствие только один конкретный коннект СП к базе данных. Иначе временная табличка видна не будет. Теперь понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 10:33 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
Понятно. Только не понятно зачем временная таблица, и даже если нужна - какие проблемы :) Есть такое понятие как клиентский набор данных. Клиентский образно конечно, потому что относительно СУБД сервер приложений тоже клиент. Именно в него можно делать промежуточные выборки, СУБД с временными таблицами здесь не нужна. Второй вариант: это таблица в БД, но не временная (на картинке). Т.к. исходящую корреспонденцию все равно нужно сохранять. Ну и конечно никакого пересечения по именам если уж с временными таблицам. Ниже пример реального кода сервера приложений. В этом случае используется временная таблица для вычислений. Но что такое пересечение по именам, не пойму. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:00 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
автор Именно в него можно делать промежуточные выборки, СУБД с временными таблицами здесь не нужна. Второй вариант: это таблица в БД, но не временная (на картинке). Т.к. исходящую корреспонденцию все равно нужно сохранять.Ну и конечно никакого пересечения по именам если уж с временными таблицам Я вполне предполагал что вы именно это и ответите. Замечу что хранить промежуточные выборки на сервере приложений можно, но глупо. Ибо пока промежуточную выборку не зальете в СУБД она бесполезна. Т.е. вы увеличиваете на порядок IO между СП и СУБД. Это - нехорошо. В случае же когда одна постоянная таблица: 1) ее нужно чистить от мусора. 2) юзер ограничен в количестве запущенных экземпляров приложения. Я не знаю зачем вы пытаетесь оправдываться. Конечно можно делать и так как вы, однако ... ну несолидно получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:14 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
авторВ случае же когда одна постоянная таблица: 1) ее нужно чистить от мусора. 2) юзер ограничен в количестве запущенных экземпляров приложения. Какие с этим проблемы? Вообще предпочтительно делать на постоянной таблице, а не на временной, тем более когда речь идет о больших выборках. Иначе с временной таблицей будет нехороший момент - два часа вы собирали получателей писем, насобирали их 2000 .... и тут оборвался коннект Вот весело будет, да? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:33 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
2 gardenman ========== Ну Вы блин даете Я ж Вам привел примеры, что лично я так не делаю . :) В одном случае постоянная таблица в БД, в другом - временная, но тоже в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:35 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
чо-то не пойму о чем речь, рассылкой же будет заниматся СП. Он потянет все эти гигабайты на СП, чтоб банально отослать майл или подготовить dbf/xml файл для почтовой конторы (вы же сами не будете тысячи предложений сами печатать). поэтому совсем непойму зачем СП хранить ид в таблице если он по любому забивая канал все будет тянуть к себе. а вообще имхо не проблема создать персистент объект на СП который длительное время не будет возвращать в пул конекцию. главное чтоб не было транзакций ждущих юзерского инпута. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:35 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
2 systemR === гигабайтов там нет конечно. Запрашивается информация из БД, очень далеко не гигабайтная. Бланки вложений (RTF, Excel) находятся на СП и тянутся по сети. Так что все нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:40 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
хотел сказать конечно " не тянутся по сети " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:41 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
iscrafmхотел сказать конечно " не тянутся по сети " ага инфо для бланков на СП появляется магическим путем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:44 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
tygra авторВ случае же когда одна постоянная таблица: 1) ее нужно чистить от мусора. 2) юзер ограничен в количестве запущенных экземпляров приложения. Какие с этим проблемы? Вообще предпочтительно делать на постоянной таблице, а не на временной, тем более когда речь идет о больших выборках. Иначе с временной таблицей будет нехороший момент - два часа вы собирали получателей писем, насобирали их 2000 .... и тут оборвался коннект Вот весело будет, да? -- Tygra's -- Ну, с тобой-то вообще всё ясно - мы ведь знаем как MS SQL с времянками работает 2 systemR возможно формирование рассылок не очень хороший пример. Как вариант: начислить проценты на лицевые счета... или сформировать специфический отчет только по выбранным контрагентам... И, прикиньте если у меня в системе 200000 контрагентов, а в моей выборке 50%... мне что прикажете всю эту выборку гонять по сети?.. абсурд. А если мне нужно будет сделать какой-то промежуточный расчет?... Ребята, вы что, с такими задачами не сталкивались что-ли?... Использовать СУБД как хранилище данных для СП - это дурость. Вспомните аналитический функции, MQT, распараллеливание IO и вычислений, вспомните про кластерные (многораздельные) СУБД. Вы правда думаете что реально все это реализовать на СП?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:50 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
systemR iscrafmхотел сказать конечно " не тянутся по сети " ага инфо для бланков на СП появляется магическим путем :) нет конечно :) достается запросом из БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 11:54 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
2 gardenman А причем тут MS SQL? Неужели Оракл с временными таблицами по-другому работает? Или вы в принципе не знаете, как сделать без временных таблиц, потому и ответ такой? ;) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 12:56 |
|
||
|
Роль сервера приложений
|
|||
|---|---|---|---|
|
#18+
tygra2 gardenman А причем тут MS SQL? Неужели Оракл с временными таблицами по-другому работает? Или вы в принципе не знаете, как сделать без временных таблиц, потому и ответ такой? ;) -- Tygra's -- Да, У каждой СУБД своя специфика работы с времянками. Это уже обсуждалось. MSSQL/SybaseASE - в этом плане отстой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 13:13 |
|
||
|
|

start [/forum/topic.php?fid=29&msg=33662859&tid=1528130]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
92ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 266ms |
| total: | 490ms |

| 0 / 0 |
