Управление через web как?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Управление через web как?

Сообщение Maxizar » 02.07.2011 17:39:21

Меня недавно спросил друг: «а как через web управлять программой?» Я ни разу с этим не работал по этому решил спросить у Вас.. По этому задам более конкретный вопрос:
Как мне реализовать управления программой через Web страницу..
При этом программа будет запущенна всегда и управлять работой скажем шагового двигателя (к примеру).. но через Веб удаленно, нам скажем нужно будет изменить скорость или направление…
Где про это прочитать, и про что именно читать то, про клиент-сервер? (просто я никогда ни работал с базами данных по этому для меня это темный лес, а клиент-сервер в поиске дает базы данных :( )…
Что я должен реализовать в своей программе , чтоб она умела понимать команды посылаемые через веб страницу…
Как эти самые команды я должен посылать моей программе? И на чем это дело писать на PHP или на чистом HTML можно….

Ну я думаю кто знает, понял суть вопроса…
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Управление через web как?

Сообщение Mr.Smart » 02.07.2011 20:35:40

  • 1 Читаем основы протокола HTTP;
  • 2 Смотрим примеры реализации HTTP сервера;
  • 3 Выбираем библиотеку для работы с сетью на основе которой будем делать (Indy, Synapse или всё своими силами);
  • 4 (опционально) Думаем над usability своего софта и выбираем что-то наподобие ExtPascal+ExtJS с более подходящей для вас лицензией.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Управление через web как?

Сообщение Odyssey » 02.07.2011 21:43:52

Mr.Smart писал(а):Выбираем библиотеку для работы с сетью на основе которой будем делать (Indy, Synapse или всё своими силами);

Я бы выбрал что-нибудь более высокоуровневое, например fpWeb, или в крайнем случае powtils.
Программу можно сделать в трёх вариантах:
1. CGI-программа + внешний web-сервер (Mongoose, Apache, nginx, lighttpd и т.д.).
2. FCGI-программа + внешний сервер с поддержкой FCGI (Apache, nginx, lighttpd, и т.д.).
3. Самостоятельная программа со встроенным web-сервером (пример встроенного web-сервера есть в svn-версии fpWeb).
Я бы для начала выбрал вариант 1. Пример с использованием фреймворка fpWeb есть в svn.

UPD:
Хотя если нужно, чтобы программа всегда висела в памяти, придётся выбирать вариант 2 или 3.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Управление через web как?

Сообщение yantux » 03.07.2011 00:36:37

Мне в голову пришло так:
1. управляющая программа стоит на контроллере, который управляет шаговым двигателем.
2. УП слушает сокет, т.е. работает сервером по своему внутреннииму рпотоколу
3. оператор через web браузер заходит на сайт и страничку, где стоит JavaScript, который запускается и работает с УП на контроллере через tcp/ip
yantux
постоялец
 
Сообщения: 133
Зарегистрирован: 29.10.2007 16:02:33
Откуда: Санкт-Петербург

Re: Управление через web как?

Сообщение Max Rusov » 03.07.2011 12:26:45

Только через tcp-ip должен работать не клиентский скрипт, а серверный. PHP, например.
Max Rusov
постоялец
 
Сообщения: 191
Зарегистрирован: 25.04.2009 15:46:03

Re: Управление через web как?

Сообщение yantux » 03.07.2011 13:33:54

Mr.Smart писал(а):
  • 1 Читаем основы протокола HTTP;
  • 2 Смотрим примеры реализации HTTP сервера;
  • 3 Выбираем библиотеку для работы с сетью на основе которой будем делать (Indy, Synapse или всё своими силами);
  • 4 (опционально) Думаем над usability своего софта и выбираем что-то наподобие ExtPascal+ExtJS с более подходящей для вас лицензией.


Вот по 1 и 2: читал, как умники сервер реализовывали даже в микроконтроллере. Наверно это оптимальнывй путь, не загружающий машинку. Однако, если требуется интерактивность, по моему http проттокол не обеспечивает интерактивности. Т.е. по http не получиться из браузера послать команду на шаговый двигатель?
yantux
постоялец
 
Сообщения: 133
Зарегистрирован: 29.10.2007 16:02:33
Откуда: Санкт-Петербург

Re: Управление через web как?

Сообщение kipar » 03.07.2011 14:25:36

yantux писал(а):Вот по 1 и 2: читал, как умники сервер реализовывали даже в микроконтроллере. Наверно это оптимальнывй путь, не загружающий машинку.

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

yantux писал(а):Однако, если требуется интерактивность, по моему http проттокол не обеспечивает интерактивности. Т.е. по http не получиться из браузера послать команду на шаговый двигатель?

Со стороны клиента интерактивность будет - для этого есть CGI, ну или JavaScript для красивостей.
Ну, а на сервере потребуется PHP или (если веб-сервер "свой") веб-сервис на паскале.
kipar
новенький
 
Сообщения: 78
Зарегистрирован: 04.03.2010 12:15:54

Re: Управление через web как?

Сообщение v-t-l » 03.07.2011 14:35:40

yantux писал(а):Однако, если требуется интерактивность, по моему http проттокол не обеспечивает интерактивности. Т.е. по http не получиться из браузера послать команду на шаговый двигатель?

Это почему же? Можно сформировать любой URI, который будет интерпретироваться управляющей программой, как команда.
Другое дело, что HTTP не оптимален для интенсивного обмена мелкими объемами данных - установка соединения, отправка множества заголовков, получение множества строк ответа, закрытие соединения, и все только для того чтобы считать какую-нибудь циферку с датчика. Поэтому придумали WebSockets http://ru.wikipedia.org/wiki/WebSocket - после установки соединения клиентский браузер и управляющая программы могут обмениваться любыми данными по любому протоколу.
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Управление через web как?

Сообщение yantux » 03.07.2011 15:33:42

kipar писал(а):Имхо небезопасно - если какой-нибудь DDOS устроят, микроконтроллер ляжет, шаговый двигатель остановится. Так что лучше отдельный веб-сервер.

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

kipar писал(а):Со стороны клиента интерактивность будет - для этого есть CGI, ну или JavaScript для красивостей.
Ну, а на сервере потребуется PHP или (если веб-сервер "свой") веб-сервис на паскале.


ИМХО, сложновато...
yantux
постоялец
 
Сообщения: 133
Зарегистрирован: 29.10.2007 16:02:33
Откуда: Санкт-Петербург

Re: Управление через web как?

Сообщение vada » 04.07.2011 18:02:30

Если на контроллер можно поставить линукс, то есть проект от редхата - веб сервер встроенный в ядро. Не помню как называется, но гугл точно помнит.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Управление через web как?

Сообщение yantux » 04.07.2011 20:26:44

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

Удобно ))) из WebSocket сразу писать в ядро )) сладкий сон хакера )))
yantux
постоялец
 
