8. Примеры, рекомендации, типовые решения
8.1. Пример построения системы обмена информацией на базе FTP.
При развертывании системы Электро на нескольких компьютерах необходимо определить (выбрать) механизмы обмена информацией между системами.
Метод оперативного доступа к внешней БД Электро (с активизированным сервером удаленного вызова ElectroHost) применим при наличии достаточно надежного канала связи (например, выделенный канал с скоростью от 9600бод). Назовем такие системы сильно связанными – запросы к внешней БД возникают в произвольный момент времени и технико-экономические характеристики канала связи позволяют их выполнять.
Если канал связи ненадежный (коммутируемый телефонный канал) и/или дорогой (GSM-модем), необходимо строить взаимодействие слабо связанных систем. В этом случае предполагается, что сеанс связи выполняется периодически либо по регламенту и предназначен для пополнения баз данных. Работа пользователя целиком ориентирована на локальную БД.
Расмотрим пример построения слабо связанной системы.
Сервер SevTEC.
Системный уровень: Microsoft Windows 2000 Server; FTP-сервер; Прием Внешних Подключений.
Организация данных в системе Электро:
В каталоге c:\Electro создать подкаталоги и разместить программы:
\Opros - каталог для программы опроса счетчиков
\Temp - временный каталог для размещения файлов опроса
Opros.exe
\Import - импорт данных в локальную БД
\Taridat - каталог программы C300
\Maket - каталог программы Maket
С300.exe - программа импорта файлов формата LG;
Maket.exe - программа импорта макетов.
\Export - экспорт данных внешним клиентам (каталог доступен FTP-клиентам)
\PCx - для клиента PCx
\Taridat - файлы формата LG
\Maket - файлы макетов
Данные с счетчиков снимаются в формате LG и размещаются в каталоге \Import\Taridat для последующей обработки программой C300. Одновременно файлы дублируются в каталоги \Export\PCx\Taridat для последующего экспорта клиентами. Это можно сделать, например, следующим BAT-файлом (запускается оператором либо диспетчером назначенных заданий):
Cd c:\Electro\Opros
Del /Q Temp\*.* ; превентивное удаление
Opros <опции> ; запуск опроса. Предполагаем что результат опроса
; размещается в каталоге Opros\Temp
; копируем файлы опроса в каталог программы C300:
copy Temp\*.* c:\Electro\Import\Taridat
; копируем файлы опроса в каталоги экспорта:
copy Temp\*.* c:\Electro\Export\PC1\Taridat ; для клиента PC1
copy Temp\*.* c:\Electro\Export\PC2\Taridat ; для клиента PC2
Del /Q Temp\*.* ; удаление
Cd c:\Electro\Import
C300 NOWAIT DELETE ; запуск программы импорта в БД Электро
Таким образом, данный командный файл реализует опрос устройств, импорт данных в БД Электро и накопление данных для экспорта.
Клиент PC1.
Системный уровень: Microsoft Windows 95/98/NT/2K с настройкой RAS-подключения к серверу (запись телефонной книги SevTEC).
Организация данных в системе Электро:
В каталоге c:\Electro создать подкаталоги и разместить программы:
\Import - импорт данных в локальную БД
\Temp - каталог для приема файлов с сервера
\Taridat - каталог программы C300
\Maket - каталог программы Maket
С300.exe - программа импорта файлов формата LG;
Maket.exe - программа импорта макетов.
ftp.sсr - командный файл FTP-клиента
Следующий командный файл обеспечивает подключение клиента к серверу, чтение накопленных там LG-файлов и их импорт в локальную БД Электро:
Rasdial SevTEC ; подключение к серверу (rasdial.exe – стандартная
; Windows-програма)
if ERRORLEVEL 1 goto end ; проверка кода завершения
Cd c:\Electro\Import
Del /Q Temp\*.* ; превентивное удаление
ftp -n -s:ftp.scr ; запуск стандартного FTP-клиента в пакетном режиме
; (см. описание ftp.scr)
Cd d:\Electro\Import
Copy Temp\*.* Taridat\*.* ; копируем принятые файлы в
; каталог программы C300
rasdial /DISCONNECT ; разрыв связи
Del /Q Temp\*.* ; удаление
C300 NOWAIT DELETE ; запуск программы импорта в БД Электро
Exit ; завершение командного файла
:end ; ветвь обработки ошибки
echo *** Can't connect to SevTEC
exit
Командный файл ftp.scr для программы ftp.exe должен обеспечивать подключение к FTP-серверу и чтение (с удалением) накопленных там файлов в каталог Import\Temp. Файл выглядит следующим образом:
open 20.17.100.225 ; подключение к FTP-серверу
user UserPC1 ; регистрация: пользователь UserPC1
xxxxx ; пароль xxxxx
prompt ; команды настройки
binary ; передачи данных
hash ; ( см. справку Windows по разделу ftp)
lcd c:\Electro\Import\Temp ; локальный каталог
cd \PC1\Taridat ; удаленный каталог
; (предполагается, что public-каталог FTP-сервера
; установлен на c:\Electro\Export)
mget *.* ; получить файлы с удаленного каталога в локальный
mdelete *.* ; удалить файлы с удаленного каталога
bye ; конец ftp-сеанса