Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2013_1 / КСТ / Разработка веб-приложений.pdf
Скачиваний:
205
Добавлен:
23.02.2015
Размер:
2.74 Mб
Скачать

2.Основы Java EE 6

2.1.Распределенные многоуровневые приложения

Платформа Java EE использует модель многоуровневого распределенного при-

ложения [1–3]. Логически приложение разделено на компоненты в соответствии с их функциональностью. Различные компоненты, составляющие приложение Java EE,

могут быть установлены на различных компьютерах в зависимости от их уровня (кли-

ент, сервер, СУБД) в многоуровневой среде Java EE, которой данный компонент при-

надлежит.

Приложение-

Веб-

клиент

приложение

JSPВеб-

страницы уровень Сервер

Бизнесуровень

Рис. 2.1. Многоуровневые приложения

На рис. 2.1 представлены два приложения Java EE, содержащие различные уровни, соответствующие их месту в системе разделения функций.

Компоненты клиентского уровня работают на клиентской машине. В первом

приложении это страницы, содержащие статические тексты и ссылки, во

втором тексты и ссылки формируются логикой работы приложения.

Компоненты веб-уровня работают на сервере Java EE и представлены либо

сервлетами, либо страницами JSP или JSF, выполняющими генерирование

документов, отправляемых клиенту.

Компоненты бизнес-уровня работают на сервере Java EE и являются про-

межуточным звеном между источниками информации и генераторами со-

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

Программное обеспечение уровня корпоративной информационной систе-

мы (EIS) работает на EIS-сервере и является классической СУБД.

30

Приложение Java EE может содержать, кроме обычных страниц HTML, аппле-

ты — программы, написанные на языке Java с использованием графического интерфейса (GUI), позволяющие существенно расширить круг решаемых задач. Апплеты

пишутся и компилируются как обычные программы-классы с использованием би-

блиотеки AWT, пересылаются на машину клиента и там исполняются на виртуаль-

ной машине платформы браузера. Особую важность апплеты имеют при вводе и

выводе графической информации, так как стандартные средства языка HTML не поддерживают эти функции в полном объеме.

Одна из главных задач сервера — обеспечить одновременное обслуживание

большого числа клиентов за счет распределения параллельных процессов обработки

запросов по потокам. Инкапсуляция обработки запроса в потоке позволяет програм-

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

Уровень сервера и клиента может включать компоненты JavaBeans

программы-посредники для преобразования данных. Компоненты JavaBeans — эк-

земпляры обычных классов, содержащие приватные переменные экземпляра и ме-

тоды групп get и set для доступа к свойствам, хранимым в переменных экземпляра. Следует обратить внимание на принятые соглашения. Имена методов после слов get/set должны продолжаться с заглавной буквы, а имена свойств объекта в выраже-

ниях — начинаться со строчной. Например: метод getProp() для свойства с именем prop в выражении «#{obj.prop}».

Жизненный цикл веб-приложения

Приложение сети состоит из компонентов, статических файлов ресурсов (на-

пример, рисунков), классов и библиотек. Контейнер обеспечивает много сервисов, что

позволяет повысить возможности компонентов и легче сделать их работу. Тем не менее, поскольку приложение сети должно взять эти сервисы на себя, процесс создания и выполнения приложения отличается от традиционных отдельных классов Java.

Процесс создания, развертывания и выполнения веб-приложений может описываться следующими шагами:

1.Разработка кода компонента.

2.Разработка дескриптора развертывания приложения.

3.Компиляция прикладных веб-компонентов и вспомогательных классов, используемых компонентами.

4.Дополнительная упаковка приложения в развертываемый архив.

5.Развертывание веб-приложения на сервере заказчика.

6.Вызов приложения в браузере набором URL и отправкой запроса на сервер.

2.2. Контейнеры Java EE

Одним из важных понятий в архитектуре Java EE являются контейнеры.

Контейнеры являются коллекциями компонентов и обеспечивают интерфейс между

компонентом и низкоуровневыми платформо-независимыми функциональными воз-

можностями, поддерживающими компонент. До того как веб-компонент, корпоратив-

ный компонент или компонент клиентского приложения может быть выполнен, он должен быть скомпонован в приложение Java EE и размещен внутри своего контейнера.

Процесс компоновки включает в себя определение установок контейнера для каждогокомпонентавприложенииJava EE идлясамогоприложенияJava EE.Установки

31

контейнера настраивают внутреннюю поддержку, обеспечиваемую Java EE сервером,

которая включает в себя такие сервисы, как безопасность, управление транзакциями, JNDI-поиск и удалённая связь. Вот некоторые из основных положений:

Модель безопасности Java EE позволяет конфигурировать веб-компонент или корпоративный компонент так, что доступ к системным ресурсам разре-

