java enterprise edition что это

Введение в Java EE

Что такое Java EE

Java EE или Java Enterprise Edition представляет платформу для создания корпоративных приложений на языке Java. Прежде всего это сфера веб-приложений и веб-сервисов.

Java EE состоит из набора API и среды выполнения. Некоторые из API:

Enterprise JavaBeans (EJB) представляют классы, которые хранят бизнес-логику.

Contexts and Dependency Injection (CDI) предоставляет механизм для внедрения и управления зависимостями в другие объекты.

JSON Processing (JSON-P) позволяет работать со строками JSON в Java

JSON Binding (JSON-B) предоставляет функционал для сериализации и десериализации JSON в объекты Java.

WebSocket позволяет интегрировать WebSocket в приложения на Java.

JavaServer Faces (JSF) предоставляет возможности для создания пользовательского интерфейса на стороне сервера.

Эти и ряд других API сообственно и образуют то, что называется Java EE. Стоит отметить, что также в среде веб-разработки на Java популярна еще одна технология Spring. Фреймворк Spring не является частью Java EE и может использоваться как альтернативный подход к созданию веб-приложений на языке Java.

История развития

В начале 2019 года ожидается выход новой версии Jakarta/Java EE.

Официальный сайт платформы https://jakarta.ee/.

Установка IDE

Для работы с Java EE нам потребуется среда разработки или IDE. Есть различные среды разработки, которые ориентированы на корпоративную разрабоку под Java. Это IntelliJ IDEA, NetBeans и Eclipse. В данном случае на протяжении всего руководства мы преимущественно будем использовать Eclipse, потому что она является бесплатной и довольно широко распространена.

Для начала установим последнюю версию Eclipse, которую можно найти по адресу https://www.eclipse.org/downloads/. На странице загрузок выберем найдем рядом с названием текущей версии Eclipse кнопку «Download» и нажмем на нее.

После нажатия на кнопку нас перенаправит собственно на страницу загрузки, где необходимо будет нажать на кнопку «Download» для загрзуки установочного пакета:

После ее загрузки программы установки запустим ее и в отобразившемся списке опций выберем Eclipse IDE for Java EE Developers :

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

Источник

Введение в Java EE

Java EE — что это?

Развитие Java EE

Архитектура Java EE приложений

Уровни приложений

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

Средний уровень подразделяется, в свою очередь, на web-уровень и уровень бизнес-логики.

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

На web-уровне используются такие технологии Java EE:

Уровень бизнес-логики состоит из компонент, в которых реализована вся бизнес-логика приложения. Бизнес-логика — это код, который обеспечивает функциональность, покрывающую нужды некоторой конкретной бизнес сферы (финансовая индустрия, банковское дело, электронная коммерция). Данный уровень можно считать ядром всей системы.

Технологии, которые задействованы на данном уровне:

Уровень доступа к данным. Данный уровень иногда называют уровнем корпоративных информационных систем (Enterprise Information Systems, сокращенно —EIS). EIS состоит из различных серверов баз данных, ERP (англ. Enterprise Resource Planning) систем планирования ресурсов предприятия и прочих источников данных. К этому уровню за данными обращается уровень бизнес-логики.

В данном уровне можно встретить такие технологии, как:

Сервера приложений, контейнеры, компоненты

Контейнеры апплетов выполняются большинством браузеров. При разработке апплетов можно сконцентрироваться на визуальной стороне приложения, в то время как контейнер обеспечивает безопасную среду.

Контейнер клиентского приложения (ACC) включает набор Java-классов, библиотек и других файлов, необходимых для реализации в приложениях Java SE таких возможностей, как внедрение, управление безопасностью и служба именования.

Веб-контейнер предоставляет базовые службы для управления и исполнения веб-компонентов (сервлетов, компонентов EJB Lite, страниц JSP, фильтров, слушателей, страниц JSF и веб-служб). Он отвечает за создание экземпляров, инициализацию и вызов сервлетов, а также поддержку протоколов HTTP и HTTPS. Этот контейнер используется для подачи веб-страниц к клиент-браузерам.

EJB (Enterprise Java Bean) контейнер отвечает за управление и исполнение компонентов модели EJB, содержащих уровень бизнес-логики приложения. Он создает новые сущности компонентов EJB, управляет их жизненным циклом и обеспечивает реализацию таких сервисов, как транзакция, безопасность, параллельный доступ, распределение, служба именования либо возможность асинхронного вызова.

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

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

Веб-приложения (состоят из сервлетов и их фильтров, слушателей веб-событий, страниц JSP и JSF) — выполняются в веб-контейнере и отвечают на запросы HTTP от веб-клиентов. Сервлеты также поддерживают конечные точки веб-служб SOAP и RESTful.

Корпоративные приложения (созданные с помощью технологии Enterprise Java Beans, службы сообщений Java Message Service, интерфейса Java API для транзакций, асинхронных вызовов, службы времени) выполняются в контейнере EJB. Управляемые контейнером компоненты EJB служат для обработки транзакционной бизнес-логики. Доступ к ним может быть как локальным, так и удаленным по протоколу RMI (или HTTP для веб-служб SOAP и RESTful).

На диаграмме ниже представлена типичная архитектура Java EE приложения:

Источник

Java SE и Java EE: различия, характеристики и подробный обзор

Сегодня мы поговорим с в ами о том, какая разница существует между Java SE и Java EE — основных продуктов Java Oracle (Ява Оракл). Сама по себе технология разработки Ява — это совмещение 2-х компонентов внутри:

Язык программирования Java собрал в себе современность, объектную ориентированность, высокий уровень языка, особый синтаксис и собственный стиль.

Платформа Ява — это собственная среда для разработки, где работают программы, которые писались на языке программирования Java.

Среда разработки, чтобы программировать на языке Java

На данный момент есть всего 4 подобны х среды:

Java SE (Standar d Edition)

Среда Java SE вбирает в себя:

Java EE (Enterprise Edition)

Java ME (Micro Edition)

Java FX

Ява FX — это полноценная среда, которая часто применяется для создания функционального приложения с возможностью применения облегченного API. Программа на Java FX пользуется аппаратной, ускоренной графикой и медиа-движком, чтобы воспользоваться достоинством современного внешнего вида, ну и чтобы использовать производительность на максимуме.

В Java SE пишутся приложения, имеющие возможность запускаться как простые java-программы внутри самого контейнера. А в Java EE возможно делать то же самое, однако она еще предоставляет в ам более широкие возможности управления и возможность поточного масштабирования.

Если попытаться подытожить, то Java EE = Java SE + дополнительные библиотеки + наличие фреймворков + технологические спецификации, расширяющие ваши возможности управления. Вот и вся разница и все различия в данных продуктах Java Oracle (Ява Оракл).

Мы будем очень благодарны

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

Источник

Java enterprise edition что это

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

Платформа Java™ 2 Platform, Enterprise Edition (J2EE™) специально предназначена для указанной цели. Она предоставляет хорошо документированную стандартизованную среду для разработки и запуска распределенных, многоуровневых, основанных на компонентах приложений на Java. Эта среда автоматически выполняет большую часть низкоуровневой работы при создании приложения, например, настройку служб удаленных соединений, присвоения имен, постоянных данных, защиты и управления транзакциями, позволяя разработчикам сосредоточиться на бизнес-логике приложения.

Состав платформы J2EE:

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

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

Дополнительная информация приведена в обзоре платформы J2EE фирмы Sun на Web-сайте http://java.sun.com/. Выберите ссылку Products & APIs > Java™ 2 Platform, Enterprise Edition (J2EE™) > Overview.

Разработка J2EE в Nutshell

С точки зрения разработчика приложения:

Пример

Зачем нужна платформа J2EE?

Платформу J2EE удобно использовать для разработки приложения электронной коммерции на языке Java или приложения предприятия в следующих случаях:

Каждый из этих пунктов подробнее рассматривается ниже в этом разделе.

Читайте также:  какой кал при внутреннем кровотечении

Стандартизованная, апробированная в промышленности среда

Компоненты J2EE работают в контейнерах J2EE, обычно предоставляемых в составе сервера, совместимого с J2EE. Эти контейнеры предоставляют набор стандартных служб (API), используемых компонентами J2EE. Это следующие API:

Переносимость

Компоненты и приложения J2EE можно переносить между серверами, совместимыми с J2EE, без модификации кода, поэтому вы можете развернуть свое приложение на выбранном сервере, совместимом с J2EE, просто обновив информацию о развертывании, относящуюся к конкретному серверу, в файлах описания расширенного языка описаний (XML).

