Канал
Аналогично тому, как клиент и сервер должны договориться по формату сообщений, они также должны договориться о механизме взаимодействия, или канале, с помощью которого будут передаваться данные. Каналы являются транспортными механизмами, с помощью которых передаются данные. Например, World Wide Web использует в качестве соглашения по каналу взаимодействия HTTP. Если клиентский компьютер может послать запрос HTTP к серверу, то сервер может ответить при помощи ответа HTTP и взаимодействие успешно состоится. Если клиентский компьютер передает запрос, используя канал SMTP, и получает данные в формате HTTP, то взаимодействия не произойдет. Аналогично веб, клиенты и серверы удаленного доступа должны договориться о канале взаимодействия.
Аналогично тому, как можно в .NET Remoting написать наш собственный форматер, также возможно создать наш собственный канал. Создание канала будет вопросом реализаций набора идентификаторов, которые будет понимать как клиент; так и сервер. Например, мы можем реализовать канал SMTP и посылать сообщения в формате SMTP.
.NET Framework поставляется с двумя готовыми каналами, которые называются каналами TCP и HTTP. Канал TCP взаимодействует по протоколу TCP и очень эффективен. Канал HTTP посылает сообщения по протоколу HTTP, высокоуровневому протоколу, основанному на TCP/IP.
Аналогично двоичному форматеру, канал TCP ограничен теми платформами, которые могут осуществлять взаимодействие по TCP. Обычно это означает, что, так же как и двоичный форматер, обе стороны взаимодействия должны быть клиентами .NET.
Канал HTTP посылает сообщения по протоколу HTTP. Если процессы клиента и сервера могут осуществлять взаимодействие по каналу HTTP, то взаимодействие будет успешным. Так как HTTP основан на TCP, канал HTTP не так эффективен, как взаимодействие на основе TCP. Однако так как протокол HTTP очень популярен и реализован на большинстве платформ, канал HTTP более гибок.
Принципы работы с каналами/форматерами
Комбинация канал/форматер является важным решением, которое мы должны принять при разработке. Использование настроечные файлов позволяет динамически изменять форматер и канал после развертывания приложения. Даже при наличии возможности изменения форматера и канала, при разработке приложения необходимо принять правильное решение относительно конфигурации. Не являясь строгим правилом, следующая таблица дает рекомендации по выбору форматера.
Канал
|
Форматер
|
Характеристики
|
TCP
|
Двоичный
|
Самая быстрая комбинация канал/форматер. Эта комбинация эффективного канала TCP и короткого двоичного формата является идеальным выбором для обеспечения скорости. Идеальным при условии, что оба клиента используют .NET.
|
TCP
|
SOAP
|
Обычно не используется. Если вы укажете канал TCP, то вы будете ограничены теми платформами, которые могут взаимодействовать по сырому TCP. При написании этой книги использование каналов TCP требовало .NET, в которой следует использовать двоичный форматер.
|
HTTP
|
Двоичный
|
Обычно не используется. Двоичный форматер реализован только в .NET. При наличии на обоих концах клиентов .NET, наилучшую производительность обеспечит комбинация TCP и двоичного форматера.
|
HTTP
|
SOAP
|
Идеальна для стандартизованного взаимодействия между клиентами .NET и «не-.NET». Производительность не так хороша, как в случае комбинации TCP/двоичный. Однако гибкость, предлагаемая этой комбинацией, идеальна для предоставления взаимодействия со всеми, кто поддерживает стек HTTP и SOAP. Является основой веб-служб.
|
Do'stlaringiz bilan baham: |