Автоматизация работы узла

Как ни крути, а работа в сети fidonet состоит из запуска не связанного друг с другом программного обеспечения (в большинстве случаев):

  1. Мейлер - программа обмена пакетами почты. В минимальном варианте должна обеспечивать прием пакета нетмейла от узла и отправку пакета нетмейла на заданный узел. Дальше-больше, и практически все современные (да и не только) мейлеры поддерживают обмен запакованными "бандлами" эхомейла, файлами, запросами на файлы, умеют проверять корреспондента на присутствие в нодлисте и сигнализировать тем или иным способом о своём состоянии и событиях. Многие мейлеры также работают как сервис и сканируют папку исходящих пакетов для автоматической отправки.

  2. Тоссер (эхопроцессор) - сердце системы, как узла, так и поинта (хотя для поинта его функции сведены к необходимому минимуму). Принимает пакеты в папке входящих, распаковывает, анализирует адреса источника, назначения, производит маршрутизацию. Для пакетов эхоконференций, на которые узел подписан - кладет в базу соответствующей эхоконференции, по служебным полям SEEN-BY анализирует, каким еще связанным узлам необходимо передать это сообщение, если они подписаны на эту эхоконференцию. Связывает (по служебному полю MSGID) ответ на сообщение с тем сообщением, на которое оно отвечает для навигации и высталяет флаги.

  3. Файлэхопроцессор - дополнение к предыдущему, обрабатывает файловые конференции. Сейчас является почти необходимым, для получения свежего нодлиста, и чаще всего поставляется в комплекте или является неотъемлемой частью тоссера.

  4. Редактор - для "слепых" узлов не самая необходимая часть программного пакета (но желательная). Является непосредственным интерфейсом к сети для пользователя, позволяет читать и писать сообщения на персональную почту и в эхоконференции.

Чтобы конечный пользователь (или Сисоп) увидел сообщения и смог что-нибудь ответить, надо:

  • запустить мейлер, направив его к своему аплинку, или (если мейлер принимает сообщения), обеспечить его работу в фоне.

  • после приема пакетов запустить тоссер, чтобы он обработал входящие и разложил исходящие

  • при приеме файлэхи - запустить также и фэхопроцессор

  • открыть редактор ...

  • снова запустить тоссер для того, чтобы из баз сообщений он извлек неотправленные и разложил их в исходящие

  • запустить мейлер, чтобы он отправил исходящие пакеты.

Автоматизация скриптами

Итак, из приблизительной схемы работы видно, что у нас этапы до редактора и после редактора во-первых схожи, а во-вторых - позволяют себя упаковать во вполне прямолинейный скрипт выполнения, поэтому простейшая схема автоматизации работы с сетью - скрипт "тоссер-мейлер-тоссер", который упрощается до "тоссер - мейлер", если в мейлере стоит автоматический запуск тоссера при приеме пакетов.

Автоматизация узла по таймеру

Часто используемым способом автоматизации является запуск всех задач по таймеру, например, мейлер работает как сервис (binkd или bforce) или в фоне (t-mail), отвечая на входящие соединения и периодически просматривая папку исходящих. По расписанию задача тоссинга запускается раз в 10-30 минут, в результате которой в папку исходящих складываются пакеты к линкам. Это работает и работает неплохо, есть только один минус такого решения - время ожидания. Один из популярных комплектов для создания узла - fidoip - построен именно на расписании.

Автоматизация по событиям

Многие программы для работы в сети фидонет поддерживают работу по событиям. События могут обрабатываться как самой входящей в комплекс программой (действия при приеме пакета присутствуют в конфигурациях T-Mail, binkd, bforce. husky hpt и binkd поддерживают внешние функции в модуле perl), так и посредством флагов - файлов, возможно нулевой длины, но конкретного имени и по конкретному пути. Для обработки флагов необходим какой-либо менеджер обработки флагов, который может запускаться достаточно часто, т.к. отсутствие флагов не вызывает нагрузки на систему. Так же не следует забывать про обработку состояния занятости скрипта обработкой флагов или обработкой конкретного флага - это позволит избежать случаев запуска двух экземпляров для обрабоотки одной задачи. На узле 2:5030/723 обработкой флагов занимается скрипт flagcheck, который обрабатывает флаги мейлера: mail, tic, toss, file; флаги редактора: netscan и echoscan, а также семафоры