Московский государственный университет имени М.В.Ломоносова
Опубликован: 18.09.2006 | Доступ: свободный | Студентов: 1868 / 118 | Оценка: 4.32 / 3.36 | Длительность: 27:14:00
ISBN: 978-5-9556-0067-3
Лекция 14:

Разработка различных уровней web приложений в J2EE и .NET

Аннотация: Рассматриваются используемые в рамках Java Enterprise Edition и .NET техники разработки компонентов Web-приложений, связывающих приложение с базой данных и представляющих собой элементы пользовательского интерфейса.
Ключевые слова: Web, J2EE, net, архитектура, пользовательский интерфейс, динамические страницы, HTML, пользователь, уровень модели, связанный объект , компонент EJB, связь, enterprise, JavaBeans, EJB, обмен данными, интерфейс, JDBC, базы данных, JTA, элемент данных, жизненный цикл, EJB-контейнер, компонентная среда, проверка допустимости, Java, определение, дескрипторы развертывания, XML, файл, передача ролей, компонент данных, сеансовый компонент, компонент, управляемый сообщениями, RMI, инициализация экземпляров, Состояние сеанса, чистые функции, абстрактное свойство, caller, stateless, имя роли, mandatory, uncheck, ADO, таблица, сериализуемость, объект, visual, ODBC, SQL, server, Oracle, производные, протокол HTTP, HTTP, знание, hypertext transfer, protocol, протокол передачи гипертекста, запрос, resource, identifier, URI, заголовки, webmaster, plain text, DVI, temporarily, unauthorized, server error, Дополнение, элементы управления HTML, сервлет Java, серверная страница Java (JSP), представление, класс, servlet, JSP, %contenttype, включаемый файл, JRE, контекст страницы, ASP, элементы управления, значение, Web-форма .NET, синтаксис, список, директива, тег, атрибут, language, URL, путь, очередь, Passport

Общая архитектура Web-приложений

В данной лекции мы рассмотрим техники разработки компонентов Web-приложений на основе платформ J2EE и .NET. Общая архитектура такого приложения может быть представлена схемой, изображенной на рис. 14.1. Обе платформы предоставляют специальную поддержку для разработки компонентов на двух уровнях: уровне интерфейса пользователя (WebUI) и уровне связи с данными.

Общая схема архитектуры Web-приложений J2EE и .NET

увеличить изображение
Рис. 14.1. Общая схема архитектуры Web-приложений J2EE и .NET

Пользовательский интерфейс Web-приложений основан на генерации динамических страниц HTML, содержащих данные, которые запрашивает пользователь. Уровень модели данных предоставляет приложению возможность работать с данными, обычно хранящимися в виде набора таблиц и связей между ними, как с набором связанных объектов.

Основные отличия между техниками разработки компонентов этих двух уровней, используемыми в рамках J2EE и .NET, можно сформулировать следующим образом.

  • В J2EE компоненты EJB предназначены не только для представления данных приложения в виде объектов, но и для реализации его бизнес-логики, т.е. объектов предметной области и основных способов работы с ними.

    В .NET нет специально выделенного вида компонентов, предназначенного для реализации бизнес-логики — она может реализовываться с помощью обычных классов, что часто удобнее. Это положение должно измениться с выходом EJB 3.0.

  • EJB-компоненты являются согласованным с объектно-ориентированным подходом представлением данных приложения. Работа с ними организуется так же, как с объектами обычных классов (с точностью до некоторых деталей).

    В .NET-приложениях все предлагаемые способы представления данных являются объектными обертками вокруг реляционного представления — в любом случае приходится работать с данными как с набором таблиц. В .NET нет автоматической поддержки их преобразования в систему взаимосвязанных объектов и обратно.

Уровень бизнес-логики и модели данных в J2EE

В рамках приложений, построенных по технологии J2EE, связь с базой данных и бизнес-логику, скрытую от пользователя, принято реализовывать с помощью компонентов Enterprise JavaBeans. На момент написания этой лекции последней версией технологии EJB является версия 2.1, в первой половине 2006 года должны появиться инструменты для работы с EJB 3.0 (в рамках J2EE 5.0).

Возможны и другие способы реализации этих функций. Например, бизнес-логика может быть реализована непосредственно в методах объектов пользовательского интерфейса, а обмен данными с базой данных — через интерфейс JDBC. При этом, однако, теряется возможность переиспользования функций бизнес-логики в разных приложениях на основе единой базы данных, а также становится невозможным использование автоматических транзакций при работе с данными. Транзакции в этом случае нужно организовывать с помощью явных обращений к JTA (см. предыдущую лекцию).

Компонент Enterprise JavaBeans (EJB) является компонентом, представляющим в J2EE-приложении элемент данных или внутренней, невидимой для пользователя логики приложения. Для компонентов EJB определен жизненный цикл в рамках рабочего процесса приложения — набор состояний, через которые проходит один экземпляр такого компонента. Компоненты EJB работают внутри EJB-контейнера, являющегося для них компонентной средой. Функции EJB-контейнера следующие:

  • Управление набором имеющихся EJB-компонентов, например, поддержкой пула компонентов для обеспечения большей производительности, а также жизненным циклом каждого отдельного компонента, в частности, его инициализацией и уничтожением.
  • Передача вызовов между EJB-компонентами, а также их удаленных вызовов. Несколько EJB-контейнеров, работающих на разных машинах, обеспечивают взаимодействие наборов компонентов, управляемых каждым из них.
  • Поддержка параллельной обработки запросов.
  • Поддержка связи между EJB-компонентами и базой данных приложения и синхронизация их данных.
  • Поддержка целостности данных приложения с помощью механизма транзакций.
  • Защита приложения с помощью механизма ролей: передача прав ролей при вызовах между компонентами и проверка допустимости обращения в рамках роли к методам компонентов.

Для разработки набора компонентов EJB нужно, во-первых, для каждого компонента создать один или несколько классов и интерфейсов Java, обеспечивающих реализацию самой функциональности компонента и определение интерфейсов для удаленных обращений к нему, и, во-вторых, написать дескриптор развертыванияXML-файл, описывающий следующее:

  • Набор EJB-компонентов приложения.
  • Совокупность элементов кода на Java, образующих один компонент.
  • Связь свойств компонента с полями таблиц БД и связями между таблицами.
  • Набор ролей, правила доступа различных ролей к методам компонентов, правила передачи ролей при вызовах одними компонентами других.
  • Политику компонентов и их методов по отношению к транзакциям.
  • Набор ресурсов, которыми компоненты могут пользоваться в своей работе.

Правила создания EJB-компонента зависят от его вида. Различают три таких вида EJB-компонентов:

  • Компоненты данных (сущностные, entity beans).

    Представляют данные приложения и основные методы работы с ними.

  • Сеансовые компоненты (session beans).

    Представляют независимую от пользовательского интерфейса и конкретных типов данных логику работы приложения, называемую иногда бизнес-логикой.

  • Компоненты, управляемые сообщениями (message driven beans).

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

Далее описываются основные правила построения EJB компонентов разных видов. Более детальное описание этих правил можно найти в [1,2].

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Лариса Парфенова
Лариса Парфенова

1) Можно ли экстерном получить второе высшее образование "Программная инженерия" ?

2) Трудоустраиваете ли Вы выпускников?

3) Можно ли с Вашим дипломом поступить в аспирантуру?