Скачать презентацию Java Lecture 15 Основы Enterprise J 2 EE Скачать презентацию Java Lecture 15 Основы Enterprise J 2 EE

Enterprise_.pptx

  • Количество слайдов: 25

Java Lecture #15 Основы Enterprise J 2 EE Saint Petersburg, 2012 Java Lecture #15 Основы Enterprise J 2 EE Saint Petersburg, 2012

J 2 EE Overview § Java Platform, Enterprise Edition - набор спецификаций и соответствующей J 2 EE Overview § Java Platform, Enterprise Edition - набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий. § Цели спецификаций: Ø Ø обеспечить масштабируемость приложений обеспечить целостность данных во время работы системы § J 2 EE ориентирована на использование в вебе и локальных сетях § J 2 EE используется в высокопроизводительных проектах, где нужна гибкость, надежность, возможность получать и быстро и качественно обрабатывать данные больших объемов. 2

J 2 EE Overview J 2 EE версии: Version Name Release Date 1. 0 J 2 EE Overview J 2 EE версии: Version Name Release Date 1. 0 Java 2 Platform Enterprise Edition, v 1. 0 декабрь 1999 Java 2 Platform Enterprise Edition, v 1. 2 2000 1. 2. 1 Java 2 Platform Enterprise Edition, v 1. 2. 1 23 мая 2000 1. 3 Java 2 Platform Enterprise Edition, v 1. 3 24 сентября 2001 1. 2 1. 4 Java 2 Platform Enterprise Edition, v 24 ноября 2003 1. 4 § При переходе на версию 5. 0 изменилось и название спецификации с J 2 EE на Java Platform, Enterprise Edition, сокращённо Java EE. 5. 0 Java Platform, Enterprise Edition, v 5 11 мая 2006 6. 0 Java Platform, Enterprise Edition, v 6 6 декабря 2009 3

J 2 EE technologies § Технологии Java EE включает в себя стандарты следующих технологий: J 2 EE technologies § Технологии Java EE включает в себя стандарты следующих технологий: Name Description J 2 E E 1. 4 JE JE JE E 5 6 7 JAX-WS Java API for XML Web Services — Создание вебсервисов. 2. 1 3. 0 3. 1 3. 2 JPA Java Persistence API Нет 1. 0 2. 1 Servlet Обслуживание запросов веб-клиентов. 2. 4 2. 5 3. 0 3. 1 JSP Java. Server Pages — динамическая генерация вэб 2. 0 -страниц на стороне сервера. 2. 1 2. 2 JSTL Java. Server Pages Standard Tag Library Нет 1. 2 JSF Java. Server Faces — компонентный серверый фреймворк для разработки вэб-приложений на технологии Java Нет 1. 2 2. 0 4

J 2 EE technologies Name Description J 2 E JE JE E 1. 4 J 2 EE technologies Name Description J 2 E JE JE E 1. 4 5 6 JE E 7 JNDI Java Naming and Directory Interface — служба каталогов 1. 2 JMS Java Message Service — обмен сообщениями. 1. 1 2. 0 JTA Java Transaction API 1. 0. 1 B 1. 1 1. 2 JAAS Java Authentication and Authorization Service — Java реализация PAM 1. 0 Java. Mail Получение и отправка электронной почты 1. 2 1. 4 JACC Java Authorization Contract for Containers 1. 0 1. 1 1. 4 JCA J 2 EE Connector Architecture 1. 5 1. 6 JAF Java. Beans Activation Framework 1. 0 1. 1 St. AX Streaming API for XML Нет 1. 0 CDI Context and Dependency Injection Нет 1. 0 5

Application Server Сервер приложений J 2 EE (часто называемый J 2 EE-контейнер) — это Application Server Сервер приложений J 2 EE (часто называемый J 2 EE-контейнер) — это реализация системы в соответствии со спецификацией J 2 EE, обеспечивающая работу модулей с логикой конкретного приложения. Включает в себя как минимум следующие сервисы: üEJB-контейнер, который поддерживает автоматическую синхронизацию Java объектов с базой данных (CMP — container managed persistence, BMP — bean managed persistence); üJMS — сервис доставки сообщений между компонентами и серверами; üуправление ресурсами (доступ к СУБД, файловой системе, почтовому серверу и т. д. ); üбезопасность и защита данных; üподдержка транзакций (в том числе и распределённых, двухфазных). См. Java Transaction API. üвеб-сервер и сервлет-сервер; üподдержка веб-сервисов. üJSF 6

Application Server § Технологию J 2 EE рационально использовать для реализации крупных проектов, например Application Server § Технологию J 2 EE рационально использовать для реализации крупных проектов, например для организации сложных веб-порталов и предоставления услуг онлайн, особенно если необходимо обеспечить бесперебойную работу многих тысяч пользователей. 7

Servers Разновидности серверов § § § § Open Source серверы Apache Geronimo (использует Apache Servers Разновидности серверов § § § § Open Source серверы Apache Geronimo (использует Apache Tomcat или Jetty) Enhydra Enterprise (использует Apache Tomcat) Glass. Fish JBoss Application Server (Apache Tomcat optional) JOn. AS (использует Apache Tomcat) Resin (собственный Servlet и EJB контейнеры) Sun Java System Application Server (Референц имплементация на основе Glass. Fish) 8

Servers § § § Коммерческие серверы ATG Dynamo Application Server (DAS) IBM Web. Sphere Servers § § § Коммерческие серверы ATG Dynamo Application Server (DAS) IBM Web. Sphere SAP Net. Weaver Application Server Oracle Web. Logic (BEA) Oracle Application Server Orion Application Server Borland Application Server Отдельные Servlet/JSP Контейнеры Apache Tomcat — Open Source Caucho Technology Resin — Open Source Enhydra Server — Open Source Jetty — Open Source 9

Servers Отдельные EJB Контейнеры § Apache Open. EJB — Open Source 10 Servers Отдельные EJB Контейнеры § Apache Open. EJB — Open Source 10

J 2 EE Technologies - EJB § § § § Enterprise Java. Beans — J 2 EE Technologies - EJB § § § § Enterprise Java. Beans — спецификация технологии написания и поддержки серверных компонентов, содержащих бизнес-логику. Обычно применяется, когда бизнес-логика требует как минимум один из следующих сервисов, а часто все из них: поддержка сохранности данных (persistence); данные должны быть в сохранности даже после остановки программы, чаще всего достигается с помощью использования базы данных поддержка распределённых транзакций поддержка конкурентного изменения данных и многопоточность поддержка событий поддержка именования и каталогов (JNDI) безопасность и ограничение доступа к данным поддержка автоматизированной установки на сервер приложений удалённый доступ Каждый EJB компонент является набором Java классов со строго регламентированными правилами именования методов (верно для EJB 2. 0, в EJB 3. 0 за счет использования аннотаций выбор имен — свободный). 11

J 2 EE Technologies - EJB & JMS Бывают трех основных типов: § объектные J 2 EE Technologies - EJB & JMS Бывают трех основных типов: § объектные (Entity Bean) – аннотация @Entity, перенесены в спецификацию Java Persistence API § сессионные (Session Beans), которые бывают § без сохранения состояния (stateless) – состояние бина не сохраняется после вызова его метода (методов), поэтому клиент может менять его состояние, «общаясь» с бином § с поддержкой текущего состояния сессии (stateful) – состояние бина сохраняется на протяжении текущей сессии § один объект на все приложение (singleton), начиная с версии 3. 1 – создается при запуске приложения и удаляется при shutdown’е – поведение схоже со stateless, но у stateless бинов много инстансов (все эквивалентны на данный момент времени, но не во время вызова его метода) – пример отправки клиенту - отправка online заказа. 12

J 2 EE Technologies - EJB & JMS § Пример Entity Bean 13 J 2 EE Technologies - EJB & JMS § Пример Entity Bean 13

J 2 EE Technologies – EJB & JMS § Пример Session Bean - Stateless J 2 EE Technologies – EJB & JMS § Пример Session Bean - Stateless 14

J 2 EE Technologies – EJB & JMS управляемые сообщениями (Message Driven Beans) — J 2 EE Technologies – EJB & JMS управляемые сообщениями (Message Driven Beans) — асинхронная передача сообщений, логика бинов является реакцией на события в системе (схожа с логикой Listener’ов, только реакция происходит на получение сообщения, а не events). Отличие от Stateless Beans – MDB клиент обращается к JMS только через бин, а для Stateless Bean обращение производится через интерфейсы. Характерные черты MDB : § Выполняются при получении сообщений клиента. § Вызываются асинхронно. § Не отображают текущее состояние БД, хотя могут изменять эти данные. § Подчиняются транзакции. § Не сохраняют текущего состояния после обращения к ним. При получении сообщения контейнер преобразует его(сообщение) к одному из 5 типов-наследников Message класса в соответствии с потребностями бизнес - логики. Типы: § Bytes. Message – массив байтов § Text. Message – строка § Stream. Message – последовательность примитивов Java § Map. Message – множество пар ключ- значение. § Object. Message – Serializable объект(используется для обмена объектами) § 15

J 2 EE Technologies – JMS § § § § § JMS поддерживает две J 2 EE Technologies – JMS § § § § § JMS поддерживает две модели обмена сообщениями: «от пункта к пункту» и «издатель-подписчик» . Модель «от пункта к пункту» характеризуется следующим: Каждое сообщение имеет только одного адресата Сообщение попадает в «почтовый ящик» , или «очередь» адресата и может быть прочитано когда угодно. Если адресат не работал в момент отсылки сообщения, сообщение не пропадёт. После получения сообщения адресат посылает извещение. Модель «издатель-подписчик» характеризуется следующим: Подписчик подписывается на определённую «тему» Издатель публикует своё сообщение. Его получают все подписчики этой темы Получатель должен работать и быть подписан в момент отправки сообщения 16

J 2 EE Technologies - Servlet - интерфейс, реализация которого расширяет функциональные возможности сервера J 2 EE Technologies - Servlet - интерфейс, реализация которого расширяет функциональные возможности сервера (принимает запрос от клиента и возвращает ему же ответ). Специфичные сервлет классы: § javax. servlet. http Servlet Релиз Платформа Важнейшие изменения API версия Servlet 3. 0 Декабрь 2009 Java. EE 6, Java. SE 6 Pluggability, простота разработки, асинхронные сервлеты, безопасность, загрузка файлов Servlet 2. 5 Сентябрь 2005 Java. EE 5 , J 2 SE 5. 0 Требует J 2 SE 5. 0, поддержка annotations 17

J 2 EE Technologies - Servlet Life Cycle: Если инстанса сервлета не существует, то: J 2 EE Technologies - Servlet Life Cycle: Если инстанса сервлета не существует, то: • Сервлет-контейнер загружает . class сервлета; • Создает экземпляр сервлета; • Вызывает метод init() сервлета; • Вызывает метод service(), где происходит передача и прием request response объектов; • Если контейнеру нужно удалить сервлет, то происходит вызов метода destroy(). 18

J 2 EE Technologies - JSF Java Server Faces – стандартная спецификация(фреймворк) для создания J 2 EE Technologies - JSF Java Server Faces – стандартная спецификация(фреймворк) для создания UI собственно сервера приложений. JSF позволяет создавать web-приложения на серверной стороне и возвращать friendly-интерфейс по запросу клиента. Основан на паттерне MVC, что позволяет отделить бизнес логику от контроллера и пользовательского интерфейса. JSF запускается в сервлет-контейнере и содержит: § JSP pages § Server-side helper classes § A custom tag library for rendering UI components § A custom tag library for representing event handlers and validators § UI components represented as stateful objects on the server § Validators, event handlers, and navigation handlers. (Validators are used to validate data on individual components before the server-side data is updated. ) § Application configuration resource file for configuring application resources § 19

J 2 EE Technologies - JSF § § Пример использования JSF библиотеки тегов. <%@ J 2 EE Technologies - JSF § § Пример использования JSF библиотеки тегов. <%@ taglib uri="http: //java. sun. com/jsf/html" prefix="h" %> <%@ taglib uri="http: //java. sun. com/jsf/core" prefix="f" %> What is your name? 20

J 2 EE Technologies – JAX WS Web-service — идентифицируемая веб-адресом программная система со J 2 EE Technologies – JAX WS Web-service — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC и т. д. ). Используемые стандарты – XML, SOAP (протокол на базе XML), WSDL ( язык описания внешних интерфейсов веб-службы на базе XML), UDDI (Universal Discovery, Description and Integration - каталог веб-служб и сведений о компаниях, предоставляющих веб-службы во всеобщее пользование или конкретным компаниям). Достоинства: § платформенная независимость § разработаны на базе открытых стандартов (благодаря XML легче разрабатывать и отлаживать веб-службу). § Прямая интеграция с JAXB 2. 0. (Xml Binding – легкий доступ к XML документам). Недостатки: § меньшая производительность по сравнению с RMI, CORBA технологиями. Некоторые сервера приложений: Axis, Mono, Web. Logic, Jboss. 21

J 2 EE Technologies – JAX WS JAX-WS является заменой технологии JAX-RPC, предоставляя более J 2 EE Technologies – JAX WS JAX-WS является заменой технологии JAX-RPC, предоставляя более документо-ориентированную модель сообщений и упрощая разработку[1] веб -служб за счёт использования аннотаций, впервые появившихся в Java SE 5. Аннотации § @Web. Service — указывает на то, что Java класс (или интерфейс) является веб-службой. § @Web. Method — позволяет настроить то, как будет отображаться метод класса на операцию веб-службы. § @Web. Param — позволяет настроить то, как будет отображаться конкретный параметр операции на WSDL-часть (part) и XML элемент. § @Web. Result — позволяет настроить то, как будет отображаться возвращаемое значение операции на WSDL-часть (part) и XML элемент. § @Oneway — указывает на то, что операция является односторонней, то есть не имеет выходных параметров. § @SOAPBinding — позволяет настроить то, как будет отображаться вебслужба на протокол SOAP. 22

J 2 EE Technologies – JNDI Java Naming and Directory Interface (JNDI) - Java J 2 EE Technologies – JNDI Java Naming and Directory Interface (JNDI) - Java API, организованный в виде службы каталогов, который позволяет Java клиентам (используются RMI и Java EE) открывать и просматривать данные и объекты по их именам. JNDI включает в себя: § Механизм связывания объекта с именем; § Интерфейс поиска директорий который принимает запросы § Обработчик событий, который оповещает клиентов JNDI об изменениях в структуре каталогов. § LDAP расширение для поддержки дополнительных возможностей LDAP сервисов. § Для облегчения поиска того или иного имени JNDI фреймворк выстаривает иерархию имен. Именем может быть любое строковое значение, например “com. mydomain. ejb. My. Bean”, также можно использовать объект-потомок интерфейса Name. Данное имя связывается с объектом. JNDI определяет контекст, который содержит информацию о том, где искать тот или иной объект. Отправной точкой обычно служит Initial. Context (по сути - корень всех каталогов) 23

J 2 EE Technologies – JNDI Пример наглядно демонстрирует работу JNDI: Данный пример позволяет J 2 EE Technologies – JNDI Пример наглядно демонстрирует работу JNDI: Данный пример позволяет создать экземпляр Context, пользуясь файлом jndi. properties в classpath’е. 24

References § § § http: //en. wikipedia. org/wiki/Java_Naming_and_Directory_Interface http: //ru. wikipedia. org/wiki/Java. Server_Faces http: References § § § http: //en. wikipedia. org/wiki/Java_Naming_and_Directory_Interface http: //ru. wikipedia. org/wiki/Java. Server_Faces http: //www. oracle. com/technetwork/javaee/ejb/index. html http: //www. ibm. com/developerworks/ru/edu/j-intserv/section 2. html http: //docs. oracle. com/javaee/1. 3/jms/tutorial/ http: //en. wikipedia. org/wiki/Java_Message_Service 25