Введение
Платформа разработки с низким уровнем кода 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 is a low code development and deployment platform for enterprise applications that can run in a large range of runtime environments, including mobile, mainframe, web, Service oriented architecture (SOA), Windows, Java EE, and NET. Uniface is used to create mission critical applications. Uniface applications are platform independent and database independent. Uniface provides an integration framework that enables Uniface applications to integrate with all major DBMS products such as Oracle, Microsoft SQL Server, MySQL and IBM Db2. In addition, Uniface also supports file systems such as RMS, Sequential files, operating system text files and a wide range of other technologies, such as IBM mainframe based products (CICS, IMS), web services, SMTP, POP email, LDAP directories, NET, ActiveX, Component Object Model (COM), C(++) programs, and Java. Uniface operates under Microsoft Windows, various flavors of Unix, Linux, OpenVMS and IBM i.
Uniface can be used in complex systems that maintain enterprise data supporting business processes such as point of sale and web based online shopping, financial transactions, salary administration, and inventory control. It is currently used by thousands of companies in more than 30 countries, with an effective installed base of millions of end users. Uniface applications range from client/server to web, and from data entry to workflow, as well as portals that are accessed locally, via intranets and the internet. Originally developed in the Netherlands by Inside Automation, later Uniface B. V., the product and company were acquired by Detroit based Compuware Corp in 1994, and in 2014 was acquired by Marlin Equity Partners and continued as Uniface B. V. global headquartered in Amsterdam. In February 2021, Uniface was acquired by Rocket Software, headquartered in Waltham, Massachusetts, USA.
Разработка приложений
Приложения 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, могут быть перенесены, обновлены и модернизированы без потери первоначальных инвестиций в разработку.
Conceptual schema—definition of all the data items and relationships between them. There is only one conceptual schema per database. Uniface implements the conceptual schema as the Application Model (in various Uniface versions known as the Business Object Model and the Application Object Model). External schema—different external (user) views of the data. There can be many external schemas for a database. Uniface implements external schemas as components. During Uniface's evolution, the External Schema became forms; hidden forms, which ran in the background without displaying to the user, became services; services split into session services for objects of the business tier and entity services that may be either business or data tier. Forms that were printed instead of being displayed became report components. The server page (USP) was introduced for web development, and later the dynamic server page was introduced to support Web 2.0 functionality. Internal schema—definition of the physical representation of the stored data. Uniface leaves the internal schema to the many relational database systems to which it could be connected, enabling it to be database independent. Uniface was developed on the DEC VAX machine, using the native VAX file management system RMS. A vestige of this is still seen in today's product by its continued use of a “GOLD” key to change modes (DEC VT terminals actually had a gold or a yellow key on the keyboard. Today the “GOLD” is simply mapped to the numeric keyboard + key, or a function key). Early versions of the product were bundled with the Sybase RDBMS under the name FastBuild, although it was not limited to accessing only that database. Uniface has continuously evolved to handle new technologies and application architectures. This has been critical to its success because applications built with Uniface can be migrated, updated and modernized without losing the original development investment.