Введение
Oracle Forms — это программный продукт для создания интерфейсов, взаимодействующих с базой данных Oracle. Он включает в себя интегрированную среду разработки (IDE) с навигатором объектов, листом свойств и редактором кода, использующим PL/SQL. Изначально он был разработан для работы на серверной стороне в текстовом режиме терминальных сессий. Позже он был портирован на другие платформы, включая Windows, для функционирования в клиент-серверной среде. В последующих версиях он был портирован на Java, где работает в контейнере Java EE и может интегрироваться с Java и веб-сервисами, доступными по URL-адресу. Современные версии предоставляют возможность запускать формы непосредственно с настольного компьютера без использования браузера. Основное назначение Oracle Forms — создание систем ввода данных, обеспечивающих доступ к базе данных Oracle.
Как это работает
Oracle Forms обращается к базе данных Oracle и генерирует экран для отображения данных. Исходная форма (*.fmb) компилируется в платформенно-зависимый "исполняемый файл" (*.fmx), который запускается (интерпретируется) модулем времени выполнения форм. Форма используется для просмотра и редактирования данных в приложениях, управляемых базами данных. На форму можно разместить различные элементы графического интерфейса, такие как кнопки, меню, полосы прокрутки и графические объекты. Исходный код также может быть помещен в библиотечные файлы (*.pll), которые компилируются в исполняемые файлы библиотек (*.plx), используемые во время выполнения. Среда предоставляет встроенные режимы создания, запроса и обновления записей, каждый из которых имеет свои собственные операции с данными по умолчанию. Это минимизирует необходимость программирования распространенных и трудоемких операций, таких как создание динамического SQL, отслеживание измененных полей и блокировка строк. Как и в случае с интерфейсами, управляемыми событиями, программное обеспечение реализует функции обработки событий, называемые триггерами, которые автоматически вызываются на критических этапах обработки записей, при получении нажатий клавиш и движений мыши. Различные триггеры могут вызываться до, во время и после каждого критического этапа. Каждая функция триггера изначально представляет собой заглушку, содержащую действие по умолчанию или ничего. Поэтому программирование Oracle Forms обычно заключается в изменении содержимого этих триггеров для изменения поведения по умолчанию. Некоторые триггеры, если они предоставлены программистом, заменяют действие по умолчанию, а другие дополняют его. В результате этой стратегии можно создать ряд стандартных макетов форм, обладающих полной функциональностью базы данных, но не содержащих написанного программистом кода.
История
Oracle Forms продается и поставляется отдельно от Oracle Database. Однако крупные релизы Oracle Database обычно приводят к выпуску новой основной версии Oracle Forms для поддержки новых возможностей базы данных.
Интерактивный инструмент приложений (IAF)
Oracle Forms начинался как Interactive Application Facility (IAF), который состоял из двух основных компонентов: компилятора (Interactive Application Generator IAG) и интерпретатора среды выполнения (Interactive Application Processor IAP). Выпущенный вместе с первой версией Oracle Database 2 (версия 1 отсутствовала), IAF предоставлял интерфейс в текстовом режиме, позволяя пользователям вводить и запрашивать данные из базы данных Oracle. Он был переименован в Fast Forms с выходом версии Oracle Database 4 и получил дополнительный инструмент для генерации формы по умолчанию, которую можно было редактировать с помощью IAG, – редактора форм. В третий раз он был переименован в SQL*Forms версии 2 одновременно с выходом версии Oracle Database 5.
Формы 2.x
Формы 2.0 включали редактор дизайна форм, в состав которого входил инструмент для рисования экранов. Этот релиз был текстовым (а не с графическим пользовательским интерфейсом), поэтому формы разрабатывались и выполнялись, как правило, в терминале. Исходный файл имел расширение *.INP и представлял собой ASCII-файл, который редактировался с помощью инструмента рисования экранов. Однако файл был текстовым, и непосредственное редактирование этого файла в текстовом редакторе было обычной практикой из-за ограничений редактора форм. В этой версии Forms не использовался язык PL/SQL, а вместо него применялся собственный язык, основанный на шагах-триггерах. Этот язык был более примитивным, чем язык PL/SQL, доступный в SQL*Plus. Ограниченные возможности языка расширялись за счет пользовательских выходов, которые компилировали код на языке программирования и связывали его с исполняемым файлом Oracle. Формы 2.3 использовались в качестве основы для бухгалтерского пакета Oracle Financials. В результате, версия 2.3 оставалась в эксплуатации даже после выпуска версий 3 и 4, чтобы поддерживать формы, созданные клиентами для интеграции с Oracle Financials.
Формы 3.x
Oracle Forms 3 была первой версией, которая позволила использовать PL/SQL в триггерах и процедурах Forms. Функции SQL также могли использоваться как неофициальная возможность. Forms 3 представляла собой приложение в текстовом режиме и в основном использовалась на терминалах, таких как Digital VT220, и на персональных компьютерах под управлением Microsoft DOS. Она могла работать под X Window System, но не поддерживала специфические функции X-интерфейса, такие как флажки, поэтому по сути оставалась приложением в текстовом режиме, работающим в окне графического интерфейса. Хотя мышь можно было использовать для выбора полей, в этой версии не было специальных триггеров для мыши (например, при двойном щелчке). Исходный файл имел расширение *.INP и был файлом ASCII. Файл времени выполнения имел расширение *.FRM и был бинарным файлом. Среда разработки (IDE) была значительно улучшена, что позволило редактировать код PL/SQL, и это уменьшило распространенную практику непосредственного редактирования исходного файла INP. Forms 3 автоматически генерировала триггеры Forms и код для поддержки некоторых ограничений базы данных, таких как первичные и внешние ключи. Ограничения можно было определить, но они не применялись в базе данных Oracle 6 в то время, поэтому Oracle использовала Forms 3, чтобы заявить о поддержке ограничений в своем технологическом стеке.
Формы 4.0
Oracle Forms версии 4.0 стала первой полноценной версией продукта с графическим интерфейсом, поддерживающей элементы GUI, такие как флажки и радиокнопки, в редакторе форм и во время выполнения. Несмотря на то, что это не афишировалось, текстовый режим выполнения оставался доступным для некоторых клиентов по запросу. Выпуск Microsoft Windows 3 и появление конкурирующих продуктов, работающих под Windows, вынудили Oracle выпустить эту версию Forms с графическим интерфейсом по коммерческим соображениям. Forms 4.0 поставлялась вместе с базой данных Oracle версии 6 и поддерживала Microsoft Windows и X Windows. В этой версии была представлена новая интегрированная среда разработки (IDE). Для каждого типа объекта было предусмотрено отдельное окно редактора, оптимизированное для него, поэтому редактор полей значительно отличался от редактора окон. От этих окон редакторов отказались в следующем выпуске, заменив их панелями свойств, получившими популярность благодаря Visual Basic. Исходные файлы версии 4.0 имели расширения *.FMB для форм, *.PLL для библиотек и *.OLB для библиотек объектов. Файлы времени выполнения версии 4.0 имели расширения *.FMX для форм, *.PLX для библиотек. Файлы *.OLB компилировались в *.FMX. Программный пакет Oracle Financials не использовал эту версию Forms, а продолжал использовать Forms 2.3.
Формы 4.5
Версия Oracle Forms 4.5 была значительным релизом, а не просто "точечным обновлением" 4.0, несмотря на номер версии ".5". Она получила название 4.5 для выполнения договорных обязательств по поддержке Forms 4 в течение определенного времени для некоторых клиентов, что позволяло позиционировать 4.5 как патч к 4.0, хотя требовалась полная установка, а не обновление 4.0 до 4.5 с помощью патча. Эта версия включала существенные функциональные изменения и совершенно новую интегрированную среду разработки (IDE), заменившую IDE, представленную в версии 4.0. В ней были добавлены триггеры, основанные на графическом интерфейсе, и предоставлена современная IDE с навигатором объектов, панелями свойств и редактором кода. Такой дизайн стал популярным в то время благодаря его использованию в Microsoft Visual Basic. С тех пор среда разработки изменилась незначительно, поэтому разработчик, имеющий опыт работы с Forms 4.5, легко сможет работать с любой версией Forms, вплоть до последней.
Формы 5.x
Oracle Forms версии 5 поставлялась вместе с Oracle database версии 7.
Формы 6.x
Формы 6 были выпущены вместе с базой данных Oracle 8.0 и переизданы как Формы 6i с Oracle 8i. Эта версия по сути являлась Формами 4.5 с некоторыми дополнительными мастерами и исправлениями ошибок. В неё была включена возможность запуска внутри веб-сервера. Для решения проблемы адаптации Oracle Forms к трехзвенной архитектуре с доставкой через браузер, без внесения существенных изменений в программный интерфейс, был предоставлен сервер форм. Сложный и высокоинтерактивный интерфейс форм обеспечивался Java-апплетом, который напрямую взаимодействовал с сервером форм. Однако веб-версия работала недостаточно стабильно по протоколу HTTP. Исправление из Форм 9i было портировано на более поздние версии 6i для устранения этой проблемы. Система именования и нумерации Oracle Forms несколько раз менялась по маркетинговым соображениям, не затрагивая при этом основную суть продукта. В этот период была добавлена возможность программирования как на Java, так и на PL/SQL.
Формы 9.x
Номер версии сразу перешел с 6 на 9, чтобы соответствовать номеру версии базы данных Oracle, выпущенной примерно в то же время. Oracle Forms 9i включала в себя множество исправлений ошибок по сравнению с 6i и считалась стабильной версией. Поддержка среды выполнения Windows client-server и символьных интерфейсов была прекращена, и единственным вариантом развертывания стал трехуровневый пользовательский интерфейс на основе веб-браузера. Возможность импорта Java-классов позволяет использовать ее как клиент веб-сервиса. Начиная с этой версии, нумерация Oracle Forms стала синхронизироваться с нумерацией базы данных Oracle. В результате версия 8 была пропущена, и номер версии перешел к 9. После этого релиза в продукт вносилось мало изменений, кроме поддержания соответствия номера версии версии базы данных Oracle.
Формы 10.x
Формы 10g фактически представляют собой версию Форм 9.0.4, то есть это просто Формы 9i под другим названием.
Формы 11.x
Формы 11 представили усовершенствования, такие как внешние события, поддержку JavaScript в релизе 1, а также Access Manager, мониторинг реального взаимодействия с пользователем (RUEI) и мониторинг производительности в релизе 2. Эти улучшения расширили функциональность и возможности взаимодействия, используя Oracle AQ для обеспечения бесшовной интеграции с JMS.
Формы 12.x
Java Web Start позволяет пользователям запускать приложения Oracle Forms без использования веб-браузера в качестве основы. Хотя браузер может быть использован для первоначального получения файла запуска Java Web Start приложения (.jalp), он не отвечает за размещение приложения и может быть закрыт после его запуска. JWS поддерживает Internet Explorer, Firefox ESR, Chrome, Edge.
Резюме версии
Имя Версия (*1) База данных Символ/GUI Комментарии IAF 2 Символ Без IDE FastForms+IAG 4 Символ SQL*Forms 2 5 Символ Новый IDE, без PL/SQL, пользовательские выходы, INP ASCII файл, FRM Runtime файл SQL*Forms 2.3 5 Символ Улучшения среды выполнения SQL*Forms 3 6 Символ Полная переработка, улучшенный IDE, включен PL/SQL, поддержка X, генерация кода для обеспечения ограничений Oracle Forms 4.0 6 7 GUI / Символ Полная переработка, новый IDE, FMB – исходный бинарный файл, FMX Runtime, оптимизирован для клиент-серверной архитектуры. Новый интерфейс медленный, с ошибками и непопулярен среди пользователей. Oracle Forms 4.5 7 GUI / Символ Полная переработка, новая IDE на основе навигатора объектов и таблиц свойств. Удачный релиз, быстрый, популярный среди пользователей. Oracle стремилась к тому, чтобы клиенты быстро перешли на версию 4, поскольку она содержала множество ошибок, и Oracle взяла на себя контрактное обязательство по поддержке v4 в течение определенного периода времени для некоторых крупных и важных клиентов. Поэтому Oracle назвала этот релиз 4.5 (а не 5), что позволило Oracle заявить о продолжении поддержки v4. Это позволило некоторым клиентам, привязанным к v4 на протяжении всего жизненного цикла проекта, обновиться с v4 до v4.5, утверждая, что это релиз патча, хотя на самом деле это был крупный релиз. Oracle Forms 5 7 GUI / Символ Oracle Forms 6 8 GUI / Символ Представлены Forms Server / Web Forms. Клиент-серверная архитектура все еще доступна и используется большинством клиентов. Режим сервера форм медленный, с ошибками и потребляет много памяти на сеанс. Oracle Forms 6i 8 GUI / Символ Oracle Forms 9i (*2) 9i GUI Удалена среда выполнения клиент-серверной архитектуры, в качестве единственного варианта выполнения оставлен Forms Server (Web Interface). Значительные изменения на уровне сервера, более эффективная связь между браузером пользователя и сервером. Oracle Forms 10g 10g GUI Это релиз Forms 9 (9.0.4.0.19). Внешнее переименование для указания поддержки базы данных 10g. Меню "Справка" -> "О программе" отображает v9.0.4.0.19. Не обеспечивает обратную совместимость с 10gr2 (невозможно открыть формы 10gr2 в 10g/904). Oracle Forms 10gR2 10gR2 GUI версия 10.1.2.0.2 Перемещен ключ реестра. Максимальная длина NUMBER сокращена с 40 до 38. Oracle Forms 11g 11g GUI версия 11.1.1. X Внешние события, JavaScript. Oracle Forms 11gR2 11gR2 GUI версия 11.1.2. X Интеграция с Oracle Access Manager, производительность и мониторинг, взаимодействие с реальным пользовательским опытом. Oracle Forms 12c 12c GUI (*1) Каждая версия Oracle Forms может подключаться к многочисленным версиям базы данных ORACLE и продается и выпускается отдельно от базы данных ORACLE. Oracle Forms, как правило, обеспечивает прямую и обратную совместимость с базой данных Oracle, например, Oracle Forms 9 может подключаться как минимум к Oracle 8, 9, 10 и 11. Версии баз данных, перечисленные здесь, являются основными версиями, которые были доступны на момент выпуска формы. (*2) Продукты Oracle исторически следовали своим собственным схемам нумерации и наименованию. Это изменилось с выпуском Oracle RDBMS 9i, когда Oracle Corporation начала стандартизировать Oracle Forms (и Reports и Developer), чтобы использовать тот же номер основной версии, что и база данных. Это объясняет скачок в версиях Oracle Forms с 6i до 9i (версий v7 и v8 не было).
(*1) Each version of Oracle Forms can connect to numerous versions of the ORACLE database and is sold and released separately from the ORACLE Database. Oracle Forms is generally forward and backward compatible with the Oracle database for example: Oracle Forms 9 can connect to at least Oracle 8,9, 10 and 11. The database versions listed here are the primary version that was available at the time of the Form release. (*2) Oracle products have historically followed their own release numbering and naming conventions. This changed with Oracle RDBMS 9i release when Oracle Corporation started to standardize Oracle Forms (and Reports and Developer) to use the same major version number as the database. This explains the jump in Oracle Forms versions from 6i to 9i (there was no v7 or v8)
Интеграция с инструментом CASE Oracle Designer
Oracle Designer — это инструмент автоматизированного проектирования систем (CASE), который продавала компания Oracle. Он позволял генерировать различные программные модули, включая Oracle Forms и Oracle Reports. Последняя версия Oracle Designer была выпущена в 2010 году, после чего поддержка продукта была прекращена.