Представление прокси на диаграмме компонентов UML

Как лучше всего описать архитектуру, состоящую из прокси, клиента и сервера (Интернет, SMTP, IMAP и т. д.), на диаграмме компонентов UML?

Какие виды коннекторов следует использовать между компонентами и есть ли способ показать, что хотя между клиентом и сервером есть прокси, клиент все равно обращается к серверу и на самом деле не интересуется прокси (это особенно важно если прокси прозрачный)?

Спасибо!


person silentser    schedule 16.01.2012    source источник


Ответы (2)


Лучший способ показать прокси — использовать стереотипы, пометив его <<proxy>>. Все знают, что такое прокси, так что это достаточно отказоустойчиво.

Помимо этого, используйте стандартные ассоциации UML между классами. Если хотите, можете также заключить прокси и клиент в квадрат, а сервер в другой квадрат, чтобы читатель мог понять, что они находятся в «разных» местах. Хотя это и не стандартный UML, это улучшит семантику вашей диаграммы.

person vainolo    schedule 17.01.2012
comment
Спасибо за ответ! Что меня особенно интересует, так это то, как отобразить, что клиент взаимодействует с сервером через интерфейс, предоставляемый сервером (например, в виде веб-службы), и прокси-компонент присутствует, но на самом деле не делает ничего интересного. Или, может быть, просто убрать прокси-компонент из диаграммы и нарисовать прямую зависимость между клиентом и интерфейсом сервера? - person silentser; 17.01.2012
comment
Наличие прокси значения не имеет, то не показывать его правильно. И да, создание зависимости от интерфейса клиента к серверу более правильно, чем зависимость от прокси, так что я бы так и сделал. И если вам понравился ответ, проголосуйте за него или отметьте его как правильный :-) - person vainolo; 20.01.2012
comment
Спасибо еще раз. Как и в другом ответе, я просто исключил прокси из диаграммы компонентов. - person silentser; 20.01.2012

Прокси — это абстракция, состоящая как минимум из двух частей: устройства и программного обеспечения. Я согласен, что стереотип прокси был бы полезен, но я бы применил его к узлу и компоненту на диаграмме развертывания. Подключите устройства на уровне физической сети; узлы на уровне логической сети (HTTP/SMTP/и т. д.) и компоненты на уровне открытого интерфейса.

person Martin Spamer    schedule 17.01.2012