Страница 1 из 1

реализация веб-сервера сбора и обработки информации

Добавлено: 25 мар 2013, 11:15
radiosfera
Добрый день!

Имеется несколько удаленных объектов, сбор информации от которых осуществляется GPRS-модемами (WISMO228 c TCP/IP стеком).
Возникла потребность в реализации web-сервера, обеспечивающего прием, накопление, обработку данных и передачу управляющих сообщений на удаленные объекты (в реальном масштабе времени).
Опыта в разработке web-приложений нет.
По информации из инета представляю себе: VPS сервер, с FTP-сервером (вроде бы легко реализуется обмен данными с GPRS-модемом), базой данных MySQL, PHP (скрипты обработки данных)?
Подскажите, с чего начать!

Re: реализация веб-сервера сбора и обработки информации

Добавлено: 25 мар 2013, 12:53
AiK
Наверное все-таки веб-сервер лучше не реализовывать, а взять готовый :)
По всем канонам начинать надо с проработки хранилища данных, то есть БД.
А дальше возникает вопрос, а нужен ли собственно _web_. В принципе к БД можно обращаться и напрямую с модема. При этом нужно понимать, что при связи по FTP работать с БД вряд ли удастся - это протокол передачи файлов и только.

Re: реализация веб-сервера сбора и обработки информации

Добавлено: 25 мар 2013, 13:59
radiosfera
AiK писал(а):Наверное все-таки веб-сервер лучше не реализовывать, а взять готовый :)
По всем канонам начинать надо с проработки хранилища данных, то есть БД.
А дальше возникает вопрос, а нужен ли собственно _web_. В принципе к БД можно обращаться и напрямую с модема. При этом нужно понимать, что при связи по FTP работать с БД вряд ли удастся - это протокол передачи файлов и только.
Вырисовывается следующий функционал и ряд сопутствующих вопросов :) :
1. Прием и передачу информационных сообщений от/на удаленные терминалы выполнять посредством протокола HTTP,... (возникает вопрос авторизации и безопасности передачи информации);
2. Накопление информации осуществлять с помощью БД типа MySQL, размещенной на сервере;
3. Обработку накапливаемых данных производить посредством скриптов, например, написанных на PHP (можно ли заставить скрипт постоянно "крутиться" на сервере, выполняя вычисления и отправлять данные на удаленные терминалы?);
4. Всё это дело можно повесить на обыкновенный хостинг, не выдумывая с VPS?

Re: реализация веб-сервера сбора и обработки информации

Добавлено: 26 мар 2013, 18:03
Хыиуду
1. Да. Передавать в открытую данные, плюс хэш от данных и какого-то пароля, известного на стороне приемника. Сервер свертывает данные с паролем и проверяет.
2. Самое логичное решение.
3. Крутиться постоянно - без проблем. Но технология "клиент-сервер" предусматривает, что сервер сам по себе ничего не будет делать, а только по запросу клиента. Так что либо пусть шлют запросы с удаленных терминалов, либо поставить на сервер еще cron, который будет с нужной периодичностью дергать скрипт, который уже будет осуществлять фидбек (рассылать мейлы etc).
4. Не знаю, что такое VPS, но у меня прекрасно работает на обычном хостинге примерно такой сервис, как вы и описали. В простейшей конфигурации LAMP (Linux, Apache, MySQL, PHP).

Re: реализация веб-сервера сбора и обработки информации

Добавлено: 06 апр 2013, 17:11
radiosfera
Нашел в инете пример - автономная ветряная станция

1. Залил скрипты на сервер, создал БД
2. Запустил в модеме TCP/IP стек, создал TCP клиента и открыл сокет..
Вот так:

Код: Выделить всё

.
.
.
at+wipcreate=2,1,"Пример_host.ru",80   
AT+WIPDATA=2,1,1

GET /receive.php?value0=556 HTTP/1.1 // сделал запрос, передал значение value0=556
Host: Пример_host.ru
Connection: close

AT+WIPCLOSE=2,1 // закрыл сокет
.
.
.
благодаря чему удалось записать число 556 в базу данных

Дальше возникает вопрос, как реализовать авторизацию, безопасную передачу данных?

Почитал про сессии и куки, подскажите, как безопаснее сделать.
Хыиуду

Re: реализация веб-сервера сбора и обработки информации
1. Да. Передавать в открытую данные, плюс хэш от данных и какого-то пароля, известного на стороне приемника. Сервер свертывает данные с паролем и проверяет.
Можно поподробнее..

файл connect.php

Код: Выделить всё

<?
/* Connect to database */
/* To connect change DBusername with database username
 and DBpassword with database password */

$connctuser="DBuser";
$connctpassword="DBpassword";
$connctdatabase="DBdata";
$conncthost="localhost";

mysql_connect($conncthost,$connctuser,$connctpassword) or die ("Unable to connect to mysql");
@mysql_select_db($connctdatabase) or die ("Unable to select database");
mysql_query("SET NAMES latin1");
?>
файл receive.php

Код: Выделить всё

if (isset($_GET['value0'])){
        include 'connect.php';
        $query="insert into Measurements (value0) values ('".$_GET['value0']."')";
        if (mysql_query("$query")){
                echo "[align=center]Data Received[/align]";
        }else{
                echo "[align=center]Error[/align]";
        }

}else{
        echo "[align=center]No Data[/align]";
}