Слайд 2
![Application Server. Что это? Как это делают обычно? Какие проблемы Вы здесь видите?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-1.jpg)
Application Server. Что это?
Как это делают обычно?
Какие проблемы Вы здесь видите?
Слайд 3
![ApplicationServer. Что это? Как это делают обычно? Какие проблемы Вы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-2.jpg)
ApplicationServer. Что это?
Как это делают обычно?
Какие проблемы Вы здесь видите?
А что
если нам необходимо загрузить обновление нашей программы?
А что если нам необходимо соединение с базой данных, как мы это обеспечим?
Как будет проводится управление временем жизни ресурсов?
…
Слайд 4
![ApplicationServer. Что это? Что бы Вы могли предложить для решения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-3.jpg)
ApplicationServer. Что это?
Что бы Вы могли предложить для решения указанных проблем?
А
что если нам необходимо загрузить обновление нашей программы?
А что если нам необходимо соединение с базой данных, как мы это обеспечим?
Как будет проводится управлением временем жизни ресурсов?
…
Решение подсказывает заголовок слайда, но не будем торопиться.
Слайд 5
![N-Tier Многоуровневые архитектуры … Когда-то приложения были простыми:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-4.jpg)
N-Tier
Многоуровневые архитектуры …
Когда-то приложения были простыми:
Слайд 6
![N-Tier Многоуровневые архитектуры … Но потом, понадобилось обособить базу данных. Появились СУБД:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-5.jpg)
N-Tier
Многоуровневые архитектуры …
Но потом, понадобилось обособить базу данных. Появились СУБД:
Слайд 7
![N-Tier Многоуровневые архитектуры … Но были проблемы, разные … Как вы думаете, какие?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-6.jpg)
N-Tier
Многоуровневые архитектуры …
Но были проблемы, разные … Как вы думаете, какие?
Слайд 8
![N-Tier Многоуровневые архитектуры … Но были проблемы, разные … Как](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-7.jpg)
N-Tier
Многоуровневые архитектуры …
Но были проблемы, разные … Как вы думаете, какие?
Обновление
данных в СУБД (+Транзакции)
Версионность
Обновление
Управление слоем бизнес-логики
Сокрытие слоя бизнес логики, как средство борьбы с пиратством
Понадобилось выделение слоя бизнес-логики …
Слайд 9
![N-Tier Многоуровневые архитектуры … Понадобилось выделение слоя бизнес-логики …](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-8.jpg)
N-Tier
Многоуровневые архитектуры …
Понадобилось выделение слоя бизнес-логики …
Слайд 10
![N-Tier Многоуровневые архитектуры … Можно добавлять еще слоев, делая 4-,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-9.jpg)
N-Tier
Многоуровневые архитектуры …
Можно добавлять еще слоев, делая 4-, 5-, … Tier
приложения. Например, балансировщик нагрузки …
Слайд 11
![ApplicationServer Но для наших целей достаточно рассмотреть 3-Tier (трехуровневые) архитектуры.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-10.jpg)
ApplicationServer
Но для наших целей достаточно рассмотреть 3-Tier (трехуровневые) архитектуры.
Слайд 12
![ApplicationServer Таким образом сервер приложений позволяет: Выделить бизнес логику в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-11.jpg)
ApplicationServer
Таким образом сервер приложений позволяет:
Выделить бизнес логику в отдельный слой и
управлять ею
Централизованно конфигурировать и переконфигурировать приложения, управлять их жизненным циклом
Обеспечивать безопасность как самого кода, так и его выполнения
Улучшить производительность за счет нахождения обработки «рядом» с источником данных
Снизить суммарную стоимость владения (TCO)
Обеспечить поддержку транзакций
Слайд 13
![Упаковка enterprise-приложений Нам интересны два способа - .war и .ear](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-12.jpg)
Упаковка enterprise-приложений
Нам интересны два способа - .war и .ear
.war – Web
Archive
Включает зависимости (WEB-INF/lib)
Включает все классы (как jar, но в WEB-INF/classes)
Включает конфигурационный файл web.xml
.ear – Enterprise Archive
Может включать в себя несколько .war архивов (соответственно несколько приложений)
Содержит файлы описания приложений, например, jboss-all.xml или в общем случае application.xml
Слайд 14
![War с помощью maven ... war ... ... org.apache.maven.plugins maven-war-plugin src\main\webapp\WEB-INF\web.xml ... ...](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-13.jpg)
War с помощью maven
...
war
...
...
org.apache.maven.plugins
maven-war-plugin
src\main\webapp\WEB-INF\web.xml
...
...
Слайд 15
![Содержимое проекта для war В общем такое же как и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-14.jpg)
Содержимое проекта для war
В общем такое же как и для обычного
maven проекта
Нужна дополнительная директория src/main/webapp
Слайд 16
![web.xml Содержимое web.xml: xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> ... contextConfigLocation classpath:beans.xml org.springframework.web.context.ContextLoaderListener](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-15.jpg)
web.xml
Содержимое web.xml:
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
...
contextConfigLocation
classpath:beans.xml
org.springframework.web.context.ContextLoaderListener
Слайд 17
![ear с помощью maven ... ear ... ... maven-ear-plugin ru.mrdekk](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-16.jpg)
ear с помощью maven
...
ear
...
...
maven-ear-plugin
ru.mrdekk
warp
/warp
WAR-Project true target/classes ...
...
Слайд 18
![Содержимое проекта для ear Создаем earcontent и размещаем в нем необходимые конфигурации](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-17.jpg)
Содержимое проекта для ear
Создаем earcontent и размещаем в нем необходимые конфигурации
Слайд 19
![jboss-all.xml Содержимое weblogic-application.xml:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-18.jpg)
jboss-all.xml
Содержимое weblogic-application.xml:
Слайд 20
![war & ear Примеры смотрите в git](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/123298/slide-19.jpg)
war & ear
Примеры смотрите в git