Сервисы контрактов WCF
Для построения распределенных средств как WCF или .Net Remoting используется принцип пирога из слоев, каждый слой которого отвечает за свой конкретный уровень абстракции и не знает ничего о нижележащих уровнях. То есть инфраструктура WCF состоит из двух главных уровней: Service Model Layer и Channel Layer. Первый уровень ближе к самому сервису клиента и обеспечивает превращение метода и его… Читать ещё >
Сервисы контрактов WCF (реферат, курсовая, диплом, контрольная)
Windows Communication Foundation (WCF) — программный фреймворк, предназначенный для обмена данными между приложениями, которые входят в состав .NET Framework. Он является логическим развитием предыдущих технологий компании Майкрософт, в частности веб-сервисов, .Net Remoting и DCOM. WebSphere Integration Developer использует операцию интеграции для разработки на платформе Eclipse 3.0 SCA модулей и сервисный интерфейс при реализации.
В основе WCF лежит SOA, которая заключается в том, что на сервере работает некоторое количество сервисов, которые представляют собой группу операций, определенных в некотором интерфейсе для получения абстрактных входных/исходныз параметров. Все это описывается в языке WSDL (Web Service Description Language) и может быть выставлено вверх с помощью, так называемых mex-endpoints (Metadata Exchange Endpoints). Это позволяет получить «метаданные» сервиса. Подключаясь к интерфейсу, можно получить описание сервиса и всех его операций, а также сгенерировать соответствующий прокси-класс для заданного языка или платформы. Сервис описывается в языке WCF, а использовать его можно с Java/Python/Ruby и т. п. Клиенты в свою очередь имеют на стороне прокси-классы, которые содержат ссылку на соответствующие операции на стороне сервиса.
В пределах WCF MS.Net действует технология и фабрики программ для нескольких веб-служб, а также фабрика сервисов. Основу технологии составляют схемы, «рецепты «, методы и средства построения фабрик разного назначения.
Фабрика программ сервисного типа включает в себя набор потребных ресурсов, блоков кода, документации, образцов приложений, автоматизированных инструментов и патернов VSIP для создания на их основе разных пакетов. Группа р&р Microsofts создает рекомендации, схемы и методы, а также стандарты их выполнения разработчиками готовой продукции. Фабрика сервисов дает рекомендации для их использования при проектировании и конструировании, которые накапливаются в Global Bank. К ним относятся ASP.Net для применения в WCF.
Фабрики программ и сервисов базируются на готовом наборе программных элементов и разного рода сервисов в MS.Net. Функционирование WCF зависит от так называемых конечных точек (endpoint), что составляет связь «Address — Binding — Contract», «АВС». Каждая составляющая играет важную роль:
" Address" содержит в себе место расположения конечной точки по абсолютному или относительному адресу;
" Binding" задает привязку и определят транспорт, на основе которого будет происходить взаимодействие. В объектной модели WCF есть ряд классовпривязок (BasicHttpBinding за HTTP, NetTcpBinding) за транспортом TCP; операция «Contract» задает взаимодействие клиента и сервиса и устанавливает связь с соответствующими операциями сервиса, который строит класс-прокси на стороне клиента.
Как правило, на сервисной стороне задается множество конечных точек. Кроме того, можно разместить немного сервисов на сервисной стороне. В результате, сервисная сторона распределенного приложения будет выглядеть как совокупность конечных точек. В этом случае клиент осуществляет соединение с той конечной точкой, которая ему необходимо.
Для построения распределенных средств как WCF или .Net Remoting используется принцип пирога из слоев, каждый слой которого отвечает за свой конкретный уровень абстракции и не знает ничего о нижележащих уровнях. То есть инфраструктура WCF состоит из двух главных уровней: Service Model Layer и Channel Layer. Первый уровень ближе к самому сервису клиента и обеспечивает превращение метода и его параметров в сообщение для передачи более низкому канальному уровню. Канальный уровень (Channel Layer) икапсулируст в себе канал передачи данных, которых может быть множество: каналов, которые используют как транспорт TCP, Http, Named Pipes и т. д. Каждый из этих уровней содержит подуровни, и может включиться в любой из них.
Контракты представляют собой описание сообщений, переданных конечными службами с возвратом. Конечная точка должна специфицироватся и может выполняться в формате ожидаемых данных. Совокупность этих спецификаций и является кон фактом.
WCF содержат три вида контрактов:
- 1) сервисов для описания функциональных операций, реализованных сервисом. Внутри контракта сервиса имеются контракты об операциях, как отдельные операции сервиса, оторые реализуют функции;
- 2) данных, определяющих формат данных, которыми будут обмениваться сервисы. Это относится как к запросу на сервис, так и к октету сервиса. Если используются примитивные типы — int, string и др., то контракт не нужен, потому что .Net понимается как сериализация и дисериализация типов. В случае применения комплексных типов — Customers, Order и др., н еобходимо указать принцип сериалиализации и дисериализаии этих объектов;
- 3) сообщений, как тип контракта, который используется для того, чтобы получить контроль над заглавном SOAP пакета.
Пример описания сообщения в языке XML.
Для обеспечения интероперабельности контрактов с широким диапазоном систем, используются языки WSDL и XSD, в этом случае программа работает с тинами CLR и необходимо отобразить одну систему типов на другую. Такая задача решается в три этапа.
Сначала при написании кода службы поставляется класс с определенными в WCF атрибутами [ServiceContract], [OperationContract], [FaultContract], [MessageContract] и [DataContract].
При написании клиентского кода в сервисе приводятся детали контракта посредством Visual Studio или утилиты svcutil. exe, которая вызывает инфраструктурную конечную точку сервиса для возврата данных, необходимых для генерации WSDL документа при получении их атрибутов.
На этапе выполнения клиента вызывается метод, определенный в интерфейсе сервиса, WCF сериализует типы CLR и вызов метода в формат XML и посылает сообщение в сеть для привязки и схемы кодировки, согласованной с WSDL. При этом участвуют четыре конструкции: две со стороны .NET и две со стороны XML. Со стороны .NET имеется тип CLR, который определяет структуры данных и функциональные возможности, но это делается лишь после того, как создан объект такого типа. Со стороны XML задается XSD-описание структуры данных, но сообщение осуществляется лишь после того, как будет создан экземпляр XML (XML Instance). Пример описания WCF сервиса подготовленный и апробированный студентом КНУ И. Радецьким в рамках магистровской диссертации (2012).