Skip to content

AndrePro/masterjava

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Многопоточность. XML. Веб сервисы

Разработка полнофункционального многомодульного Maven проекта

  • веб приложение (Tomcat, JSP, jQuery)
  • многопоточный почтовый сервиса (JavaMail, java.util.concurrent.*) и вспомогательные модули
  • связь модулей через веб-сервисы (SOAP, JAX-WS) и по REST (JAX-RS)
  • сохранение данных в RMDBS (H2) и динамическое конфигурирование модулей по JMX.

Требование к участникам

Опыт программирования на Java. Базовые знания Maven.

Необходимое ПО

Выбирать Ultimate, 30 days trial (работа с JavaScript, Tomcat, JSP). Учебный ключ к Ultimate выдается на первом занятии.

Первое занятие: многопоточность.

Concurrent vs Parallel

Структура памяти: куча, стек, permanent/metaspace

Ленивая инициализация


Ресурсы (основы)


hw Вступительное задание

Вычекать этот проект: git clone https://github.com/JavaOPs/masterjava.git

Реализовать метод MatrixUtil.concurrentMultiply, позволяющий многопоточно перемножать квадратные матрицы N*N.

  • Количество дочерних потоков ограничено MainMatrix.THREAD_NUMBER.
  • Учесть что-нибудь из оптимизации

Программа курса

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

Concurrent and Parallel Programming

  • Thread safety. Java Memory Model/ JSR 133. Happens-before.
  • Публикация объектов. Использование ThreadLocal переменных
  • Initialization on demand holder / Double-checked locking
  • Обзор java.util.concurrent.*

Microbenchmarking JMH

XML технологии

  • формат XML. XSD, XPath, XSL(T)
  • Java API for XML: DOM, SAX, StAX, XSLT

Сервис-ориентированная архитектура, Микросервисы

  • JMS, альтернативы
  • Варианты разворачивания сервисов. Работа с базой. Связывание сервисов.

Maven. Многомодульный Maven проект

  • Build Lifecycle
  • Dependency Mechanism
  • Зависимости, профили, написание плагина
  • The Reactor. Snapshots

Создание/тестирование веб-приложения.

  • Сборка, запуск, локальный и удаленный debug проекта, способы деплоя в Tomcat
  • tomcat7-maven-plugin

Веб-сервисы

  • Веб-сервисы. SOAP. Преимущества/недостатки веб-сервисов. Расширения.
  • Реализация веб-сервисов в Java. JAX-RPC, JAX-WS. Стили WSDL
  • Создание API и реализации веб-сервиса MailService.
  • Деплой и тестирование через SoapUI.

Доработка веб-сервиса. Кастомизация WSDL.

  • Работа с JAXB.
  • Передача по SOAP Exception
  • Включение wsdl в сервис для публикации.
  • Генерация java кода по WSDL

Реализация клиент веб-сервиса.

  • Публикация веб сервиса из main(). Дабавление wsdl
  • Выделение из wsdl общей части
  • Создание клиента почтового сервиса.
  • Тестирование с помощью JUnit 4
  • Интеграционное тестирование, maven-failsafe-plugin

JAX-WS Handlers

  • Logical/protocol handlers.
  • Логирование SOAP на стороне клиента.
  • Логирование и статистика трафика опубликованного веб-сервиса.
  • wsimport binding.
  • SoapHandler аутентификация. Добавляем файлы вложения. Mail-Service.

Создаем вложения почты

  • Генерация обновленного WSDL через wsgen
  • Веб-сервисы: JAX-WS attachment with MTOM
  • Тестирование вложений через SoapUi.

Загрузка файлов.

  • Стандарт MIME. Обрабатываем вложения на форме: commons-fileupload
  • Загрузка файла вместе в полями формы.
  • Вызов клиента с вложениями.

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

  • NoSQL or RDBMS. Обзор NoSQL систем. CAP
  • Обзор Java persistence solution: commons-dbutils, Spring JdbcTemplate, MyBatis, JOOQ, ORM (Hibernate, TopLink, ElipseLink, EBean used in Playframework). JPA. JPA Performance Benchmark
  • Работа с базой: создание базы, настройка IDEA Database.
  • Работа с DB через DataSource, настройка tomcat. HikariCP
  • Настройка работы с DataSource из JUnit.

REST веб сервис.

  • JAX-RS. Интеграция с Jersey
  • Поддержка Json. Jackson

Асинхронность.

  • @OneWay vs Java Execution framework
  • Добавление в клиенте асинхронных вызовов.
  • Асинхронные сервлеты 3.x в Tomcat

Динамическое конфигурирование. JMX

  • Maven Groovy cкрптинг. groovy-maven-plugin
  • Настройка Tomcat на удаленное администрирование по JMX

Проблема MemoryLeak. Поиск утечки памяти.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%