Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Многопользовательский режим работы проги   Найти похожие ветки 

 
Pcrepair ©   (2012-04-26 13:20) [0]

Добрый день. Есть программа, написанная в стиле процедурного програмированния в РАД2010:
- программа имеет GUI (МЕМО1, МЕМО2, Кнопка и дополнительно настройка алгоритма обработки)
- пользователь вводит исходные данные в окно ввода МЕМО1, нажимает кнопку
- программа обрабатывает данные по сложному алгоритму, зависящему от введенных пользователем данных (текст)
- программа выводит результат работы в МЕМО2
на это цикл работы программы заканчивается
В ближайшее время кнопка и МЕМО1,2 будут вынесены в ВЕБ-интерфейс (ВЕБ-сервер на одном хосте в просторах интернета) и пользователь будет подключаться к программе как к удаленному сервису через браузер.
на текущий момент и после подключения ВЕБ-интерфейса программа одномоментно может работать только с одним пользователем, демо-версия

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


 
Сергей М. ©   (2012-04-26 13:33) [1]


> каждый пользователь должен получить на сервере приложения
> свой поток?


Ну что значит "должен" ?

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

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

А поддерживает - значит клиентские запросы сервер будет обрабатывать параллельно.

Никому ж кроме тебя не известно что у тебя там за веб-сервер ..


 
Pcrepair ©   (2012-04-26 13:41) [2]

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


 
Сергей М. ©   (2012-04-26 14:15) [3]


> причем тут веб-сервер?


Притом что ты сам сказал про него.


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


Сервер подключается к серверу - это нонсенс.


 
Pcrepair ©   (2012-04-26 14:27) [4]

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


 
Медвежонок Пятачок ©   (2012-04-26 14:30) [5]

- каждый пользователь должен получить на сервере приложения свой поток?

тебе-то какая разница? один там поток, два там потока или вообще нет потоков


 
Медвежонок Пятачок ©   (2012-04-26 14:31) [6]

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


 
Сергей М. ©   (2012-04-26 14:32) [7]


> вроде задачу понятно описал


Описал бы понятно - не было бы вопросов.


> это только в твоем понимании


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


 
Сергей М. ©   (2012-04-26 14:33) [8]


> Медвежонок Пятачок ©   (26.04.12 14:31) [6]


Он не парится - он сразу пальцы гнет.


 
Плохиш ©   (2012-04-26 14:37) [9]


> Вопрос: каким образом можно ввести многопользовательский
> режим:

Это введёт веб-хостинг независимо от твоих желаний.


 
Плохиш ©   (2012-04-26 14:38) [10]


> Pcrepair ©   (26.04.12 13:41) [2]

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


 
Anatoly Podgoretsky ©   (2012-04-26 14:43) [11]

> Плохиш  (26.04.2012 14:38:10)  [10]

Лучше вообще почитать что-нибуть про программирование, не до ВЕБа


 
Pcrepair ©   (2012-04-26 14:43) [12]

программа вообщето на дельфи УЖЕ написана  и работает, если кто то еще не понял


 
AV ©   (2012-04-26 14:46) [13]

больная фантазия предполагает такой сценарий:

автор думает ,что надо сделаеть страницу, которая будет из своей TEXTAREA как-то копировать в MEMO и жмакать кнопку.
Эдакая проекция webлица на form1, 1:1

Соответственно, автор опасается, что раз МЕМО уже заполнено кем-то, а в это время еще кто-то жмакает, то его данные не могут в memo быть вставлены - там еще данные первого человека.

по-моему ,так :)


 
Плохиш ©   (2012-04-26 14:47) [14]


> Pcrepair ©   (26.04.12 14:43) [12]
>
> программа вообщето на дельфи УЖЕ написана  и работает

и что?


 
Плохиш ©   (2012-04-26 14:48) [15]


> Anatoly Podgoretsky ©   (26.04.12 14:43) [11]

Зачем ты оскорбляешь суперпрограммиста?


 
Сергей М. ©   (2012-04-26 14:48) [16]


> программа вообщето на дельфи УЖЕ написана


Придется переписывать в полном соответствии с выбранной веб-технологией.


 
Сергей М. ©   (2012-04-26 14:50) [17]


> AV ©   (26.04.12 14:46) [13]


Похоже на тяжелую бредовую но правду)


 
Pcrepair ©   (2012-04-26 14:52) [18]

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


 
Anatoly Podgoretsky ©   (2012-04-26 14:55) [19]

> Pcrepair  (26.04.2012 14:52:18)  [18]

С одним экземляром то тяжело, а тут несколько


 
brother ©   (2012-04-26 15:02) [20]

для каждой сессии свой поток...


 
brother ©   (2012-04-26 15:04) [21]

а вообще, бред и не понимание...


 
Сергей М. ©   (2012-04-26 15:08) [22]


> Pcrepair ©   (26.04.12 14:52) [18]


Переделывай свою чудо-программу в cgi-bin, isapi или fastCGI (на свой вкус и возможности веб-сервера)


 
Медвежонок Пятачок ©   (2012-04-26 15:09) [23]

