Разработка систем с открытым исходным кодом для

advertisement
Разработка систем с открытым исходным кодом…
Л.Ю. СТЕФАНЕНКО, А.А. МОРОЗОВ1
Московский государственный институт электронной техники (технический университет), Зеленоград
1
Московский инженерно-физический институт (государственный университет)
РАЗРАБОТКА СИСТЕМ С ОТКРЫТЫМ ИСХОДНЫМ КОДОМ
ДЛЯ ОБЕСПЕЧЕНИЯ УДАЛЕННОГО СБОРА ДАННЫХ
ФИЗИЧЕСКОГО ЭКСПЕРИМЕНТА
Представлена система дистанционного сбора данных на основе открытого программного обеспечения. Приведено
описание работы системы. Проанализированы результаты работы и выявлены недостатки.
На данный момент на рынке информационных технологий представлено большое количество
систем удаленного контроля и отображения данных и инструментов для их создания. Большинство из них вполне справляются с поставленными промышленными задачами, но не всегда применимы для небольших задач, ввиду нерентабельности установки громоздких программноаппаратных комплексов.
Разработанная система удаленного сбора и отображения данных построена на открытом программном обеспечении и позволяет осуществлять сбор и отображения данных в тех случаях, когда
не требуется временная синхронизация большой точности. Для построения системы были использованы web-сервер Apache 2.0, база данных MySQL 5, под управлением Debian GNU/Linux. Программная часть системы состоит из двух основных частей, отвечающих за сбор и отображение
данных соответственно.
Ниже приведена распределенная схема системы (рис. 1).
Рис. 1. Распределенная схема системы дистанционного сбора данных
Сбор данных осуществляется следующим образом:
 На компьютере, подключенном непосредственно к измерительному устройству и
осуществляющему сбор данных, информация поступает в хранилище, доступное извне. В
качестве хранилища может выступать любая СУБД или же система файлов и каталогов. В
связи с тем, что зачастую результаты эксперимента подвергаются дальнейшей обработке с
Разработка систем с открытым исходным кодом…
помощью прикладных математических программ (таких как Mathcad. MatLab и др.), был
выбран второй способ хранения данных. Данное хранилище открыто для чтения внутри
локальной сети.
 На сервере системы, с помощью программы Samba, данная папка-хранилище монтируется в режиме для чтения.
 Учитывая, что данные накапливаются в хранилище и перебирать все данные каждый раз не имеет смысла, серверный скрипт реализован следующим образом: с заданным
интервалом времени производится чтение последних N строк из файла (при записи экспериментальных данных один раз в секунду, N выбирается таким образом, чтобы данное
число было в полтора-два раза больше чем интервал обращения к хранилищу), проверяется
наличие этих данных в базе системы и сохраняются новые данные.
Недостатками такого подхода является то, что при достаточно больших файлах скорость обработки снижается. Помимо этого, для того чтобы избежать дублирование записей в базе данных,
при записи в файл, помимо непосредственно величины измеряемого параметра, необходима добавочная информация (в данном случае в качестве такой информации выступает временная метка,
номер измерения, сведения о режимах работы измерительного оборудования). В дальнейшем планируется добавление новых модулей сбора данных, использующих ssh-соединение, что позволит
не только увеличить быстродействие системы, но и повысить безопасность как данных, так и машины, производящей сбор измерительной информации.
Часть системы, отвечающая за отображение данных, представляет собой Интернет/Интранетпортал, реализованный на PHP с использованием технологии AJAX для обновления выводящихся
данных. В случае установки системы на Интернет-портале, пользователи получают возможность
доступа к данным из любой точки мира.
На первом этапе были реализованы два вида отображения данных:
1. табличный вывод данных за указанный промежуток времени;
2. график измеряемой величины от времени (рис. 2).
Рис. 2. Графический вывод экспериментальных данных в пользовательском интерфейсе системы
Разработка систем с открытым исходным кодом…
При графическом выводе задается интервал времени, за который строится график, а также период обновления графика. В дальнейшем планируется расширение текущей функциональности за
счет реализации модулей первичной обработки данных и вывода результатов на графике (среднее
значение, доверительные интервалы и др.), а также одновременное построение нескольких графиков экспериментов одной серии, для сравнения и анализа. Кроме этого планируется введение возможности импорта данных по каждому эксперименту в форматах txt, csv и xml, для того чтобы
удаленный пользователь мог получить данные прошедшего эксперимента для последующей обработки, не используя носители данных.
Таким образом, представленная система позволяет осуществлять мониторинг эксперимента из
любой точки мира, при наличии Интернета. Однако следует учесть, что данная система не предназначена для контроля за текущим процессом. Учитывая, что обмен данными происходит по локальной сети и скорость поступления в данных из хранилища в базу системы зависит от загруженности канала, возможна временная задержка до одной и более минут.
Необходимо отметить, что системы отображения данных и сбора данных являются взаимно независимыми. В большинстве случаев современные системы подобного рода представляют собой
единый «монолитный» блок с избыточным функционалом, который зачастую не требуется для
решения поставленных задач. Представленная система принципиально разделена на независимые
функциональные модули. Подобное разделение имеет ряд положительных следствий:
при проектировании модулей не требуется охватить разом широкий круг задач;
процесс разработки чётко разделяется на этапы, что позволяет не только упростить сам процесс
создания систем, но и ускорить сроки ввода модулей в эксплуатацию и тестирование по мере их
готовности;
при необходимости внесения изменений требуется модификация отдельных узлов, а не системы в целом.
Одним из основных положительных следствий предложенного подхода является возможность
использования сервис-ориентированной архитектуры (SOA). Таким образом, конечный продукт
позволяет не только производить сбор и удалённое отображение информации, но и предоставляет
ряд стандартизированных интерфейсов. Интерфейс компонентов SОА-программ предоставляет
инкапсуляцию деталей реализации конкретного компонента (ОС, платформы, языка программирования, вендора, и т. п.) от остальных компонентов. Таким образом, SOA предоставляет гибкий и
элегантный способ комбинирования и многократного использования компонентов для построения
сложных распределённых программных комплексов.
Подводя итог, отметим, что предложенный подход к построению систем сбора и отображения
данных позволяет не только реализовать возможность мониторинга экспериментов в любое время
из любой точки мира, но и наряду с простотой реализации повышает экономическую привлекательность систем подобного рода. Необходимо также учесть, что при достаточно простой схеме
разработки отдельных компонент, в целом система может представлять сложную распределенную,
многоуровневую систему сбора, обработки и отображения данных. А использование открытых
технологий предоставляет разработчику широкий набор динамично развивающихся инструментов.
СПИСОК ЛИТЕРАТУРЫ
1. Srirama Chandra. A low-cost, on-site, reconfigurable client DAQ system [Электронный ресурс]:
Embedded
Computing
Design,
2006,
№ 4.

Режим
доступа:
http://www.embeddedcomputing.com/pdfs/Lattice.Apr06.pdf.
2. Introduction to Data Acquisition [Электронный ресурс]: Ni developer zone  Режим доступа:
http://zone.ni.com/devzone/cda/tut/p/id/3536.
3. Measuring steel quality and aircraft performance [Электронный ресурс]: Technology in Europe, 2007. 
Режим доступа : http://www.vmecritical.com/columns/Technology_in_Europe/2007/02/.
4. Data acquisition [Электронный ресурс]: электронная энциклопедия.  Режим доступа к ресурсу:
http://en.wikipedia.org/wiki/Data_acquisition.
Related documents
Download