Скачать презентацию Введение в промышленное программирование на Java Лекции Практика Судаков Скачать презентацию Введение в промышленное программирование на Java Лекции Практика Судаков

lecture-jee[1].ppt

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

Введение в промышленное программирование на Java Лекции/Практика: Судаков Игорь Валерьевич Введение в промышленное программирование на Java Лекции/Практика: Судаков Игорь Валерьевич

Наши цели n n Детальное изучение различных аспектов работы над реальным проектом Знакомство с Наши цели n n Детальное изучение различных аспектов работы над реальным проектом Знакомство с технологиями Java Enterprise на уровне «понадобится – вспомню, найду, и разберусь, чтобы применить» 2

Средства n n Лекционный курс: теоретические основы; best practices; иллюстрируются примерами с проекта Практические Средства n n Лекционный курс: теоретические основы; best practices; иллюстрируются примерами с проекта Практические занятия: применение теории, изучение практических навыков, реальная работа над проектом 3

Стек технологий Java EE 5 Что? Зачем? Почем? Стек технологий Java EE 5 Что? Зачем? Почем?

Предмет n Обзор Java EE 5 n n n Основные концепции и идеи История Предмет n Обзор Java EE 5 n n n Основные концепции и идеи История Стек технологий Джентльменский набор Java EE: реальные задачи Узкие места и проблемы Стек технологий Java EE 5 5

Часть первая: ЧТО? Что представляет из себя Java EE 5? Часть первая: ЧТО? Что представляет из себя Java EE 5?

Основные цели Java EE n n n Приложения для реального бизнеса Web services Упрощение Основные цели Java EE n n n Приложения для реального бизнеса Web services Упрощение разработки как средство ускорения поставки продукта Свобода выбора платформ Простота стыковки частей в единое целое Стек технологий Java EE 5 7

Как всего этого достичь? n API n n n Стандарты разработки Функциональные возможности out Как всего этого достичь? n API n n n Стандарты разработки Функциональные возможности out of the box Контейнеры n n n Сервисы для обслуживания Стандарты взаимодействия Обеспечение жизненных циклов Стек технологий Java EE 5 8

Где все это крутится? Клиент Контейнер клиентских приложений Браузер Контейнер Web приложений Контейнер промышленных Где все это крутится? Клиент Контейнер клиентских приложений Браузер Контейнер Web приложений Контейнер промышленных приложений EJB Servlet Сервер приложений EJB Database Стек технологий Java EE 5 9

Сервер приложений n n n Транзакции Безопасность Масштабирование Конкурентная работа Взаимодействие компонентов Служба имен Сервер приложений n n n Транзакции Безопасность Масштабирование Конкурентная работа Взаимодействие компонентов Служба имен Стек технологий Java EE 5 10

Контейнер веб-приложений n n n Базовая функциональность веб-сервера Размещение веб-приложений Трансляция URL на вызовы Контейнер веб-приложений n n n Базовая функциональность веб-сервера Размещение веб-приложений Трансляция URL на вызовы веб-компонент Поддержка контекста веб-приложений Управление жизненными циклами вебкомпонент Стек технологий Java EE 5 11

Контейнер промышленных приложений n n n n Поддержка персистентности Поддержка транзакций уровня бизнеслогики Управление Контейнер промышленных приложений n n n n Поддержка персистентности Поддержка транзакций уровня бизнеслогики Управление жизненным циклом EJB Сообщения Удаленные вызовы посредством RMI-IIOP Публикация веб-сервисов Поддержка контекста приложений Инъекция зависимостей и поиск компонент Стек технологий Java EE 5 12

API Java EE 5: десять лет в строю Стек технологий Java EE 5 13 API Java EE 5: десять лет в строю Стек технологий Java EE 5 13

А что сейчас в Java EE 5? Уровень Web приложений Уровень промышленных приложений Servlets, А что сейчас в Java EE 5? Уровень Web приложений Уровень промышленных приложений Servlets, JSP JSTL, JSF Common Annotations, EJB 3, JCA, JAF, Java. Mail, JMS API, JPA, JTA Уровень Web-сервисов JAX-WS, JAX-RPC, JAXB, SAAJ, St. AX, Web Service Metadata Стек технологий Java EE 5 14

Уровень Web-приложений Стек технологий Java EE 5 Уровень Web-приложений Стек технологий Java EE 5

Servlets, JSP, JSTL n Servlets n n Java Server Pages n n n Java-модули, Servlets, JSP, JSTL n Servlets n n Java Server Pages n n n Java-модули, работающие на Web-сервере в модели request-response Out of the box поддержка многопоточности Предобработка запросов: фильтры Явное кодирование разметки Компилируются в сервлеты «на лету» Поддерживают библиотеки тегов Expression Language позволяет работать с Java-объектами Java Standard Tag Library n n Исключают Java-код из JSP Содержат общеупотребительные теги: циклы, условия, функции Стек технологий Java EE 5 16

Java Server Faces n n n Серверные компоненты для UI Библиотеки тегов для включения Java Server Faces n n n Серверные компоненты для UI Библиотеки тегов для включения UIкомпонент в JSP Серверные события, определяющие поведение Интернационализация Проверка ввода Стек технологий Java EE 5 17

Java EE 5: уровень Enterprise -приложений Стек технологий Java EE 5 Java EE 5: уровень Enterprise -приложений Стек технологий Java EE 5

Common Annotations n n n Метаинформация в коде Декларативный стиль программирования Эффективное применение: n Common Annotations n n n Метаинформация в коде Декларативный стиль программирования Эффективное применение: n n Инверсия контроля Многофункциональные POJO Стек технологий Java EE 5 19

Enterprise Java Beans 3 n n n Инкапсулируют бизнес-логику Управляются EJB-контейнером на основе метаданных Enterprise Java Beans 3 n n n Инкапсулируют бизнес-логику Управляются EJB-контейнером на основе метаданных Облегчают масштабирование системы Облегчают контроль целостности данных Предоставляют доступ к бизнес-операциям различным типам клиентов Стек технологий Java EE 5 20

Java Persistence API n n ORM для Java, основанный на POJO Метаданные n n Java Persistence API n n ORM для Java, основанный на POJO Метаданные n n n Управление жизненным циклом Связывание с RDBMS Язык запросов JPQL Стек технологий Java EE 5 21

Java Message Service API n n n Слабое связывание составных частей промышленного приложения Асинхронность Java Message Service API n n n Слабое связывание составных частей промышленного приложения Асинхронность Надежность Метаданные Модели n n Публикатор-подписчик Точка-точка Стек технологий Java EE 5 22

Java Transactions API n n Поддержка целостности данных Управление транзакциями n n n Контейнером Java Transactions API n n Поддержка целостности данных Управление транзакциями n n n Контейнером Приложением Метаданные Стек технологий Java EE 5 23

Прочее n J 2 EE Connector Architecture n n Java. Beans Activation Framework n Прочее n J 2 EE Connector Architecture n n Java. Beans Activation Framework n n Взаимодействие с внешними EIS Автоматическое распознавание операций, применимых к разным типам данных Java. Mail n Работа с e-mail в промышленных приложениях Стек технологий Java EE 5 24

Уровень Web-сервисов Стек технологий Java EE 5 Уровень Web-сервисов Стек технологий Java EE 5

Java API for XML-Based Web Services n Web-сервисы n n n Ориентированные на сообщения Java API for XML-Based Web Services n Web-сервисы n n n Ориентированные на сообщения (слабо связанные) JAX-RPC: прямые вызовы (сильная связь, не рекомендуется) Основа – W 3 C стандарты n n SOAP HTTP XML WSDL Стек технологий Java EE 5 26

Java Architecture for XML Binding n Связывание XML-представлений Webсервисов и Java-реализации n n Автоматическая Java Architecture for XML Binding n Связывание XML-представлений Webсервисов и Java-реализации n n Автоматическая генерация XMLпредставлений Конвертация Стек технологий Java EE 5 27

Прочее n St. AX n n n Потоковый двунаправленный парсер XML Ориентирован на операции Прочее n St. AX n n n Потоковый двунаправленный парсер XML Ориентирован на операции с XML при работе с веб-сервисами SAAJ n Работа с SOAP-сообщениями в JAXB-WS Стек технологий Java EE 5 28

Часть вторая: ЗАЧЕМ? Как из этих аббревиатур сделать что-то полезное? Часть вторая: ЗАЧЕМ? Как из этих аббревиатур сделать что-то полезное?

Блог n Простейшие бизнес-требования n n n CRUD операции с записями и комментариями Разделение Блог n Простейшие бизнес-требования n n n CRUD операции с записями и комментариями Разделение ролей: автор, комментаторы SEO-friendly URL Почтовая нотификация RIA usability n n Проверка ввода Отсутствие ненужных перезагрузок страниц Стек технологий Java EE 5 30

Браузеры Блог: «джентльменский набор» Java EE HTML, CSS, Java. Script Трансляция SEO URL SEO Браузеры Блог: «джентльменский набор» Java EE HTML, CSS, Java. Script Трансляция SEO URL SEO Filter JPA EJB Persistent POJO Server page EJB Persistent POJO Database Сервер приложений Server page Контенер Промышленных приложений EJB 3, JMS, MDB, Java. Mail Server page Контейнер веб-приложений Servlet filter JSF, JSP, XHTML Клиент: ввод и отображение данных Web-приложение: Разметка, поведение клиентов, обработка ввода Бизнес-логика, безопасность Уровень доступа к данным 31

Часть третья: ПОЧЕМ? Хождение по граблям: чего это стоит? Стек технологий Java EE 5 Часть третья: ПОЧЕМ? Хождение по граблям: чего это стоит? Стек технологий Java EE 5

Сервера приложений n n Все, что вне рамок стандартов, на разных платформах может работать Сервера приложений n n Все, что вне рамок стандартов, на разных платформах может работать по-разному Сочетание реализаций от разных производителей – рискованно Для схожих характеристик работы на разных платформах потребуется разное время на конфигурирование Дополнительные удобства – на усмотрение поставщика сервера Стек технологий Java EE 5 33

Web-приложения n RIA не поддерживаются на уровне стандартов n n Все реализации, например, AJAX-запросов Web-приложения n RIA не поддерживаются на уровне стандартов n n Все реализации, например, AJAX-запросов – сторонние, нестандартизованные JSF n n n Удлинение цепочки вызова для обработки компонент понижает производительность Хранение состояния view потребляет либо серверную память, либо трафик Разные фазы обработки JSF-тегов и JSTL могут приводить к непредвиденным результатам Стек технологий Java EE 5 34

Уровень промышленных приложений n С транзакциями – аккуратно! n n Управляемые контейнером транзакции могут Уровень промышленных приложений n С транзакциями – аккуратно! n n Управляемые контейнером транзакции могут работать по-разному на разных RDBMS Управляемые приложением транзакции не могут иметь вложенных транзакций Бездумное использование EJB – потеря производительности! Работа с JMS в кластерных решениях всегда сталкивается с проблемами конкретной реализации Стек технологий Java EE 5 35

The End Стек технологий Java EE 5 36 The End Стек технологий Java EE 5 36