Есть сервер для работы с данными (давление, температура, влажность и т.д.). Данных >10 000. Сервер постоянно передаёт их клиентам (обычные программки на С) по сокету. Data-сервер стороннего производителя и изменению не подлежит, протокол обмена данными известен.
Есть копроративный сайт на php.
Data-сервер и Web-сервер физически находяться в разных местах.
Необходимо на сайте реализовать механизм постоянного соединения с Data-сервером для получения текущего значения данных, например сформировать страничку отчёта "Текущая средняя температура по больнице".
Подскажите варианты реализации такого механизма и если можно примеры реализации.
Rafa однажды (11 января 2009 16:10) писал в rsdn.web:
> Доброго времени суток!!! > > Есть сервер для работы с данными (давление, температура, влажность и т.д.). Данных >10 000. Сервер постоянно передаёт их клиентам (обычные программки на С) по сокету. Data-сервер > стороннего производителя и изменению не подлежит, протокол обмена данными известен. > Есть копроративный сайт на php. > Data-сервер и Web-сервер физически находяться в разных местах. > Необходимо на сайте реализовать механизм постоянного соединения с Data-сервером для получения текущего значения данных, например сформировать страничку отчёта "Текущая средняя > температура по больнице". > Подскажите варианты реализации такого механизма и если можно примеры реализации. > Заранее спасибо за ответы.
Пишем скрипт на перле (или на сях. пофигу), который реализует этот известный протокол и шлем данные также и на него. Данные пишем в бд, бд рисуем на графике.
Нельзя настраивать сервак? Перехватываем траффик каким-ть tcpdump, парсим, пишем в БД...
Дорогой траффик? Жмем (на лету|пакетами по 5 минут в файл, который потом) отсылаем на вебсервак. пишем в БД....
-- Бортовой журнал
Здравствуйте, Sheridan, Вы писали: S>Пишем скрипт на перле (или на сях. пофигу), который реализует этот известный протокол и шлем данные также и на него. Данные пишем в бд, бд рисуем на графике. S>Нельзя настраивать сервак? Перехватываем траффик каким-ть tcpdump, парсим, пишем в БД... S>Дорогой траффик? Жмем (на лету|пакетами по 5 минут в файл, который потом) отсылаем на вебсервак. пишем в БД....
Т.е. без БД никак не обойтись? Просто трафик большой, а выполнение записи и выборки будут занимать некоторое время. Да и с изменением структуры БД могут быть проблемы.
Хотелось бы список всех данных всегда держать массивом в памяти на веб-сервере. А создавать/заполнять этот массив при разрыве/установке соединения с Дата-сервером и при получении измененных данных.
И ещё вопросик: Возможно выполнение php-скрипта без браузера?
Здравствуйте, Rafa, Вы писали:
R>Здравствуйте, Sheridan, Вы писали: S>>Пишем скрипт на перле (или на сях. пофигу), который реализует этот известный протокол и шлем данные также и на него. Данные пишем в бд, бд рисуем на графике. S>>Нельзя настраивать сервак? Перехватываем траффик каким-ть tcpdump, парсим, пишем в БД... S>>Дорогой траффик? Жмем (на лету|пакетами по 5 минут в файл, который потом) отсылаем на вебсервак. пишем в БД....
R>Т.е. без БД никак не обойтись? Просто трафик большой, а выполнение записи и выборки будут занимать некоторое время. Да и с изменением структуры БД могут быть проблемы. R>Хотелось бы список всех данных всегда держать массивом в памяти на веб-сервере. А создавать/заполнять этот массив при разрыве/установке соединения с Дата-сервером и при получении измененных данных.
Не суть где ты будешь хранить. Замени слово "БД" на "хранилище", выдели его в отдельный layer тогда тебе все равно будет. Хочешь in-memory array, хочешь СУБД, хочешь СУБД + кеширование, хочешь файлы на диске etc.
R>И ещё вопросик: Возможно выполнение php-скрипта без браузера?
Конечно. Браузер тут вообще не при чем.
Я понял что нужно делать так...
Соединяемся из скрипта с Дата-сервером. Запускаем на сайте цикл прослушивания сокета и по при поступлении данных, заполняет ими массив. Т.о. у нас всегда есть текущие данные.
Пользователь зашёл на сайт и работает с этими данными как ему необходимо.
Теперь вопрос: Как осуществить соединение и прослушивание без браузера, ведь скрип прервётся если пользователь закроет окно браузера?
Rafa однажды (12 января 2009 16:51) писал в rsdn.web:
> Теперь вопрос: Как осуществить соединение и прослушивание без браузера, ведь скрип прервётся если пользователь закроет окно браузера?
~# php -f file.php
Но я так понимаю — поток данных большой. Советую всетаки не интерпретируемый язык выбрать, а компилируемый.