Содержание материала

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-сеанса