Открыть сервис

Oracle Forms

Oracle Forms — это программный продукт компании Oracle, предназначенный для разработки и развертывания клиент-серверных и веб-приложений, ориентированных на работу с базами данных Oracle. Относится к классу инструментов быстрой разработки приложений (RAD) и входит в состав платформы Oracle Fusion Middleware. Основное назначение Oracle Forms — создание форм для ввода, просмотра, редактирования и отображения данных, хранящихся в реляционных базах данных, с минимальным написанием программного кода.

История

Предыстория и появление (1980-е — 1990-е)

Разработка Oracle Forms началась в конце 1980-х годов как часть пакета инструментов для работы с СУБД Oracle. Первая версия, Oracle Forms 2.0, была выпущена в 1988 году и работала в среде операционной системы MS-DOS и Unix. Продукт позволял создавать экранные формы, связанные с таблицами базы данных, с использованием языка программирования PL/SQL, который также был разработан Oracle.

В 1992 году вышла версия Oracle Forms 3.0, которая стала первой версией, работающей в среде Microsoft Windows. Она включала графический интерфейс пользователя (GUI) и поддерживала технологию OLE (Object Linking and Embedding) для интеграции с другими приложениями. В 1995 году была выпущена версия 4.5, которая добавила поддержку многопользовательского режима и улучшенную работу с транзакциями.

Эпоха клиент-серверных приложений (1990-е — 2000-е)

В середине 1990-х годов Oracle Forms стал одним из ведущих инструментов для создания корпоративных приложений, работающих в архитектуре «клиент-сервер». Версия 5.0 (1996 год) представила концепцию «форм-триггеров» — событийно-ориентированных процедур, написанных на PL/SQL, которые выполнялись при наступлении определенных действий пользователя (например, нажатие кнопки, изменение поля). Версия 6.0 (1999 год) добавила поддержку Java-апплетов и возможность интеграции с веб-браузерами.

В 2001 году вышла версия Oracle Forms 6i, которая стала последней версией, работающей исключительно в клиент-серверной архитектуре. Она включала улучшенные средства отладки и поддержку XML.

Переход к веб-архитектуре (2000-е — 2010-е)

С ростом популярности веб-приложений Oracle начала адаптировать Oracle Forms для работы через интернет. В 2002 году была выпущена версия Oracle Forms 9i, которая представила технологию Oracle Forms Services — серверное развертывание, при котором форма компилируется в Java-апплет и выполняется в браузере пользователя. Это позволило отказаться от установки клиентского ПО на каждом рабочем месте.

В 2004 году вышла версия Oracle Forms 10g, которая стала частью платформы Oracle Application Server 10g. Она поддерживала протокол HTTPS, аутентификацию через LDAP и интеграцию с порталами Oracle. В 2007 году была выпущена версия 11g, которая добавила поддержку веб-сервисов, XML-схем и улучшенную производительность.

Современное состояние (2010-е — настоящее время)

В 2013 году вышла версия Oracle Forms 12c, которая стала частью платформы Oracle Fusion Middleware 12c. Она представила поддержку Java 8, улучшенную интеграцию с Oracle WebLogic Server и возможность развертывания в облачных средах (Oracle Cloud). В 2018 году была выпущена версия 12.2.1.4.0, которая остается последней стабильной версией на начало 2025 года.

Oracle продолжает поддерживать Oracle Forms, но не выпускает новых мажорных версий. Компания рекомендует постепенный переход на современные технологии, такие как Oracle Application Express (APEX) и Java/JavaScript-фреймворки, однако многие крупные корпорации продолжают эксплуатировать унаследованные системы на Oracle Forms.

Архитектура и компоненты

Клиент-серверная архитектура (классическая)

В классической клиент-серверной модели Oracle Forms состоит из трех компонентов:

  • Клиентское приложение (Forms Runtime) — исполняемый файл, который устанавливается на рабочей станции пользователя. Он отображает форму, обрабатывает ввод данных и взаимодействует с сервером базы данных.
  • Сервер базы данных — СУБД Oracle, которая хранит данные и выполняет запросы.
  • Сетевой протокол — для передачи данных между клиентом и сервером используется протокол SQL*Net (позже Oracle Net Services).