да все нормально. прога уже написана и даже работает. и даже долго.


 
CRLF   (2012-04-26 15:13) [24]

вы все ламера и неучитесь нешарите так незасоряйте форум!!!!!!!!111


 
AV ©   (2012-04-26 15:15) [25]

не, теперь примерно ясно что надо
1 . сессия кидает строку1 и idконнектX в процесс,
2. процесс рожает поток, иницирует его строкой1, присваивая идентификатор сессии и запускает на обсчет
3. Поток отработал,  получив строку2, и рапортует процессу.
Процесс выталкивает эту строку2 в idконнектX и убивает поток.

а вообще - муторно это дело.. Проще оставить 1 процесс на 1 коннект, как и делается автоматически.

зы
А на программу то посмотреть можно?
Что это вообще и насколько сложно (может, какой нить JS пойдет вполне :))


 
Pcrepair ©   (2012-04-26 15:31) [26]

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

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

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


 
Сергей М. ©   (2012-04-26 15:37) [27]


> Pcrepair ©   (26.04.12 15:31) [26]


Ты сподобишься наконец конкретизировать какая технология выбрана тобой для обмена данными между веб-сервером и твоей программулиной ?

От этого напрямую выбор решения по мультипоточности программулины зависит ..


 
Pcrepair ©   (2012-04-26 15:47) [28]

технология предполагается простая:
кусок программы на базе idHTTP подключается к веб-серверу и считывает задание пользователя и подтверждение выполнения(типа бтн.клик)
выполняет задание и отсылает результат, опять же через idHTTP, взад в ЧАТ, где результат(текст) отображается на ХТМЛ-странице
а пока задание выполняется выводит сообщение для всех новых пользователей "ЗАНЯТО"


 
Сергей М. ©   (2012-04-26 15:55) [29]

Ну ясно.

Короче говоря, вся эта петрушка к понятию "серверу приложений" ни малейшего отношения не имеет : программулина твоя - обычный клиент веб-сервера.


 
Pcrepair ©   (2012-04-26 16:00) [30]

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

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


 
Медвежонок Пятачок ©   (2012-04-26 16:04) [31]

технология предполагается простая:........

это не технология, это даже не ручное рубило и не палка-копалка в палеолите.
рубило и палка - они куда более технологичные.


 
QAZ   (2012-04-26 16:06) [32]


> цикл обработки задания пользователя занимает от нескольуих
> минут до нескольких часов. специфика такая

мошт не специфика а голимый (очень) алгоритм?


 
Pcrepair ©   (2012-04-26 16:10) [33]

а по существу вопроса кто что знает?


 
Сергей М. ©   (2012-04-26 16:13) [34]


> может и так


Что ж ты тогда пальцы гнул в [2] и [4] ?
Не стоит этого делать)
Учти это.


> как перевести петрушку в многопользовательский режим


Т.е. вариант с переделкой петрушки [22] ты вообще не воспринимаешь как серьезный ?


 
AV ©   (2012-04-26 16:15) [35]

проще всего прикрутить БД.
таблица (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, заказал себе деревянный пиджак


 
Pcrepair ©   (2012-04-26 16:22) [36]

так значит нужно подучить Classes.TThread?
а БД эта типа ДИСПЕТЧЕР?


> Т.е. вариант с переделкой петрушки [22] ты вообще не воспринимаешь
> как серьезный ?

конечно нет. все что нужно - ввести многопоточность. и причем тут cgi-bin, isapi или fastCGI? это ведь прибамбасы Веб-сервера. каим оне боком имеют отношение к уже работающему ЧАТу на АПАЧе + РНР. все и так работает. может cgi-bin, isapi или fastCGI чем то лучше, все возможно. но пока речь идет о деио-версии. главное чтоб все вертелось. улучшать будем потом. может быть


 
Anatoly Podgoretsky ©   (2012-04-26 16:26) [37]


> а по существу вопроса кто что знает?

Сказали потоки, значит потоки.


 
Pcrepair ©   (2012-04-26 16:29) [38]

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


 
AV ©   (2012-04-26 16:31) [39]


> так значит нужно подучить 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


 
Сергей М. ©   (2012-04-26 16:34) [40]


> это ведь прибамбасы Веб-сервера


Угу.
И среди этих "прибамбасов" у Апача есть уже реализованный механизм многопоточности исполнения клиентских запросов.

В случае с cgi-bin и isapi тебе нужно будет только под него "подстроиться" и не изобретать велосипед с собственными потоками.

Ну и php-скрипт чуть подзаточить под это дело придется.


> главное чтоб все вертелось. улучшать будем потом. может
> быть


Корейцы вон тоже так думали, намедни поспешая запустить свою хренотень на орбиту)


 
Pcrepair ©   (2012-04-26 16:40) [41]

AV - персональное Спасибо


 
Pcrepair ©   (2012-04-26 16:45) [42]

не надо корейцев сюда приплетать.они делают что могут
вопросы по оптимизации веб-сервера будут заданы в свое время и на другом форуме(не ДЕЛЬФИ).
ясно что простой ЧАТ имеет ограниченный функционал. но не надо по старинной совковой привычке валить все в одну большую кучю. так и до корейцев недалеко


 
Сергей М. ©   (2012-04-26 16:50) [43]


