ИСПОЛЬЗОВАНИЕ HTML В SQL SELECT ’<TABLE BORDER=1>’,’’,’’,’’ UNION ALL SELECT ’<TR>’, ’<TD>’+CompanyName+’</TD>’, ’<TD>’+CustomerID+’</TD>’, ’</TR>’ FROM Customers UNION ALL SELECT ’</TABLE BORDER=1>’,’’,’’,’’ ПРОБЛЕМЫ HTML HTML HTML не расширяем. Каждый браузер поддерживает фиксированный набор тегов, и возможности добавить новые теги не существует HTML Язык ориентирован на форматирование данных. Если изменится формат данных, которые считывает некоторая программа, то она, скорее всего, перестанет работать HTML Язык статичен. DHTML и подобные технологии смягчают этот момент, но HTML никогда не предназначался для работы с изменяющимися данными ПРОБЛЕМЫ HTML И XML HTML HTML дает только одно представление данных. Изменение представления данных оказывается более сложным, чем следует. HTML Мало семантики. Нет возможности для представления данных отличным от отображения способом XML Создан для решения проблем, связанных с ограничениями HTML. Это метаязык предназначенный для определения новых языков, которые можно использовать для обмена данными ВИНЕГРЕТ ТЕХНОЛОГИЙ HTML, Формат без структуры DHMTL CSS Лучше формат, нет структуры XML Есть структура, нет формата XSL Формат для структуры DOM Все вместе Язык с возможностями расширенной разметки (XML) • “XML – это стандартный язык, который используется для структурирования и определения данных в виде, приемлемом для различных приложений” * • Подвид стандарта ISO SGML – Короче и проще – Оптимизирован для WWW • XML и HTML похожи и дополняют друг друга – HTML может использоваться для показа XML документов • Спецификация XML 1.0 – одобрена W3C – http://www.w3.org/TR/1998/REC-xml19980210.html * William J Pardi – “XML in Action” – Microsoft Press XML И HTML • Использование и структура – HTML – для представления, менее структурирован – XML – для данных, более структурирован • Расширяемость – Имена HTML элементов и аттрибутов фиксированные – Имена XML элементов и аттрибутов вполне расширяемы, что делает XML предпочтительным для данных ПРОСТОЙ ПРИМЕР XML <?xml version="1.0" encoding="WINDOWS-1251"?> <tutorial> <title>"Заметки об XSL"</title> <author>Леонов Игорь Васильевич</author> </tutorial> XML документ в хорошей форме well-formed xml document (4 правила) XML объявление Атрибут <?xml version="1.0"?> <Order o_id="7845" o_date="1999-02-01" o_cur="USD" c_id="JANTOY" > <ShippingAddress sa_city="Erie" sa_state="PA" sa_pcode="19130"> Элемент <Line l_text="Jan's Toys" /> Пустой элемент <Line l_text="1818 Market Street" /> <Line l_text="3rd Floor, Room 1219" /> </ShippingAddress> <OrderDetails> <Item p_id="325" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /> <Item p_id="326" p_name="Zapper" od_qty="2" od_unitp="10.25" /> тега od_qty="5" od_unitp="15.50" /> <Item p_id="327" Открытие p_name="Whirlygig" </OrderDetails> <Comments> Закрытие тега This order replaces order 7844 which was cancelled by the customer. </Comments> Содержание </Order> Корневой элемент ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило № 1 Все элементы должны корректно открываться, закрываться и быть вложенными. Например, это корректно: <name> Jane <address> Main Street </address> </name> Это не корректно: <name>Jane<address>123 Main </name></addess> Как и это: <name>Jane<address>123 Main</name> ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило № 2 XML не позволяет иметь незакрытые элементы. Так, если элементу не нужен закрывающий тэг (как в случае при отсутствии содержимого), это следует отражать при определении открывающего тэга элемента. Это можно сделать, завершая тэг символом "/". <image url="my_face.jpg" /> Почему это правило необходимо? XML-документам не нужно Определение Типа Документа (DTD – Document Type Definition). Без DTD процессор не может “понять”, нужен элементу закрывающий тэг или нет, так что по умолчанию каждый элемент должен быть закрыт тем или иным способом. ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило № 3 Все значения атрибутов должны заключаться в кавычки. (В конце концов, существует стандарт.) Это верно: <product version="5"> Это неверно: <product version=5> ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило № 4 XML чувствителен к регистру. Можно пользоваться любым регистром, но следует быть последовательным. <product> в нашем примере допустимо, в то время как <Product> или <PRODUCT> — нет. ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило № 5 Свободное место не игнорируется. Следующие два примера будут интерпретироваться по-разному. <title> <name>The mysterious mathematician</name> </title> <title> <name> </title> The mysterious mathematician</name> ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Правило № 6 На верхнем уровне XML-файла всегда находится один элемент. ПРАВИЛЬНО ОФОРМЛЕННЫЙ XML-ДОКУМЕНТ Это — базовые правила XML. Если документ отвечает этим требованиям, он считается правильно оформленным. Если документ этим требованиям не удовлетворяет он обработан не будет. Можно ли вообразить, что бы было, если бы это относилось и ко всем HTML-документам? Как видите, создать XML-документ предельно легко. Особенно, если уже знать HTML. ЭЛЕМЕНТЫ ИЛИ АТРИБУТЫ? Необычность XML заключается в том, что этот язык предлагает два почти эквивалентных, хотя и не совсем, способа написания фразы: "это данные". Первый способ указания значения данных поместить его во вложенный элемент, второй присвоить значению атрибута. Поскольку очевидный ответ на вопрос, когда какой из этих двух подходов является наиболее походящим, как правило, отсутствует, XML не является полностью ортогональным (в теории программирования под этим термином понимается следующее: "каждая конструкция выполняет одну вещь, и никакая другая конструкция не делает то же самое"). ЭЛЕМЕНТЫ ИЛИ АТРИБУТЫ? <inventory> <product id="500" version="5">PowerProduct</product> <product id="501" version="5">PowerProduct </product> <product id="502" version="6.01">PowerProduct</product> </inventory> <inventory> <product> <id>500</id> <version>5</version> <name>PowerProduct</name> </product> ... </inventory> Пространства имен • • Модульный подход – грамотный подход (reuse) Создание контекстных словарей для своих приложений (имена элементов и атрибутов) – Чтобы избежать коллизий нужно обеспечить уникальность – XML Namespaces (http://www.w3.org/TR/REC-xml-names) – URI-Квалификатор, xmlns – атрибуты объявления <awl:book awl:ID="1-2323-23424" xmlns:awl="http://www.awl.com/cseng" xmlns:dm="http://www.develop.com/courses"> <awl:title>Essential Legos</awl:title> <dm:related-course dm:ID="EMIND"/> <dm:title>Essential Mindstorm</dm:title> </dm:related-course> </awl:book> ОБРАБОТЧИКИ И ОБЪЕКТНЫЕ ИНТЕРФЕЙСЫ msdn.microsoft.com/downloads/tools/xmlparser/xmldl.asp www.megginson.com • Задача – Анализ / выверка XML документа – Программное управление XML документами – Запуск кода (компонентов) с помощью XML • Технологии / стандарты – Microsoft® XML Parser (MSXML) • Используется ПО Microsoft для работы с XML • Поддерживает схемы DTD и XDR для валидации • Последняя версия поддерживает XSLT и XPath – Microsoft XML object model • Работа с XML документами из COM/VBScript/JScript • Поддержка W3C XML Document Object Model (DOM) Level 1 – Simple Object Access Protocol (SOAP) • Способ вызова методов, адаптированный для Интернет • В работе в IETF (Draft) ОПРЕДЕЛЕНИЕ ТИПА ДОКУМЕНТА DOCUMENT TYPE DEFINITION, ИЛИ DTD DTD позволяет указать, сколько элементов связано друг с другом. Например: <product> <id> <name> <version> </product> Один элемент обозначен как главный, а остальные — как подчиненные. Чтобы быть корректным, любой документ, содержащий эти элементы, должен поддерживать эти отношения. DTD ответственен за определение как этих отношений, так и дополнительных факторов — порядка использования элементов, типа данных, которые могут в них содержаться и пр. <!ELEMENT product (id+, name+, version?)> <!ELEMENT id (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT version (#PCDATA)> PCDATA — это резервное имя, описывающее базовые элементы и представляющее тип данных, содержащихся в элементе. Оно означает наличие символьных данных, которые могут быть подвергнуты грамматическому анализу. Есть и дополнительные способы определения содержания элемента, а также атрибутов, которые могут содержаться в элементе. ФОРМАЛИЗАЦИЯ СТРУКТУРЫ XML Существуют способы формального определения структуры XMLдокументов Устарело! Не для новых • DTD (Document Type Definition) разработок • XML-Схема (XML Schema) ОПИСАНИЕ XML ДОКУМЕНТОВ • Требования – Описать структуру любого класса XML документов, напр., “Заказы” – Определить является XML документ “валидным” представителем своего класса • Используемые стандарты – Document Type Definitions (DTD’s) • Устоявшийся стандарт в мире SGML • Подходит для задания документоориентированных типов данных – Схемы XML-Data/XML-Data Reduced (XDR) • Нарождающийся стандарт • Подходит для БД-ориентированных типов данных Простая XDR схема <Schema name=“bookSchema_v_1.2”> <ElementType name=“book”> <element type=“id”/> <element type=“price”/> <element type=“author”/> <element type=“title”/> <element type=“grade.level”/> </ElementType> <ElementType name=“price” dt:type=“float” required=“yes”/> <ElementType name=“id” dt:type=“string” required=“yes”/> . . . </Schema> XML СХЕМЫ • • • Схемы общедоступные и могут быть опубликованы новые – Это закладывает базис для тестирования бизнес-договоров Одна программа “выдает” необходимый XML документ Другая его “переваривает” – С помощью схемы можно проверить соответствие договору XM L ПОЧЕМУ СХЕМЫ - ЛУЧШЕ? • Схемы лучше наращиваются – XML-синтаксис • Лучше типизация данных – БД/ программно – ориентированная типизация и кодировка – Легче налагать правила (диапазоны, списки и т.д.) – Можно расширять типы данных • Поддержка пространств имен – Основное требование при подаче схемы в библиотеку ФОРМАТИРОВАНИЕ/ПРЕОБРАЗОВАНИЕ XML • • Задача – Форматирование XML-документов для показа – Перевод исходного XML в целевой XML/HTML – Работа с секциями документа XML Технологии/Стандарты – Extensible Stylesheet Language (XSL) – Стили • Аналогичны каскадным (CSS) • Более функциональны для форматирования XML • В работе в W3C (Working draft) – XSL Transformation Language (XSLT) • Раздвигает границы возможностей XSL в плане преобразований данных • Спецификация W3C – XML Path Language (XPath) – Задание путей • Общий синтаксис и семантика для запросов и адресации содержания XML документов • Базовая фильтрация и навигация по путям • Используется XSLT • Рекомендация W3C XSL ТРАНСФОРМАЦИИ XML документ XSL процессор + XSL таблица стилей XSL процессор XML документ (иной формат) HTML страница (XML-совместимая) Применение стилевой таблицы XSL к XML документу <?xml-stylesheet type="text/xsl" href="Books.xsl" ?> ТАБЛИЦЫ СТИЛЕЙ XSL • XSL документ = Правильно оформленный XML документ <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> template rule 1 output template template rule 2 output template </xsl:stylesheet> – В «шапке» - элемент <xsl:stylesheet> – Внутри него - элементы шаблонных правил <xsl:template> – Внутри правила <xsl:template> - действие, определяющее вывод элемента ОСНОВЫ XSLT • XML НЕ Показывает и НЕ Преобразует данные – XML отделяет данные от форматов и трансформации • Что может XSLT? – Хранить информацию о передаче и преобразовании данных – Примеры: преобразование данных, прог. сценарии, фильтры и генерация HTML-кода ОСНОВЫ XSLT • XSLT содержит пакет функций для преобразования данных – Целевые группы • Конкатенация • Вычисления • Преобразование данных • Сценарии • BizTalk Mapper работает с этими функциями с помощью Functoids ПРОСТОЙ ПРИМЕР XML и XSL <?xml version="1.0" encoding="WINDOWS-1251"?> <?xml-stylesheet type='text/xsl' href='ex01-1.xsl'?> <tutorial> <title>"Заметки об XSL"</title> <author>Леонов Игорь Васильевич</author> </tutorial> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <p><strong><xsl:value-of select="//title"/></strong></p> <p><xsl:value-of select="//author"/></p> </xsl:template> </xsl:stylesheet> ПРОСТОЙ ПРИМЕР XML и XSL <?xml version="1.0" encoding="WINDOWS-1251"?> <?xml-stylesheet type='text/xsl' href='ex01-2.xsl'?> <tutorial> <title>"Заметки об XSL"</title> <author>Леонов Игорь Васильевич</author> </tutorial> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <p><strong><xsl:value-of select="//author"/></strong></p> <p><xsl:value-of select="//title"/></p> </xsl:template> </xsl:stylesheet> ЯЗЫК ЗАПРОСОВ XPATH • • • XPath – язык для выборки подмножества узлов из XML-документа – Основан на спецификации W3C; см. http://www.w3.org/TR/1999/PRxpath-19991008.html Доступ осуществляется по местонахождению (location path), состоящему из 3-х частей – Ось – оговаривает относительное положение узла в дереве XMLдокумента • Child, Parent, Self, Attribute – Узел – элемент, по отнош. к к-му применяется действие оси – Предикат выборки – по сути, условие WHERE • Берется в скобки [ ] Примеры – child::Customer • Выбираются все дочерние подэлементы элемента <Customer> – child::Customer/child::Orders • Для данного <Customer> выбираются все подэлементы <Order> внутри него со своими детьми – Customer[attribute::CustomerID="ALFKI"] • Условие выборки – только <Сustomer> c заданным значением атрибута CustomerID <usr> <bin> <cat/> <echo/> <xmllint/> … </bin> <lib> … </lib> </usr> Простой XPath /usr/bin/xmllint Похож на путь к файлу <AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA> Простой XPath /AAA/CCC Результат — множество узлов <AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> </DDD> <CCC> <DDD> <BBB/> <BBB/> </DDD> </CCC> </AAA> // Поиск по всему поддереву //DDD/BBB <AAA> <XXX> <DDD> <BBB/> <EEE/> <FFF/> </DDD> </XXX> <CCC> <XXX> <BBB/> <BBB/> <EEE/> <FFF/> </XXX> </CCC> </AAA> * Любое имя /AAA/*/*/BBB <AAA> <BBB id="b1"/> <BBB id="b2"/> <BBB name="bbb"/> <BBB/> </AAA> @ Атрибут //BBB/@name ФИЛЬТРАЦИЯ (/AAA/BBB)[1] <AAA> <BBB/> <BBB/> <BBB/> <BBB/> </AAA> (/AAA/BBB)[last()] <AAA> <BBB/> <BBB/> <BBB/> <BBB/> </AAA> XPath: Примеры • Найти имя ректора /institute/rector/person/text() • Найти названия факультетов /institute/faculty/@name • Найти всех сотрудников //person • Найти имя декана факультета «Б» /institute/faculty[@shortname=“Б”]/dean/person/text() • Найти имя второго по счету заместителя Малюка А. А. //dean/person[starts-with(., “Малюк”)] /../../deputies/person[position() = 2] Xpath (ранее XQL - Extensible Query Language) (msdn.microsoft.com/downloads/webtechnology/xml/msxml.asp) • Адреса узлов в иерархии XML документов <contact category="enemy of the state"> <fullname>Smith</fullname> <numbers> <home>801-555-2323</home> <cell>801-555-3232</cell> </numbers> </contact> /descendant::contact[fullname="Smith"]/child::numbers/child::* doc.setProperty "SelectionLanguage", "XPath" sel = doc.selectNodes("descendant::numbers") • MSXML 2.6: объект IXMLDOMNode методы selectNodes и selectSingleNode XQuery – Язык XML запросов XQuery – это SQL для XML Независимость от конкретной СУБД Простота использования Поддержка популярными СУБД (Microsoft SQL Server 2003, Oracle 9i и10g) Базируется на XPath, но более понятен и может работать на множестве документов ЯВЛЯЕТСЯ ЛИ XML БАЗОЙ ДАННЫХ? Если строго придерживаться определения базы данных, то «XML» – в том случае, если под этим термином подразумевается XML-документ, – базой данных не является. Хотя XML-документ содержит данные, без дополнительного программного обеспечения, которое служит для обработки этих данных, он является базой данных не в большей степени, чем любой другой текстовый файл. ЯВЛЯЕТСЯ ЛИ XML БАЗОЙ ДАННЫХ? Если говорить более широко, то есть, подразумевая под «XML» собственно XML-документ и сопровождающие XML инструменты и технологии – ответ будет звучать как «да, но». «Да», потому что XML предоставляет множество функций баз данных: хранение (XML-документ), схемы (DTDS, язык определения схем XML), язык запросов (XQL, XML-QL, QUILT и другие), интерфейсы для языков программирования (SAX, DOM) и так далее. «Но», потому что многие функции присущие классическим базам данных все же отсутствуют: эффективное хранение, индексация, обеспечение безопасности, обработка транзакций и поддержка целостности данных, многопользовательский доступ, триггеры, поддержка запросов ко многим документам и т.д. ПОТЕРЯ СООТВЕТСТВИЯ Daniela Florescu (редактор языка XQuery): «Для меня остается полной загадкой, как разработчикам удается реализовывать свои заказы, представленные в трех различных видах (XML, Java/C# и кортежи) – тратить так много времени на поддержание согласованности и написание преобразований, и так много времени на копирование данных из одного формата в другой. Подобное «животное с тремя ногами», как его называют, – это техническое недоразумение...» XML и MS SQL Server 2000 • • • • • Сервер пишет и читает XML документы – Новое в Transact-SQL (выражение FOR XML, режимы RAW|AUTO|EXPLICIT, ключевые слова TAG и PARENT) – HTTP GET/POST – XML документы можно посылать как текст и работать с ними с помощью системных хранимых процедур Работает с Internet Information Server – Через ISAPI DLL и новый SQL Server OLE DB провайдер XML запросы на чтение и обновление Поддержка XDR схем Поддержка XSL-обработки на сервере XML И SQL ИНСТРУКЦИЯ SELECT FOR XML Этот оператор предназначен для представления результирующего набора строк в виде XML-документа. Рассмотрим его синтаксис: FOR XML { RAW | AUTO | EXPLICIT } [ , XMLDATA ] [ , ELEMENTS ] [ , BINARY BASE64 ] FOR XML RAW Каждая строка представляется в виде элемента <row/>. Название поля формирует название атрибута, а значение поля – значение атрибута FOR XML AUTO Документ XML форматируется точно так же, как и при XML RAW, только название элемента, представляющего строку, заменяется на название таблицы. ПРЕДУПРЕЖДЕНИЕ SQL Server не позволяет использовать предикат GROUP BY совместно с FOR XML AUTO. FOR XML EXPLICIT Самый сложный и гибкий вариант для создания XML-документов. В этом режиме можно формировать документы практически любой формы, однако для этого сам запрос должен быть написан по определенным правилам. FOR XML EXPLICIT В данном режиме можно формировать практически любые документы. Структура результирующего XML-документа определяется непосредственно в самом запросе. Запрос может принимать очень сложный вид. Первое поле всегда называется tag и представляет собой числовой идентификатор таблицы. Вы можете указывать для него любые числовые значения. В результирующем документе он не появляется, и нужен только, чтобы определить связи между таблицами для формирования иерархического документа. Второе поле называется parent и тоже может представлять любой числовой идентификатор. Он определяет родительскую таблицу для данной таблицы и в результирующем документе также не присутствует. Если родитель отсутствует, указывается 0 или NULL. Для иерархических выборок нужно использовать несколько запросов, объединенных с помощью оператора UNION ALL. FOR XML EXPLICIT После двух обязательных полей tag и parent следуют поля, которые требуется выбрать из таблицы. Для них должен быть задан псевдоним, определяющий тип XML-узла, его название и другую информацию. Вот синтаксис этого псевдонима: ElementName ! TagNumber ! AttributeName ! Directive FOR XML EXPLICIT ElementName ! TagNumber ! AttributeName ! Directive ElementName – имя элемента, в котором будет находится элемент данного поля. Обычно здесь указывается имя таблицы. TagNumber – идентификатор таблицы, в которой находится данное поле. Одному и тому же ElementName всегда должен соответствовать один TagNumber. Он также не отображается ни в каком виде в результирующем документе, однако нужен для определения иерархических связей между таблицами. AttributeName – имя атрибута (или элемента), представляющего данное поле. FOR XML EXPLICIT ElementName ! TagNumber ! AttributeName ! Directive Directive – по существу, представляет собой тип узла. Может принимать следующие значения: element поле представляется в виде элемента xml То же самое, что element, но не выполняет трансформации текста. Например, символ меньше (<) не превращается в ссылку &lt; cdata значение поля обрамляется соответствующим образом. Имя атрибута указывать совместно с этим ключевым словом нельзя. hide id, idref, idrefs позволяет скрыть поле позволяют делать ссылки на другие элементы. Эти атрибуты имеют значение, только если создается схема данных. FOR XML EXPLICIT SELECT au_fname, au_lname, address FROM authors WHERE au_fname like 'M%' FOR XML RAW; SELECT 1 as tag, 0 as parent, au_fname as 'authors!1!fname', au_lname as 'authors!1!lname', address as 'authors!1!address' FROM authors WHERE au_fname like 'M%' FOR XML EXPLICIT; Немного исправим запрос для демонстрации возможностей директивы FOR XML EXPLICIT. select 1 as tag, 0 as parent, au_fname as 'authors!1!fname', au_lname as 'authors!1!lname!element', address as 'authors!1!!cdata‘ from authors where au_fname like 'M%' for xml explicit Вот результат: <authors lname="Green"> <fname>Marjorie</fname> <![CDATA[ 309 63rd St. #411 ]]> </authors> <authors lname="O'Leary"> <fname>Michael</fname> <![CDATA[ 22 Cleveland Av. #14 ]]> </authors><authors lname="Smith"> <fname>Meander</fname> <![CDATA[ 10 Mississippi Dr. ]]> </authors><authors lname="Greene"> <fname>Morningstar</fname> <![CDATA[ 22 Graybar House Rd. ]]> </authors> <authors lname="DeFrance"> <fname>Michel</fname> <![CDATA[ 3 Balding Pl. ]]> </authors> XMLDATA Иногда бывает полезно получить не только сами данные, но и их схему. Схема данных также записывается в формате XML. Она определяет типы элементов и атрибутов, накладывает ограничения на их значения, и вообще представляет метаинформацию, позволяющую проверить документ на действительность (validity). Существует несколько разновидностей (форматов) схем данных. SQL Server использует XDR-схемы (XML Data Reduced). Ключевое слово XMLDATA может быть использовано для всех трех режимов формирования XML-документа (raw, auto и explicit). ELEMENTS Ключевое слово, использующееся только совместно с FOR XML AUTO. При его указании поля формируются как элементы: название поля соответствует названию элемента, а значение поля – значению элемента. BINARY BASE64 Определяет, как будут выведены двоичные данные (binary data). Зачем XML нужен в СУБД? • Передача запросов и результатов через Интернет – XML прозрачно проходит сквозь сетевые экраны • В отличие, скажем, от СОМ-объектов • Взаимодействие в гетерогенных средах – XML сейчас понимают все независимо от платформы и ОС • Интеграция не только с другими СУБД, но и с серверами B2B, электронной коммерции и пр. • Не требует установки дополнительного ПО на клиента – Клиент может быть сколь угодно тонким • Опять же потому, что средства его поддержки присутствуют изначально “Клиенты” “Посредники” “Серверы” TIBCO NT Web SNA CICS MF MQ CICS UNIX PDA HTTP Phones CORBA ATMs Kiosks JAVA RMI DCOM CORBA NT “Клиенты” “Посредники” “Серверы” NT CICS MF Web CICS UNIX PDA XML Phones ATMs Kiosks CORBA NT ОБЪЕДИНЕННЫЕ СЛУЖБЫ Поставщик A SAP XSL АСУ РП Планирование XSL XML сообщение XML Торговля Online Виртуальный торговый центр Заказы Склад Мощность XML XSL Потребители Поставщик B XSL JD Edwards XSL Поставщик C Siebel Windows DNA 2000 Платформа для веб-приложений следующего поколения Клиентский ярус Ярус прикладной логики Службы приложений Ярус данных Доступ к данным И их хранилищам Хост-системы Browser ASP/COM+ приложение SQL Server Приложение Другие СУБД МиниПК IIS/ASP, COM+/MTS, MSMQ. ADO/OLE DB, Active Directory, XML, Commerce Internet (TCP/IP, HTTP, HTML, XML) Microsoft SQL Server2000 … ПЕРВОЕ И ВТОРОЕ ПОКОЛЕНИЯ ВЕБ ПРИЛОЖЕНИЙ Файл Вебсервер Browser 1 в 1 соответствие страницы файлу Файл БД Штатные разработки Вебсервер Browser “Динамические страницы” ТРЕТЬЕ ПОКОЛЕНИЕ Web Вебsite служба Файл Web Вебsite служба Web Вебsite служба Завтра, внешние веб-сайты могут стать строительными кирпичиками с помощью XML •Веб-службы •Мегасервисы “Брандмауэр” Как подключить приложение к сайту сегодня = HTML “сканирование экрана” или “по договоренности” БД Веб-сервер Штатные разработки Browser “Динамические страницы” Просмотр, изменение, удаление файлов Порча оборудования Демонтаж оборудования Установка вредоносного программного кода КОМПЬЮТЕРЫ ЧЕЛОВЕЧКИ