Сообщения: 133
Зарегистрирован: 29.10.2007 16:02:33
Откуда: Санкт-Петербург

Re: Управление через web как?

Сообщение Mr.Smart » 04.07.2011 20:38:48

Какая то у вас паранойя насчёт безопасности.
Во первых: Контроллер не должен смотреть в интернет на прямую!
Во вторых: Если всё-же нужен доступ из вне. Безопасность обеспечивается всякими фаерволами, впн'ами (именно аппаратными! а не софт) и т.д.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Управление через web как?

Сообщение Maxizar » 04.07.2011 21:19:06

Спасибо ребята, буду читать понемногу, может что и получится у меня. А насчет безопасности ну мне бы с простого нужно начать, скажем шмякнул кнопку на странице включить \выключить двигатель ну а там если принцип станет понятен, можно всякие вкусности добавить :). Как говорится сейчас у меня стоит задача что-то вроде Хеллоу Ворлд но через удаленное управление.
Если что-то получится отпишусь, возможно опыт (если он будет удачным) будет кому-то полезен.
На счет сроков даже не знаю, я приезжаю домой в 8 иногда в 9 часов + душ + покушать и времени нету :( и в 6 часов подъем :evil:

PS. Можно конечно работать и по ночам, но я ужасный соня :mrgreen:
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Управление через web как?

Сообщение Maxx_ir » 05.07.2011 15:59:54

Вот сюда загляните: Умный дом своими руками , автор ресурса через PHP скрипты целым коттеджем управляет - если нет
необходимости в сверх-надежности - можно применить данный подход. У него там есть сегменты сети:
на 1-wire,
Ethernet на ENC28J60 + AtMega168
X10.
Чрезвычайно толковый ресурс, в отличии от большинства тем о "Умном доме" где больше пустой болтовни -
здесь все подкреплено реальными примерами применения.
Аватара пользователя
Maxx_ir
новенький
 
Сообщения: 12
Зарегистрирован: 24.02.2008 20:52:00
Откуда: Тольятти


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru