Inversion of Control контейнер
Центральной частью Spring Framework является Inversion of Control контейнер, который предоставляет средства конфигурирования и управления объектами Java с помощью рефлексии. Контейнер отвечает за управление жизненным циклом объекта: создание объектов, вызов методов инициализации и конфигурирование объектов путем связывания их между собой. Объекты создаваемые контейнером также называются Управляемые объекты или Beans. Обычно конфигурирование контейнера осуществляется путем загрузки XML файлов, содержащих Определение Bean’ов и предоставляющих информацию необходимую для создания bean’ов. Объекты могут быть получены либо с помощью Поиска зависимости, либо Внедрения зависимости. Поиск зависимости — шаблон проектирования, когда вызывающий объект запрашивает у объекта-контейнера экземпляр объекта с определенным именем или определенного типа. Внедрение зависимости — шаблон проектирования, когда контейнер передает экземпляры объектов по их имени другим объектам либо с помощью конструктора, либо свойства, либо фабричного метода.
Spring контейнер читает конфигурационный файл beans.xml (описание контекста) и использует полученную информацию для связывания компонентов вместе. Описание контекста – это разновидность конфигурационного файла для создания приложения за пределами компонентов.
Вместо класса, который на прямую не инициализирует другой класс(результат)используется Spring контейнер. Spring контейнер считывает конфигурационный файл beans.xml, иницилизирует бины и затем связывает их соответственно конфигурационной информацией, содержащейся в beans.xml.
52. Spring Framework как коллекция фреймворков (фреймворков во фреймворке). Использование Фреймворка Аспектно-ориентированного программирования-АОП (Aspect Oriented Programming или AOP). Фреймворк доступа к данным: JDBC и Object-relational mapping. • Фреймворк Model-view-controller: Spring для конфигурирования модульного приложения. Основные методы и этапы разработки приложений Spring.
Spring – многоцелевая технология (фреймворк) для построения приложений. Основными функциями Spring являются поддержка IoC (инверсия контроля) и Аспектно-ориентированное программирование.Цель Spring – сделать более ясным и понятным код бизнес-логики, вынести из неё вспомогательные методы.
Spring Framework может быть рассмотрен как коллекция меньших фреймворков или фреймворков во фреймворке. Большинство этих фреймворков может работать независимо друг от друга, однако, они обеспечивают большую функциональность при совместном их использовании. Эти фреймворки делятся на структурные элементы типовых комплексных приложений: *Inversion of Control контейнер.*Фреймворк аспектно-ориентированного программирования.*Фреймворк доступа к данным.*Фреймворк управления транзакциями.*Фреймворк Model-view-controller.*Фреймворк удалённого доступа. *Фреймворк аутентификации и авторизации.*Фреймворк удалённого управления. *Фреймворк работы с сообщениями.
Модель-представление-контроллер.Spring MVC — фреймворк ориентированный на запросы и предоставляет некоторые возможности для разработчика:
Ясное и прозрачное разделение между слоями в MVC и запросах.
Стратегия интерфейсов — каждый интерфейс делает только свою часть работы.
Интерфейс всегда может быть заменен альтернативной реализацией.
Интерфейсы тесно связаны с Servlet API.
Высокий уровень абстракции для веб-приложений.
В веб-приложениях можно использовать различные части Spring Framework, а не только Spring MVC.
Доступ к данным.Spring предоставляет свой слой доступа к базам данных и поддерживает все популярные базы данных:JDBC, iBatis / MyBatis, Hibernate, JDO, JPA, Oracle TopLink, Apache OJB, Apache Cayenne и т. д.
Для всех этих фреймворков, Spring предоставляет такие особенности:
Управление ресурсами — автоматическое получение и освобождение ресурсов базы данных.Обработка исключений — перевод исключений при доступе к данным в исключения Spring-а.Транзакционность — прозрачные транзакции в операциях с данными.Распаковка ресурсов — получение обьектов базы данных из пула соединений. Абстракция для обработки BLOB и CLOB.
Аспектно-ориентированное программированиепозволяет указать программе, какие методы должны вызываться вместе с целевым. Такие вспомогательные методы называются adviceи позволяют уменьшить код бизнес-логики приложения, тем самым не смешивая его со вспомогательными методами (например, с методами логгирования, управления транзакциями и т.п.).
Spring контейнер читает конфигурационный файл beans.xml (описание контекста) и использует полученную информацию для связывания компонентов вместе. Описание контекста – это разновидность конфигурационного файла для создания приложения за пределами компонентов. Вместо класса, который на прямую не инициализирует другой класс(результат)используется Spring контейнер. Spring контейнер считывает конфигурационный файл beans.xml, иницилизирует бины и затем связывает их соответственно конфигурационной информацией, содержащейся в beans.xml.
Asynchronous JavaScript and XML (AJAX) - асинхронный код JavaScript и XML. Основные объекты, принципы и механизмы для разработки приложений AJAX. Структура и исполнение основных запросов. Этапы создания клиентской части. Использование DHTML для динамического изменения содержания страницы.
Ajax означает Асинхронный JavaScript и XML.В основе технологии лежит использование нестандартного объекта XMLHttpRequest(), необходимого для взаимодействия со скриптами на стороне сервера. Объект может как отправлять, так и получать информацию в различных форматах включая XML, HTML и даже текстовые файлы. Самое привлекательное в Ajax — это его асинхронный принцип работы. С помощью этой технологии можно осуществлять взаимодействие с сервером без необходимости перезагрузки страницы. Это позволяет обновлять содержимое страницы частично, в зависимости от действий пользователя. Технология основывается на разделении данных и подзагрузки тех или иных компонентов по мере необходимости.
Вот основные технологии, вовлеченные в Ajax-приложения:
· HTML используется для создания Web-форм и указания полей для использования в вашем приложении.
· JavaScript-код – это основной код, выполняющий Ajax-приложения и обеспечивающий взаимодействие с серверными приложениями.
· DHTML, или Dynamic HTML, помогает динамически обновлять формы. Вы будете использовать div, span и другие динамические HTML-элементы для разметки вашего HTML. н может быть использован для создания приложения в веб-браузере: например для более простой навигации или для придания интерактивности форм. DHTML может быть использован для динамического перетаскивания элементов по экрану.
· DOM, Document Object Model (объектная модель документов), будет использоваться (через код JavaScript) для работы и со структурой вашего HTML, и (в некоторых случаях) с XML, полученным от сервера.
AJAX — не самостоятельная технология, а концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах:
использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:
с использованием XMLHttpRequest (основной объект);
через динамическое создание дочерних фреймов;
через динамическое создание тега <script>.
через динамическое создание тега <img>, как это реализовано в google analytics.
использование DHTML для динамического изменения содержания страницы;
В качестве формата передачи данных могут использоваться фрагменты простого текста, HTML-кода, JSON или XML.
DHTML (динамический HTML) – это набор средств, которые позволяют создавать более интерактивные Web-страницы без увеличения загрузки сервера. Другими словами, определенные действия посетителя ведут к изменениям внешного вида и содержания страницы без обращения к серверу.
54. Web – сервисы Понятие СОА, назначение, основные принципы и возможности. Понятие WEB-сервисов, ключевые технологии Web-сервисов, их назначение и использование (XML, WSDL, SOAP, UDDI). Основные принципы функционирования Web-сервисов. Преимущества по сравнению с другими изученными технологиями разработки распределенных систем.
Web Services – новая технология для развертывания распределенныхвычислительных систем.
Сервис-ориентированная архитектура (СОА) – модульный подход к разработке программного обеспечения, основанный на использовании сервисов (служб) со стандартизированными интерфейсами. Представляет собой стиль создания архитектуры ИТ, направленный на превращение вашего бизнеса в ряд связанных сервисов - стандартных бизнес-задач, которые можно при необходимости вызывать через сеть.
Принципы СOA
-Архитектура, как таковая, не привязана к какой-то определённой технологии,
-Независимость организации системы от используемой вычислительной платформы (платформ),
-Независимость организации системы от применяемых языков программирования,
-Использование сервисов, независимых от конкретных приложений, с единообразными интерфейсами доступа к ним,
-Организация сервисов как слабо-связанных компонентов для построения систем
Используемые стандарты:
1)XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных;
2)SOAP: Протокол обмена сообщениями на базе XML;
( конверт (envelope), определяющий рамочную структуру сообщения в формате XML,
набор правил для представления типов данных,
соглашение о представлении вызова удаленных процедур (в режиме RPC),
правила совместного выполнения протоколов SOAP и HTTP. SOAP может использовать также комбинацию различных сетевых протоколов, таких как HTTP, SMTP, FTP, RMI/IIOP.)
3)WSDL: Язык описания внешних интерфейсов веб-службы на базе XML;
4)UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description and Integration). Каталог веб-служб и сведений о компаниях, предоставляющих веб-службы во всеобщее пользование или конкретным компаниям.
Достоинства веб-служб
Веб-службы обеспечивают взаимодействие программных систем независимо от платформы
Веб-службы основаны на базе открытых стандартов и протоколов. Благодаря использованию XML достигается простота разработки и отладки веб-служб
Использование интернет-протокола обеспечивает HTTP-взаимодействие программных систем через межсетевой экран
Недостатки веб-служб
Меньшая производительность и больший размер сетевого трафика по сравнению с технологиями RMI, CORBA, DCOM за счёт использования текстовых XML-сообщений. Однако на некоторых веб-серверах возможна настройка сжатия сетевого трафика.