![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Многопользовательский режим работы проги
Pcrepair © (2012-04-26 13:20:00)Добрый день. Есть программа, написанная в стиле процедурного програмированния в РАД2010:
- программа имеет GUI (МЕМО1, МЕМО2, Кнопка и дополнительно настройка алгоритма обработки)
- пользователь вводит исходные данные в окно ввода МЕМО1, нажимает кнопку
- программа обрабатывает данные по сложному алгоритму, зависящему от введенных пользователем данных (текст)
- программа выводит результат работы в МЕМО2
на это цикл работы программы заканчивается
В ближайшее время кнопка и МЕМО1,2 будут вынесены в ВЕБ-интерфейс (ВЕБ-сервер на одном хосте в просторах интернета) и пользователь будет подключаться к программе как к удаленному сервису через браузер.
на текущий момент и после подключения ВЕБ-интерфейса программа одномоментно может работать только с одним пользователем, демо-версия
Вопрос: каким образом можно ввести многопользовательский режим:
- каждый пользователь получает свою сесссию на ВЕБ-сервере, это понятно
- каждый пользователь должен получить на сервере приложения свой поток?
в общем как перевести программу написанную для работы с одним пользователем в многопользовательский режим? какие для этого существуют способы?
Сергей М. (2012-04-26 16:34:00) [21]
> это ведь прибамбасы Веб-сервера
Угу.
И среди этих "прибамбасов" у Апача есть ужереализованный механизм многопоточности исполнения клиентских запросов.
В случае с cgi-bin и isapi тебе нужно будет только под него "подстроиться" и не изобретать велосипед с собственными потоками.
Ну и php-скрипт чуть подзаточить под это дело придется.
> главное чтоб все вертелось. улучшать будем потом. может
> быть
Корейцы вон тоже так думали, намедни поспешая запустить свою хренотень на орбиту)
AV (2012-04-26 16:31:00) [22]
> так значит нужно подучить Classes.TThread?
> а БД эта типа ДИСПЕТЧЕР?
да, книга
http://www.delphimaster.net/view/15-1282149795/all
она же
http://www.google.ru/#hl=ru&newwindow=1&q=%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C+-+%D0%BA%D0%B0%D0%BA+%D1%8D%D1%82%D0%BE+%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D1%82%D1%81%D1%8F+%D0%B2+%D0%B4%D0%B5%D0%BB%D1%8C%D1%84%D0%B8&oq=%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C+-+%D0%BA%D0%B0%D0%BA+%D1%8D%D1%82%D0%BE+%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D1%82%D1%81%D1%8F+%D0%B2+Delphi&aq=0t&aqi=g-t1&aql=&gs_nf=1&gs_l=serp.1.0.0i2.82749.82749.0.84112.1.1.0.0.0.0.298.298.2-1.1.0.nPOZsG_ELH0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=a1b55aeb7d301186&biw=1178&bih =881
Pcrepair (2012-04-26 16:29:00) [23]может кто и сказал, да не ты. ты больше тень на плетень наводить любитель
Anatoly Podgoretsky (2012-04-26 16:26:00) [24]
> а по существу вопроса кто что знает?
Сказали потоки, значит потоки.
Pcrepair (2012-04-26 16:22:00) [25]так значит нужно подучить Classes.TThread?
а БД эта типа ДИСПЕТЧЕР?
> Т.е. вариант с переделкой петрушки [22] ты вообще не воспринимаешь
> как серьезный ?
конечно нет. все что нужно - ввести многопоточность. и причем тут cgi-bin, isapi или fastCGI? это ведь прибамбасы Веб-сервера. каим оне боком имеют отношение к уже работающему ЧАТу на АПАЧе + РНР. все и так работает. может cgi-bin, isapi или fastCGI чем то лучше, все возможно. но пока речь идет о деио-версии. главное чтоб все вертелось. улучшать будем потом. может быть
AV (2012-04-26 16:15:00) [26]проще всего прикрутить БД.
таблица (ID, IN_STR, OUT_STR)
каждый новый коннект пишет свой ID и IN_STR в таблицу
программа читает IN_STR, считает, пишет OUT_STR
Каждый коннект проверяет, а не посчитали ли уже его OUT_STR.
Да, программка периодически делает
select ID, IN_STR, OUT_STR
where OUT_STR <> null
и на каждую запись стартует поток.
Поток посчитал, записал OUT_STR по соотв. ID, заказал себе деревянный пиджак
Сергей М. (2012-04-26 16:13:00) [27]
> может и так
Что ж ты тогда пальцы гнул в [2] и [4] ?
Не стоит этого делать)
Учти это.
> как перевести петрушку в многопользовательский режим
Т.е. вариант с переделкой петрушки [22] ты вообще не воспринимаешь как серьезный ?
Pcrepair (2012-04-26 16:10:00) [28]а по существу вопроса кто что знает?
QAZ (2012-04-26 16:06:00) [29]
> цикл обработки задания пользователя занимает от нескольуих
> минут до нескольких часов. специфика такая
мошт не специфика а голимый (очень) алгоритм?
Медвежонок Пятачок (2012-04-26 16:04:00) [30]технология предполагается простая:........
это не технология, это даже не ручное рубило и не палка-копалка в палеолите.
рубило и палка - они куда более технологичные.
Pcrepair (2012-04-26 16:00:00) [31]может и так
хотя все вычисления производятся таки на этом сервере, и если это не "сервер приложений" то можно обозвать и клиентом
кстати вопрос был не том как называть эту петрушку, а о том как перевести петрушку в многопользовательский режим. учти это
Сергей М. (2012-04-26 15:55:00) [32]Ну ясно.
Короче говоря, вся эта петрушка к понятию "серверу приложений" ни малейшего отношенияне имеет : программулина твоя - обычный клиент веб-сервера.
Pcrepair (2012-04-26 15:47:00) [33]технология предполагается простая:
кусок программы на базе idHTTP подключается к веб-серверу и считывает задание пользователя и подтверждение выполнения(типа бтн.клик)
выполняет задание и отсылает результат, опять же через idHTTP, взад в ЧАТ, где результат(текст) отображается на ХТМЛ-странице
а пока задание выполняется выводит сообщение для всех новых пользователей "ЗАНЯТО"
Сергей М. (2012-04-26 15:37:00) [34]
> Pcrepair © (26.04.12 15:31) [26]
Ты сподобишься наконец конкретизировать какая технология выбрана тобой для обмена данными между веб-сервером и твоей программулиной ?
От этого напрямую выбор решения по мультипоточности программулины зависит ..
Pcrepair (2012-04-26 15:31:00) [35]так что? нужно копать в сторону потоков?
типа "обернуть" имеющийся код в поток, какойто диспетчер потоков? как это правильно называется, чтоб можно было в поисковике правильно спросить
программу пока посмотреть нельзя. но после подключения к веб-серверу можно будет, если случайно наткнешся на этот ЧАТ, посмотреть как она работает: задать вопрос и получить ответ
пока программа не слишком сложна, поскольку ее смог написать начинающий программист. но там заложена возможность усложнения логики и соотвественно усложнения практически до бесконечности
AV (2012-04-26 15:15:00) [36]не, теперь примерно ясно что надо
1 . сессия кидает строку1 и idконнектX в процесс,
2. процесс рожает поток, иницирует его строкой1, присваивая идентификатор сессии и запускает на обсчет
3. Поток отработал, получив строку2, и рапортует процессу.
Процесс выталкивает эту строку2 в idконнектX и убивает поток.
а вообще - муторно это дело.. Проще оставить 1 процесс на 1 коннект, как и делается автоматически.
зы
А на программу то посмотреть можно?
Что это вообще и насколько сложно (может, какой нить JS пойдет вполне :))
CRLF (2012-04-26 15:13:00) [37]вы все ламера и неучитесь нешарите так незасоряйте форум!!!!!!!!111
Медвежонок Пятачок (2012-04-26 15:09:00) [38]да все нормально. прога уже написана и даже работает. и даже долго.
Сергей М. (2012-04-26 15:08:00) [39]
> Pcrepair © (26.04.12 14:52) [18]
Переделывай свою чудо-программу в cgi-bin, isapi или fastCGI (на свой вкус и возможности веб-сервера)
brother (2012-04-26 15:04:00) [40]а вообще, бред и не понимание...