> не надо корейцев сюда приплетать.они делают что могут


Ну а чем ты не "чтомогущий кореец", заявляющий почти тоже самое - "главное чтоб взлетело" ?)


> не надо по старинной совковой привычке


Вот и я о том говорю - не надо на дерьмовый фундамент городить стоэтажный скребонёб)


 
Pcrepair ©   (2012-04-26 16:55) [44]

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


 
AV ©   (2012-04-26 17:02) [45]


> Pcrepair ©  

за спасибо - спасибо, однако слушай
> Сергей М.

я то советую как сделать попроще и "по-колхозному" :)
а по сетям собаку съел :)


 
Сергей М. ©   (2012-04-26 17:11) [46]


> не надо пургу мести


Пургу-то как раз понес именно ты - про "сервер приложений", про "мемо", про "кнопки" и прочую лабуду, вместо того чтобы просто сказать "как реализовать мультипоточный http-клиент на базе IdHTTP".


> форум тут - для начинающих


Ну так и прислушивайся к "заканчивающим")


 
Pcrepair ©   (2012-04-26 17:17) [47]

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


 
Сергей М. ©   (2012-04-26 17:23) [48]


> программа которая обрабатывает данные, которые кстати получает
> из ТВебБраузер, это так , к слову


Все чудесатее и чудесатее пурга - теперь уже и твеббраузер нарисовался)

А тогда накой шиш, спрашивается, IdHTTP в этой программе, если она по твоему же заявлению получает от вебсервера данные для обработки через другого http-клиента - встроенного прямо в твеббраузер ?


 
Сергей М. ©   (2012-04-26 17:27) [49]


> еслиб знал такие ужастные слова


а  "сервер приложений" , который ты всуе упомянул, - это не ужастные слова, ага.


 
Pcrepair ©   (2012-04-26 17:30) [50]

ну когда ты изучишь такие слова как обработка JS, DOM тогда и только тогда ты поймешь для чего нужен ТВебБраузер

IdHTTP - только для подключения к ЧАТу
впрочем, поскольку ты не знаешь всего функционала программы, то конечно, для тебя :

> Все чудесатее и чудесатее пурга

кстати, опять дебаты не теме.


 
Сергей М. ©   (2012-04-26 17:36) [51]


> когда ты изучишь такие слова как обработка JS, DOM


Ну куды ж нам, крестьянам, в лаптях да по асфальту ..


> IdHTTP - только для подключения к ЧАТу


А веббраузер твой куда подключается - не к тому же самому "ЧАТу" разве ?)


 
Pcrepair ©   (2012-04-26 17:38) [52]

а чем тебя не устраивает термин  "сервер приложений"? ась?
во первых это СЕРВЕР - от обеспечивает клиента(копьютер пользователя) информацией - классическое определение сервера
во вторых, на этом компе(сервере) работает ПРИЛОЖЕНИЕ - та самая программа которая обеспечивает информацией пользователя
сложи 1+ 2 и что получается?


 
Pcrepair ©   (2012-04-26 17:40) [53]

не... не к тому, оно подключается ко всяким сайтам, откуда качает информацию для заказчика.


 
Германн ©   (2012-04-26 17:47) [54]


> Pcrepair ©   (26.04.12 17:30) [50]
>
> ну когда ты изучишь такие слова как обработка JS, DOM тогда
> и только тогда ты поймешь для чего нужен ТВебБраузер

Шо опять?
http://delphimaster.net/view/15-1330181581/


 
turbouser ©   (2012-04-26 17:56) [55]

А шары все падали и падали..


 
Сергей М. ©   (2012-04-26 18:02) [56]


> на этом компе(сервере)


причем здесь вооще комп ?
речь идет об устоявшейся софтверной терминологии, а не о хардверной)


> от обеспечивает клиента


никакого клиента он у тебя не обеспечивает.

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


 
Pcrepair ©   (2012-04-26 18:06) [57]

мне лучше знать как работает моя программа, не спорь попусту


 
Сергей М. ©   (2012-04-26 18:08) [58]


> Шо опять?


рецидив)
случается когда надоедает писи репарировать и хочется их попрограммировать)


 
Сергей М. ©   (2012-04-26 18:10) [59]


> мне лучше знать как работает моя программа


вон оно чё ..
чего ж тогда спрашиваешь ?)


 
Pcrepair ©   (2012-04-26 18:15) [60]

Удалено модератором
Примечание: Хватит на всех нападать.



Страницы: 1 2 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.63 MB
Время: 0.05 c
15-1331817337
QWERTY_
2012-03-15 17:15
2013.03.22
thumbnails


15-1352827685
Artem
2012-11-13 21:28
2013.03.22
Можно вопрос про графы?


2-1342074698
Sergey
2012-07-12 10:31
2013.03.22
просьба к участникам быть взаимовежливыми


15-1336738041
alexdn
2012-05-11 16:07
2013.03.22
Лицензии


15-1329078602
Юрий
2012-02-13 00:30
2013.03.22
С днем рождения ! 13 февраля 2012 понедельник