шается только авторизованным пользователям.

Модель транзакции Java EE позволяет определять взаимосвязи между мето-

дами, которые составляют простую транзакцию, так, что все методы в одной

транзакции интерпретируются как один модуль.

Сервисы поиска JNDI обеспечивают унифицированный интерфейс к различ-

ным сервисам каталогов и имен на предприятии, так что компоненты приложения получают доступ к этим сервисам.

Модель удалённого доступа Java EE управляет низкоуровневыми взаимос-

вязями между клиентами и корпоративными компонентами. После того как

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

Архитектура Java EE обеспечивает средства настройки конфигурации сервисов.

Это означает, что компоненты в приложении Java EE могут вести себя по-разному, в

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

Контейнер также управляет неконфигурируемыми сервисами, такими как время

жизни корпоративного компонента и сервлета, ресурсный пул (объединение ресур-

сов) связи с БД, хранение данных, доступ к API платформы Java EE. Хотя хранение данных является неконфигурируемым сервисом, архитектура Java EE позволяет замещать хранение, управляемое контейнером, включением соответствующего кода в реализацию вашего корпоративного компонента в тех случаях, когда вы желаете по-

лучить больший контроль, чем обеспечивается по умолчанию. Например, можно ис-

пользовать хранение, управляемое компонентом, для реализации ваших собственных методов поиска или для создания пользовательского кеша базы данных.

Различают следующие виды контейнеров Java EE:

Сервер Java EE является частью времени исполнения приложения Java EE;

предоставляет EJB- и веб-контейнеры.

Контейнер Enterprise JavaBeans (EJB) управляет исполнением корпоратив-

ных компонентов для приложений Java EE. Корпоративные компоненты и их контейнер выполняются на сервере Java EE.

Веб-контейнер управляет исполнением JSP-страниц и сервлетов для при-

ложения Java EE. Веб-компоненты и их контейнер выполняются на сервере

Java EE.

Контейнер клиентского приложения управляет исполнением компонентов

клиентского приложения. Клиентские приложения и их контейнер выполняют-

ся на стороне клиента.

Контейнер апплетов: управляет выполнением апплетов. Состоит из веб-

браузера и Java plug-in, выполняющихся совместно на клиенте.

Приложение Java EE и каждый из его модулей имеет собственный дескриптор

развертывания (файл web.xml). Дескриптор развертывания является XML-документом

с расширением .xml, описывающим установки компонента. В состав проекта обычно входят следующие папки.

32

Директория МЕТА-INF содержит файл MANIFEST.MF, который используется,

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

класса изменяют пути и Java-настройки, чтобы включать файлы JAR.

Основанная на Sun Microsystems Java Servlet 2.3 Specification, директория

WEB-INF содержит главные ресурсы для приложения, включая файл web.xml, ди-

ректории classes и lib. Директория classes содержит исходный код проекта Java для классов, фасетов и сервлетов. Там же содержатся компилированные классы. Обычно

в этой папке располагаются вложенные папки пакетов с их содержимым, например:

/WEB-INF/classes/com/mycorp/servlets/MyServlet.class.

Директория lib содержит все архивы JAR, на которые ссылается приложение.

Любые классы в файлах .jar, установленных в этой директории, будут доступны для

ваших прикладных программ. Кроме того, в этой папке должны быть «виртуальные»

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

2.3. Сервер GlassFish v3

Sun GlassFish Enterprise Server v3 полностью совместим с платформой

Java EE 6. Сервер приложений включает ряд инструментов, не являющихся непосредственно частью платформы Java EE 6, но предназначенных для использования разработчиками приложений, например, средств доступа к ресурсам (табл. 2.1).

 

Таблица 2.1

 

Утилиты сервера приложений

 

 

Инструмент

Описание

 

 

Admin Console

Администрирование с графическим интерфейсом для остановки

сервера и управления пользователями, ресурсами и приложениями

asadmin

Для администрирования сервера в командной строке:

запуск и остановка, управление пользователями, ресурсами

 

и приложениями

appclient

Для запуска клиентских приложений из jar-файлов

capture-

Для извлечения схем из баз данных и записи их

schema

в файлы для дальнейшего использования

package-

Для упаковки приложений в jar-файлы

appclient

 

JavaDB

Копия встроенного сервера баз данных, написанного

database

целиком на Java, позволяющего хранить данные в архивах

verifier

Для верификации дескрипторов развертывания

xjc

Для преобразования или связывания исходной схемы

в классы содержимого на языке Java

 

schemagen

Для создания файла со схемой со ссылками на классы

wsimport

Для генерации структур заданного WSDL-файла

wsgen

Для чтения классов и генерации структур

для развертывания и вызова

 

33

Соседние файлы в папке КСТ