Введение

Платформа разработки с низким уровнем кода Uniface - это платформа разработки и развертывания с низким уровнем кода для корпоративных приложений, которая может работать в широком диапазоне сред выполнения, включая мобильные, мейнфрейм, веб, сервисно-ориентированную архитектуру (SOA), Windows, Java EE и NET. Uniface используется для создания критически важных приложений. Приложения Uniface независимы от платформы и независимы от базы данных. Uniface предоставляет интеграционную структуру, которая позволяет приложениям Uniface интегрироваться со всеми основными продуктами DBMS, такими как Oracle, Microsoft SQL Server, MySQL и IBM Db2. Кроме того, Uniface также поддерживает файловые системы, такие как RMS, последовательные файлы, текстовые файлы операционной системы и широкий спектр других технологий, таких как продукты IBM на основе мейнфреймов (CICS, IMS), веб-сервисы, SMTP, POP электронная почта, каталоги LDAP, NET, ActiveX, программы Component Object Model (COM), C ++ и Java. Uniface работает под управлением Microsoft Windows, различными версиями Unix, Linux, OpenVMS и IBM i. Uniface может использоваться в сложных системах, которые поддерживают корпоративные данные, поддерживающие бизнес-процессы, такие как точка продажи и веб-магазины, финансовые транзакции, администрирование заработной платы и контроль запасов. В настоящее время его используют тысячи компаний в более чем 30 странах, с эффективной установленной базой миллионов конечных пользователей. Приложения Uniface варьируются от клиент/сервер до веб-сайтов, от ввода данных до рабочего процесса, а также порталов, доступ к которым осуществляется локально, через интрасети и Интернет. Первоначально разработанный в Нидерландах компанией Inside Automation, позже Uniface B. V., продукт и компания были приобретены компанией Compuware Corp в Детройте в 1994 году, а в 2014 году была приобретена Marlin Equity Partners и продолжалась как Uniface B. V. глобальная штаб-квартира в Амстердаме. В феврале 2021 года Uniface была приобретена компанией Rocket Software, штаб-квартира которой находится в Уолтхеме, штат Массачусетс, США.

Разработка приложений

Приложения Uniface разрабатываются с помощью среды разработки Uniface. Первоначально можно было разрабатывать на платформах Apple и DEC; теперь поддерживаемая платформа для разработки - Windows. Разработка приложений Uniface осуществляется на основе моделей и компонентов. Структура данных, бизнес-правила и поведение приложения по умолчанию фиксируются в модели приложения. Определения моделей могут быть повторно использованы и унаследованы компонентами, которые могут перезаписать унаследованные определения и обеспечить специфическое поведение и характеристики компонентов. Шаблоны повышают производительность и обеспечивают согласованность при определении моделей.

Модель приложения

Модель приложения определяет сущности (таблицы), поля, ключи (индексы) и отношения вместе с референтной целостностью. Каждая сущность и поле в модели имеет свойства и набор триггеров. Бизнес-правила добавляются в модель декларативно путем установления свойств и процедурно путем добавления кода Proc (процедурный язык Uniface) в триггеры. Триггеры - это контейнеры для кода. Некоторые триггеры представляют собой пользовательские или системные события, например, событие получает фокус, читается или покидает поле. Другие охватывают такие вопросы, как валидация или выступают в качестве держателей места для методов, связанных с конкретным объектом. Использование триггеров уровня модели позволяет Uniface собирать свойства и поведение в бизнес-объектах, отделяя логические от физических структур данных. Это позволяет определить поведение по умолчанию один раз, для повторного использования во всем приложении, ускоряя разработку и облегчая архитектуру 3-уровневого приложения. Каждый объект (таблица) сначала определяется в модели приложения, откуда он может быть экспортирован в физическую базу данных в виде скриптов CREATE TABLE.

Компоненты

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

Хранилище Uniface

Uniface поддерживает базу собственных метаданных для целей повторного использования моделей приложений, определений компонентов, компоновки компонентов, процедурного кода и т.д. Репозиторий является собственностью и предназначен для доступа через среду разработки Uniface, чтобы обеспечить целостность репозитория. Однако структура хранилища документирована, что позволяет (хотя и не рекомендуется) напрямую взаимодействовать с ней, например, для отчетности. Используя централизованный репозиторий, разработка приложений может быть разделена между командами разработчиков программного обеспечения. Uniface может интегрироваться с любой системой управления версиями (VCS), которая поддерживает спецификацию интерфейса управления Microsoft Common Source Code. Функциональность VCS, доступная в Uniface, зависит от используемой VCS, потому что поставщики программного обеспечения интерпретировали и внедрили MS CSCC API по-разному.

