Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
My_shpory_Ivan_Ivanich (2).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
149.35 Кб
Скачать

28. Средства распараллеливания выполнения запросов plinq.

Параллельный LINQ (PLINQ) является параллельной реализацией LINQ to Objects. PLINQ реализует полный набор стандартных операторов запроса LINQ как методы расширения для пространства имен T:System.Linq и имеет дополнительные операторы для параллельных операций. PLINQ объединяет простоту и удобство чтения синтаксиса LINQ с мощностью параллельного программирования. Подобно коду, предназначенному для библиотеки параллельных задач, запросы PLINQ масштабируют в степень параллелизма на основе возможностей главного компьютера.

Во многих сценариях PLINQ может значительно увеличить скорость запросов LINQ to Objects, более эффективно используя все доступные ядра на главном компьютере. Повышенная производительность увеличивает вычислительную мощностью на рабочем столе.

Класс System.Linq.ParallelEnumerable предоставляет практически все функциональные возможности PLINQ. Он и остальные типы пространства имен System.Linq компилируются в сборку System.Core.dll. Проекты C# и Visual Basic по умолчанию в Visual Studio ссылаются на эту сборку и импортируют пространство имен.

Класс ParallelEnumerable включает реализации всех стандартных операторов запросов, поддерживаемых LINQ to Objects, хотя он предпринимает попытки параллелизации каждого из них.

var source = Enumerable.Range(1, 10000);

var evenNums = from num in source.AsParallel()

where num % 2 == 0

select num;

29. Основы wcf. Основные понятия, применение. Контракты данных, привязки. Архитектура сервис-ориентированных систем.

WCF — это среда выполнения и набор API-интерфейсов для создания систем, которые обеспечивают обмен сообщениями между службами и клиентами. Те же инфраструктура и интерфейсы API используются для создания приложений, обменивающихся данными с другими приложениями на данном компьютере или на компьютере, который находится в другой компании, и доступ к которому можно получить через Интернет.

В основе WCF лежит принцип связи с помощью обмена сообщениями, и любые объекты, моделируемые в виде сообщений (например, HTTP-запрос или сообщение очереди сообщений, MSMQ), можно представить единым образом в модели программирования. Это обеспечивает универсальный интерфейс API для разных транспортных механизмов.

В модели различаются клиенты, являющиеся приложениями, которые инициируют связь, и службы, являющиеся приложениями, которые ожидают связи клиентов с ними и отвечают им. Одно приложение может быть как клиентом, так и службой. Примеры см. в разделах Дуплексные службы и Одноранговая сеть.

Между конечными точками выполняется обмен сообщениями. Конечные точки — это места, где отправляются или принимаются сообщения и где определяются все сведения, необходимые для обмена сообщениями. Служба предоставляет одну или несколько конечных точек приложения (а также ноль или более конечных точек инфраструктуры), а клиент создает конечную точку, совместимую с одной из конечных точек службы.

Конечная точка стандартным способом описывает место отправки сообщений, способ отправки сообщений и вид сообщений. Служба может предоставлять эту информацию в виде метаданных, которые клиенты могут обрабатывать для создания соответствующих клиентов WCF и стеков связи.

Контракты данных

Поскольку платформа WCF построена на основе .NET Framework, в нее входят удобно используемые в коде методы передачи контрактов, которые нужно принудительно выполнять. Одним из универсальных типов контрактов является контракт данных. Если код службы создается на языке Visual C# или Visual Basic, то самым простым способом обработки данных фактически является создание классов, которые представляют сущность данных со свойствами, принадлежащими сущности данных. WCF включает сложную систему для работы с данными этим удобным способом. После создания классов, представляющих данные, служба автоматически создает метаданные, которые позволяют клиентам обеспечивать соответствие заданным типам данных.

Привязки

Привязка имеет имя, пространство имен, а также коллекцию компонуемых элементов привязки (BindingElement). Имя и пространство имен привязки уникально идентифицируют ее а пределах сервиса. Каждый элемент привязки описывает как конечная точка общается с вешним миром.

Windows Communication Foundation (WCF) ― это унифицированная интегрированная среда для создания защищенных, надежных, транзакционных и интероперабельных распределенных приложений.В более ранних версиях Visual Studio имелись некоторые технологии, которые можно было использовать для взаимодействия между приложениями.

Однако если требовалось обеспечить совместный доступ к информации с любых платформ, необходимо было использовать веб-службу (также известную как веб-служба ASMX). Если достаточно было только обеспечить передачу данных между клиентом и сервером, использующим ОС Windows, то использовалось удаленное взаимодействие .NET Remoting. Если требовалось обеспечить транзактные коммуникации, то нужно было использовать Enterprise Services (DCOM), а если требовалось реализовать модель с организацией очереди, то нужно было использовать Message Queuing (или MSMQ).

WCF сводит воедино функциональные возможности всех этих технологий в унифицированную модель программирования. Это упрощает взаимодействие между разработанными распределенными приложениями.

Службы Службы данных WCF взаимодействуют с базой данных напрямую, что позволяет возвращать данные с помощью стандартных операций HTTP: GET, POST, PUT или DELETE. В общем случае службы Службы данных WCF оптимально подходят для приложений, используемых при создании, обновлении или удалении записей базы данных.

Методы и функции, которые предоставляются службой WCF, задаются путем пометки их атрибутом OperationContractAttribute. Кроме того, можно предоставить сериализованные данные, пометив составной тип атрибутом DataContractAttribute. Это делает возможным привязку данных на клиенте.

После того как интерфейс и его методы были определены, они инкапсулируются в класс, реализующий этот интерфейс. Множественные контракты службы WCF может реализовать единственный ее класс.

Служба WCF предоставляется для использования посредством того, что называется конечной точкой. Конечная точка ― это единственный способ сообщения с этой службой; невозможно получить к ней доступ посредством прямой ссылки, в отличие от других классов..

Конечная точка состоит из адреса, привязки и контракта. Адрес задает расположение сервера; это может быть URL-адрес, FTP-адрес, а также сетевой или локальный путь. Привязка задает способ сообщения с этой службой. Привязки WCF предоставляют гибкую модель для задания протокола, например HTTP или FTP, механизма обеспечения безопасности, например проверка подлинности Windows или имена и пароли пользователей, и многого другого. Контракт включает операции, предоставляемые классом службы WCF.

Для одной службы WCF может быть предоставлено несколько конечных точек. Это дает возможность разным клиентам взаимодействовать с одной и той же службой разными способами. Например, банковская служба может предоставить одну конечную точку для сотрудников, а другую ― для внешних клиентов, причем каждая конечная точка будет использовать другой адрес, привязку и/или контракт.

Пример 1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]