WCF описание
Всем доброго времени суток. На связи Алексей Гулынин. Данный пост открывает цикл статей, посвященных теме WCF (Windows Communication Foundation). В данной статье я бы хотел кратко рассказать, что это за технология, где применяется и какие преимущества даёт.
В одной из своих статей, посвященных C#, я уже реализовывал пример WCF.
WCF — это технология предназначенная для построения распределенных (сервис-ориентированных) систем. WCF представляет собой некий Framework (набор классов), который входит в состав .NET Framework. WCF полностью написана на базе .NET Framework с использованием языка C#.
В данной статье подразумевается, что "сервис" и "служба" — это тождественные понятия. По ходу статьи понятие "служба" упоминаться не будет. Просто, не хотелось бы, что у вас возник вопрос, а что же такое "служба WCF". В данном случае — это одно и то же.
Распределенное приложение — это приложение, которое обязательно имеет серверную часть (некий сервис). К этому сервису подключаются клиенты. Например, так работает простой чат. Мы отправляем сообщение на сервер, а сервер в свою очередь отправляет сообщение уже конечному пользователю (тому, кому изначально предназначалось наше сообщение).
Другой пример: допустим, у нас есть сервис, который предоставляет фотографии. Мы отправляем запрос к этому сервису через специальный интерфейс (например, веб-адрес), а он нам в ответ присылает картинку. Данный запрос мы можем сделать из любого приложения, независимо от того, на каком языке они написаны. Здесь сразу оговорюсь, что я работал только с языками высокого уровня, которые поддерживают формат отправки запросов.
Все сервисы обмениваются друг с другом сообщениями. Существует стандарт, который определяет универсальный формат и структуру этих сообщений. Он нужен для того, чтобы различные поставщики программного обеспечения понимали форматы передаваемых сообщений (например, формат SOAP).
Некоторые принципы распределенных систем (приложений):
- Независимость организации системы от применяемых языков программирования. Здесь имеется в виду, что сервисы могут обмениваться друг с другом сообщениями независимо от того, на каком языке они написаны.
- Можно использовать сервисы независимо от конкретных приложений. В примере с изображением: можно его получать и в программе, которая показывает контакты сотрудников и, скажем, в какой-нибудь игре.
- Сервисы должны быть полностью автономными, либо слабо-связанными друг с другом.
- Независимость организации системы от используемых платформ. Сервисы должны успешно работать, как с Windows, так и с другими платформами. WCF успешно реализует данный пункт, так как поддерживаются все необходимые протоколы для взаимодействия и передачи данных.
Сервис WCF включает в себя несколько компонентов:
- Логика самой службы. Здесь находятся методы, к которым мы будем обращаться.
- Address (адрес). Адрес службы, т.е. туда куда нужно отправлять запросы.
- Binding (привязка). Это то как мы будем общаться с сервисом. К примеру будет ли шифрование сообщений.
- Contract (контракт). Это обычный интерфейс, к которому мы будем обращаться. Он организует работу между клиентом и сервером.
2 — 4 пункты являются основополагающими в службе WCF. В этом мы убедимся в следующей статье.
Главное преимущество WCF, на мой взгляд, в простоте реализации сервисов. В следующей статье мы в этом убедимся на примере создания простого сервиса приёма сообщений.
В данной статье вы кратко узнали про распределенные приложения и о том, что такое WCF.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.