Краткая история предмета.
Необходимо сказать, что в своей работе я регулярно
сталкивался с необходимостью обеспечить синхронизацию
нескольких файловых каталогов на разных компьютерах
никак не связанных между собой. Т.е. предположим есть
некая программа, (для примера можно взять пристнопамятный
DiasoftCLIENT производства “широко известной в узких
финансовых кругах” компании DiaSOFT)
которая умеет выкладывать исходящие файлы в один каталог
и проверять другой на предмет пришедших файлов. Типичным
решением является установка на эти компьютеры какого
либо почтового клиента (что само по себе очень даже
не плохо) и отправки и прием этих файлов в ручную (вот
здесь хорошего мало). Но этого еще не все! Как правило
дополнительно необходимо обеспечить сжатие файлов (это
особенно актуально для больших файлов т.к. может значительно
снизить затраты на коммуникации и уменьшить время передачи
файла), а так же их шифрацию и электронную подпись.
Для каждой из вышеперечисленных задач уже существует
обособленное программное решение. Так в качестве почтового
клиента можно взять Outlook Express из поставки Microsoft
Internet Explorer 4.X, в качестве “звонилки” можно взять
замечательную программу Александра Горлача – eDialer,
для упаковки файлов можно использовать известный российский
архиватор RAR от Евгения Рошаля. Для шифрации файлов
и создания электронной подписи можно использовать популярный
пакет PGP и т.д.
А теперь посмотрим как выглядит этот “слоеный пирог”
на практике:
- Формируем в рамках нашей программы исходящий документ
и экспортируем его в файл.
- Формируем электронную подпись и шифруем файл.
- Если наша программа шифрации сама не умеет упаковывать
файлы, то мы их упаковываем используя какой либо
архиватор.
- Запускаем программу клиент электронной почты и
формируем письмо куда вкладываем исходящий файл.
- Дозваниваемся до сервера удаленного доступа и
устанавливаем соединение.
- Отсылаем и принимаем почту.
- Разрываем соединение с сервером.
- Читаем пришедшую почту и экспортируем пришедший
документ в файл.
- Распаковываем его.
- Расшифровываем и проверяем электронную подпись.
- Импортируем пришедший документ в нашу прикладную
программу.
А теперь представьте, что корреспондентов у вас не
один, а скажем пять, и сеансы связи надо проводить
несколько раз в день. В добавок человеку свойственно
ошибаться, путать подписи и адреса. Да мало ли чего
еще. Есть от чего придти в ужас!
Попытки как то связать разрозненные программы в единый
комплекс так же потерпели фиаско. Полученный монстр
печально напоминал Франкенштейна и страдал всеми его
болезнями, когда архиватор не понимал что данный файл
уже обработан pgp и его не следует дополнительно архивировать,
а программа электронной почты не понимала есть ли
сейчас соединение с сервером и либо пыталась его найти
когда его нет либо вообще отказывалась отправлять
почту. С грехом пополам полученного монстра все же
удается запустить однако не может даже идти речи о
передаче это “программного комплекса” в третьи руки.