Общая архитектура web-
приложения. Web-фреймворки
Разработчики. Занятие 15
Архитектура клиент-сервер
Архитектура клиент-сервер
Архитектура клиент-сервер
Эволюция:
1. Мэйнфрейм-терминал
2. Персональный компьютер
3. Локальные сети: одноранговые и с
выделенным сервером – толстый клиент
4. Интернет: HTTP-сервер, CGI – тонкий
клиент (браузер)
Архитектура клиент-сервер
Эволюция:
5. Мощные ПК-клиенты – развитие
апплетов, JS и Flash, Rich UI в браузере
6. Мобильные клиенты – нативные-
толстые, браузеры-тонкие
Архитектура клиент-сервер
Эволюция:
7. Сервер предоставляет API
(REST, RPC), клиент – любой, в том числе
другой сервер
9. Кластеры серверов приложений и БД
10. Облачные сервисы, виртуальные
хостинги
Что дальше?
Архитектура клиент-сервер
Framework:
1. остов, каркас,
2. структура, строение,
3. рамки, ограничения
Web-приложения
Java EE (JEE, J2EE) – платформа
для реализации клиент-
серверных приложений для
средних и крупных
предприятий
Web-приложения
JEE включает спецификации:
EJB – серверные компоненты,
содержащие бизнес-логику
JPA – сохранение объектов в БД
JNDI – управление именованными
ресурсами
Web-приложения
JEE включает спецификации:
JAAS – аутентификация и
авторизация
Servlet – интерфейс для
реализации ответов на запросы
клиентов (для веб-сервисов)
Web-приложения
JEE включает спецификации:
JSP – позволяет создавать html-
страницы со вставками кода (на
самом деле нет!)
JSF – компоненты для интерфейса
с сохранением состояния
JMS – сервис для обмена
сообщениями
Web-приложения
Типичная картина Enterprise-
приложения:
1. Oracle (Solaris, CentOS, Windows)
2. IBM WebSphere
3. Клиенты внутри предприятия
(Windows, IE)
Web-приложения
Контейнер сервлетов:
обеспечивает жизненный цикл
сервлетов, может
использоваться как HTTP-
сервер
Web-приложения
Сервер приложений:
обеспечивает весь набор
реализаций технологий Java EE
Web-приложения
Контейнеры сервлетов:
Tomcat
Jetty
Сервера приложений:
WebLogic
GlassFish
IBM WebShpere
JBoss
Web-приложения
Мир MicroSoft:
.NET, IIS, MS SQL, SilverLight и
т.д.
Web-приложения
Компилируемые языки:
Java – JEE, Spring,
PlayFramework
C# – .NET
Говорят, даже на C++ есть!
Web-фреймворки
Интерпретируемые
(скриптовые) языки:
PHP – Zend, Symfony, YII и т.д.
Python – Django, Pyramid
Ruby – Rails
Groovy – Grails
Web-фреймворки
Что обеспечивает фреймворк:
1. Взаимодействие с БД
2. Система маршрутизации по
ресурсам
3. Движок шаблонов страниц
4. Контейнер для компонентов
(опционально)
Компоненты web-фреймворков
Взаимодействие с БД:
1. Низкоуровневые
интерфейсы – JDBC, ODBC, PDO
2. Для ООП – ORM
Компоненты web-фреймворков
Контейнер :
1. Низкоуровневые
интерфейсы – JDBC, ODBC, PDO
2. Для ООП – ORM
Компоненты web-фреймворков

Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)