Корпоративные базы данных - статьи

       

JPL - внутренний процедурный язык программирования JAM



В состав Редактора Экранов входит JPL - процедурный интерпретируемый язык
программирования с синтаксисом, похожим на синтаксис C. В JPL доступны следующие
возможности:
  • Скалярные переменные и одно- и двумерные массивы;
  • Управляющие конструкции - if, else, for, while, break и next;
  • Передача параметров в функции и возврат значений.

Все JPL-функции оформляются в виде JPL-модулей. JPL-модуль является набором нескольких
именованных функций и не более одной неименованной функции. Неименованная функция есть
JPL-код от начала модуля до первой именованной процедуры и, очевидно, может отсутствовать в
модуле, если он начинается сразу с именованной процедуры. Из неименованной процедура
доступны именованные. JPL-модули могут быть трех типов:
  • Модуль экранного объекта (vidget module). Хранится вместе с
    объектом. Неименованная процедура исполняется при возникновении события
    validation для данного момента;
  • Экранный модуль (screen module). Хранится вместе с экраном.




    Неименованная процедура исполняется при загрузке экрана, именованные
    процедуры могут являться обработчиками событий всех объектов данного
    экрана;
  • Внешний модуль (external module). Хранится в отдельном файле.
    Загружается в память или принудительно, или при вызове процедуры с именем
    этого файла. Возможна принудительная выгрузка. Неименованная процедура
    исполняется при загрузке модуля. Внешние модули целесообразно
    использовать для хранения универсальных процедур.

Экранные модули и модули объектов хранятся как в текстовом, так и в прекомпилированном (в
некоторый промежуточный код) виде. Доступны для редактирования в Редакторе Экранов.
Внешние модули хранятся в виде текстовых файлов. С помощью специальной утилиты текстовые
внешние модули могут быть прекомпилированы. Прекомпилированные внешние модули могут
храниться в библиотеках экранов.

Визуальный Репозиторий Объектов

Реализация принципов объектно-о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 в текстовые файлы. JAM сохраняет
    экраны в виде двоичных файлов собственного формата. В ряде случаев
    (например для изготовления проектной документации) необходимо текстовое
    описание экранов;
  • Конфигурирование устройств ввода/вывода. JAM и приложения,
    построенные с его помощью, не работают непосредственно с устройствами
    ввода/вывода. Вместо этого JAM обращается к логическим устройствам
    ввода/вывода (клавиатура, терминал, отчет). Отображение логических
    устройств в физические осуществляется с помощью развитых средств
    конфигурирования;
  • Обслуживание библиотек экранов. Осуществляются традиционные
    операции с библиотеками.


Средства изготовления промышленного релиза приложения

Приложения, разработанные с использованием JAM, не требуют так называемых run-time систем и
могут быть изготовлены в виде исполняемых модулей. Для этого разработчик должен иметь
компилятор C и редактор связей. Для изготовления промышленного релиза в состав JAM входит
файл сборки (makefile), исходные тексты (на языке C) ряда модулей приложения и необходимые
библиотеки.


Содержание раздела