По результатам реализации сервиса осуществляется автоматизированная генерация кода для клиента, которая выполняется при помощи утилиты SWSUtil.exe. Некоторые фрагменты реализации этого кода (рис. 12.5), представляющие собой основные элементы этого кода, выглядят следующим образом: в этом описании присутствуют интерфейсы, которые называются ICalculator и ICalculatorClient. Дано описание класса ICalculatorClient, все, что касается его конечных точек с точки зрения адресов и основных функций, которые он реализует. Функции add, substract, multiply, divide, которые реализованы для этого интерфейса.
Рис. 12.4.Файл конфигурации WCF-сервиса
Заканчивая описание технологий WCF, хочется отметить, что эта технология достаточно зрелая, связана во многом с ядром Indigo, с достаточно поздними реализацией ОС: это прежде всего Windows Vista, Windows Server 2008, и здесь реализуется достаточно открытое по сравнению, скажем, с технологией Remoting, взаимодействие между клиентом и сервером. Как мы видели, существует большое количество возможных протоколов взаимодействия, которые прозрачным образом инкапсулируются в технологии W(P)AS, возможны взаимодействия как по протоколу HTTP, так и по протоколу TCP, MSNQ и т. д. При этом поддерживается взаимодействие не только с приложениями, разработанными на основе технологии. NET, но и на основе целого ряда других технологий. Центральным понятием является понятие хостинга, это реализация процесса, которая отвечает за обработку контекста выполнения сервиса. Принципиально важны процессы преобразования графа объектов в формат XML и обратно, сериализация, десериализация. Существует большое количество сценариев для управления потоками данных как на клиенте, так и на сервере, при этом осуществляется выбор вида данных, которые взаимодействуют, это управление транзакциями, управление безопасностью и т. д. Существует большое количество видов связывания. Для того чтобы осуществить взаимодействие, используется схема ABC, адрес, связывание, контракт. Применяется девять типов связывания, которые зависят от необходимости обеспечить интероперабельное взаимодействие, степень безопасности, вид взаимодействия с учетом используемого протокола, с использованием вида сетевого взаимодействия в его конкретизации: требуется ли связь точка – точка или локальное соединение и т. д. Связь между клиентом и сервером осуществляется на основе каналов, которые представляют собой стек протоколов на основе единого интерфейса ICommunicationObject, каналы при этом делятся на транспортные и протокольные и подразумевают как однонаправленное взаимодействие, так и гибкое взаимодействие по двунаправленной дуплексной схеме. Контракты в WCF имеют троякое представление – для сервисов, для данных и для сообщений и являются важной частью обеспечения взаимодействия между клиентом и сервером по схеме ABC. WCF – это Microsoft-версия реализации стратегии сервисно-ориентированной архитектуры, реализации программного обеспечения как сервиса, она поддерживает все необходимые классы. NET Framework, т. е. большое количество базовых операций и атрибутов по взаимодействию клиента и сервиса, поддерживает технологию Remoting и другие технологии Microsoft, а также дает возможность взаимодействия по открытым протоколам SOAP и HTTP с программным обеспечением других производителей, в том числе на основе стандартизованного языка обмена сообщениями WSDL на основе протокола XML.
Рис. 12.5.Код клиентской части WCF-сервиса
Глава 13
Разработка компонентных корпоративных систем
Эта глава посвящена компонентному программированию, компонентной разработке программных систем, в том числе и корпоративных, и разработке офисных приложений. Как уже говорилось, одним из важных аспектов идеологии. NET является компонентно-ориентированная разработка, которая понимается как развитие объектно-ориентированной парадигмы. Когда обсуждались открытые системы, упоминалось, что компонентный подход достаточно важен при разработке больших открытых систем на основе стандартных протоколов обмена информацией, поскольку в этом случае достаточно легко открываются и используются возможности адаптации, коррекции, развития, расширения программных систем путем изменения относительно небольшой доли кода, заключенного в критически важных компонентах приложения. Компоненты могут разрабатываться в рамках подхода. NET, на разных языках, людьми в географически разных местах и в итоге стыковаться, собираться в приложение. При этом во многом, если говорить о подходе, связанном с. NET, понятие «компонент» близко понятию «сборка». Ниже будет рассмотрена структура сборки, процесс ее дизассемблирования, перевод из языка Microsoft Intermediate Language – промежуточного ассемблера высокого уровня – в язык программирования, например C#. Будет показано, насколько хорошо это делает. NET, а также как выглядят метаданные сборки – те объекты и системные ресурсы, которые требуются компоненту для существования. Все это находится внутри компонента. Необходимо напомнить еще раз, что компонент – это самодостаточная единица с точки зрения развертывания и встраивания в полномасштабное корпоративное приложение.
Читать дальше
Конец ознакомительного отрывка
Купить книгу