Ю.Петров, Компания Аргуссофт
Структура JAM
Пакет JAM имеет модульную структуру и состоит из следующих компонент:
. Ядро является законченным модулем и
позволяет полностью разрабатывать приложения;
Ядро системы включает в себя следующие основные компоненты:
Рис. 1. Взаимодействие компонент ядра JAM
Редактор Экранов
Визуальное проектирование интерфейса в JAM осуществляется с помощью Редактора Экранов.
Приложения, разработанные в JAM, имеют многооконный интерфейс. Окна (экраны), из которых
состоит интерфейс приложения, разрабатываются в Редакторе Экранов. Разработка отдельного
экрана заключается в размещении на нем интерфейсных элементов, возможной (но не
обязательной) их группировке и конкретизации различных их свойств. Объекты имеют достаточно
широкий набор свойств, включающий визуальные характеристики (позиция, размер, цвет, шрифт
и т.п.), поведенческие характеристики (разнообразные фильтры, форматы, защита от ввода и т.п.)
и ряд свойств, ориентированных на работу с БД.
В распоряжении разработчика имеются следующие интерфейсные элементы:
Режим приложения | Режим редактирования | Режим тестирования |
---|
Рис. 2. Переходы между режимами Редактора Экранов
Каждый экран, входящий в приложение, сохраняется в виде отдельного файла. Кроме этого, экраны могут сохраняться в виде библиотек экранов. Библиотека экранов представляет собой файл, содержащий хранящиеся экраны и индексную таблицу, ускоряющую поиск необходимых экранов. Одновременно в системе может быть открыто несколько экранных библиотек.
В состав Редактора Экранов входит JPL - процедурный интерпретируемый язык программирования с синтаксисом, похожим на синтаксис C. В JPL доступны следующие возможности:
Визуальный Репозиторий Объектов
Реализация принципов объектно-оpиентиpованного программирования осуществлена в JAM
следующим образом. Каждый элемент приложения с определенными свойствами и методами (в
качестве которых выступают обработчики событий) является объектом. Одной из составных частей
ядра JAM является Визуальный Репозиторий Объектов, в котором можно сохранять созданные
объекты. Визуальный Репозиторий Объектов является специальным типом библиотеки экранов и
соответствующим образом организован. Т.е. Репозиторий состоит из так называемых входов
(entries). которые выглядят как экраны с базовыми объектами на них. Текущая установка свойств и
методов является базовой. Для использования какого-либо базового объекта достаточно перенести
его мышью с входа Репозитория на проектируемый экран. При изменении свойств и/или методов
базового объекта эти изменения распространяются на всех потомков данного объекта. Реализован
механизм управляемого наследования свойств и методов, при котором можно запретить
наследование части или всех свойств/методов. Вся работа с Репозиторием осуществляется в
Редакторе.
Поддержка групповой разработки
Ядро JAM имеет встроенный интерфейс к системам управления многоверсионными проектами и
групповой разработки (PVCS на платформе Windows и SCCS на платформе UNIX). При этом под
управление этих систем передаются библиотеки экранов и/или Репозитории. При отсутствии таких
систем JAM самостоятельно реализует часть функций поддержки групповой разработки.
Редактор Меню
Позволяет разрабатывать и отлаживать системы меню. Реализована возможность построения
пиктографических меню (так называемые toolbar). Меню могут сохраняться как в отдельных
файлах, так и в экранных библиотеках. В одном файле может быть несколько поименованных
меню. Назначение каждого конкретного меню тому или иному объекту приложения
осуществляется в Редакторе Экранов.
Собственная СУБД JAM - JDB
В ядро JAM встроена однопользовательская реляционная СУБД JDB. Основным назначением JDB
является прототипирование приложений в тех случаях, когда работа со штатным сервером БД
недоступна или нецелесообразна. В JDB реализован необходимый минимум возможностей
реляционных SQL-серверов БД за исключением индексов, внешних слияний таблиц (outer joins),
хранимых процедур, триггеров и так называемых view. В результате с помощью JDB можно
построить БД, идентичную целевой БД (с точностью до отсутствующих в JDB возможностей) и
разработать значительную часть приложения не загружая сеть и сервер. В состав JAM входит
утилита интерактивного SQL для JDB.
Отладчик
Позволяет проводить комплексную отладку разрабатываемого приложения. Осуществляется
трассировка всех событий, возникающих в процессе исполнения приложения, как составная часть
реализован символический отладчик JPL-процедур и механизм точек прерывания.
Набор вспомогательных отдельных утилит
Утилиты JAM представляют три группы:
Средства изготовления промышленного релиза приложения
Приложения, разработанные с использованием JAM, не требуют так называемых run-time систем и
могут быть изготовлены в виде исполняемых модулей. Для этого разработчик должен иметь
компилятор C и редактор связей. Для изготовления промышленного релиза в состав JAM входит
файл сборки (makefile), исходные тексты (на языке C) ряда модулей приложения и необходимые
библиотеки.
JAM ориентирован на работу с реляционными SQL-серверами БД. Средством взаимодействия
JAM-приложений с СУБД является SQL. При разработки приложений БД SQL-запросы являются
составными частями методов объектов приложения. Модуль JAM/DBi осуществляет корректную
передачу SQL запроса соответствующей СУБД и прием и обработку результатов исполнения
запроса (включая и коды аварийного завершения при невыполнении запроса). Аргументами
запросов (т.е. источниками и приемниками информации) могут выступать объекты JAM
(интерфейсные элементы) и переменные JPL. В случае аварийного завершения запроса существует
возможность самостоятельной обработки кода аварийного завершения.
На рис. 3 представлена архитектура взаимодействия JAM и СУБД с помощью модулей
JAM/DBi.
Рис. 3. Архитектура взаимодействия с СУБД
Кроме написания SQL-запросов непосредственно разработчиком, в JAM существует возможность
автоматической генерации SQL-запросов. Эта возможность реализуется Менеджером Транзакций
JAM. Работа Менеджера Транзакций основана на том, что объекты приложения имеют ряд
свойств, характеризующих взаимосвязь объекта приложения с объектом БД и то, как эти объекты
участвуют в операциях с БД (SQL-операторы select, insert, update, delete). Экранные интерфейсные
элементы (поля ввода/вывода) отображаются в поля таблиц БД. Экранные поля, отображаемые на
одну таблицу БД, группируются в группу типа Образ Таблицы (table view). Кроме этого,
существуют специальные объекты типа связь (link), описывающие связи между таблицами БД. Эта
информация в подавляющем большинстве случаев является достаточной для автоматической
генерации SQL запроса для выполнения той или иной операции с БД. Задание этой информации
может быть осуществлено или непосредственно разработчиком, или же автоматически при
импорте структуры БД (метаданных) в Репозиторий JAM. При этом для каждой таблицы БД в
Репозитории JAM создается отдельный вход (entry), в котором создается соответствующий Образ
Таблицы (table view) и свойства объектов (т.е. членов группы table view) настраиваются
соответствующим образом. Если СУБД, структура БД которой импортируется, поддерживает
конструкции "primary / foreign keys", то будут автоматически созданы объекты типа связь (link).
Для разработки приложений с использованием Менеджера Транзакций в Редакторе Экранов
предусмотрены следующие возможности:
Основные команды Менеджера Транзакций
Команда | Действие |
NEW | Подготовка к вводу новых записей, в том числе и для нескольких связанных таблиц |
VIEW | Выбор информации из БД с целью просмотра |
SELECT | Выбор информации из БД с целью изменения, отличается от команды VIEW установкой блокировок |
CONTINUE | Повторить предыдущую команду VIEW или SELECT для следующей записи |
SAVE | Запись сделанных измененной в БД |
CLOSE | Перевод Менеджера Транзакции в начальное состояние |
Одним из дополнительных модулей JAM является Генератор Отчетов. Компоновка отчета
осуществляется в Редакторе Экранов JAM. Описание работы отчета осуществляется с помощью
специального языка.
Генератор отчетов позволяет определить:
Интерфейс к CASE структурного анализа и дизайна в некотором отношении подобен интерфейсу к
СУБД. Одной из основных задач CASE является разработка структуры БД. Информация о
структуре БД хранится в репозитории CASE. Модуль JAM/CASEi позволяет осуществить обмен
информацией между Визуальным Репозиторием Объектов JAM и репозиторием CASE
аналогично тому, как структура БД импортируется в Репозиторий
JAM непосредственно из БД. Отличие заключается в том, что в случае интерфейса к CASE этот
обмен является двунаправленным, т.е. информацию из Репозитория JAM можно экспортировать в
репозиторий CASE.
Рис. 4. Взаимодействие JAM, CASE и СУБД
На рис. 4 приведена схема взаимодействия JAM и CASE с использованием модуля
JAM/CASEi.
Следует отметить, что модуль JAM/CASEi позволяет осуществлять импорт/экспорт не только в
раздел ERD репозитория CASE, но и в раздел DFD.
Кроме модуля JAM/CASEi фирма-производитель распространяет модуль JAM/CASEi Developer's
Kit. С помощью этого модуля можно самостоятельно разработать интерфейс (т.е.
специализированный модуль JAM/CASEi) для конкретного инструмента CASE, если готового
модуля JAM/CASEi для данной CASE-системы еще не существует.
Модули JAM/TPi используются при разработке приложения трехзвенной модели "клиент-сервер" с
применением мониторов транзакций.
Рис. 5 представляет схему реализации трехзвенной архитектуры "клиент-сервер" с использованием
JAM, JAM/TPi-Client и JAM/TPi-Server.
При разработке клиентской части трехзвенной модели модуль JAM/TPi-Client позволяет в методах
объектов использовать вызовы сервисов монитора транзакций. Наличие модуля JAM/TPi-Client
расширяет синтаксис JPL командами, ориентированными на работу с мониторами
транзакций.
При разработке сервера приложений модуль JAM/TPi-Server позволяет разрабатывать сервисы
монитора транзакций, используя современную 4GL технологию, а не только традиционный для
мониторов транзакций 3GL интерфейс.
Рис. 5. Архитектура JAM/TPi
В состав JAM входит полный комплект документации в электронном виде. При этом используется
гипертекстовая система Dyna Text фирмы Electronic Book Technologies. Dyna Text доступна на
многих платформах, поддерживаемых пакетом JAM. Печатный вариант документации
поставляется за дополнительную плату. Если на какой-либо платформе Dyna Text система
недоступна, то печатная документация поставляется бесплатно. Вся документация представлена на
английском языке.
JAM как среда разработки и приложения, построенные с его использованием, не являются
ресурсоемкими системами. Достаточно сказать, что на платформе MS-Windows достаточно иметь
8MB ОЗУ и 50 MB дискового пространства для среды разработки. На UNIX-платформах
требования к аппаратуре нивелируются природой UNIX.
JAM поддерживает 8-битные кодировки символов алфавита. Форматы ввода/вывода
даты/времени, валюты, чисел являются настраиваемыми. Системные сообщения вынесены в
отдельные файлы и доступны для перевода.
JAM, как среда разработки, доступен на нескольких десятках программно-аппаратных платформ,
включая Windows, Windows 95, Windows NT, OS/2, Mac, VMS и практически все распространенные
UNIX платформы. На этих же платформах, соответственно, доступны и приложения, построенные
с использованием JAM. Переносимость JAM-приложений между платформами практически
абсолютная.
Реализация переносимости между типами интерфейсов - алфавитно-цифpовой и графический
интерфейсы. JAM-приложения могут исполняться как в алфавитно-цифровом, так и в GUI-режиме
практически на всех поддерживаемых платформах, где реализованы оба режима. Из GUI
поддерживаются MS-Windows, Presentation Manager, X-Windows, Macintosh. Переносимость между
типами интерфейса также практически абсолютная за исключением недоступности векторных
шрифтов и графических образов в алфавитно-цифровых режимах.
Переносимость локализованных приложений между различными программно-аппаратными
платформами с различными кодировками национального алфавита (например, перенос
русскоязычных приложений между Windows и UNIX) может иметь минимально возможную
трудоемкость. При максимально активном использовании Репозитория JAM достаточно изменить
написание только базовых объектов. В ряде случаев JAM дает возможность избежать и этой
работы. Это достигается соответствующим переопределением устройств ввода/вывода (клавиатура
и терминал).
Заключение
Решения, предлагаемые пакетом JAM, обеспечивают высокую производительность труда
разработчиков