Dataphor

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:34, 23 декабря 2017.
Dataphor
Создатели: McObject LLC.
Выпущена: 2001
Постоянный выпуск: 3.0 / Февраль 2012
Написана на: C#
Платформа: .NET Framework
Лицензия: BSD
Веб-сайт dataphor.org

Dataphor - это система управления реляционными базами данных с открытым исходным кодом (RDBMS) и ее сопутствующие технологии пользовательского интерфейса, которые предназначены для разработки высоко декларативной разработки программного обеспечения.

Обзор

Цель Dataphor заключается в попытке поднять планку автоматизации при создании и обслуживании сложных программных приложений. Dataphor предоставляет больше платформы для разработки программного обеспечения, в которой есть свои собственные парадигмы программирования и пользовательского интерфейса. Dataphor в целом разделен на два компонента: Dataphor Server и Dataphor Frontend. Целью сервера Dataphor является предоставление стандартизованного языка и среды выполнения для определения, манипуляции и целостности данных приложения. Frontend занимается динамическим выводом пользовательских интерфейсов и их представлением на тонком клиенте Desktop или Web.

Dataphor не использует SQL в качестве основного языка базы данных, поскольку SQL якобы нарушает важные принципы реляционной модели. Язык D4 Dataphor основан на принципах Tutorial D Кристофера Дж Дайта и Хью Дарвена, но с синтаксисом, подобным Паскалю.

В дополнение управлению данными, Dataphor Server, включает инструменты, которые позволяют представлять пользовательские интерфейсы через Desktop и Web клиенты. Dataphor использует возможности реляционного вывода Dataphor-компилятора для того, чтобы позволить полностью сформировать формы GUI непосредственно из модели данных. Уникальным аспектом «деривации» пользовательского интерфейса Dataphor является то, что он может быть основан на любом реляционном выражении (запросе), а не только на базовых таблицах.

История развития

В 1999 году разработчик системы продаж Softwise Inc обнаружил, что они много раз повторяли один и тот же код и искали инструмент для автоматизации своих приложений. Они не нашли решение, которое бы делало то, что им нужно, поэтому они создали подразделение своей компании, названное Alphora, и предложили некоторым своим разработчикам создать такой инструмент. Этим инструментом стал Dataphor. Считается, что это первая действительно реляционная СУБД со времен IBM Business System 12. Разработка Dataphor началась незадолго до начала 2000 года, и уже в 2001 году была выпущена версия 1.0.

В начале 2008 года Alphora и её продукт Dataphor были приобретены компанией Database Consulting Group[1], которая была основана архитекторами Dataphor, которые покинули Softwise в 2007 году. После приобретения Dataphor был повторно лицензирован как open-source проект под лицензией BSD

Компоненты

Dataphor использует Microsoft .NET Framework и полностью написан на C #. Ниже приведен краткий обзор различных технологических компонентов Dataphor:

Dataphor Server

Ядром технологии Dataphor является механизм доступа к данным, называемый сервером Dataphor. Этот компонент представляет собой виртуальную систему управления базами данных (СУБД), которая обеспечивает соединение между уровнем представления и физическим уровнем, а также манипулирование данными. Запущенный Dataphor Server называется экземпляром сервера и может быть размещен в Microsoft Windows Service или непосредственно в домене .NET.

Dataphor Server состоит из следующих компонентов:

  • Интерфейс уровня вызова - управление сеансом, планировщик процессов и т. д.
  • Словарь данных - каталог, содержащий все таблицы, представления, операторы, ограничения, ссылки и другие объекты схемы.
  • Уровень интеграции с хранилищем - real-time перевод на различные диалекты SQL.

Сервер Dataphor играет много разных ролей, которые используются независимыми программными системами. Вот некоторые из этих ролей:

  • Система управления базами данных
  • Сервер приложений
  • Репозиторий метаданных
  • Сервер интеграции

В качестве системы управления базами данных сервер Dataphor отвечает за обеспечение одновременного и эффективного доступа к постоянным данным, хранящимся для приложения.

В качестве сервера приложений сервер Dataphor выполняет запросы уровня представления, такие как определения форм, переводы значений уровня представления и другие логические запросы уровня представления.

В качестве репозитория метаданных сервер Dataphor предоставляет возможности для украшения схем приложений с информацией, такой как описания уровня представления или документация каталога. Эти метаданные затем становятся доступными для клиентов сервера Dataphor так же, как и любые другие данные.

В качестве сервера интеграции Dataphor позволяет интегрировать несколько существующих систем с использованием общей парадигмы доступа к данным и управления. В этой роли сервер Dataphor функционирует как диспетчер распределенных запросов и транзакций.

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

Языки

В то время как Dataphor поддерживает SQL, D4 является предпочтительным языком для использования в Dataphor. Он поддерживает DDL и DML операторы[2]. Запросы в D4, как правило, выглядят как выражения реляционной алгебры с записанными именами операторов. Например:

SQL-выражение D4-эквивалент
SELECT * FROM User select User
SELECT * FROM User NATURAL JOIN Department select User join Department
SELECT DISTINCT Name FROM User select User over { Name }

Синтаксис

D4 имеет синтаксис, похожий на Pascal. Код на D4 обычно написан в стиле UpperCamelCase, который также широко используется в Pascal и Delphi.

Frontend-библиотека

Dataphor Frontend основывается на фундаменте Dataphor Server, для обеспечения автоматической поддержки пользовательского интерфейса. Технологии Frontend позволяют автоматизировать разработку приложений, значительно сокращая время разработки пользовательского интерфейса, позволяя создавать и поддерживать приложения быстрее и легче. Клиенты Dataphor Frontend называются «тонкими», поскольку в клиенте не существует кода приложения. Все определения уровня представления находятся в динамически созданных пользовательских интерфейсах или декларациях форм, содержащихся на сервере Dataphor. Результатом этого является богатый клиент со всеми характеристиками развертывания и обслуживания веб-решения.

Frontend-клиенты

Клиенты Dataphor Frontend отвечают за две различные функции. Во-первых, Frontend Client управляет связностью и доступом к данным для уровня представления, во-вторых, обрабатывает формы Dataphor, делая их подходящие для платформы, на которой они работают. Механизмы подключения и доступа к данным управляются с использованием уровня доступа к данным, предоставляемого сервером Dataphor. Процесс визуализации пользовательских интерфейсов специфичен для каждого клиента, но все клиенты запрашивают документы формы с сервера Dataphor, используя API, открытый для Frontend клиента. Поскольку архитектура Dataphor Frontend Client спроектирована для использования несколькими различными клиентами, та же схема приложения будет доступна для любого клиента Dataphor Frontend общего назначения.

Windows Client

Dataphor Windows Client является "тонким" клиентом в том смысле, что он не запрограммирован предварительно для конкретного приложения. Клиент Windows устанавливает соединение с Dataphor Server, из которого он (через D4) запрашивает формы и манипулирует данными приложения. Документы DFD преобразуются в конкретные элементы управления Windows Forms, но при сохранении концептуальной модели DOM DFD [3].

Web Client

Веб-клиент представляет собой веб-приложение ASP.NET, которое предоставляет HTML-страницы пользовательского интерфейса для пользователей браузера. Эти страницы создаются путем объединения документов DIL, полученных с Frontend Server, с данными из экземпляра Dataphor Server. Полученные пользовательские интерфейсы очень похожи на те, которые предоставляются клиентом Windows, потому что оба клиента используют одно и то же описание интерфейса пользователя.

Безопасность

Dataphor Server предоставляет полную модель безопасности на основе ролей для контроля доступа к приложениям и ресурсам, определенным на сервере. В дополнение к разрешению контроля доступа к объектам, определенным в системном каталоге, система безопасности позволяет разработчикам определять права приложения, управляемые таким же образом. Это позволяет использовать гибкую и мощную модель безопасности, которую приложения могут не только расширить, но и запросить динамическое управление внешним видом пользовательского интерфейса на основе контекста безопасности.

В модели безопасности Dataphor есть три основных примитива:

  • Пользователи
  • Права
  • Роли

В общем, права и роли определяются разработчиком приложения. В идеале роли должны состоять из непересекающихся групп прав. Затем пользователи могут быть назначены членами соответствующего набора ролей системным администратором.

Управление пользователями на сервере контролируется с помощью прав для создания, изменения и удаления пользователей, а также прав выполнения для управления безопасностью. Для любого пользователя Dataphor Server доступны следующие операции:

  • Создание, изменение и удаление пользователей, если предоставлены соответствующие права.
  • Управление назначениями ролей, принадлежащих пользователю.
  • Управление всеми объектами каталога, принадлежащего пользователю.

Dataphoria

Dataphoria - интегрированная среда разработки (IDE) для платформы Dataphor. Dataphoria подключается к экземплярам Dataphor Server для администрирования и может размещать экземпляр сервера в процессе тестирования и разработки. Среда предоставляет пользовательские интерфейсы для построения и поддержки схемы приложения, а также визуальный конструктор форм для создания и настройки форм уровня представления.

Dataphoria IDE обеспечивает иерархическое представление каталога экземпляра Dataphor Server. Это представление, называемое Dataphor Explorer, используется для навигации и управления объектами в каталоге. Пользовательские интерфейсы предоставляются для управления различными аспектами сервера , такими как управление библиотекой и документами, установка, обновление и настройка приложений, управление безопасностью.

Dataphoria IDE

Dataphoria IDE предоставляет систему файлов, представленную Frontend Server-ом, во многом таким же образом, что оболочка операционной системы предоставляет интерфейс файловой системы. IDE включает в себя различные компоненты дизайна, а также пользовательские интерфейсы управления. Dataphoria также позволяет писать запросы к серверу с помощью редактора сценариев D4. Произвольные операторы могут быть выполнены и, при желании, результаты этих операций отображаются непосредственно в IDE. Приложения могут быть установлены, настроены и протестированы с использованием Dataphoria IDE. Специальную версию Windows Client можно запустить непосредственно из среды IDE, чтобы включить тестирование «на лету».

