2014-12-12 1 views
0

Я новичок в DDD, и я пытаюсь решить, как получить доступ к инфраструктурному оборудованию (сетевым устройствам, специализированным аппаратным средствам и т. Д.). У большинства устройств, с которыми я хочу общаться и управления, есть состояние. Я представляю устройства в домене как объекты, но для репликации состояния должен ли он через репозиторий или службу или какой-либо другой компонент.DDD-компонент для доступа к инфраструктурному оборудованию

Примером может служить: Если клиент покупает брандмауэр, будет выполняться команда AddFireWall, а vlan на сетевом устройстве будет переключаться на брандмауэр, а IP-адрес и частный IP-адрес будут размещены на этом устройстве брандмауэра. Я представляю сетевые устройства и устройства брандмауэра как объекты объектов в своем домене. Состояние этих объектов/устройств будет сохранено в репозитории.

+0

Является ли эта аппаратная часть бизнес-модели? Обычно репозиторий предназначен для БД, вы должны скрыть реальную инфструктуру за уровнем Антикоррупции. –

+0

Да, я пытаюсь контролировать оборудование и его состояние в зависимости от того, что происходит в бизнесе. – Clutch

ответ

0

Вообще говоря, модели домена должны быть свободны от внешних зависимостей, таких как аппаратные средства и сети и т. Д. Существует концепция, известная как слой Anti Corruption, который может стоить посмотреть вверх. Идея заключается в создании моста между такими системами, как аппаратное обеспечение и домен. Ответственность заключается в переводе между двумя системами. Если аппаратные или сетевые изменения, то все, что вам нужно настроить, это код в ACL.

Другие подходы могут включать в себя генерацию сообщений о событиях с аппаратного обеспечения. Эти сообщения затем могут быть подписаны на различные части вашей системы.

+0

Даже если оборудование способно напрямую распространять события на предприятии, уровень защиты от коррупции все равно должен использоваться, поскольку со временем аппаратное обеспечение, вероятно, будет обновлено, изменено или заменено. – arootbeer

+0

Я согласен, что ACL обеспечивает защиту от изменений. Однако вы можете использовать разные версии событий, и нет причин, по которым вы не можете их комбинировать, если это имеет смысл в конкретном домене. – Codescribler

Смежные вопросы