Развертывание приложений

Приложения Uniface могут быть развернуты на платформах от мейнфреймов до мобильных устройств без изменения кода. Компоненты (и другие объекты, такие как стартовые оболочки, меню, панели инструментов (панели), глифы, глобальные и включенные входные данные Proc) компилируются в объекты времени выполнения, которые могут быть упакованы в файлы zip и развернуты на любой платформе. Объекты выполнения выполняются с помощью виртуальной машины и интерпретатора, специфичного для платформы. (Позже Java последовала за Uniface в этом отношении). Компоненты могут компилироваться на одной машине и выполняться на другой, при условии наличия виртуальной машины Uniface. Uniface Router и Uniface Server делают Uniface масштабируемым и позволяют асинхронно выполнять процессы.

Подключение к базе данных

Uniface получает доступ к многим базам данных и файловым системам, которые он поддерживает, с помощью соединителей баз данных (или драйверов). Коннекторы СУБД отображают и преобразуют типы данных Uniface в наиболее подходящий формат конкретного носителя данных. Во время выполнения можно передавать параметры для вызова (или отключения) конкретных расширений базы данных. При условии, что соединитель базы данных лицензирован, можно конвертировать между различными источниками данных. Uniface также предоставляет API, интерфейс Database Connector Interface, который может использоваться для создания проприетарных соединителей для любой базы данных на основе SQL.

Лицензирование

Лицензирование управляется через Compuware Distributed License Manager (DLM), серверную систему распределения лицензий клиентам по запросу, исключая необходимость их локального хранения.

История Uniface

Первоначально названный UNIS, продукт был создан в Нидерландах в 1984 году компанией Inside Automation, возглавляемой Бодо Дуке, с Фрицем Крессом в качестве технического директора. К 1986 году как продукт, так и компания изменили свое название на Uniface. (Ранний логотип для продукта включал красный большой А, который отражал красный большой А в логотипе Inside Automation.) Uniface был разработан на принципах Американского национального института стандартов (ANSI), 3 архитектуры схемы. Впервые предложенный в 1975 году, это был стандартный подход к созданию систем управления базами данных, состоящий из 3 схем (или метамоделей): концептуальная схемаопределение всех элементов данных и взаимосвязи между ними. Есть только одна концептуальная схема для каждой базы данных. Uniface реализует концептуальную схему как Модель приложения (в различных версиях Uniface известных как Модель бизнес-объектов и Модель объектов приложения). Внешняя схема - различные внешние (пользовательские) представления данных. Для базы данных может быть много внешних схем. Uniface реализует внешние схемы как компоненты. Во время эволюции Uniface внешняя схема стала формами; скрытые формы, которые работали в фоновом режиме без отображения пользователю, стали услугами; услуги разделились на сессионные услуги для объектов бизнес-уровня и услуги сущностей, которые могут быть либо бизнес-уровнем, либо уровнем данных. Формы, которые были напечатаны вместо того, чтобы быть отображены, стали составляющими отчета. Серверная страница (USP) была введена для веб-разработки, а позже динамическая серверная страница была введена для поддержки функциональности Web 2.0. Внутренняя схема - определение физического представления сохраненных данных. Uniface оставляет внутреннюю схему многим реляционным системам баз данных, к которым она может быть подключена, что позволяет ей быть независимой от баз данных. Uniface был разработан на машине DEC VAX, используя собственную систему управления файлами VAX RMS. Остатки этого все еще видны в сегодняшнем продукте, благодаря его постоянному использованию клавиши "GOLD" для изменения режимов (терминалы DEC VT на самом деле имели золотую или желтую клавишу на клавиатуре. Сегодня GOLD просто отображается на цифровой клавиатуре + клавиша или клавиша функции). Ранние версии продукта были объединены с Sybase RDBMS под названием FastBuild, хотя он не был ограничен доступом только к этой базе данных. Uniface постоянно развивается, чтобы обрабатывать новые технологии и архитектуры приложений. Это было критически важно для его успеха, потому что приложения, созданные с Uniface, могут быть перенесены, обновлены и модернизированы без потери первоначальных инвестиций в разработку.