next up previous contents
Next: Графическое представление данных Up: Базовые средства для построения Previous: Выбор аппаратных средств

Базовое программное обеспечение

В качестве операционной среды (OC) для построения распределенной системы сбора данных наиболее развитой является система UNIX, в которой с помощью стандартных библиотечных средств есть доступ к сетевым ресурсам на уровне TCP, NFS1.7 и набор утилит для передачи файлов по FTP1.8. Перечисленные транспортные средства базируются в UNIX на базе интернет протокола или сокращенно IP. Аналогичную схему на базе IP можно реализовать и без UNIX c помощью прикладных пакетов программ PC-TCP 1.9 или PC-NFS1.10 для MSDOS, MS-Windows 1.11 и др. В дополнение к стандартным средствам автором была написана библиотека подпрограмм для реализации FTP запросов из собственной программы. Эта библиотека позволяет существенно расширить, по сравнению с системными утилитами, диапазон возможных применений сетевой среды и дополнительно сэкономить ресурсы времени и памяти компьютеров, в первую очередь регистратора. Библиотека написана на стандартном ANSI C языке и проверена на имевшихся в распоряжении автора версиях UNIXа для персональных компьютеров и рабочих станций: SCO Xenix386, UNIX ISC2.2, Linux, SUN OS 4.1.3. Реализация запросов была осуществлена согласно рекомендациям Национального центра сетевых технологий США, стандартизирующих технологию FTP для мировых сетей (RFC959). Описание FTP библиотеки приведено в приложении [*].

Для построения сетевой системы регистрации данных можно использовать один из двух альтернативных протоколов транспортного уровня TCP (RFC793) и UDP (RFC768). На базе первого реализован вышеуказанный протокол передачи файлов FTP, а второй, обычно базовый - для реализации сетевой файловой системы NFS (RFC1094).

Для реализации взаимодействия программ регистратора и архиватора по протоколу FTP в тело программы регистрации данных (регистратора) необходимо вставить процедуры открытия файлов данных на удаленном архиваторе, чтения и записи туда данных и закрытие этих файлов. На архиваторе же, при старте системы, должен запускаться процесс ftpd (демон), собственно осуществляющий эти операции. В приложении [*] приведен пример программы (который можно использовать как тест) с использованием вышеуказанной библиотеки. При создании реальной системы сбора следует проверить величину ``тайм аута", с которым запускается ftpd в конкретной ОС, и если необходимо, то увеличить его до разумно необходимого интервала между FTP запросами регистрационной программы. Не следует совсем отказываться от механизма ``тайм аута", поскольку это позволяет не перегружать архиватор лишними процессами, так как случайные разрывы соединений в реально работающей сети - весьма распространенное явление.

Весьма полезным для написания программ регистрации может быть использование библиотеки для выполнения удаленных заданий согласно RPC1.12 (RFC1057).

Наиболее просто, с точки зрения традиционного, написание программы регистрации с использованием сетевой файловой системы. Не забывая, конечно, о производительности коммуникационной линии и собственных ограничениях конкретной NFS. Так, при работе с файлами через NFS бессмысленно пользоваться системными вызовами для блокировки этих файлов, если их выполнение не поддерживается специальным демоном на удаленной стороне. Для этой цели можно просто менять атрибуты файлов. Время изменения файлов и передача информации об изменениях может зависеть от реализации NFS - синхронной или асинхронной. Первый - классический тип, к сожалению, требует поблочной синхронной записи на диск и потому сильно замедляет работу с файлами, второй гораздо производительнее (используется в Linux), но предъявляет повышенные требования к гарантированному электропитанию сервера. Обычно FTP позволяет получить большую производительность при более скромных ресурсных запросах, зато NFS на основе UDP самовосстанавливаема после остановок сервера или разрывах связи. К сожалению, классическая NFS не является гарантированно устойчивой от сбоев при записи на диск. Этот недостаток ликвидируется в последнее время переводом на TCP протокол, однако, такая реализация существует далеко не во всех ОС. Таким образом, если имеются в наличии довольно производительные коммуникационные средства (ARCnet, Ethernet), то оптимально использование TCP-NFS. В этом случае регистратор может обойтись и без собственного жесткого диска. Загрузку операционной системы можно произвести с floppy диска или PROM1.13, затем, подключив по NFS диск архиватора, загрузить операционную систему (RFC1084) и программу регистрации, работающую с данными на этом диске.

Бездисковую работу можно организовать и с помощью FTP-библиотеки, если регистратор оснастить достаточным объемом памяти для безсвопинговой работы ОС (то есть без обязательных системных обращений к диску). Для системы сбора на базе наиболее компактной ОС Linux это 8 - 12Мбайт.

В случае, если в сети допустимы длительные интервалы отключения, например, частая переконфигурация или значительные расстояния, то конфигурацию сетевой файловой системы следует изменить на обратную. То есть регистратор оснащается дисковым накопителем достаточной емкости. А архиватор, предварительно проверяя наличие соединения, например, с помощью системной программы "ping", периодически снимает эти данные на свои носители. Тут также возможна и желательна работа по FTP.


Vladimir Chernenkov
2000-10-09