Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.69 MB
Время: 0.07 c
15-1342691121
AV
2012-07-19 13:45
2013.03.22
Помните, в перестройку Лысенков некий Телемаркет рекламировал?


15-1336653449
AV
2012-05-10 16:37
2013.03.22
Нечеткое сравнение строк или что посоветуете?


2-1334607403
Непомнящий
2012-04-17 00:16
2013.03.22
Кончается память


15-1330351343
Тенерман
2012-02-27 18:02
2013.03.22
Данные -> TShiftState.


2-1345986998
Wadimka
2012-08-26 17:16
2013.03.22
Кто-нибудь работал с компонентом SecureBridg?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский