Универсальный интерфейс пользователя АСР Fastcom Козик Денис Александрович Инженер разработчик Отделения телекоммуникационных систем Форс - центр разработки
Проблемы интерфейса тиражной промышленной системы Средства разработки интерфейса выходят из моды раньше, чем заканчивается Проект Поставщики средств разработки интерфейса в любой момент могут закончить развитие и поддержку продукта Член команды разработчиков прикладной системы обязан уметь работать во всех использующихся в Проекте средах разработки интерфейса При одновременной эксплуатации нескольких видов интерфейса ресурсы проекта дублируются примерно на 60%
Разделение ролей разработчиков Большая группа Специалисты в той прикладной области, которую автоматизируют Очень хорошо знают средства разработки бизнес-логики При создании интерфейса указывают что надо показать Не занимаются проблемами отображения информации Меньшая группа Специалисты в модулях, присутствующих в каждом проекте Очень хорошо знают средства взаимодействия с внешним миром При реализации интерфейса озабочены тем, как надо показать то, что необходимо Не лезут в конкретную прикладную область Прикладники Инфраструктурщики
Принципы универсального интерфейса Разработчик прикладной задачи манипулирует только общими для любого средства отображения интерфейса понятиями, не опускаясь до конкретики, свойственной каждому из этих средств (так называемым «движкам»). Разработчик прикладной задачи никогда заранее не знает, кто и как будет интерпретировать заданные им свойства элементов интерфейса, однако он вправе рассчитывать на адекватное соответствие элементов их свойствам. Разработчик прикладной задачи, создавая интерфейс к ней, не использует процедурные языки, не оперирует обработчиками событий, зато он может использовать механизм «Динамических свойств». Разработчик конкретного «движка» для отображения элементов интерфейса использует все возможности данного ему инструмента для адекватной интерпретации свойств объектов, указанных разработчиком прикладной задачи.
Описание форм при помощи метаданных Значение Тип Название Значение Тип Название Значение свойства элемента формы в конфигурации Код Тип Название Код Тип Название Элемент формы Код Тип Код Тип Форма Код Название Код Название Конфигу- рация Код Название Тип данных Набор значений Значение по умолчанию Код Название Тип данных Набор значений Значение по умолчанию Свойство элемента формы Список Входные параметры Действия Столбцы Бланк Действия Входные параметры Выходные параметры Действия Входные параметры Выходные параметры Входные параметры Выходные параметры Основные свойства элементов формы Действия Группы Действия Поля Список СтолбецБланк ПолеДействие Идентификатор Основной запрос Заголовок списка Подсказка для строки Дополнительны й текст Выражение Тип данных Заголовок Выравнивание Порядок сортировки Роль Порядок отображения Набор значений Итоговое значение Подсказка поля Идентификатор SQL заполнения Заголовок бланка Надпись на кнопке CANCEL Изначальное значение Тип данных Подпись Порядок отображения Роль Набор значений Способ изменения Видимость Обязательность Название Подсказка Порядок отображения Видимость Активность Роль Иконка Текст предупреждения Действие Вызов формы Реакция формы Схема данных
Схема взаимодействия клиента и сервера Клиентский движок Сервер Oracle 1 1. Событие 2 2. Отправка на сервер информации о событии и изменённых значениях свойств элементов 3 3. Применение полученных значений свойств элементов. Инвалидация зависимых свойств Определение набора свойств элементов, необходимых для обработки события Вычисление динамических свойств, необходимых для обработки события, а также инвалидированных на шаге Отправка на клиента значений свойств, необходимых для обработки события, а также вычисленных на шаге Применение полученных значений свойств элементов интерфейса.
WEB-движок 1. Компьютер пользователя. Любой компьютер с любой операционной системой, где сможет работать один из популярных интернет-браузеров (см. ниже). Должен быть подключён к интернету или интранету. 2. Сервер Apache. Свободно распространяемый HTTP-сервер. Версия 2.2. Может работать на одном компьютере с сервером Oracle. 3. Сервер Oracle. Для универсального интерфейса подходит Standard Edition. Версия от 10.1 и выше 4. Интернет–браузеры: Mozilla Firefox версии от 5.0; Google Chrome версии от 5.0; Internet Explorer версии от 6; Opera версии от WEB-страница. Загружается с сервера Apache вместе с JavaScript-кодом и таблицами стилей. Вся работа происходит в рамках этой одной WEB- страницы. Управляющие команды передаются в серверный пакет JScript технологией AJAX и являются информацией о событии, произошедшем на странице. 1. Компьютер пользователя 4. Интернет-браузер 5. WEB-страница 2. Сервер Apache 6. Статичные файлы *.js *.css *.gif 7. MOD_UI 3. Сервер Oracle 10. Пакет UI 9. Пакет Logic 8. Пакет JScript 6. Статичные файлы. Используются интернет–браузерами для работы WEB-страницы. Файлы представляют собой программы для WEB на языке JavaScript, таблицы стилей HTML-для элементов WEB-страницы, картинки, пиктограммы и т.п. 7. MOD_UI. Оригинальный модуль для сервера Apache 2.2. Задача – создавать и управлять сессиями Oracle, идентифицировать запросы от WEB-страницы к Oracle и обратно и направлять их по нужным каналам 8. Пакет JScript. Знает формат запросов к серверу от WEB-страницы и преобразует их в универсальный формат. С другой стороны, перед отправкой данных на WEB-страницу преобразует их в формат, допустимый в языке JavaScript 9. Пакет Logic. Анализирует запросы от клиента о тех или иных событиях и отправляет обратно необходимый набор значений свойств элементов интерфейса. 10. Пакет UI. Хранит рабочие области форм, наполняемые Приложением. Возвращает значения свойств элементов интерфейса. Умеет оптимизировать вычисления динамических свойств. Хранит и использует зависимости свойств элементов друг от друга
Архитектура Идентификация клиента Вызов команд ОС Работа с устройствами (ККМ, сканер штрих кодов) Поддержка всех современных браузеров Applet
WEB-интерфейс
Вопросы? Козик Денис Александрович Инженер разработчик Отделения телекоммуникационных систем Форс - центр разработки Тел.: (495) доб