Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Рыбина Технология построения динамических 2011

.pdf
Скачиваний:
60
Добавлен:
12.11.2022
Размер:
3.43 Mб
Скачать

пользовательские меню, внешние образы, сообщения, измерители, таблицы, графики.

Рис. 24. Редактор иконок и автоматически сгенерированное описание иконки

Кнопки являются такими элементами пользовательского интерфейса, которые либо выполняют действия, либо определяют значения для переменных или параметров. Такое определение приводит к следующим типам кнопок в G2: Action Button, Check Box, Radio Button, Slider, Type-In Box (рис. 25). Для создания кнопок необходимо выбрать пункт меню РП New Button подменю с названием класса кнопки. Текст кнопки, показываемый на кнопке (в случае Action-Button) или справа от кнопки (в остальных случаях), берется из атрибута Label кнопки. Атрибут Variable-or-parameter идентифицирует переменную или параметр, которые будут означены с использованием данной кнопки. Этот параметр неприменим к кнопкам типа Action-Button и является обязательным для кнопок остальных типов.

Для кнопок типа Radio-Button несколько кнопок могут указывать на одну и ту же переменную или параметр. Для кнопок типа Check-Box каждая кнопка связывается с отдельной переменной или параметром. Кнопки, связанные с переменной или параметром, всегда обновляются, если переменная или параметр получают свои значения из другого источника. Кнопки типа action-button позволяют выполнять одно или более действий интерактивно. Для описания действия, которое будет выполнено при нажатии на кнопку, используется атрибут Action. Синтаксис этого атрибута совпадает с

111

синтаксисом написания консеквента правил, за некоторым исключением. В описании действия для кнопки нельзя использовать ключевые слова whenever и if. В то же время, как и в правилах, есть возможность использовать конструкции for, when, uncondi-

tionally и in order.

Кнопки типа Check-Box присваивают переменной или параметру так называемые значение включения (указанное в атрибуте Onvalue) и значение выключения (указанное в атрибуте Off-value). При этом есть возможность указать значение по умолчанию (в ат-

рибуте Value-on-activation). Кнопки типа Radio-Button дают воз-

можность выбора одного элемента из взаимоисключающего множества элементов. В отличие от кнопок типа Check-Box для кнопок этого типа нет понятия значения выключения. Остальные атрибуты аналогичны атрибутам кнопок типа Check-Box.

Рис. 25. Пример кнопок разного типа

Slider изменяет значение переменной или параметра в ходе протаскивания курсора. Slider можно использовать только совместно с числовыми переменными или параметрами. Для Slider можно указать следующие атрибуты: значение по умолчанию (атрибут Value- on-activation); минимальное и максимальное значения (атрибуты

112

Minimum-value и Maximum-value); следует ли изменять значение в процессе перетаскивания, или только по окончании перетаскивания (атрибут Set-value-while-sliding); показывать ли значения всегда, только в момент перетаскивания или никогда (атрибут When-

to-show-value).

Кнопки вида Type-In Box предназначены для ввода текста с клавиатуры. Совместно с кнопками этого типа можно использовать переменные или параметры любого типа. При попытке ввода неправильных значений G2 не даст выполнить такой ввод. Если переменная не имеет текущего значения, то содержимое соответствующей ей кнопки данного типа будет отображаться звездочками. Для кнопок этого типа можно задать следующие атрибуты: значение по умолчанию (атрибут Value-on-activation); для числовых переменных или параметров можно определить формат ожидаемых значений (атрибут Format-for-type-in-box) в виде ddd.dddd (в данном случае под d понимается одна десятичная цифра, при попытке ввода большего количества цифр G2 будет показывать число в экспоненциальной форме); очищать ли старое значение при вводе нового (атрибут Blank-for-type-in); показывать ли встроенный редактор при вводе значения (атрибут Have-edit-option-buttons-for-

type-in).

Также в G2 есть возможность создавать два типа текстовых элементов (рис. 26): текстовые элементы, которые помечают БЗ, и текстовые элементы для вставки текста в текстовом редакторе. Для пометки различных участков БЗ используются объекты класса Free-Text, которые могут иметь рамку (собственно, Free-Text) или отображаться без рамки (Borderless-Free-Text). Для таких элементов есть возможность менять цвет текста, фона и рамки, а также изменять размер шрифта.

Для вставки текста в текстовом редакторе используются элементы класса Text-Inserter, которые позволяют вставлять текст непосредственно в текстовом редакторе. Элементы класса Text-Inserter могут быть одного из четырех типов, а именно: TEXT-INSERTER

для вставки текста в текстовом редакторе; WORD-INSERTER – для вставки одного слова за раз; CHARACTER-INSERTER – для вставки только символов; CHARACTER-SEQUENCE-INSERTER

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

113

Внешний образ – это графический образ, созданный извне по отношению к G2. Внешний образ может быть импортирован в БЗ и использован как иконка, часть иконки или фоновый рисунок для РП. G2 поддерживает форматы XBM (X Bit Map – черно-белый) и GIF (Graphics Interchange Format, цветной либо черно-белый, noninterlaced), причем:

Тип файла

Иконки

РП

XBM (черно-белый)

+

+

GIF (черно-белый)

+

+

GIF (цветной)

 

+

Рис 26. Пример текстовых элементов G2

Дисплеи в системе G2 – объекты, которые графически представляют значения элементов, как только они изменяются. Предусмотрено четыре типа дисплея (рис. 27): Readout-Table (тестовая ячейка), digital-clock (часы), Dial (круговая шкала) и Meter (вертикальная шкала). Дисплей типа Readout-Table является прямоугольником, разделенным на две части и содержащим в левой части текстовую метку, а в правой части – значение отображаемого выражения. Аналогично дисплей типа digital-clock является прямоугольником, разделенным на две части и содержащим в левой

114

части текстовую метку, а в правой части – значение отображаемого времени. Круговые и вертикальные шкалы показывают значения числовых выражений. И тот, и другой класс измерителей инициируют поиск данных, если РП, на котором они расположены, не скрыто.

Графики (экземпляры класса Chart) являются примерами дисплеев G2, которые рисуют числовые данные в виде одной или нескольких серий данных. Серии данных состоят из одного или более чисел, которые должны быть элементами числового списка или числового массива. Графики не вызывают обновления значения переменных и не имеют средства автоматического обновления. Вместо этого следует использовать действие update для прорисовки серии данных на графике. В отличие от большинства элементов графики не поддерживают отображение атрибутов.

Рис. 27. Пример дисплеев G2

Средства инспекции и отладки. Ясно, что отладка прикладной динамической ИЭС, объединяющей продукционные правила, про-

115

цедуры, различные уровни абстракции и иерархию классов, может превратиться в далеко не тривиальную задачу [38]-[40]. Для облегчения выполнения данной задачи в G2 предусмотрены средства инспекции БЗ и отладки правил.

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

те Tracing-and-breakpoints правила и установить атрибут Tracing- and-breakpoints-enabled системной таблицы Debugging Parameters в значение yes.

Отладка правил в G2 проводится с использованием встроенной возможности подсвечивания правил в момент инициирования. Подсветить правило – означает инвертировать на время текстовое представление данного правила (белый цвет на черном фоне (рис.

28)).

Рис. 28. Фрагмент БЗ G2 в момент отладки правил

Для того чтобы включить подсветку инициируемых правил, необходимо выбрать пункт меню Run Options основного меню, подменю Highlight Invoked Rules. Подсветка инициируемых правил включается и выключается для БЗ в целом. Если включена

116

подсветка инициируемых правил, для каждого подсвечиваемого правила G2 приостанавливается на 0,3с. для того, чтобы подсветку можно было увидеть. Таким образом, подсветка выполнения правил замедляет выполнение БЗ. Если инициируемое правило вызывает обратный вывод к другим правилам, то G2 оставляет правило подсвеченным до того момента, пока антецедент правила не окажется полностью вычисленным (или пока не наступит прерывание по тайм-ауту), и затем подсвечивает каждое правило, с которым оно связано. G2 восстанавливает представление связанных правил

впорядке, обратном тому, в котором они были инициированы.

2.1.2.4.Интерфейс с внешним окружением

ВG2 реализована распределенная обработка приложения на принципах архитектуры клиент-сервер, рассчитанная на масштабирование с развертыванием распределенных решений, что позволяет совместно использовать данные, знания и задачи на различных платформах, с открытым доступом к базам данных и иным системам. Для параллельной работы предусмотрен интерфейс Telewindows, позволяющий нескольким пользователям одновременно работать с одним приложением G2. Каждый пользователь Telewindows имеет все возможности пользователя G2.

Для разработчиков это означает, что они могут работать груп-

пами для параллельной разработки решений, а также удаленно вносить изменения в работающие приложения G2. Следует также отметить, что с помощью интерфейса Telewindows разработчики могут создавать приложения, отображающие различные языки для каждого клиента. Это значит, что с одним и тем же приложением может работать группа разработчиков на разных языках. При этом G2 поддерживает протокол SSL для безопасности связи между интерфейсом Telewindows и сервером G2 [39].

Telewindows, работающий в любой из поддерживаемых G2 операционных систем, может подключаться к серверу G2, работающему на любой поддерживаемой операционной системе. Так, например, Telewindows, работающий на Windows, с полным родным функционалом интерфейса Windows, может подключаться к серверу G2, работающему на Linux или UNIX.

117

В настоящее время G2 предлагается для Microsoft Windows

идругих платформ для рабочих станций, в том числе:

Windows NT/2000/2003/XP и выше на персональных компьютерах на базе процессоров Intel;

IBM AIX на аппаратном обеспечении, указанном поставщи-

ком;

SUN Solaris на указанном поставщиком аппаратном обеспе-

чении SPARCstation;

HP HP-UX или HP Tru64 Unix, работающая на аппаратном обеспечении, указанном поставщиком;

Linux на персональных компьютерах на базе процессоров

Intel.

Ценной особенностью G2 относительно различных операционных платформ является то, что приложение, созданное на одной платформе, можно без изменений и перекомпилирования запускать на другой, при этом оно будет выглядеть и работать точно так же, что обеспечивает максимальную гибкость в развертывании приложений G2 на разнообразных платформах.

Компоненты G2 также работают на многопроцессорных машинах в поддерживаемых операционных системах. Операционная система автоматически распределяет нагрузку между процессорами.

Так, например,

компоненты сервера G2 могут обрабатываться

на одном

процессоре, клиент пользовательского

интерфейса

Telewindows —

на втором, мостовой процесс — на третьем, прочие

процессы —

на четвертом. Пример взаимодействия G2

с внешним

окружением приведен на рис. 29.

 

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

118

мает вычислительные ресурсы процессора. Компания Gensym отмечает 30%-ное повышение производительности при работе серверного компонента G2 на многопроцессорном компьютере только за счет того, что операционная система обрабатывалась отдельным процессором. Однако не следует рассматривать это как нормативный показатель, поскольку деятельность системы может быть различной.

G2ActiveXLink

G2 JavaLink

G2 OPCLink

G2 GCI

G2 WebLink

Сеть TСP/IP

TСP/IP Сеть

Рис. 29. Пример взаимодействия G2 с внешним окружением

G2 рассчитана на подключение к любым оперативным данным в режиме реального времени. Компания Gensym предлагает готовые мосты для двусторонней связи со многими коммерческими системами, включая базы данных, системы управления, системы наблюдения и сетевые платформы управления. Разработчик приложений G2 может создавать различные формы отчетов для выдачи собственных оперативных данных во внешнюю среду используя для этого:

∙ экспорт файлов и данных для использования другими приложениями;

119

∙ отображение текста и двумерной/трехмерной графики в пользовательском интерфейсе Telewindows;

∙ взаимодействие с приложениями Windows через мосты, такие как G2-ActiveXLink, G2 JavaLink или G2 OPCLink;

∙ взаимодействие с веб-браузерами для отображения отчетов через G2 WebLink.

G2 предоставляет возможность создания интерфейсов пользователя при помощи программных продуктов сторонних поставщиков,

например, Visual Basic, C, C+, Java, .Net и др.. Интерфейсы про-

граммирования

приложений связи G2 (API)

для C/C++

(G2 Gateway),

Java (G2 JavaLink), ActiveX (G2

ActiveXLink)

и протокола передачи гипертекста (G2 WebLink) позволяют быстро создавать и внедрять такие пользовательские интерфейсы. Обычно эти интерфейсы лучше всего подходят для доступа конечных пользователей на уровне данных. Такой тип доступа может быть полезен для конечных пользователей, которым нужно просто отображать информацию в G2 и вводить данные в G2 через экранные формы. Эти формы могут содержать таблицы, списки для выбора, гипертекст, окна для ввода текста, кнопки и графические изображения.

Для случаев, когда мост не предусмотрен, G2 имеет несколько интерфейсов, позволяющих разработчикам создавать двусторонние связи с внешними источниками данных. Например, с помощью сервера данных G2 Gateway Standard Interface (GSI) разработчик приложений G2 может создавать интерфейсы ко внешним базам данных и системам. Для создания интерфейсов на базе GSI требуется знание языков C или Java. GSI – это многофункциональный инструментарий для создания высокопроизводительного подключения к данным. Он включает в себя возможности получения данных, как по запросу, так и по наступлению события или прерывания. Векторы значений могут передаваться в любом направлении. Обработка протокола обмена, буферизация, квитирование, восстановление после разрыва соединения и другие важные элементы проектирования взаимодействия уже встроены в интерфейс GSI.

GSI также обеспечивает создание и внедрение интерфейсов реального времени между G2 и внешними процессами и системами.

120

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]