Веб-архитектура (Forms Services)

В веб-архитектуре Oracle Forms развертывается на сервере приложений:

  • Oracle WebLogic Serverсервер приложений, на котором запускается Forms Services.
  • Forms Servlet — сервлет, который обрабатывает HTTP-запросы от браузера и генерирует Java-апплеты.
  • Java-апплет — компонент, который загружается в браузер пользователя и отображает форму. Апплет взаимодействует с сервером через протокол HTTP или HTTPS.
  • База данных — СУБД Oracle, к которой Forms Services подключается через JDBC или OCI (Oracle Call Interface).

Компоненты разработки

  • Forms Builder — среда разработки, в которой создаются модули форм. Включает редактор макета, палитру компонентов и редактор кода на PL/SQL.
  • Forms Compiler — утилита для компиляции модулей форм в исполняемые файлы (.fmx) или Java-архивы.
  • Forms Runtimeсреда выполнения, которая интерпретирует скомпилированные формы.
  • Forms Developer — пакет инструментов, включающий Forms Builder, Forms Compiler и утилиты для тестирования.

Классификация модулей

Oracle Forms поддерживает три типа модулей:

Формы (Forms)

Основной тип модуля, который представляет собой экранную форму с полями ввода, кнопками, списками и другими элементами управления. Формы могут быть:

  • Однотабличные — связаны с одной таблицей базы данных.
  • Многотабличные — связаны с несколькими таблицами через отношения «один-ко-многим» или «многие-ко-многим».
  • Мастер-детальные — отображают записи из главной таблицы и связанные с ними записи из подчиненной таблицы.

Меню (Menus)

Модули, которые определяют структуру меню приложения. Меню могут быть иерархическими, с подменю, и поддерживают вызов форм и выполнение команд PL/SQL.

Библиотеки (Libraries)

Модули, содержащие общие процедуры и функции на PL/SQL, которые могут быть использованы в нескольких формах. Библиотеки позволяют избежать дублирования кода.

Язык программирования и триггеры

PL/SQL

Основным языком программирования в Oracle Forms является PL/SQL — процедурное расширение SQL, разработанное Oracle. В формах PL/SQL используется для:

  • Определения триггеров (обработчиков событий).
  • Выполнения запросов к базе данных.
  • Реализации бизнес-логики (валидация данных, вычисления).
  • Управления пользовательским интерфейсом (открытие/закрытие форм, изменение свойств элементов).

Триггеры

Триггеры — это процедуры, которые выполняются при наступлении определенных событий. Основные типы триггеров:

  • Триггеры уровня формы — выполняются при открытии, закрытии или изменении состояния формы (например, WHEN-NEW-FORM-INSTANCE).
  • Триггеры уровня блока — выполняются при навигации по блокам данных (например, WHEN-NEW-BLOCK-INSTANCE).
  • Триггеры уровня записи — выполняются при создании, изменении или удалении записи (например, WHEN-NEW-RECORD-INSTANCE).
  • Триггеры уровня элемента — выполняются при взаимодействии с конкретным полем или кнопкой (например, WHEN-BUTTON-PRESSED).

Встроенные подпрограммы

Oracle Forms предоставляет набор встроенных подпрограмм (built-ins), которые упрощают выполнение типовых задач: GO_BLOCK, GO_ITEM, EXECUTE_QUERY, COMMIT_FORM, MESSAGE, SHOW_ALERT и другие.

Применение

Корпоративные информационные системы

Oracle Forms широко использовался для создания корпоративных информационных систем (ERP, CRM, HRM) в крупных компаниях, особенно в банковском секторе, государственных учреждениях, промышленности и телекоммуникациях. Примеры:

  • Системы управления персоналом (учет сотрудников, расчет зарплаты).
  • Финансовые системы (бухгалтерский учет, управление кредитами).
  • Системы управления закупками и складским учетом.
  • Системы документооборота.

Унаследованные системы (Legacy)

