Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Презентации / Lecture12p

.pdf
Скачиваний:
0
Добавлен:
23.06.2026
Размер:
920 Кб
Скачать
☆

Компонентные технологии и Web-приложения

Основы программной инженерии

Кулямин В.В., ВМК МГУ

Понятие программного компонента

•В большинстве случаев «компонент» является синонимом «модуля» – отдельного куска программного кода, взаимодействие с которым из других частей кода возможно только через специально выделенный интерфейс этого модуля

•В рамках компонентных технологий «компонент» – это программный модуль, являющийся также атомарной единицей развертывания

•Т.е., компонент можно вставить в систему или убрать из нее только целиком, никакую его часть нельзя

•Вставленный в систему компонент становится работоспособен, если все его зависимости удовлетворены (компоненты, реализующие все интерфейсы, операции которых вызываются им в ходе работы, тоже есть в системе)

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

2

Понятия компонентных технологий

•Компонентная технология – предполагает построение систем из компонентов на основе общей компонентной модели, позволяющей им взаимодействовать, и компонентной среды, реализующей эту модель

•Компонентная модель (component model) – набор правил описания компонентов и организации их взаимодействия, позволяющих им работать совместно

•Компонентная модель обычно имеет в основе язык оформления интерфейсов компонентов, иногда, но не всегда – языки их реализации

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

•Бывают частично совместимые или включающие друг друга компонентные модели

•В первом случае некоторые компоненты могут быть написаны так, что способны взаимодействовать в рамках любой из моделей

•Во втором случае компоненты в рамках более узкой модели всегда работоспособны и в рамках более широкой

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

3

Понятия компонентных технологий

•Компонентная среда (component framework) – спецификация компонентной модели вместе с некоторым набором базовых служб

•Базовые службы (basic services) – набор инфраструктурных функций, поддерживающих работоспособность компонентных систем

•Служба поддержки удаленного вызова методов

•Служба поддержки передачи асинхронных сообщений

•Служба регистрации и идентификации компонентов

•Служба поддержки организации транзакций

•Служба поддержки балансировки нагрузки

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

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

4

Примеры

•Компонентная среда JavaEE

•Компонентная модель – компоненты должны реализовываться классами в байт-коде

JVM

•Базовые службы – почти все, что есть в библиотеках JavaEE

•Компонентная среда .NET

•Компонентная модель – компоненты должны реализовываться классами в байт-коде

MSIL

•Базовые службы – почти все, что есть в библиотеках .NET

•Web-службы

•В «тяжелом» варианте интерфейсы описываются на WSDL (Web Service Definition Language, основан на XML), в более «легких» – используется только часть такого описания

•Компоненты должны уметь обрабатывать сообщения SOAP (Simple Object Access Protocol, стандартизованные XML-описания вызовов или результатов, пердаваемые поверх HTTP)

•Наборы базовых служб разнятся в разных реализациях

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

5

Интерфейс компонента

Состоит из операций

•Каждая операция имеет сигнатуру ResultType op (ArgType1 a1, …, ArgTypeN an)

•Каждая операция имеет контракт

•Предусловие

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

•За выполнение отвечает клиент – вызывающий компонент

•Постусловие

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

•За выполнение отвечает реализация компонента

o Принцип подстановки – описывает корректность реализации интерфейса

•Из предусловия для операции интерфейса следует предусловие ее реализации

•Из постусловия реализации следует постусловие операции интерфейса

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

6

Web-технологии

•Технологии построения распределенных систем на основе инфраструктуры Web

•Протоколом взаимодействия служит HTTP

•Клиентской частью системы является Web-браузер

•Пользовательский интерфейс разрабатывается на основе HTML

•Преимущества

•Не нужно развертывать специфические компоненты на клиентской машине – на всех есть браузер

•Не нужно учить пользователей работе со специфическим набором элементов интерфейса

•Не нужно специальным образом настраивать сеть – практически всегда взаимодействие по HTTP уже настроено

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

7

Компонентные Web-технологии

•Web-технологий очень много, далеко не все они компонентные

•Наиболее широко используемые компонентные технологии построения Web-приложений – JavaEE, .NET и различные варианты Web-служб

•Для Web-служб все равно, как именно сделаны обработчики сообщений на SOAP (или менее нагруженном варианте описания обращений)

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

8

Архитектура Web-приложений

Клиент

Браузер

HTML-страницы

(опционально)

 

Сервер

Балансировка нагрузки

 

Контейнер

 

 

 

Web-сервер

 

запросы

Controller

Business

LB

 

Logic

HTTP

SP

 

ответы

 

 

 

HTML

 

 

Используемые архитектурные стили

•Model-View-Controller

•Многоуровневая система

•Репозиторий

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

9

Различные службы

•Связь

•Синхронная

•java.rmi

•System.Runtime.Remoting

•Асинхронная

•javax.jms

•System.Messaging

•Именование

•javax.naming

•System.DirectoryServices

•Целостность

•javax.transaction

•System.EnterpriseServices

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

10

Соседние файлы в папке Презентации