Работа с Web-приложением с точки зрения пользователя Запрос Страница 1 Действие Страница 2 Действие Страница 3 Виды взаимодействия с Web-приложением Сообщения Клиент (Browser) (форма) Новая страница Сервер (Web-приложение) (HTML-документ) Сообщения Клиент (Browser) (форма) Инструкции для обновления (скрипт-код) Сервер (Web-приложение) Логическая модель страницы Меню Навигация Основное содержимое Строка статуса <model> <menu type=“bar”> <item title=“...”> ... </item> <item title=“...”> ... </item> </menu> <body> <navigation> ... </navigation> <main> ... </main> </body> <status-bar> ... </status-bar> </model> Обработка запросов на языке XML-документов 1. 2. 3. 4. 5. 6. 7. Первоначальный запрос XML-запрос Стартовая модель Сообщения (форма) XML-сообщения + модель Модель с сообщениями Обновленная модель XML-запрос Стартовая модель (XML) HTML-документ XML-сообщения Модель с сообщениями (XML) Обновленная модель (XML) HTML-документ или скрипт-код XSLT-преобразование XML-документ XSLT-процессор XML-документ, HTML-документ или текст XSLT-документ Функции расширения XPath Внешние источники данных Технология XTC XML Transformation Components Компонентный подход Класс Свойство XTC-компонента XML-узел (элемент или атрибут) Имя свойства Имя элемента или атрибута Значение свойства Содержимое элемента или значение атрибута Метод XSLT-шаблон Имя метода Имя режима шаблона Параметр метода Параметр шаблона Результат метода Результат шаблона (result tree fragment) Конструктор Именованный XSLT-шаблон Наследование • Импорт XSLT-документов • Перекрытие методов (шаблонов) - с учетом приоритета - с учетом дерева импорта • Вызов методов предка - с помощью именованных шаблонов • Множественное наследование - проблема выбора предка разрешается приоритетом или уровнем импорта Логические компоненты • Компоненты интерфейс-логики Компонента “desktop” Конструктор принимает имя подкомпоненты в качестве параметра. Имеется метод загрузки подкомпонент. • Компоненты бизнес-логики Компонента “enterprise” Конструктор запрашивает сведения из базы данных. Имеется метод перевода в режим редактирования (построение интерфейс-логической компоненты-редактора). Презентация <c:desktop menu=“yes” status=“yes”> <c:browser current=“3”> <c:enterprise db-id=“479”> <c:enterprise-editor> ... </c:enterprise-editor> </c:enterprise> </c:browser> </c:desktop> Меню Навигация Метод презентации Редактор Строка статуса Презентационные компоненты (пред-презентация) Модель (XML) Реализация модели (пред-HTML) Презентация модели (HTML) Обновления (XML) Реализация обновлений (инструкции) Презентация обновлений (скрипт-код) XML-запросы к реляционным данным Ядро XML-запрос XML-ответ Транслятор SQL-запрос SQL-ответ База данных Встроенный транслятор Ядро XML-запрос XML-ответ SQL-сервер Транслятор SQL-запрос SQL-ответ База данных Язык XML-запросов <enterprise name=“”> <employee first-name=“” last-name=“”> <contact kind=“” value=“”/> </employee> </enterprise> XML-запрос с условием (фильтром) <person short-desc=“”> <x:sort top=“10”> <x:desc><last-name of=“.”/></x:desc> </x:sort> <x:exists><employer of=“.” as="ent"/> <x:exists><address of=“ent” as=“addr”/> <x:equal> <city of=“addr”/> <x:string value=“Новосибирск”/> </x:equal> </x:exists> </x:exists> <employer short-desc=“”/> </person> Система безопасности 1. Любая персона 2. Любой сотрудник OK 3. Стажер OK Иванов не может читать любой паспорт может читать любой документ не может читать любой паспорт 4. Начальник отдела X может читать паспорт сотрудника отдела X 5. Персона X может читать любой документ персоны X Приложение «МАМ» Маркетинг Анализ Менеджмент Компания «СофтАура»