Разработка Internet-приложений с использованием Borland Delphi и Kylix

В основе Internet-приложения на основе WebSnap по-прежнему лежит компонент-контейнер, который, однако, теперь может быть в приложении не единственным. Контейнером в иерархии WebSnap является компонент TWebSnapDataModule или TWebAppPageModule, то есть подразумевается разбиение приложения на страницы подобно «классическому» Web-сайту. Внутри этого контейнера располагаются визуальные компоненты для генерации содержания и невизуальные компоненты WebActionItem, отвечающие за построение дерева реакций приложения на HTTP-запросы. Как можно увидеть из этого рисунка, WebSnap действительно допускает использование компонентов WebBroker совместно с компонентами новой архитектуры, что открывает чрезвычайно большой выбор возможностей реализации той или иной задачи построения Internet-приложения в зависимости от ее сложности и других факторов. При этом компоненты WebBroker, вложенные в контейнер TWebAppPageModule, будут работать в новой, многоконтейнерной архитектуре приложения WebSnap точно так же, как и в одноконтейнерной архитектуре WebBroker, что позволит при необходимости осуществить переход к новой архитектуре без внесения многочисленных изменений в существующее приложение. Дерево обработки HTTP-запроса по-прежнему описывается при помощи компонентов WebActionItem, как это делалось в архитектуре WebBroker, за исключением того, что, помимо возможности разбиения приложения на несколько контейнеров (например, по аналогии со страницами Web-сайта), внутри каждого контейнера может иметься несколько компонентов-диспетчеров, содержащих отдельные деревья WebActionItems для различных типов запросов и, следовательно, реализующих специальные алгоритмы их обработки внутри одного контейнера, (тогда как в архитектуре WebBroker все запросы должны были обрабатываться внутри одного дерева компонентов WebActionItem). Архитектура WebSnap обеспечивается большим числом мастеров (wizards) для первичной генерации «скелетов» Internet-приложений, а также для выполнения повторяющихся промежуточных операций. В отличие от реализации поддержки WebBroker в Delphi 5 и Kylix, поддержка WebSnap в Delphi 6 включает в себя расширенные средства визуальной разработки и предварительного просмотра генерируемых данных. Так, средство Page Module View позволяет осуществлять предварительный просмотр результатов генерации содержания страницы на основании отдельного Page Module без компиляции и запуска приложения под управлением Web-сервера, что существенно облегчает отладку Internet-приложений. При этом, в отличие от средств поддержки WebBroker, для WebSnap используется встроенный браузер, что исключает привязку архитектуры к какому-либо одному средству просмотра (как это было с WebBroker), по причине чего в Kylix и Delphi 5 не были включены средства предварительного просмотра результатов генерации компонентов типа PageProducer и DataSetProducer (при этом предварительный просмотр поддерживался только для компонентов InternetExpress за счет использования сервера OLE Automation от MS Internet Explorer, что, естественно, автоматически исключало перенос этого сервиса, например, на платформу Linux). Помимо просмотра сгенерированного HTML-содержания средства предварительного просмотра Delphi 6/WebSnap позволяют отображать результаты построения XML- и XSL-деревьев без компиляции приложения, что также значительно упрощает процесс создания и отладки приложений. Также в состав средств поддержки XML, которая вообще является в Delphi 6 одним из наиболее значимых нововведений, входит средство построения схем связей XML (XML Data Binding Wizard), позволяющее на основе файлов данных в формате XML формировать файлы связей, описывающих типы объектов и их атрибуты на основе исходных данных, которые затем могут быть использованы для выполнения трансформаций внутри приложений. Как мы говорили выше, Delphi 6 по-прежнему поддерживает и компоненты InternetExpress, которые также могут быть использованы совместно с компонентами WebSnap. Компоненты InternetExpress позволяют осуществлять включение данных в содержание HTML-страниц за счет использования механизма «прозрачных» HTML-тэгов при генерации содержания. InternetExpress состоит из компонентов InetXPageProducer и XMLBroker. Первый является наследником PageProducer и производит непосредственную генерацию HTML-содержания с «прозрачными» HTML-тэгами. Второй осуществляет обмен данными с сервером (источником) данных на основе технологии MIDAS, то есть практически с любым существующим поставщиком данных, реализующим один из поддерживаемых MIDAS стандартов (CORBA, COM/DCOM, Sockets и т.д.). При этом для передачи данных к клиентской части приложения (Web-странице внутри HTML-браузера) используются XML DataPackets, содержащие как собственно данные, так и их описание в формате XML. Для передачи изменений в данных, которые могут быть произведены внутри клиентской части Internet-приложения на основе InternetExpress, используются DeltaPackets, опять-таки в формате XML, описывающие исключительно изменения, которые должны быть внесены в данные на сервере, что позволяет снизить трафик между клиентами и Web-сервером. За генерацию пакетов данных (data packets) и расшифровку разностных пакетов (delta packets) отвечает компонент XMLBroker, который также транслирует изменения серверу данных. Изюминкой архитектуры InternetExpress является то, что, в отличие от компонента PageProducer и его наследников — DataSetPageProducer и других, InetXPageProducer не включает данные в состав HTML-страниц. Вместо этого данные, переданные в виде XML DataPackets клиентскому приложению (браузеру), подставляются на место «прозрачных» HTML-тэгов за счет реализации DOM (Document Object Model — объектной модели документа) внутри браузера-клиента, которая, в частности, описывает замещение «прозрачных» тэгов-свойств документа реальными значениями. В случае если браузер не имеет встроенной реализации DOM, используется реализация на JavaScript, как, например, это сделано для Netscape Navigator. Набор соответствующих сценариев включен в поставку Delphi, а InetXPageProducer может обеспечивать передачу этих сценариев на сторону клиента при первом обращении к Internet-приложению на основе InternetExpress за счет включения ссылок на них в содержание генерируемых страниц. Как обычно, на базе компонентов InternetExpress могут быть созданы их расширенные версии, позволяющие реализовать внутреннюю обработку дополнительных «прозрачных» тэгов, вынести типовые свойства HTML-страниц, например заголовки или кодировку, в свойства компонентов-генераторов содержания.

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...