Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Разработка Web-приложений с помощью Ajax, Dojo и DB2

Разбор на конкретном примере

Леонс Петразикис, адвокат по технологиям баз данных, IBM
Леонс Петразикис (Leons Petrazickis) - адвокат по технологиям баз данных в компании IBM, где он пишет руководства и готовит примеры приложений. За плечами у него десятилетний опыт Web-разработки на ряде платформ. Он получал компьютерную подготовку в Университете Торонто, а его любимый язык программирования - Python.

Описание:  Изучив пример, представленный в данной статье, вы узнаете, как при помощи IBM® DB2® 9 под Linux®, UNIX® и Windows®, XQuery, PHP и Dojo Javascript Framework можно создать элегантное и Web-приложение с с высоким уровнем отклика. В качестве примера взят IOD Planner 2006 - Web-приложение, которое было использовано на конференции IBM Information On Demand 2006 Global Conference. Узнайте о преимуществах Ajax и шаг за шагом научитесь создавать такие приложения.

Дата:  30.11.2007
Уровень сложности:  средний

Активность:  3092 просмотров
Комментарии:  

Введение

Об этом руководстве

У этого руководства две цели – продемонстрировать на конкретном примере принципы Web- разработки на основе Ajax/Web 2.0, а также подчеркнуть сильные стороны DB2 9 pureXML™. Я помнил об этом, когда в связи с проведением конференции Information On Demand 2006 Global Conference писал приложение Information On Demand 2006 Scheduler. Это простая программа для планирования своих мероприятий в рамках конференции. Благодаря подходу к Web-программированию, основанному на Ajax - Asynchronous Javascript and XML – работа с программой для пользователя максимально интуитивна и безболезненна. Дополнительное преимущество программа получает благодаря быстродействию pureXML IBM DB2 9.

На рисунке 1 показано приложение IOD Planner. Во избежание задержек при обновлении все загрузки осуществляются в фоновом режиме, а поля форм, диалоговые окна и выпадающие меню созданы на основе функционально насыщенных виджетов (widgets).


Рисунок 1. IOD Planner 2006
Результаты поиска в Planner


Предпосылки

Вам пригодится знакомство с разработкой Web-приложений и БД. О DB2 9 великолепно рассказано в руководстве "Руководство по DB2 XML" (EN) (developerWorks, июнь 2006), а о XQuery - в "Запрашивайте данные DB2 XML с помощью XQuery" (developerWorks, апрель 2006).

Требования

Для развертывания исходных кодов вам понадобится ОС Windows или Linux, с установленным Zend Core для IBM (см. Ресурсы). Zend Core связывает вместе сервер данных DB2 9 Express-C, Web-сервер Apache2, язык сценариев PHP, расширения DB2 для PHP и мощную консоль администрирования.


Почему именно Ajax?


Рисунок 2. Традиционная Web-модель и модель Ajax
Ajax загружает содержимое в фоновом режиме


Ключевым принципом философии Ajax является избежание загрузок новых Web-страниц. Вместо этого в фоновом режиме в уже существующую страницу загружается новое содержимое. Благодаря этому не приходится заново загружать базовую инфраструктуру и ждать, пока браузер перерисует те же навигацию и элементы дизайна. Ваши пользователи никогда не столкнутся с пустым загружающимся окном. В результате получается быстро работающее приложение с быстрым откликом.

Запросы к серверу посылаются при помощи объекта XMLHTTPRequest, а ответы асинхронно обрабатываются по мере их поступления. Несмотря на название, они не обязательно должны быть в XML, а могут быть в любом текстовом формате, от Javascript (JSON) до CSV или предварительно сгенерированного HTML. Мы выбираем последний – сгенерированный на сервере HTML.

Среди основных Web-приложений, основанных на технологии Ajax, следует отметить Bloglines, Del.icio.us, Digg, Flickr, Google Maps, Gmail и Reddit.


Почему именно Dojo Javascript Framework?

За последние два года Javascript набрал силу как язык и как платформа. Этот язык не имеет единой официальной библиотеки, оболочки и API, потому появилось несколько поддержанных отраслевым сообществом альтернатив с открытым исходным кодом. Они легко работают с Ajax, поддерживают обогащённые объекты, структуры данных, вспомогательные функции, эффекты и помощь при планировке. Dojo и является одним из этих инструментальных наборов.

