Порт — это канал обмена функциональностью между функциональными частями в системе. Также сама система имеет порт, через который она отдаёт свой сервис наружу в надсистему. Порты не имеют физического воплощения, физически порты воплощены модулями.
Интерфейс — это обмен между модулями. Сам по себе интерфейс не имеет физического воплощения, он воплощается через интерфейсные модули. При этом интерфейсный модуль имеет не один интерфейс: помимо целевого интерфейса для подключения надмодуля (частью которого является интерфейсный модуль) к другому надмодулю есть также интерфейс между интерфейсным модулем и смежным модулем в рамках системы. Интерфейс и модули ничего не знают про то, что именно они будут передавать: потоки каких сервисов и данных они будут обеспечивать.
Соединения — это физические соединения между модулями при размещении. Например, винтовое крепление, или физическая сцепка USB-модулей.
Когда рассматриваются два (или более) модуля, которые взаимодействуют между собой, необходимо сразу же рассматривать их интерфейсы — то есть каким образом модули будут взаимодействовать между собой, как физически будут осуществлён обмен между портами.
Есть несколько вариантов связи модулей между собой:
унификация — использование общих стандартов в индустрии/отрасли (220 вольт, USB, XML, 2НДФЛ) — просто и дешево, лучший вариант.
интеграция — разработка этих модулей с учетом того как они будут связаны, то есть проектирование модулей и их интерфейсов для взаимодействия — редкий кейс, дорого, сложно, “закрытая” разработка.
федерирование — применение “прослоек” и адаптеров в случае отсутствия стандартов, несовпадения интерфейсов — довольно частый случай
Когда реализуют стандарт интерфейса и портов, содержащих / предоставляющих / воплощающих этот интерфейс — этого стандарта стоит придерживаться максимально строго и полно (в отличие от стандарта практики, при реализации которого стоит брать только самое необходимое).
#порт #интерфейс #соединение #унификаци #федерирование #интеграция #модуль
Часть-целое, разбиение, эмерджентность — при разбиении важно понимать как будут связаны части системы между собой, а связаны они будут именно через порты и интерфейсы. Платформа + Так как платформа это готовое решение, то очень важно иметь описание интерфейсов и/или использовать стандартные интерфейсы для простоты работы с ними. Например: физические USB-разъёмы, протокол Ethernet, разметка JSON.
Дизайн интерфейса — как порт у физических устройств обеспечивает интерфейс, так и элементы UI обеспечивают тот самый пользовательский интерфейс, который воплощается только в момент использования.