понятных участникам взаимодействия. Предлагаем следующие рекомендации по повышению
возможности взаимодействия:
Для обеспечения возможности взаимодействия с широкой номенклатурой
платформ и устройств используйте стандартные протоколы и форматы данных,
такие как HTTP и XML. Не забывайте, что выбор протокола может оказывать
влияние на доступность целевых клиентов. Например, целевая система может быть
защищена межсетевыми экранами, блокирующими некоторые протоколы.
Продумайте вопросы управления версиями для интерфейсов и контрактов.
Необходимость в изменении сервисов может возникнуть из-за изменения бизнес-
требований, технологических требований или по другим причинам. В случаях, когда
изменения приводят к несовместимости интерфейса, контракта сообщений или
данных, создавайте новую версию, которая будет доступна клиентам наряду со
старой версией. Старую версию смогут использовать клиенты, не нуждающиеся в
новой функциональности, предоставляемой новым интерфейсом. Более подробно
эти вопросы рассматриваются в статье «Service Versioning» (Контроль версий
сервисов) по адресу http://msdn.microsoft.com/en-us/library/ms731060.aspx.
Выбор формата данных может влиять на возможность взаимодействия. Например,
целевые системы могут не понимать типы, характерные для той или иной
платформы, или по-разному выполнять обработку и сериализацию типов.
Принимаемые решения по шифрованию и дешифрованию могут влиять на
возможность взаимодействия. Например, некоторые алгоритмы
шифрования/дешифрования доступны не во всех системах.
Производительность
Дизайн интерфейсов и используемые форматы данных также оказывают существенное
влияние на производительность приложения, особенно при пересечении границ процесса или
физических границ. В то время как для других аспектов, таких как обеспечение возможности
взаимодействия, может потребоваться применение специальных интерфейсов и форматов
данных, улучшить производительность взаимодействия между разными слоями или уровнями
приложения можно с помощью определенных методик. При проектировании
производительности руководствуйтесь следующими рекомендациями:
По возможности, не передавайте лишние данные в удаленные методы и
максимально сократите объем передаваемых по сети данных. Это обеспечит
сокращение задержки сети и издержек на сериализацию. Кроме того, для
взаимодействия между процессами и компьютерами избегайте применения
детализированных интерфейсов, потому что в этом случае клиент вынужден
выполнять множество вызовов метода для осуществления одной логической
единицы работы. Применяйте шаблон Façade, он обеспечит слабо
детализированную оболочку для существующих детализированных интерфейсов.
Используйте DTO-объекты для передачи данных единым элементом, вместо того
чтобы передавать отдельные типы данных по одному.