Сборка и развертывание. Компонентное моделирование. Компонентное моделирование технологий J2EE. Представление Web-компонентов, страница 2

На рис. 15.3 изображена диаграмма компонентов EJB.

Интересно, что один файл архива может содержать несколько компонентов EJB. Это наиболее простой способ их группирования. Объединение компонентов в одном файле позволяет проявляться локальным отношениям между ними, поэтому такой способ очень полезен. При группировании в одном файле архива поля описателей для каждого компонента обычно объединяются в общий файл описателя. Эта схема действует и для Web-описателя в файле Web-архива.

На рис. 15.4 изображены два компонента EJB, объединенных в одном архиве. Заметьте, что эти компоненты имеют общий класс первичного ключа.


Компонентное моделирование приложений уровня предприятия

В компонентном моделировании приложений изображаются все составные части, из которых состоит приложение уровня предприятия на Java. В зависимости от конкретного случая сюда могут входить Web-компоненты, а также компоненты EJB.

На рис. 15.5 показана диаграмма компонентов всего приложения уровня предприятия на Java.

Приложение может также состоять из одних только компонентов EJB, доступ к которым происходит через приложение тонкого клиента. Если приложение HomeDirect будет иметь специализированный клиентский интерфейс, такое отношение можно изобразить с помощью ассоциации и стереотипа «Е JB Client Jar>>, как показано на рис. 15.6.



Моделирование развертывания

Развертывание — важный аспект приложений уровня предприятия. Моделирование развертывания позволяет показать, как именно разные составные части приложения будут распределены по компьютерам и процессам.

В моделировании развертывания участвуют лишь те элементы приложения, которые существуют на этапе выполнения. В J2EE к ним относятся различные файлы архивов, но не исходные файлы Java.

Главную роль на диаграмме развертывания играет концепция узла. Узел, как правило, представляет отдельный компьютер или какое-то подобное сочетание аппаратных средств. Для различения типов узлов применяются стереотипы. Между узлами могут быть каналы связи, изображаемые ассоциациями. Различные типы каналов связи также обозначаются стереотипами. На узлы отображаются экземпляры компонентов, существующие во время выполнения.

Дополнительно, в окружении J2EE надо оперировать с серверами разных типов. К ним относятся Web-серверы, серверы приложений, серверы баз данных и т.д. Мы будем выделять различные типы серверов тремя следующими стереотипами, что позволит моделировать приложения наиболее универсальным способом:

· <<Webserver>>

· <<ApplicationServer>>;

· <<DatabaseServer».

На рис. 15.7 показана диаграмма развертывания простого приложения.

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

На рис. 15.8 показана диаграмма развертывания программной системы с возможностью балансирования нагрузки.

Проcлеживаемость

Как было сказано в одной из предыдущих глав, возможность прослеживать выполнение требований в разработке составляет одно из важных преимуществ процесса RUP и управления от прецедентов. Теперь, когда мы полностью рассмотрели текстовые описания требований к приложению вплоть до их физического проявления в программной системе, целесообразно вновь вернуться к прослеживаемости и проиллюстрировать эту концепцию на конкретном примере в масштабе всей модели UML.

На рис. 15.9 прослеживаемость показана графически на примере компонента TransferServlet. Здесь ясно видно, что можно легко доказать необходимость существования этого компонента на основе текстовых требований, пройдя по цепочке прослеживаемости от требований к компоненту. Мы можем сделать так потому, что из текстовых требований непосредственно следует прецедент в модели прецедентов, который, в свою очередь, ведет к объекту управления TransferFunds в модели анализа и т.д. Эта модель полезна еще и тем, что, если требования к прецеденту "Перевод денег" изменятся, относительно просто будет выявить программные элементы, на которые повлияет это изменение.

Сборка и развертывание приложений уровня предприятия на Java