вторник, 4 октября 2011 г.

Middleware: Call files

Одно из определений: Middlewire -- связующее программное обеспечение. Мне понадобилось увязать два программных продукта. Программы запущены на компьютерах географически разнесенных. Надо как-то научиться синхронизировать данные между ними. Мы сформулировали способ синхронизации. На одном компьютере данные выгружаются, потом происходит магический перенос данных между организациями, и, наконец, на удаленном компьютере данные подгружаются.



Есть инструмент синхронизации - утилита rsync. Ее надо как-то запускать по событию "появился новый файл". Готовый инструмент - можно запускать серверный скрипт по таймеру с помощью cron. Однако такое решение никому не нравится, оно тормозит процесс обмена на минуты.

Посмотрел в исходники Asterisk, как сделаны call files. Call files - это механизм запуска приложений в Asterisk основанный на файлах. Я подкладываю в определенную папку файл с заданием, Asterisk его тутже запускает.

Сделал демона, который смотрит за папками, и на изменение папки запускает скрипты, папки и скрипты описаны в файле конфигурации.

Соответственно, на изменение папки производится синхронизация папки, отсылка данных на удаленный компьютер при помощи утилиты rsync.

Комментариев нет:

Отправить комментарий