Запуск Dataphor-приложения

Первым шагом при запуске приложения Dataphor является запуск желаемого Frontend-клиента. Это может быть выполнено различными способами, в зависимости от запуска клиента и способа его установки. Установка клиента Windows добавит значок клиента в меню «Программы» в Microsoft Windows. Для веб-клиента наиболее распространенный сценарий - ввод соответствующего URL-адреса в поле «адрес» веб-браузера. Для получения дополнительной информации о том, какой клиент следует использовать и как его следует запускать, обратитесь к администратору приложения Dataphor.

Подключение

Запуск приложения Dataphor начинается с подключения к серверу. Первым шагом является выбор псевдонима для подключения. Каждый псевдоним содержит параметры для подключения к Dataphor Server, например имя сервера. Следующий снимок экрана показывает форму входа в Dataphor Server, которая отображается при запуске Windows Client:

Подключение к Dataphor Server

После выбора соответствующего псевдонима и информации для входа в систему нажмите кнопку «Войти», чтобы подключиться к серверу Dataphor. Несмотря на то, что на этом снимке экрана отображается форма входа в систему Windows, процесс подключения к веб-клиенту такой же.

Сервер Dataphor способен размещать несколько приложений, поэтому следующим шагом будет выбор желаемого приложения. Следующий экранный снимок показывает форму выбора приложения:

Выбор приложения

Выберите нужное приложение, щелкнув на него или используя клавиши со стрелками вверх и вниз, чтобы выделить приложение в списке. При нажатии кнопки «ОК» или нажатии Enter будет запущено приложение.

Утилита командной строки D4Runner

D4Runner - это утилита командной строки, которая может использоваться для выполнения команд на сервере Dataphor. Как и в случае с Dataphoria, утилита может подключаться к существующему серверу Dataphor или запускать экземпляр внутри процесса. В следующих разделах описываются основные функции D4Runner.

Параметры

Список параметров можно получить из самой утилиты, используя /?:

D4Runner /?
  • /AliasName:

Имя псевдонима для подключения. Значение по умолчанию - пустая строка. Короткая форма - /A. Если данный параметр указан, он должен с одним из alias-ов, которые присутствуют в файле ServerAliases.config. Этот файл находится в каталоге данных программы Alphora для псевдонимов машинного уровня и в каталоге данных приложения Alphora для псевдонимов пользовательского уровня.

  • /Host

Адрес сервера Dataphor Server, указанный как IP-адрес или имя. Значение по умолчанию - «localhost». Короткая форма параметра - /H.

  • /Port:

Порт сервера Dataphor. Значение по умолчанию - (8061). Короткая форма параметра - /P.

  • /File:

Имя файла, содержащего скрипт D4 для запуска. D4Runner может запускать скрипт из файла или в качестве параметра в командной строке. Указание файла будет иметь приоритет, если скрипт предоставлен в командной строке. Короткая форма параметра - /F.

  • /User:

Пользователь. Значение по умолчанию - «Администратор». Короткая форма параметра - /U.

  • /Password:

Пароль для входа на сервер Dataphor. Значение по умолчанию - '"' (пустая строка).

  • /Quiet

Если установлено значение true, указывает, что дополнительная информация не должна отображаться. Значение по умолчанию - false. Короткая форма параметра - /Q.

  • <Script>

Скрипт D4 для запуска. Указывается либо как строка, либо как имя файла, содержащего D4-скрипт, который должен быть запущен.

Подключение к существующему экземпляру сервера с помощью командной строки

Для подключения к запущенному серверу Dataphor необходимо указать имя (или IP-адрес) машины, на которой размещен экземпляр, а также номер порта, который прослушивает сервер. Номер порта по умолчанию - 8061, но несколько экземпляров могут запускаться на одном компьютере, настраивая каждый экземпляр для прослушивания на другом порту.

D4Runner /H:localhost /P:8061 "select Employee"

В качестве альтернативы, можно указать /AliasName, если машина настроена на работу с псевдонимами. Файлы ServerAliases.config в каталогах машин и данных пользователя содержат известные псевдонимы для машины. Эти псевдонимы могут использоваться для подключения к существующему экземпляру.

В данном примере используется краткая запись параметра /AliasName (/A)

D4Runner /A:Dataphor "select Employee"

Если у вас нет файла ServerAliases.config, вы можете создать его вручную. Пример такого конфигурационного файла ниже:

<aliasconfiguration 
	xmlns:bop="www.alphora.com/schemas/bop" 
	defaultaliasname="Remote
	xmlns="Alphora.Dataphor.Frontend.Client,Alphora.Dataphor.Frontend.Client">
	<connectionalias 
		sessioninfo.unstructureddata="" 
		sessioninfo.hostname="" 
		sessioninfo.catalogcachename="" 
		name="Remote" 
	/>
</aliasconfiguration>

Примечания

Ссылки/Литература

  • Официальный сайт Dataphor Community // Dataphor.org : сайт. URL: http://dataphor.org/ (дата обращения 05.12.2017).