Многоразовые компоненты

Поскольку компоненты J2EE соответствуют стандарту J2EE, их можно приобретать уже в готовом виде и вставлять в приложение J2EE, экономя на разработке (особенно на отладке и тестировании).

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

Проверенная архитектура и шаблоны проектов

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

Состав документации по J2EE:

Дополнительная информация о платформе J2EE приведена на Web-сайте http://java.sun.com/. Выберите ссылку J2EE > Blueprints.

Масштабируемость

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

Инструменты разработки и развертывания

В ответ на потребность в инструментах J2EE вендоры предложили великолепную поддержку средств разработки J2EE в своих средах Integrated Development Environment (IDE) Java. Ниже перечислены компоненты этой поддержки:

Интеграция на базовом уровне

Под базовым уровнем в данном случае понимается уровень информационной системы предприятия (Enterprise Information System, EIS) приложения. Базовыми системами могут быть, например, RDBMS, устаревшие системы или системы планирования ресурсов предприятия (Enterprise Resource Planning, ERP).

J2EE поддерживает доступ через транзакции к EIS RDBMS с помощью API JDBC и JTA. Кроме того, контейнеры EJB поддерживают хранение постоянных данных, управляемое контейнером, когда транзакционное соединение RDBMS и доступ через него обрабатываются контейнером автоматически.

Service Provider Interface (SPI) архитектуры коннектора J2EE определяет стандарт для подключения ресурсов EIS, не относящихся к RDBMS, к контейнеру J2EE. Адаптер ресурсов EIS (поставляемый вендором EIS) встраивается в контейнер J2EE, благодаря чему контейнер может предоставлять EIS защищенную поддержку транзакций. После этого компоненты в контейнере могут получать доступ к EIS через SPI архитектуры коннектора J2EE.

Примечание: SPI архитектуры коннектора J2EE не поддерживается в версиях до J2EE 1.3.

Защита

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

Многоуровневая архитектура

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

Рисунок 1: многоуровневая архитектура J2EE

Клиентский уровень

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

Средний уровень

Web-уровень

Компоненты Web-уровня содержат сервлеты и страницы JSP, которые управляют взаимодействием с клиентским уровнем, изолируя клиенты от бизнес- и EIS-уровней. Клиенты отправляют запросы на Web-уровень, который обрабатывает запросы и возвращает результаты клиентам. Запросы клиентов к компонентам Web-уровня обычно приводят к запросам из Web-уровня к компонентам бизнес-уровня, которые, в свою очередь, могут приводить к запросам к EIS-уровню.

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

EIS-уровень

EIS-уровень представляет хранимые данные приложения, часто в форме RDBMS. EIS-уровень может также состоять из устаревших систем или ERP, доступ к которым осуществляется через API архитектуры коннектора J2EE.

Дополнительная информация о API архитектуры коннектора J2EE приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > J2EE Connector Architecture.

Дополнительная информация о стандартных конфигурациях развертывания J2EE приведена в разделе Концепция: конфигурации развертывания J2EE.

Серверы J2EE

Термин «сервер J2EE» несколько расплывчат. Обычно имеется в виду «сервер J2EE, поддерживающий и контейнер Web, и контейнер EJB». Если использовать более точную терминологию, Web-сервер J2EE (такой как справочный Web-сервер J2EE, реализация Tomcat) поддерживает Web-контейнер; сервер приложения J2EE (или EJB) поддерживает контейнер EJB.

Контейнеры J2EE

Компоненты J2EE работают, или размещаются, в контейнерах J2EE, обычно предоставляемых как часть коммерческого сервера J2EE. Контейнеры предоставляют среду выполнения и стандартный набор служб (API) компонентам J2EE, работающим в контейнере, в дополнение к поддержке стандартных API J2SE.

J2EE определяет следующие типы контейнеров:

Контейнер приложений-клиентов

Приложение-клиент J2EE работает в контейнере приложений-клиентов, поддерживающем следующие API J2EE: JDBC, JMS, JAXP, JAAS, JavaMail, JAF, JSR, JAX-RPC, SAAJ, Управление J2EE и JMX.

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

Контейнер аплетов

Аплет работает в контейнере аплетов, поддерживающем модель программирования аплетов и стандартные API J2SE. Как правило, контейнеры аплетов поставляются в виде модуля Java Web-браузера.

Контейнер Web

Компоненты Web (страницы JSP и сервлеты) работают в контейнере Web, предоставляемом как часть сервера J2EE или автономный Web-сервер J2EE. Контейнер Web поддерживает следующие API и пакеты J2EE: JDBC, JMS, JAXP, JAX-RPC, JAXR, JAAS, JavaMail, JAF, Архитектура коннектора J2EE, JTA, JSR, SAAJ, Управление J2EE, Сервлет Java и JSP.

Контейнер EJB

Компоненты EJB работают в контейнере EJB, предоставляемом как часть сервера J2EE.

Контейнер EJB поддерживает следующие API и технологии J2EE: EJB, JDBC, JMS, JAXP, JAX-RPC, JAXR, JAAS, JavaMail, JAF, JTA, JSR, SAAJ, Управление J2EE и Архитектура коннектора J2EE.

В следующих подразделах перечислены основные функции контейнеров EJB:

Удаленные соединения

Контейнеры EJB скрывают сложность удаленных соединений от разработчиков за счет использования специальных классов (создаваемых инструментами контейнера во время компиляции EJB, как и классов заглушек RMI, предназначенных для применения клиентами), реализующих интерфейсы EJB. Эти классы реализации являются удаленными объектами Java, доступными клиенту через RMI Java. С точки зрения клиента, он просто вызывает методы в интерфейсе EJB, не обращаясь к удаленным соединениям.

Параллельность

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

Присвоение имен

Контейнер EJB предоставляет пространство имен JNDI для поиска объектов EJB, развернутых в контейнере. Клиенты EJB могут искать объекты EJB, чтобы получить домашний интерфейс. Домашний интерфейс для EJB предоставляет методы поиска и создания экземпляров EJB. Пока контекст имен JNDI доступен из их расположения, клиенты могут обращаться к объектам EJB.

Постоянные данные

Разработчики EJB могут выбрать одну из двух схем хранения постоянных данных сущностных объектов EJB: постоянное хранение, управляемое контейнером (CMP), или постоянное хранение, управляемое EJB (BMP). CMP передает ответственность за реализацию кода доступа к данным контейнеру, в то время как BMP оставляет эту ответственность на разработчике EJB. CMP позволяет разработчику EJB воспользоваться стандартной реализацией для доступа к постоянной памяти, просто объявив поля, управляемые контейнером, в файле описания.

Управление транзакциями

Объекты EJB могут применять либо демаркацию транзакций, управляемую JavaBean, либо демаркацию транзакций, управляемую контейнером, что подробно описано в следующих двух параграфах.

Демаркация транзакций, управляемая JavaBean

Примечание: сущностные объекты EJB не могут использовать демаркацию транзакций, управляемую JavaBean, а лишь демаркацию, управляемую контейнером.

Демаркация транзакций, управляемая контейнером

В демаркации транзакций, управляемой контейнером, вы не предоставляете код для начальной и конечной транзакций. Вместо него вы указываете атрибут транзакции в файле описания EJB для каждого метода EJB. Атрибут транзакции (Required, RequiresNew, NotSupported, Supports, Mandatory или Never) сообщает контейнеру, какую область действия транзакции следует использовать для метода. Например, если клиент работает в транзакции и вызывает метод вашего объекта EJB, для которого атрибут транзакции равен Required, то метод будет вызван в области действия существующей транзакции.

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

Распределенные транзакции

Распределенной называется транзакция, выполнение которой необходимо координировать между несколькими базами данных и/или приложениями. По смыслу она противоположна централизованной транзакции, когда, например, единственный сервер приложений J2EE выполняет транзакции в единственной базе данных.

В распределенных транзакциях необходима двухфазовая фиксация; например, когда обновляется несколько баз данных. Некоторые контейнеры EJB (такие как BEA WebLogic Server 6.0) предоставляют поддержку двухфазовой фиксации по протоколу XA Open Group. Прикладному программисту не требуется писать код для обработки двухфазовой фиксации; ей управляет контейнер EJB.

Управление защитой

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

Во время выполнения каждому клиенту EJB присваивается некоторая роль. Контейнер EJB управляет доступом к методам EJB, проверяя, разрешено ли данной роли клиента вызывать этот метод.

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

Управление жизненным циклом

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

Читайте также:  рогова улица какой округ москвы

При запуске контейнера он создает пул экземпляров EJB в пуле ресурсов (чтобы быстрее предоставлять ресурс EJB, когда тот понадобится). Когда клиент EJB запрашивает создание объекта EJB, из пула выделяется экземпляр. Теперь клиент может запрашивать EJB. Когда клиент EJB запрашивает удаление объекта EJB, этот экземпляр возвращается в пул.

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

Эти обратные вызовы должны быть реализованы в каждом EJB, хотя реализация метода обратного вызова в EJB часто бывает пустой. Например, контейнер вызывает метод ejbRemove() EJB, чтобы уведомить EJB о его предстоящем удалении (поступил запрос клиента на удаление EJB). В методе ejbRemove() EJB вы записываете все операции, которые необходимо выполнить перед удалением EJB, например разблокировать все ресурсы, заблокированные этим EJB.

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

Пулы соединений с базами данных

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

Сообщения

Для поддержки асинхронного обмена сообщениями необходимы контейнеры EJB. JMS или другие типы служб сообщений могут использоваться объектами EJB, управляемыми сообщениями, для обработки доставляемых сообщений. Взаимодействие JMS с объектами EJB требует, чтобы те поддерживали транзакционный доступ из компонентов контейнеров Web и EJB, таких как сервлеты, страницы JSP и объекты EJB.

Компоненты J2EE

В следующем разделе кратко рассматриваются все типы компонентов J2EE. К компонентам J2EE относятся аплеты, приложения-клиенты, компоненты Web и объекты Enterprise JavaBean. Компоненты J2EE работают в контейнерах J2EE.

Аплеты

Аплеты применяются в основном для реализации пользовательских интерфейсов и позволяют значительно расширить возможности страниц HTML.

Приложения-клиенты

Компоненты Web

Сервлеты Java

Технология Сервлет Java позволяет Web-серверу обрабатывать запросы, поступающие от Web-клиента, и отправлять ответы с динамическим содержимым. Для создания этого динамического содержимого сервлет Java может взаимодействовать с другими компонентами Web и EJB. Созданное содержимое может принимать форму любого текстового документа, в том числе HTML и XML. Кроме того, технологию Сервлет Java можно применять в качестве конечной точки Web-служб во взаимодействии с API JAX-RPC.

Дополнительная информация о сервлетах J2EE приведена на Web-сайте http://java.sun.com/. Выберите ссылку J2EE > Blueprints.

Страницы JSP

Технология Страницы JSP основана на сервлетах Java, но вместо кода в ней применяется текст. Страница JSP обрабатывает запросы и выдает ответы, как сервлет, но ее логика контролируется прежде всего презентациями. Страница JSP содержит в основном статический HTML, определяющий формат представления данных, получаемых из других источников, таких как объекты JavaBean и EJB. Для того чтобы добавить новые возможности в JSP, разработчик компонентов Web может создавать библиотеки пользовательских тегов.

Дополнительная информация о JSP приведена на Web-сайте http://java.sun.com/. Выберите ссылку J2EE > Blueprints.

Страницы HTML

Страницы HTML можно применять для поддержки пользовательских интерфейсов. Их можно определять как статические Web-страницы или создавать с помощью сервлетов и страниц JSP. Спецификация J2EE требует, чтобы Web-клиенты J2EE поддерживали показ страниц HTML.

Объекты JavaBean

API JavaBean определяет архитектуру для создания простых многоразовых компонентов. Эти компоненты можно редактировать и собирать с помощью инструментов компоновки приложения. Объекты JavaBean реализуются с помощью обычного кода Java, поэтому реализация доступна другим программистам, которым могут понадобиться эти компоненты, а также инструментам.

JavaBean не является технологией J2EE, но используется технологиями J2EE. Например, объекты EJB могут применять объекты JavaBean в качестве значений. Различия между объектами JavaBean и объектами Enterprise JavaBean описаны в разделе Сравнительное описание объектов JavaBean и EJB.

Дополнительная информация об объектах JavaBean приведена в разделе Концепция: объекты JavaBean.

Объекты Enterprise JavaBean

Спецификация объектов Enterprise JavaBean требует архитектуру для разработки и развертывания распределенных бизнес-приложений, основанных на компонентах и поддерживающих транзакции.

Объекты EJB развертываются и выполняются в среде, называемой контейнером EJB; он был описан ранее в параграфе Контейнер EJB. Этот контейнер предоставляет службы управления транзакциями, соединений с базами данных и защиты. Архитектура EJB скрывает эти подробности, что позволяет разработчикам компонентов сосредоточиться на бизнес-логике.

Интерфейсы EJB содержат домашние интерфейсы, предоставляющие методы поиска и создания интерфейсов EJB, и интерфейсы компонентов, предоставляющие бизнес-методы для конкретного экземпляра EJB. Это могут быть удаленные интерфейсы, т.е. те, которые можно вызывать по сети, или локальные интерфейсы, которые должны вызываться из того же процесса (точнее, из той же виртуальной машины Java). Интерфейсы EJB реализуются классами контейнера EJB, делегирующими методы классу реализации EJB. Исключение составляет метод поиска в сущностном объекте EJB, управляемом контейнером: он обрабатывается классом контейнера.

Дополнительная информация об объектах EJB приведена на Web-сайте http://java.sun.com/. Выберите ссылку J2EE > Blueprints.

Сеансовые объекты EJB

Компонент сеансового объекта EJB предоставляет службы, реализующие бизнес-логику для клиента. Отдельный клиент может обращаться к каждому экземпляру сеансового объекта EJB через локальные или удаленные интерфейсы. Сеансовые объекты EJB могут сохранять данные в базе данных, но обычно для сохранения данных они вызывают сущностные объекты EJB, представляющие бизнес-объекты. Экземпляры сеансовых объектов EJB поддерживают временное диалоговое состояние.

Сеансовые объекты EJB без сохранения состояния могут использоваться в качестве конечной точки Web-служб, согласно спецификации JSR и EJB.

Дополнительная информация о сеансовых объектах EJB приведена в документе Enterprise JavaBeans Specification, Version 2.1 на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Enterprise JavaBeans.

Сущностные объекты EJB

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

Существует два типа постоянного хранения сущностных объектов EJB: постоянное хранение, управляемое EJB (BMP), и постоянное хранение, управляемое контейнером (CMP). Сущностные объекты EJB типа BMP должны реализовывать код доступа к данным, в то время как в объектах типа CMP эта функция реализуется контейнером. Реализации контейнера CMP обычно предоставляются для случая, когда постоянные данные хранятся в реляционной базе данных, хотя возможны и другие способы постоянного хранения (объектная база данных, файлы и т.п.).

Дополнительная информация о сущностных объектах EJB приведена в документе Enterprise JavaBeans Specification, Version 2.1 на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Enterprise JavaBeans.

Управляемые сообщениями объекты EJB

Компонент управляемого сообщением объекта EJB предоставляет службу, реализующую бизнес-логику обработки сообщений. Эту службу может вызывать только контейнер; клиент не может напрямую вызывать эту службу через удаленные или локальные интерфейсы. Вместо этого, когда сообщение поступает в место назначения или конечную точку, обслуживаемую объектом EJB, контейнер вызывает экземпляр управляемого сообщениями объекта EJB, присвоенного как MessageListener месту назначения. Экземпляры управляемых сообщениями объектов EJB не обслуживают диалоговое состояние, но могут обслуживать переменные экземпляров со ссылками на ресурсы (например, соединение с базой данных) в вызовах методов.

Дополнительная информация об управляемых сообщениями объектах EJB приведена в документе Enterprise JavaBeans Specification, Version 2.0 на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Enterprise JavaBeans.

Сравнительное описание объектов JavaBean и EJB

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

Службы (API) для компонентов J2EE

Контейнеры J2EE поддерживают все стандартные API J2SE, а также подмножество API J2EE, в зависимости от типа контейнера. Компоненты в контейнере могут обращаться к этому подмножеству. В следующей таблице даны краткие описания всех API и перечислены доступные контейнеры J2EE.

Дополнительная информация об объектах EJB приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Enterprise JavaBeans.

* только клиентские API

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

Дополнительная информация о JAAS приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2SE > Core Java > Java Authentication and Authorization Service (JAAS).

JavaBeans Activation Framework (JAF) предоставляет службы для идентификации данных и создания экземпляра JavaBean для манипулирования этими данными.

Дополнительная информация о JAF приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2SE > Desktop Java > JavaBeans > JavaBeans Activation Framework.

API Java для обработки XML (JAXP) предоставляет абстрактный интерфейс для обработки документов XML, который можно применять с совместимыми синтаксическими анализаторами и преобразователями, использующими DOM SAX или XSLT.

Читайте также:  что делать если антипригарное покрытие поцарапалось

Дополнительная информация о JAXP приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Java API for XML Processing (JAXP).

Спецификация JAX-RPC определяет API клиента для доступа к Web-службам, а также приемы реализации конечных точек Web-служб.

Дополнительная информация о JAX-RPC приведена в разделе JAX-RPC/font>

Web-службы для J2EE 1.1

Спецификация Web-служб для J2EE (JSR-109) определяет функции, которые сервер приложения J2EE
должен поддерживать для развертывания конечных точек Web-служб.

Дополнительная информация о Web-службах для J2EE приведена на Web-сайте http://jcp.org/aboutJava/communityprocess/final/jsr109/index.html

API SSAJ предоставляет возможность управлять сообщениями SOAP.

Дополнительная информация о JAXP приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > SOAP with Attachments API for Java (SAAJ).

Спецификация JAXR определяет API для доступа клиентов к реестрам на базе XML, таким как реестры WebXML и UDDI.

Дополнительная информация о JAXP приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Java API for XML Registries (JAXR).

API JavaMail предоставляет среду, которую можно расширить для компоновки приложений почты на базе Java.

Дополнительная информация о JavaMail приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > JavaMail.

Дополнительная информация о JDBC приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > JDBC.

Служба сообщений Java (JMS) предоставляет службы асинхронной отправки сообщений для передачи данных и уведомлении о событиях. JMS позволяет применять управляемые сообщениями объекты EJB для асинхронной обработки сообщений, доставляемых в темы и очереди JMS.

Дополнительная информация о JMS приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Java Message Service.

Спецификация Java Naming and Directory Interface (JNDI) предоставляет службы присвоения имен и работы с каталогами для регистрации и поиска распределенных компонентов и ресурсов. Клиентам достаточно знать зарегистрированное имя JNDI компонента или ресурса; знать фактическое расположение в сети не обязательно.

Дополнительная информация о JNDI приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2SE > Core Java > Java Naming and Directory Interface (JNDI).

API транзакций Java (JTA) определяет интерфейсы для управления службами распределенных транзакций, выполняемыми в администраторе транзакций, в администраторе ресурсов, на сервере приложения и в приложении.

Дополнительная информация о JTA приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Transactions.

Service Provider Interface (SPI) архитектуры коннектора J2EE определяет стандарт для подключения ресурсов EIS к контейнеру J2EE. Адаптер ресурсов EIS (поставляемый вендором EIS) встраивается в контейнер J2EE, благодаря чему контейнер может предоставлять EIS защищенную поддержку транзакций. После этого компоненты в контейнере могут получать доступ к EIS через SPI архитектуры коннектора J2EE.

Дополнительная информация о коннекторах J2EE приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > J2EE Connector Architecture.

Технология JavaServer Pages предоставляет разработчикам Web возможность создавать и обслуживать динамические Web-страницы. Страницы JSP основаны на тексте и используют теги типа XML для выполнения бизнес-логики и создания пользовательского информационного наполнения. Технология JSP позволяет делегировать бизнес-логику другим компонентам, так что в страницу JSP нужно встраивать лишь логику презентаций.

Дополнительная информация о JSP приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > JavaServer Pages.

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

Дополнительная информация о сервлетах Java приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Java Servlet.

Технология Remote Method Invocation, работающая на основе Internet Inter-Orb Protocol (RMI-IIOP), позволяет компонентам Java обмениваться информацией с устаревшими компонентами CORBA, написанными на других языках, таких как C++ или Smalltalk.

Дополнительная информация о RMI-IIOP приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products and APIs > RMI-IIOP.

J2EE Management 1.0

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

Дополнительная информация о RMI-IIOP приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > J2EE Management Specification.

API JMX применяется API J2EE Management для предоставления некоторой необходимой поддержки для управления продуктом J2EE.

Дополнительная информация о RMI-IIOP приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2SE > Core Java > Java Management Extensions (JMX).

J2EE Deployment 1.1

API развертывания J2EE определяет интерфейсы между средой выполнения инструмента развертывания и компонентами модулей, предоставляемыми сервером приложения
J2EE.

Дополнительная информация о J2EE Deployment приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > J2EE Deployment Specification.

Спецификация JACC определяет контракт между сервером приложения J2EE и
провайдером стратегий проверки прав доступа.

Дополнительная информация о JACC приведена на Web-сайте http://java.sun.com/. Выберите ссылку Products & Technologies > J2EE > Java Authorization Contract for Containers.

Сборка и развертывание

Файлы описания

Для каждого приложения или модуля J2EE существует шаблонный тип файла описания. Шаблонные файлы описания, например ejb-jar.xml для модуля EJB, определяют информацию, которая применяется к EJB независимо от сервера, на котором он развернут. Напротив, файлы описания, связанные с конкретным сервером, задают информацию, учитываемую только на этом сервере. Таким файлам описания присваиваются имена, отражающие сервер, для которого они предназначены.

Модули J2EE

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

Существует три вида модулей J2EE:

Приложение-клиент J2EE
Web-компонент
Enterprise JavaBean

Отдельный архив JAR Enterprise JavaBean может содержать несколько объектов EJB, но их информация развертывания хранится в одном наборе файлов описания (ejb-jar.xml плюс файлы описания для конкретных серверов).

Стандартный модуль Enterprise JavaBean содержит:

Модуль Enterprise JavaBean Web-службы содержит:

Дополнительная информация об упаковке и развертывании J2EE приведена на Web-сайте http://java.sun.com/. Выберите ссылку Docs & Training > J2EE Platform, Enterprise Edition > Java Blueprints Program.

Разработка приложений J2EE

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

Роли для разработки приложений J2EE

Роли для разработки приложений перечислены в следующей таблице.

Провайдер продуктов J2EE

Провайдер компонентов приложений

Провайдер компонентов приложений фактически охватывает несколько ролей, например, разработчиков EJB и проектировщиков документов HTML. Эти роли отвечают за создание компонентов приложений J2EE с помощью предоставленных инструментов.

Ассемблер приложений создает приложение J2EE из компонентов приложения J2EE с помощью предоставленных инструментов. Приложение J2EE доставляется как файл Enterprise Archive (EAR). Ассемблер приложений также описывает все внешние зависимости приложения J2EE. Средство развертывания обрабатывает эти зависимости во время фактического развертывания приложения J2EE.

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

Провайдер инструментов предоставляет инструменты, предназначенные для поддержки разработки и упаковки компонентов приложений. Эти инструменты часто соответствуют различным типам создаваемых компонентов приложений и включают IDE, например IBM VisualAge for Java и Borland JBuilder.

Провайдер компонентов системы

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

Эти роли не являются взаимоисключающими. У одного пользователя может быть несколько ролей. Эта возможность особенно полезна в небольших коллективах разработчиков и при моделировании ситуаций.

Этапы разработки приложения J2EE

В этом разделе описаны различные этапы разработки приложения J2EE, задаваемые спецификацией J2EE. Это следующие этапы:

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

В следующей таблице приведены этапы разработки приложений J2EE.

Создание приложения-клиента J2EE

Файл JAR, содержащий приложение-клиент J2EE

Провайдер компонентов приложений (разработчик программного обеспечения: сервлеты; проектировщик Web: страницы JSP и страницы HTML)

Файл WAR, содержащий Web-компонент

Создание объекта Enterprise JavaBean

Файл JAR, содержащий объект Enterprise JavaBean

Сборка приложения J2EE

Файл EAR, содержащий приложение J2EE

Развертывание приложения J2EE

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

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

Доставляемые объекты каждого этапа переносимы и не обязательно должны выполняться теми же пользователями или даже в той же среде; среда должна лишь удовлетворять требованиям платформы J2EE.

Дополнительная информация об упаковке и развертывании J2EE приведена на Web-сайте http://java.sun.com/. Выберите ссылку J2EE > Blueprints.

Дополнительная информация

Дополнительная информация о J2EE приведена в документе Sun J2EE Blueprints. Его можно найти на Web-сайте http://java.sun.com/. Выберите ссылку J2EE > Blueprints > Guidelines: Designing Enterprise Applications with the J2EE Platform, Second Edition.

Копия этого документа содержится также в Rational Unified Process.

Главы документа Sun J2EE Blueprints, содержащие информацию по конкретным темам, указаны в следующей таблице.

Источник

Сказочный портал
Этап разработки J2EE Задачи Выполняющая задачу роль J2EE Результат (доставляемый объект)