Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Веб-сервисы

Определившись с технологиями доступа к данным и СУБД, необходимо выбрать также технологию обмена данными между сервером и клиентским приложением Silverlight – платформу веб-сервисов. На сегодняшний день разработчикам на.Net доступно несколько таких платформ, их выбор, как и в случае с выбором технологии доступа к данным, зависит от поставленных перед проектом задач. К выбору платформы веб - сервисов необходимо отнестись очень внимательно, поскольку от него во многом зависит успех разработки всей системы. Итак, рассмотрим основные технологии веб-сервисов, предложенные компанией Microsoft.

Windows Communication Foundation (WCF) представляет собой новое поколение коммуникационной инфраструктуры Microsoft, построенной на основе архитектуры веб-сервисов. Расширенная поддержка веб-сервисов в Windows Communication Foundation обеспечивает безопасную, надежную транзакционную систему передачи сообщений с возможностью реализации гетерогенных систем.

С точки зрения разработчика технология представляет собой набор классов, экземпляры которых размещаются в каком-либо процессе Windows. Чаще всего для этого используется процесс веб-сервера (IIS). При этом запрос к сервису осуществляется через URL, а передача - либо в формате xml, либо в двоичном виде. Для работы механизма необходимо создать в серверном проекте сервис WCF, а в клиентском (в данном случае это приложение Silverlight) - добавить ссылку на этот веб-сервис. Чтобы осуществить обмен данными между клиентом и сервером, необходимо, чтобы содержащие эти данные классы могли быть сериализованы. Как следствие, передать через сервис класс, сгенерированный, к примеру, дизайнером сущностей Entity Framework, нельзя. Для обхода этого ограничения нужно написать вспомогательный класс, у которого кроме всего прочего, передаваемые свойства помечены специальным атрибутом – DataContract. Помимо этого, если передаваемый класс содержит ссылку на еще один класс данных, то он также должен быть сериализуем. В результате для того, чтобы иметь возможность передавать данные, необходимо фактически переписать вручную структуру сущностей, сгенерированных дизайнером ORM. Такой подход оправдан при небольшом наборе сущностей, которые подлежат передаче через сервис, а также в сервисе, который вообще не использует классы данных, а служит лишь для управления некоторой серверной логикой (к примеру, получение серверного времени). Таким образом, при наличии сложной системы сущностей использование сервисов WCF значительно замедляет создание и доработку системы. Однако использование этой технологии оправдано в тех системах, где в основном требуется передавать созданные вручную классы или команды.

Службы WCF Data Services (которые раньше назывались «ADO.NET Data Services») — это компонент платформы.NET Framework, с помощью которого можно создавать службы, использующие Протокол Open Data Protocol (OData) для передачи и получения данных через Интернет или интрасеть с помощью семантики REST. Службы OData предоставляют данные в качестве ресурсов, доступ к которым осуществляется с помощью URI. Доступ и изменение данных производится с помощью таких стандартных команд HTTP, как GET, PUT, POST и DELETE. В службах OData используются соглашения связи сущностей модели Entity Data Model для предоставления ресурсов в виде наборов сущностей, связанных с помощью сопоставлений.

При использовании этой технологии роль слоя приложений фактически сведена к минимуму. Веб-служба выступает лишь как посредник между источником данных и клиентским приложением. В результате сложность разработки уменьшается – с клиентского приложения можно выполнить практически любой запрос к базе данных посредством WCF Data Services. Такой подход удобен в тех случаях, когда в клиентском приложении требуется лишь отображать данные соответствующих таблиц БД, а обработка данных на сервере минимальна или полностью отсутствует. Примером таких систем могут служить информационные панели в общественных местах - расписания транспорта, электронные очереди в банках и так далее. Однако в случаях, когда на сервере приложений планируется обрабатывать получаемые и возвращаемые веб-сервисом данные, либо когда веб-сервис должен содержать методы, не связанные с обменом данных с БД, применение данной технологии становится невыгодным..

WCF RIA Services. Службы WCF RIA упрощает разработку многоуровневых решений класса RIA (полнофункциональных интернет-приложений), таких как приложения Silverlight. Типичной проблемой при разработке многоуровневого решения RIA является согласование логики среднего уровня и уровня представления. Чтобы обеспечить максимальное взаимодействие с пользователем, клиент Службы RIA должен учитывать логику приложения, которое находится на сервере. Однако было бы нежелательным разрабатывать и поддерживать одну и ту же логику приложения как на уровне представления, так и на уровне логики приложения. Службы RIA решает эту проблему, поскольку в составе платформы имеются компоненты, инструменты и службы, обеспечивающие доступ клиента Службы RIA к логике приложения на сервере без необходимости вручную дублировать эту программную логику. Можно создать клиент Службы RIA, учитывающий бизнес-правила, и при каждой компиляции решения эта логика будет автоматически обновляться на клиенте. На рисунке 1 показана упрощенная версия многоуровневого приложения. Службы RIA посвящены в основном решению задач в прямоугольнике между уровнем представления и уровнем доступа к данным (DAL) и позволяет упростить разработку многоуровневого решения с клиентом Службы RIA.


Рис.1. Схема работы RIA

Как можно видеть, преимуществами технологии является автоматическая генерация сериализованных классов на основе контекста данных LINQ to SQL или LINQ to Entities на сервере и клиенте, а также автоматическая синхронизация серверного и клиентского контекстов при построении проектов. Помимо этого, существует возможность создавать пользовательские методы, возвращающие созданные вручную сущности (члены классов должны быть помечены атрибутом сериализации, как в WCF Services). Таким образом, технология соединяет в себе преимущества WCF Services и WCF Data Services. Помимо этого, необходимо отметить легкость, с которой можно создать контекст аутентификации. В распоряжении разработчика оказывается функциональный шаблон сервиса аутентификации, код которого также автоматически синхронизируется с кодом клиентского приложения, что значительно упрощает разработку.

WCF RIA Services использует для обмена данными с клиентами Silverlight технологию SOAP, передавая данные в двоичном виде. Это затрудняет возможную кражу информации и уменьшает объём трафика. Однако с остальными клиентами используется xml-формат SOAP для передачи данных.

Службы WCF RIA в настоящее время оптимизированы для работы с клиентом Silverlight в том смысле, что поддерживает автоматическое создание кода для учетной записи-посредника Silverlight. Однако служба домена может быть вызвана и из других клиентов.NET, таких как клиент ASP.NET. Иными словами, технология была создана с учетом особенностей работы с Silverlight-клиентом.

Среди упомянутых технологий веб-сервисов для Silverlight-клиентов по мнению автора следует предпочесть WCF RIA Services. По сравнению с другими упомянутыми технологиями, использование этой технологии позволяет сократить время разработки за счет автоматической генерации системы сущностей на клиенте с возможностью отслеживания изменений в этой системе. В данной статье не рассматривалась ASP.NET Web Services, так как эта технология сохраняется лишь для обеспечения обратной совместимости с существующими приложениями и её не рекомендуется использовать для разработки новых приложений.

 


Дата добавления: 2015-07-14; просмотров: 73 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Доступ к данным| Клиентская модель данных

mybiblioteka.su - 2015-2024 год. (0.007 сек.)