Многие организации продолжают эксплуатировать системы, разработанные на Oracle Forms в 1990-х — 2000-х годах. Эти системы часто содержат критически важную бизнес-логику и данные, и их миграция на современные платформы требует значительных затрат.

Интеграция с другими продуктами Oracle

Oracle Forms часто используется в сочетании с другими продуктами Oracle:

  • Oracle Reports — для генерации отчетов на основе данных из форм.
  • Oracle Database — как основная СУБД.
  • Oracle Application Server — для развертывания веб-приложений.
  • Oracle E-Business Suite — как часть модулей этой ERP-системы.

Преимущества и недостатки

Преимущества

  • Быстрая разработка — минимальное написание кода для типовых операций (ввод, редактирование, удаление данных).
  • Тесная интеграция с Oracle Database — прямой доступ к объектам базы данных, поддержка транзакций, блокировок и триггеров.
  • Масштабируемость — поддержка тысяч одновременных пользователей при использовании веб-архитектуры.
  • Безопасность — встроенная поддержка аутентификации, авторизации и шифрования данных.
  • Долгосрочная поддержка — Oracle продолжает выпускать обновления и исправления для Oracle Forms.

Недостатки

  • Устаревшая технология — Oracle Forms не поддерживает современные веб-стандарты (HTML5, CSS3, JavaScript) и требует использования Java-апплетов, которые блокируются в большинстве современных браузеров.
  • Сложность миграции — перенос приложений на другие платформы (например, Java/JavaScript) требует значительных трудозатрат.
  • Ограниченная гибкость — возможности кастомизации интерфейса ограничены по сравнению с современными фреймворками.
  • Зависимость от Oracle — продукт привязан к экосистеме Oracle, что может быть проблемой для организаций, использующих другие СУБД.

Критика

Основная критика Oracle Forms связана с его устареванием и несоответствием современным требованиям веб-разработки. Java-апплеты, на которых основана веб-архитектура Oracle Forms, были признаны устаревшими и небезопасными, и большинство браузеров (Google Chrome, Mozilla Firefox, Microsoft Edge) прекратили их поддержку. Это вынуждает организации использовать устаревшие версии браузеров или специальные плагины, что создает риски для безопасности.

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

Сравнение с альтернативами

ХарактеристикаOracle FormsOracle APEXJava/JavaScript (Spring Boot + React)
Скорость разработкиВысокаяВысокаяСредняя
Гибкость интерфейсаНизкаяСредняяВысокая
Поддержка браузеровНизкая (требует Java-апплет)Высокая (HTML5)Высокая
Интеграция с Oracle DBВысокаяВысокаяСредняя
Стоимость лицензийВысокаяНизкая (входит в лицензию Oracle DB)Зависит от стека
Сложность миграцииНизкая (в рамках Oracle)СредняяВысокая

Интересные факты

  • Oracle Forms является одним из старейших инструментов разработки корпоративных приложений, который продолжает поддерживаться вендором более 35 лет.
  • По оценкам аналитиков, на начало 2020-х годов в мире эксплуатировалось несколько десятков тысяч приложений на Oracle Forms, преимущественно в крупных корпорациях и государственных учреждениях.
  • В 2019 году Oracle объявила о прекращении поддержки Java-апплетов в Forms Services, что вызвало критику со стороны сообщества разработчиков. В ответ Oracle предложила использовать технологию Oracle WebCenter Forms Recognition для автоматической миграции.
  • Некоторые компании разработали сторонние инструменты для конвертации Oracle Forms в Java-приложения (например, Forms2Java от компании PITSS).

Источники

  • Oracle Corporation. Oracle Forms Developer's Guide. Oracle Documentation, 2023.
  • Oracle Corporation. Oracle Forms 12c Release Notes. Oracle Documentation, 2023.
  • Loney, Kevin. Oracle Database 12c: The Complete Reference. McGraw-Hill, 2013.
  • Kyte, Thomas. Expert Oracle Database Architecture. Apress, 2014.
  • Статья «Oracle Forms» в англоязычной Википедии (по состоянию на 2024 год).
  • Материалы конференции Oracle OpenWorld 2019–2023.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →