JAM
5.1.2. JAM
Средство разработки приложений JAM
[28] (JYACC's Application Manager) - продукт фирмы
JYACC (США). В настоящее время
поставляется версия JAM 7 и готовится
к выходу JAM 8.
Основной чертой JAM является его
соответствие методологии RAD,
поскольку он позволяет достаточно
быстро реализовать цикл разработки
приложения, заключающийся в
формировании очередной версии
прототипа приложения с учетом
требований, выявленных на
предыдущем шаге, и предъявить его
пользователю.
Структура и функции
JAM имеет модульную структуру и
состоит из следующих компонент:
- Ядро системы;
- JAM/DBi - специализированные
модули интерфейса к СУБД
(JAM/DBi-Oracle, JAM/DBi-Informix, JAM/DBi-ODBC и
т.д.);
- JAM/RW - модуль генератора
отчетов;
- JAM/CASEi - специализированные
модули интерфейса к
CASE-средствам (JAM/CASE-TeamWork,
JAM/CASE-Innovator и т.д.);
- JAM/TPi - специализированные
модули интерфейса к менеджерам
транзакций (например, JAM/TPi-Server
TUXEDO и т.д.);
- Jterm - специализированный
эмулятор X-терминала.
Ядро системы (собственно, сам JAM)
является законченным продуктом и
может самостоятельно
использоваться для разработки
приложений. Все остальные модули
являются дополнительными и
самостоятельно использоваться не
могут.
Ядро системы включает в себя
следующие основные компоненты:
- редактор экранов. В состав
редактора экранов входят:
среда разработки экранов,
визуальный репозиторий
объектов, собственная СУБД JAM -
JDB, менеджер транзакций,
отладчик, редактор стилей;
- редактор меню;
- набор вспомогательных утилит;
- средства изготовления
промышленной версии
приложения.
При использовании JAM разработка
внешнего интерфейса приложения
представляет собой визуальное
проектирование и сводится к
созданию экранных форм путем
размещения на них интерфейсных
конструкций и определению экранных
полей ввода/вывода информации.
Проектирование интерфейса в JAM
осуществляется с помощью редактора
экранов. Приложения, разработанные
в JAM, имеют многооконный интерфейс.
Разработка отдельного экрана
заключается в размещении на нем
интерфейсных элементов, возможной
(но не обязательной) их группировке
и конкретизации различных их
свойств, включающих визуальные
характеристики (позиция, размер,
цвет, шрифт и т.п.), поведенческие
характеристики (многообразные
фильтры, форматы, защита от ввода и
т.п.) и ряд свойств, ориентированных
на работу с БД.
Редактор меню позволяет
разрабатывать и отлаживать системы
меню. Реализована возможность
построения пиктографических меню
(так называемые toolbar). Назначение
каждого конкретного меню тому или
иному объекту приложения
осуществляется в редакторе
экранов.
В ядро JAM встроена
однопользовательская реляционная
СУБД JDB. Основным назначением JDB
является прототипирование
приложений в тех случаях, когда
работа со штатной СУБД невозможна
или нецелесообразна. В JDB
реализован необходимый минимум
возможностей реляционных СУБД за
исключением индексов, хранимых
процедур, триггеров и
представлений (view). С помощью JDB
можно построить БД, идентичную
целевой БД (с точностью до
отсутствующих в JDB возможностей) и
разработать значительную часть
приложения.
Отладчик позволяет проводить
комплексную отладку
разрабатываемого приложения.
Осуществляется трассировка всех
событий, возникающих в процессе
исполнения приложения.
Утилиты JAM включают три группы:
- конверторы файлов экранов JAM в
текстовые. JAM сохраняет экраны
в виде двоичных файлов
собственного формата. В ряде
случаев (например для
изготовления программной
документации проекта)
необходимо текстовое описание
экранов;
- конфигурирование устройств
ввода/вывода. JAM и приложения,
построенные с его помощью, не
работают непосредственно с
устройствами ввода/вывода.
Вместо этого JAM обращается к
логическим устройствам
ввода/вывода (клавиатура,
терминал, отчет). Отображение
логических устройств в
физические осуществляется с
помощью средств
конфигурирования;
- обслуживание библиотек
экранов (традиционные операции
с библиотеками).
Одним из дополнительных модулей
JAM является генератор отчетов.
Компоновка отчета осуществляется в
редакторе экранов JAM. Описание
работы отчета осуществляется с
помощью специального языка.
Генератор отчетов позволяет
определить данные, выводимые в
отчет, группировку выводимой
информации, форматирование вывода
и др.
Приложения, разработанные с
использованием JAM, не требуют так
называемых исполнительных (run-time)
систем и могут быть изготовлены в
виде исполняемых модулей. Для этого
разработчик должен иметь
компилятор C и редактор связей. Для
изготовления промышленной версии в
состав JAM входит файл сборки (makefile),
исходные тексты (на языке C) ряда
модулей приложения и необходимые
библиотеки.
JAM содержит встроенный язык
программирования JPL (JAM Procedural Language),
с помощью которого в случае
необходимости можно написать
модули, реализующие специфические
действия. Данный язык является
интерпретируемым, что упрощает
отладку. Существует возможность
обмена информацией между средой
визуально построенного приложения
и такими модулями. Кроме того, в JAM
реализована возможность
подключения внешних модулей,
написанных на каком-либо языке,
совместимым по вызовам функций с
языком C.
С точки зрения реализации логики
приложения JAM является
событийно-ориентированной
системой. В JAM определен набор
событий, включающий открытие и
закрытие окон, нажатие клавиши
клавиатуры, срабатывание
системного таймера, получение и
передача управления каждым
элементом экрана. Разработчик
реализует логику приложения путем
определения обработчика каждого
события. Например, обработчик
события "нажатие кнопки на
экране" (мышью или с помощью
клавиатуры) может открыть
следующее экранное окно.
Обработчиками событий в JAM могут
быть как встроенные функции JAM, так
и функции, написанные
разработчиком на C или JPL. Набор
встроенных функций включает в себя
более 200 функций различного
назначения. Встроенные функции
доступны для вызовов из функций,
написанных как на JPL, так и на C.
Промышленная версия приложения,
разработанного с помощью JAM,
включает в себя следующие
компоненты:
- исполняемый модуль
интерпретатора приложения. В
этот модуль могут быть
встроены функции, написанные
разработчиками на языках 3-го
поколения;
- экраны, составляющие само
приложение (могут поставляться
в виде отдельных файлов, в
составе библиотек экранов или
же быть встроены в тело
интерпретатора);
- внешние JPL-модули. Могут
поставляться в виде текстовых
файлов или в
прекомпилированном виде,
причем прекомпилированные
внешние JPL-модули могут быть
как в виде отдельных файлов,
так и в составе библиотек
экранов;
- файлы конфигурации приложения
- файлы конфигурации
клавиатуры и терминала, файл
системных сообщений, файл
общей конфигурации.
Взаимодействие с другими
средствами
Непосредственное взаимодействие
с СУБД реализуют модули JAM/DBi (Data Base
interface). Способы реализации
взаимодействия в JAM разделяются на
два класса: ручные и
автоматические. При ручном способе
разработчик приложения
самостоятельно пишет запросы на SQL,
в которых как источниками, так и
адресатами приема результатов
выполнения запроса могут быть как
интерфейсные элементы визуально
спроектированного внешнего уровня,
так и внутренние, невидимые для
конечного пользователя переменные.
Автоматический режим, реализуемый
менеджером транзакций JAM,
осуществим для типовых и наиболее
распространенных видов операций с
БД, так называемых QBE (Query By Example -
запросы по образцу), с учетом
достаточно сложных взаимосвязей
между таблицами БД и
автоматическим управлением
атрибутами экранных полей
ввода/вывода в зависимости от вида
транзакции (чтение, запись и т.д.), в
которой участвует сгенерированный
запрос.
JAM позволяет строить приложения
для работы более чем с 20 СУБД: ORACLE,
Informix, Sybase, Ingres, InterBase, NetWare SQL Server, Rdb,
DB2, ODBC-совместимые СУБД и др.
Отличительной чертой JAM является
высокий уровень переносимости
приложений между различными
платформами (MS DOS/MS Windows, SunOS, Solaris
(i80x86, SPARC), HP-UX, AIX, VMS/Open VMS и др.). Может
потребоваться лишь
"перерисовать" статические
текстовые поля на экранах с русским
текстом при переносе между средами
DOS-Windows-UNIX. Кроме того, переносимость
облегчается тем, что в JAM приложения
разрабатываются для виртуальных
устройств ввода/вывода, а не для
физических. Таким образом при
переносе приложения с платформы на
платформу, как правило, требуется
лишь определить соответствие между
физическими устройствами
ввода/вывода и их логическими
представлениями для приложения.
Использование SQL в качестве
средства взаимодействия с СУБД
также создает предпосылки для
обеспечения переносимости между
СУБД. При условии переноса
структуры самой БД в ряде случаев
приложения могут не требовать
никакой модификации, за
исключением инициализации сеанса
работы. Такая ситуация может
сложиться в том случае, если в
приложении не использовались
специфические для той или иной СУБД
расширения SQL.
При росте нагрузки на систему и
сложности решаемых задач
(распределенность и гетерогенность
используемых ресурсов, количество
одновременно подключенных
пользователей, сложность логики
приложения) применяется
трехзвенная модель архитектуры
"клиент-сервер" с
использованием менеджеров
транзакций. Компоненты JAM/TPi-Client и
JAM/TPi-Server позволяют достаточно
просто перейти на трехзвенную
модель. При этом ключевую роль
играет модуль JAM/TPi-Server, так как
основная трудность внедрения
трехзвенной модели заключается в
реализации логики приложения в
сервисах менеджеров транзакций.
Интерфейс JAM/CASE подобен
интерфейсу к СУБД и позволяет
осуществить обмен информацией
между репозиторием объектов JAM и
репозиторием CASE-средства
аналогично тому, как структура БД
импортируется в репозиторий JAM
непосредственно из БД. Отличие
заключается в том, что в случае
интерфейса к CASE этот обмен является
двунаправленным. Кроме модулей
JAM/CASEi, существует также модуль JAM/CASEi
Developer's Kit. С помощью этого модуля
можно самостоятельно разработать
интерфейс (т.е. специализированный
модуль JAM/CASEi) для конкретного
CASE-средства, если готового модуля
JAM/CASEi для него не существует.
Мост (интерфейс) Silverrun-RDM <-> JAM
реализует взаимодействие между
CASE-средством Silverrun и JAM (перенос
схемы базы данных и экранных форм
приложения между CASE-средством
Silverrun-RDM и JAM версии 7.0). Данный
программный продукт имеет 2 режима
работы:
- прямой режим (Silverrun-RDM->JAM)
предназначен для создания
объектов CASE-словаря и
элементов репозитория JAM на
основе представления схем в
Silverrun-RDM. В этом режиме мост
позволяет, исходя из
представления моделей данных
интерфейса в Silverrun-RDM,
производить генерацию экранов
и элементов репозитория JAM.
Мост преобразует таблицы и
отношения реляционных схем RDM в
последовательность объектов JAM
соответствующих типов.
Методика построения моделей
данных интерфейса в Silverrun-RDM
предполагает применение
механизма подсхем для
прототипирования экранов
приложения. По описанию каждой
из подсхем RDM мост генерирует
экранную форму JAM;
- обратный режим (JAM->Silverrun-RDM)
предназначен для переноса
модификаций объектов
CASE-словаря в реляционную
модель Silverrun-RDM.
Режим реинжиниринга позволяет
переносить модификации всех
свойств экранов JAM, импортированных
ранее из RDM, в схему Silverrun. На этом
этапе для контроля целостности
базы данных не допускаются
изменения схемы в виде добавления
или удаления таблиц и полей таблиц.
Групповая работа
Ядро JAM имеет встроенный
интерфейс к средствам
конфигурационного управления (PVCS
на платформе Windows и SCCS на платформе
UNIX). Под управлением этих систем
передаются библиотеки экранов
и/или репозитории. При отсутствии
таких систем JAM самостоятельно
реализует часть функций поддержки
групповой разработки.
Использование PVCS (см. подраздел 5.6) является более
предпочтительным по сравнению с SCCS,
так как позволяет организовать
единый архив модулей проекта для
всех платформ. Так как JAM на
платформе UNIX не имеет прямого
интерфейса к архивам PVCS, то выборка
модулей из архива и возврат их в
архив производятся с
использованием PVCS Version Manager. На
платформе MS-Windows JAM имеет встроенный
интерфейс к PVCS и действия по
выборке/возврату производятся
непосредственно из среды JAM.
Среда функционирования
JAM, как среда разработки, и
приложения, построенные с его
использованием, не являются
ресурсоемкими системами. Например,
на платформе MS-Windows достаточно
иметь 8MB оперативной памяти и 50 MB
дискового пространства для среды
разработки. На UNIX-платформах
требования к аппаратуре
определяются самой операционной
системой.
Назад | Содержание | Вперед
|