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

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

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

Компонентные технологии и 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

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