Технический проект комплекса информационных технологий "Управление инфраструктурой железнодорожного транспорта" (Описание программного обеспечения системы), страница 9

6.1.2 Общие требования к работе с реестром Windows и расположению задач и КЗ

Для обеспечения возможности создания общего модуля автоматического обновления версий, работы модуля "О программе", и других общих компонентов АСУ-Ш-2 все задачи и КЗ АСУ обязательно должны единообразно работать с реестром Windows. Требование размещения КЗ и задач АСУ-Ш-2 в одной директории вытекает из соображений эффективности и удобства сопровождения АСУ на объектах внедрения.

Для всей АСУ-Ш-2 в реестр Windows вводятся следующие общие параметры, которые хранятся в ключе:

HKEY_CURRENT_USER\Software\Assh2

Pred_Id (DWord)                   – идентификатор предприятия (заполняется один раз при первой установке любого компонента АСУ-Ш-2)

Podr_Id (DWord)– идентификатор подразделения (м.б. не заполнен вначале)

Vd_Id (DWord)– идентификатор вида деятельности предприятия

ServerTip (DWord)               – тип сервера (SQL/DB2) 0 - SQL, 1- DB2

ServerName (String)             – имя сервера

DataBaseName (String)        – имя базы данных

Все задачи и модули АСУ-Ш-2 должны работать с данными параметрами. Причем первые три из них не должны меняться, если они уже существуют (записываются первой задачей АСУ-Ш-2, устанавливаемой на данной ПЭВМ).

Кроме общей части для всей АСУ, для каждой задачи (модуля) и для каждого общего компонента задач АСУ-Ш-2 формируется собственный подключ по имени задачи (модуля, компонента), например:

HKEY_CURRENT_USER\Software\Assh2\M_Kadr

Все, требуемые для работы задачи (модуля, компонента) настройки-данные хранятся в параметрах этого подключа (кроме общих настроек для АСУ):

Default (параметр по умолчанию) (String) полное имя исполняемого файла, включая путь (параметр обязательный для заполнения)

Далее - параметры настройки интерфейса (значения: 1 – да, 0 – нет)

Hint (DWord)                         – наличие всплывающих подсказок

Status_Line (DWord)            – наличие строки состояния

Flat_New (DWord)                – наличие объемных кнопок

А затем остальные:

Printer (String)          – принтер, используемый задачей по умолчанию.

Внутри подключа задачи (модуля) формируются подключи низшего уровня для каждого используемого задачей компонента, например:

HKEY_CURRENT_USER\Software\Assh2\OSN\FORMDOC

Параметры этого подключа для собственных компонентов задачи (модуля) – те же, что и для задачи в целом (см. выше). Для общих компонентов АСУ-Ш-2, используемых задачей, подключ имеет только один параметр Default, в котором задано имя подключа общего компонента.

Установка по умолчанию должна производиться для всех КЗ и задач АСУ-Ш-2 в следующий каталог:

<Program Files Directory>\ASSH2

Каждая задача устанавливается в свой подкаталог в каталоге АСУ-Ш.

6.1.3 Технология взаимодействия модулей в КЗ и задачах АСУ-Ш-2

В данном разделе рассматриваются основные принципы взаимодействия общих модулей, входящих в состав АСУ-Ш-2 (далее: модули), с приложениями, входящими в состав задач или комплексов задач, в которых может возникнуть необходимость вызова такого модуля (далее: приложения).

При рассмотрении такого взаимодействия возникают три основных проблемы:

–  обращение к функциональной части модуля из приложения и передача каких-либо параметров.

–  получение приложением управления над интерфейсными элементами, предусмотренными модулем.

–  обмен данными между модулем и приложением как в реальном времени (во время работы модуля), так и к результатам работы модуля (после завершения его работы).

Первые две проблемы достаточно тесно связаны между собой, поэтому рассматриваются далее совместно. Третья проблема относительно независима и далее рассматривается отдельно.

6.1.3.1 Способы обращения к модулю и основные принципы его построения

Предусматриваются четыре основных варианта построения модуля.

В виде статически присоединяемого модуля (dcu). Частным случаем такого представления является компонент Delphi. В таком виде могут быть реализованы наборы процедур, функций и компонентов, не обладающих законченной функциональностью и не имеющих значения самостоятельных представлений в виде форм Delphi. Такие модули могут создавать и отображать формы, но эти формы модальные и не представляют интереса в отрыве от функциональности данного модуля.

Поскольку такой модуль фактически является частью приложения, проблемы обращения к нему и обмена данными не существует.

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

Для процедур и функций документируются список и способ передачи параметров и тип возвращаемого значения.

В виде динамически присоединяемой библиотеки (dll). В таком виде реализуются:

–  Библиотеки общих функций и процедур, если статическое их представление нерационально (из-за большого объема или планируемых модернизаций), либо не обеспечивает совместимости (например, при необходимости обращения к функциям и процедурам из Visual C++).

–  Модули, обладающие законченной функциональностью и, как правило, обеспечивающие собственный интерфейс в виде форм Delphi.

Первый вариант является стандартным для Windows, поэтому подробно не рассматривается.

Модуль, предусматривающий создание собственной формы (или форм), как минимум, должен экспортировать функции двух типов: возвращающие дескриптор (Handle) созданной в модуле формы и саму форму. Такие функции должны быть предусмотрены для всех форм, создаваемых в модуле, за исключением, возможно, тех форм, работа с которыми предусматривается только непосредственно из модуля. Функции должны вызываться без параметров, их имена в ПО АСУ-Ш-2 должны быть единообразны и иметь вид: