Главная » 2017 » Январь » 28 » Режим агента конфигуратора (планируется в версии 8.3.10)
20:12
Режим агента конфигуратора (планируется в версии 8.3.10)

 

При разработке и сопровождении прикладных решений конфигуратор используется не только интерактивно (для изменения конфигурации, описания алгоритмов на встроенном языке), но и программно (для обновления конфигурации, загрузки/выгрузки и др.). Например, новая среда разработки EDT часть своих функций перепоручает конфигуратору.

Исходная потребность разработчиков платформы заключалась в том, чтобы ускорить взаимодействие EDT и конфигуратора. Но в процессе разработки удалось расширить решаемую задачу. В результате была реализована универсальную возможность работы с конфигуратором программно – режим агента. В этом режиме конфигуратор может выполнять произвольное количество «внешних» команд, не завершая своей работы.

 

Преимущества

 

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

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

 

Принцип работы

 

Для запуска конфигуратора в новом режиме используется ключ /AgentMode, а также ряд других вспомогательных ключей, определяющих настройки подключения. Сразу же, при запуске, указывается информационная база, с которой будет работать конфигуратор.

После запуска агента можно поочерёдно работать с этой информационной базой как запущенным агентом (с помощью ssh-команд), так и конфигуратором, запущенным в обычном режиме. Что значит поочерёдно?

Чтобы управлять конфигуратором из ssh-клиента, нужно сначала подключиться к информационной базе. Выглядит это очень просто:

designer>common connect-ib
Операция завершена успешно 

После этого можно выполнять любые другие ssh-команды.

Если выполнить ssh-команду отключения, то можно будет (не завершая работу этого агента) запустить ещё один конфигуратор в обычном режиме и работать с информационной базой как обычно, например, редактировать модули. После завершения работы обычного конфигуратора можно снова, в работающем агенте, с помощью ssh-команд подключиться к информационной базе (ИБ) и выполнить другие операции. Коротко эту последовательность действий можно представить следующим образом:

  • запуск конфигуратора в режиме агента (начало ssh-сессии)
  • подключение к ИБ (ssh-команда)
    • … другие ssh команды
  • отключение от ИБ (ssh-команда)
  • запуск конфигуратора в обычном режиме
    • … модификация той же ИБ, к которой подключен агент конфигуратора
  • завершение работы конфигуратора в обычном режиме
  • подключение к ИБ (ssh-команда)
    • … другие ssh команды
  • отключение от ИБ (ssh-команда)
  • завершение работы конфигуратора в режиме агента (ssh-команда, завершение ssh-сессии)

 

ssh-команды

 

К конфигуратору, запущенному в режиме агента, можно подключаться стандартными ssh-клиентами PuTTYWinSCPMobaXterm и другими. Пока мы реализовали только самые необходимые команды:

  • подключение/отключение от информационной базы;
  • загрузка/выгрузка конфигурации в файлы (в том числе частичная загрузка и выгрузка);
  • загрузка/выгрузка внешних обработок или отчетов в файлы;
  • обновление конфигурации базы данных;
  • ряд служебных команд.

В дальнейшем мы будем рассматривать возможность расширения списка команд.

 

Пример

 

Как мы уже говорилось в начале, использование протокола ssh позволяет не только работать из командной строки в стандартных ssh-клиентах, но и автоматизировать свою работу с конфигуратором, используя возможности других, кроме встроенного, языков программирования. Например, на языке Python подключение к информационной базе и отключение от неё реализуется буквально в несколько строк (с помощью библиотеки Paramiko):

import paramiko

host = '192.168.1.1'
user = 'login'
secret = 'password'
port = 1543

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, username=user, password=secret, port=port)

stdin, stdout, stderr = client.exec_command('common connect-ib')
data = stdout.read() + stderr.read() 
 
 ...

stdin, stdout, stderr = client.exec_command('common disconnect-ib')
data = stdout.read() + stderr.read()

client.close() 

 

Особенности

 

Конфигуратор сам по себе определяет ряд ограничений, накладываемых на взаимодействие по протоколу ssh.

Во-первых, из-за специфики работы конфигуратора все ssh-команды выполняются синхронно, одновременно к информационной базе может быть подключён только один shell ssh-клиент и несколько sftp-клиентов.

Во-вторых, существует жёсткое ограничение «один агент – одна база». Так как аутентификация выполняется по имени пользователя информационной базы и паролю, то агент сразу (при запуске) должен знать, с какой базой он будет работать.

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

 

Источник: Заметки из зазеркалья

 

Просмотров: 722 | Добавил: Administrator | Рейтинг: 0.0/0
Всего комментариев: 1
1  
This message is posted here using XRumer + XEvil 4.0

XEvil 4.0 is a revolutionary application that can bypass almost any antibot CAPTCHA's.
Captcha Recognition Google (ReCaptcha-1, ReCaptcha-2), Facebook, BING, Hotmail, Yahoo,
Yandex, VKontakte, Captcha Com - and over 8400 other types!

You read this - it means it works! ;)
Details on the official website of XEvil, there is a free demo version.

Check YouTube video "XEvil ReCaptcha2"

Имя *:
Email *:
Код *: