- •Список рисунков
- •Список таблиц
- •Предисловие
- •Лекция 1. Проблемы разработки сложных программных систем
- •Программы «большие» и «маленькие»
- •Принципы работы со сложными системами
- •Литература к Лекции 1
- •Лекция 2. Жизненный цикл и процессы разработки ПО
- •Понятие жизненного цикла ПО
- •Стандарты жизненного цикла
- •Группа стандартов ISO
- •Группа стандартов IEEE
- •Группа стандартов CMM, разработанных SEI
- •Модели жизненного цикла
- •Литература к Лекции 2
- •«Тяжелые» и «легкие» процессы разработки
- •Унифицированный процесс Rational
- •Экстремальное программирование
- •Литература к Лекции 3
- •Лекция 4. Анализ предметной области и требования к ПО
- •Анализ предметной области
- •Выделение и анализ требований
- •Варианты использования
- •Литература к Лекции 4
- •Лекция 5. Качество ПО и методы его контроля
- •Качество программного обеспечения
- •Методы контроля качества
- •Тестирование
- •Проверка на моделях
- •Ошибки в программах
- •Литература к Лекции 5
- •Лекция 6. Архитектура программного обеспечения
- •Анализ области решений
- •Архитектура программного обеспечения
- •Разработка и оценка архитектуры на основе сценариев
- •UML. Виды диаграмм UML
- •Статические диаграммы
- •Динамические диаграммы
- •Литература к Лекции 6
- •Лекция 7. Образцы проектирования
- •Образцы человеческой деятельности
- •Образцы анализа
- •Архитектурные стили
- •Каналы и фильтры
- •Многоуровневая система
- •Литература к Лекции 7
- •Лекция 8. Образцы проектирования (продолжение)
- •Данные–представление–обработка
- •Образцы проектирования
- •Подписчик
- •Идиомы
- •Шаблонный метод
- •Образцы организации и образцы процессов
- •Инспекция программ по Фагану
- •Литература к Лекции 8
- •Удобство использования программного обеспечения
- •Психологические и физиологические факторы
- •Человеку свойственно ошибаться
- •Скоростные показатели деятельности человека
- •Внимание человека
- •Понятность
- •Память человека
- •Разные категории пользователей
- •Методы разработки удобного программного обеспечения
- •Контроль удобства программного обеспечения
- •Литература к Лекции 9
- •Лекция 10. Основные конструкции языков Java и C#
- •Платформы Java и .NET
- •Лексика
- •Целочисленные типы
- •Типы чисел с плавающей точкой
- •Инструкции и выражения
- •Выражения
- •Наследование
- •Шаблонные типы и операции
- •Дополнительные элементы описания операций
- •Описание метаданных
- •Средства создания многопоточных программ
- •Библиотеки
- •Основные понятия компонентных технологий
- •Общие принципы построения распределенных систем
- •Синхронное и асинхронное взаимодействие
- •Транзакции
- •Литература к Лекции 12
- •Лекция 13. Компонентные технологии разработки Web-приложений
- •Web-приложения
- •Расширяемый язык разметки XML
- •Платформа Java 2 Enterprise Edition
- •Связь
- •Именование
- •Процессы и синхронизация
- •Целостность
- •Отказоустойчивость
- •Защита
- •Работа с XML
- •Платформа .NET
- •Связь
- •Именование
- •Процессы и синхронизация
- •Целостность
- •Отказоустойчивость
- •Защита
- •Работа с XML
- •Литература к Лекции 13
- •Общая архитектура Web-приложений
- •Уровень бизнес-логики и модели данных в J2EE
- •Компоненты данных и сеансовые компоненты
- •Компоненты, управляемые сообщениями
- •Дескрипторы развертывания компонентов EJB
- •Уровень модели данных в .NET
- •Протокол HTTP
- •Уровень пользовательского интерфейса в J2EE
- •Сервлеты
- •Серверные страницы Java
- •Уровень пользовательского интерфейса в .NET
- •Литература к Лекции 14
- •Лекция 15. Развитие компонентных технологий
- •Развитие технологий J2EE
- •Jakarta Struts
- •Java Server Faces
- •Управление данными приложения. Hibernate
- •Java Data Objects
- •Enterprise Java Beans 3.0
- •Среда Spring
- •Ajax
- •Web-службы
- •Описание интерфейса Web-служб
- •Связь
- •Именование
- •Процессы
- •Синхронизация и целостность
- •Отказоустойчивость
- •Защита
- •Литература к Лекции 15
- •Лекция 16. Управление разработкой ПО
- •Задачи управления проектами
- •Окружение проекта
- •Структура организации-исполнителя проекта
- •Организационная культура
- •Заинтересованные в проекте лица
- •Виды деятельности, входящие в управление проектом
- •Управление содержанием проекта и качеством
- •Метрики ПО
- •Управление ресурсами
- •Специфика управления персоналом
- •Управление рисками
- •Управление коммуникациями и информационным обеспечением
- •Литература к Лекции 16
Одной из особенностей работы с XML в .NET является встроенная возможность работы с XML-данными в рамках механизмов ADO.NET (в основном предназначенных для работы с реляционными СУБД) с помощью класса System.Xml.XmlDataDocument.
Литература к Лекции 13
[1]Web-сайт консорциума World Wide Web http://www.w3.org/.
[2]http://www.xml.com/.
[3]XML 1.1, 2004. Доступен через http://www.w3.org/TR/xml11/.
[4]Annotated XML 1.0, 1998. Доступен через http://www.xml.com/axml/axml.html.
[5]Расширяемый язык разметки (XML) 1.0 (русский перевод первой версии стандарта).
Доступен через http://www.rol.ru/news/it/helpdesk/xml01.htm.
[6]Материалы по XMLSchema http://www.w3.org/XML/Schema.
[7]Namespaces in XML, 1999. Доступен через http://www.w3.org/TR/REC-xml-names/.
[8]Java Platform Enterprise Edition Specifications, version 1.4. http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf.
[9]Э. Таненбаум, М. ван Стеен. Распределенные системы. Принципы и парадигмы. СПб.:
Питер, 2003.
[10]Документация по Java RMI http://java.sun.com/j2se/1.5.0/docs/guide/rmi/index.html
[11]Документация по JMS API http://java.sun.com/products/jms/docs.html
[12]Документация по JNDI http://java.sun.com/j2se/1.5.0/docs/guide/jndi/index.html
[13]RFC 1766, доступен по ссылке http://rfc.net/rfc1766.html
[14]http://java.sun.com/products/jndi/serviceproviders.html
[15]Web-страница стандарта SAX http://www.saxproject.org/
[16]Web-страница стандарта DOM http://www.w3.org/DOM/
[17]Web-страница проекта JDOM http://www.jdom.org/
[18]Web-страница проекта dom4j http://www.dom4j.org/
[19]Стандарт XSLT. Доступен через http://www.w3.org/TR/xslt
[20]Web-страница проекта Saxon http://www.saxonica.com/
[21]Web-страница проекта Xalan http://xml.apache.org/xalan-j/
[22]Streaming API for XML http://www.jcp.org/en/jsr/detail?id=173
[23]B. McLaughlin. Java and XML, Second Edition. O’Reilly, 2001.
[24]Документация по платформе J2EE http://java.sun.com/j2ee/1.4/docs/index.html
[25]Документация по платформе .NET — находится в разделе .NET Development MSDN, http://msdn.microsoft.com/library/default.asp
[26]П. Аллен, Дж. Бамбара, М. Ашнаульт, Зияд Дин, Т. Гарбен, Ш. Смит. J2EE. Разработка бизнес-приложений. СПб.: ДиаСофт, 2002.
243
Лекция 14. Разработка различных уровней Web-приложений в J2EE
и .NET
Аннотация
Рассматриваются используемые в рамках Java Enterprise Edition и .NET техники разработки компонентов Web-приложений, связывающих приложение с базой данных и представляющих собой элементы пользовательского интерфейса.
Ключевые слова
Компонент EJB, компонент данных, сеансовый компонент, компонент, управляемый сообщениями, протокол HTTP, сервлет Java, серверная страница Java (JSP), Web-форма .NET.
Текст лекции
Общая архитектура Web-приложений
В данной лекции мы рассмотрим техники разработки компонентов Web-приложений на основе платформ J2EE и .NET. Общая архитектура такого приложения может быть представлена схемой, изображенной на Рис. 74. Обе платформы предоставляют специальную поддержку для разработки компонентов на двух уровнях: уровне интерфейса пользователя (WebUI) и уровне связи с данными.
Клиент — |
|
|
Web-сервер |
|
|
|
|
|
|
Хранилище |
||
Web-браузер |
HTTP |
|
|
|
|
|
|
|
|
|
данных |
|
HTML |
|
Компоненты |
|
|
|
Компоненты |
|
|
|
(СУБД) |
||
|
|
|
|
|
|
|
|
|
|
|||
|
|
WebUI |
|
|
|
модели |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
База данных |
|
|||
страницы |
|
|
|
|
|
|
данных |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рисунок 74. Общая схема архитектуры Web-приложений J2EE и .NET.
Пользовательский интерфейс Web-приложений основан на генерации динамических страниц HTML, содержащих данные, которые запрашивает пользователь. Уровень модели данных предоставляет приложению возможность работать с данными, обычно хранящимися в виде набора таблиц и связей между ними, как с набором связанных объектов.
Основные отличия между техниками разработки компонентов этих двух уровней, используемыми в рамках J2EE и .NET, можно сформулировать следующим образом.
•В J2EE компоненты EJB предназначены не только для представления данных приложения в виде объектов, но и для реализации его бизнес-логики, т.е. объектов предметной области и основных способов работы с ними.
В.NET нет специально выделенного вида компонентов, предназначенного для реализации бизнес-логики — она может реализовываться с помощью обычных классов, что часто удобнее. Это положение должно измениться с выходом EJB 3.0.
•EJB компоненты являются согласованным с объектно-ориентированным подходом представлением данных приложения. Работа с ними организуется так же, как с объектами обычных классов (с точностью до некоторых деталей).
В.NET-приложениях все предлагаемые способы представления данных являются объектными обертками вокруг реляционного представления — в любом случае приходится работать с данными как с набором таблиц. В .NET нет автоматической поддержки их преобразования в систему взаимосвязанных объектов и обратно.
244