Upload
7bits
View
141
Download
1
Embed Size (px)
Citation preview
Общая архитектура 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 WebSphere3. Клиенты внутри предприятия (Windows, IE)
Web-приложения
Контейнер сервлетов:обеспечивает жизненный цикл сервлетов, может использоваться как HTTP-сервер
Web-приложения
Сервер приложений:обеспечивает весь набор реализаций технологий Java EE
Web-приложения
Контейнеры сервлетов:TomcatJettyСервера приложений:WebLogicGlassFishIBM WebShpereJBoss
Web-приложения
Мир MicroSoft:.NET, IIS, MS SQL, SilverLight и т.д.
Web-приложения
Компилируемые языки:Java – JEE, Spring, PlayFrameworkC# – .NET
Говорят, даже на C++ есть!
Web-фреймворки
Интерпретируемые (скриптовые) языки:PHP – Zend, Symfony, YII и т.д.Python – Django, PyramidRuby – RailsGroovy – Grails
Web-фреймворки
Что обеспечивает фреймворк:1. Взаимодействие с БД2. Система маршрутизации по ресурсам3. Движок шаблонов страниц4. Контейнер для компонентов (опционально)
Компоненты web-фреймворков
Взаимодействие с БД:1. Низкоуровневые интерфейсы – JDBC, ODBC, PDO2. Для ООП – ORM
Компоненты web-фреймворков
Контейнер :1. Низкоуровневые интерфейсы – JDBC, ODBC, PDO2. Для ООП – ORM
Компоненты web-фреймворков