Dojo – это программная инфраструктура Javascript с открытым кодом, поддержанная IBM, Sun, AOL, JotSpot и прочие. Ajax for IBM WebSphere® включает Dojo 0.4.1. Dojo не связан с какими-либо конкретными серверными инструментами и может использоваться вместе с PHP, сервлетами Java, .NET или другими серверными компонентами. Существует целое сообщество активных пользователей и разработчиков, которые ежедневно создают сотни сообщений в рассылках, посвященных Dojo.

Dojo имеет модульную структуру, что позволяет наращивать функциональность по мере изменения потребностей.


Рисунок 3. Использование оболочек для Javascript (Ajaxian.com, 2006)
43% Prototype, 33% Script.aculo.us, 19% Dojo, остальные - менее 12%, возможны несколько вариантов выбора


Как видно из диаграммы на рисунке 3, Dojo вступил в игру недавно. При этом его популярность быстро растёт. В прошлом году больше всего симпатий завоевали Dojo вместе с Script.aculo.us. При этом у Dojo более надежная архитектура и шире отраслевая поддержка.


Почему именно DB2 9 pureXML?

Web-приложению необходима реляционная серверная СУБД. Мы выбрали DB2 Express-C – это свободно распространяемая бесплатная версия сервера данных DB2 9. В неё изначально встроена поддержка XML.


Рисунок 4. Исторически сложившиеся пути комбинирования XML с реляционной БД
Замусоренные файлы, CLOB и измельчение


Как правило, любое достаточно крупное корпоративное приложение использует XML. Нередко XML является и наиболее естественной формой для хранения данных. Это значит, что XML или хранится в файлах, которые целиком сохраняются в CLOB-объектах БД, или измельчается на отдельные столбцы.

Однако, сочетание отдельных файлов XML и реляционной БД плохо поддается масштабированию; XML в CLOB-объектах работает медленно, и к нему неудобно организовывать запросы; разделение же XML на отдельные реляционные столбцы означает необходимость постоянной синхронизации реляционных схем и XML-схем – малейшее изменение структуры XML ведёт к забирающей немало ресурсов проверке всей БД.


Рисунок 5. Встроенная поддержка XML в DB2
 Встроенная поддержка XML в DB2


Эта проблема решена в DB2 9. Встроенный в него тип XML-данных легко обрабатывается запросами на SQL и соответствующего стандартам W3C XQuery. Он масштабируется вместе с БД, и оптимизация XML работает здесь лучше, чем при использовании CLOB-объектов. Кроме того, XML и реляционные схемы хранятся отдельно – поэтому при изменении структуры XML не возникает необходимости проведения полного регрессионного тестирования.


Почему именно XQuery?


Рисунок 6. XQuery и DB2
Архитектура DB2 9 pureXML


XQuery - стандарт W3C для запрашивания данных из файлов XML. Операторы WHERE в XQuery и в SQL одинаковы, а цикл FOR интуитивно понятен всем программистам. Код XQuery более дружественный, чем эквивалентный ему XSL, он быстрее создаётся и проще читается.

Когда речь идёт об XQuery, часто упоминается FLWOR ("flower"). Речь идёт об основе XQuery, выражениях FOR, LET, WHERE, ORDER BY и RETURN.

В статье "Запрашивайте данные DB2 XML с помощью XQuery" вы найдёте великолепное введение в данную тему.


Почему именно PHP и XSL?

PHP – популярный, легкий в изучении язык для написания серверных сценариев. Его проще изучить, нежели сервлеты Java или .NET, в то время как опытный профессионал выжмет из него ничуть не меньше возможностей. Будучи интерпретируемым языком, он очень удобен для последовательной разработки – при изменениях в коде нет нужды в перекомпиляции, а результаты изменений видны в режиме реального времени.

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

Мы выбираем XSL за его мощные преобразовательные способности. Казалось бы, лучше уж всё делать через XQuery. Он тоже предлагает немало возможностей, а код на нём будет короче и выразительнее. XQuery – удобный язык без побочных эффектов, созданный для преобразования одной структуры XML в другую. Мы и без того, чтобы создать корректный документ XML, пользуемся XQuery, так что можем вообще обойтись без последующего преобразования.

1 из 7 | следующая

Комментарии



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management, Open source
ArticleID=272136
TutorialTitle=Разработка Web-приложений с помощью Ajax, Dojo и DB2
publish-date=11302007
author1-email=leonsp@ca.ibm.com
author1-email-cc=

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).