Доступ к данным, хранящимся вне устройств, посредством Web-служб
■ Преимущества. Web-службы все чаще используются в качестве оболочек доступа к коммерческим источникам данных. Доступ к информации, хранящейся в базах данных, может обеспечиваться через Web-службы без предоставления непосредственного доступа к самим базам данных. Обычно Web-службы работают посредством сетевых протоколов HTTP или HTTPS; как правило, брандмауэры ведут себя дружественно по отношению к этим протоколам. Если сеть уже поддерживает выходной сервер, то создать Web-службу, размещенную на этом сервере, как правило, относительно просто.
Новейшие процессоры баз данных усиленно поддерживают возврат данных в виде XML, позволяя обходиться без промежуточного Web-сервера. Эти базы данных фактически предлагают собственные Web-службы. XML-данные, возвращенные непосредственно базой данных, не обязательно будут иметь формат данных ADO.NET XML DataSet, но любые возвращенные XML-данные можно синтаксически проанализировать и обработать на устройстве, если такой способ работы с ними является наилучшим.
В обоих случаях обмен данными с мобильными устройствами может осуществляться посредством потоков с использованием формата данных ADO.NET DataSet в виде XML или любого другого формата XML-данных. Выбирая между вариантами непосредственной связи с базой данных или изоляцией базы данных при помощи промежуточного Web-сервера, следует исходить из соображений безопасности, производительности, а также простоты разработки и развертывания приложения.
■ Недостатки. Как и в случае использования внешних баз данных, невозможно гарантировать, что сетевой доступ к Web-службам будет обеспечен в любой момент времени. Чтобы ваше приложение было полезным и надежным, для него всегда необходимо предусматривать стратегию на случай сбоя связи, позволяющую работать с локальными кэшированными данными, если сеть недоступна.
Еще одним недостатком является недостаточная эффективность связи. Поскольку в качестве основного коммуникационного механизма Web-службы используют XML, то предоставляемая ими информация занимает больший объем по сравнению с такими, например, специализированными форматами, как те, которые используются для синхронизации баз данных. Если имеется значительный объем данных, которые необходимо загрузить или выгрузить, то, вероятно, целесообразно рассмотреть возможность использования механизма непосредственного доступа к базе данных, основанного на наиболее эффективном из имеющихся протоколов.
С небольшими объемами данных, которые обладают простой структурой, еще можно справиться с помощью файлов XML, однако при превышении некоторого объема и сложности данных ваше приложение значительно выиграет, а его разработка намного упростится, если вы используете формальную базу данных. Хотя и не существует абсолютных правил относительно того, когда именно вместо XML-файлов следует воспользоваться базой данных, чем больше объем данных, тем целесообразнее становится переход к базе данных. Как правило, если ожидается, что количество строк данных, с которыми придется работать вашему мобильному приложению, больше ста, или информация должна храниться в нескольких таблицах, то, вероятно, имеет смысл использовать установленную на устройстве базу данных, например SQL СЕ.
По SQL СЕ существует хорошая документация в сети. Читателям, которые хотели бы получить более подробную информацию относительно SQL СЕ, можно порекомендовать провести поиск по ключевым словам "SQL Server СЕ" в библиотеке MSDN в сети (или в справочной документации по Visual Studio). Вместо того чтобы пытаться подробно пересказать уже имеющуюся в указанных источниках информацию, в этом разделе будет приведен краткий обзор SQL СЕ и описаны важные решения, которые должны быть приняты в процессе разработки кода мобильного приложения, предназначенного для работы с такими базами данных, установленными на устройстве, как SQL СЕ. Простой пример, демонстрирующий использование базы данных SQL СЕ, приводился ранее в данной главе в листингах 14.5, 14.6, 14.7 и 14.8.
Что такое SQL СЕ?
SQL СЕ, формальным названием которой является SQL Server СЕ, — это процессор базы данных для мобильных и встроенных устройств. Эта база данных располагает относительно богатыми функциональными возможностями в отношении хранения и запроса структурированных данных и их синхронизации с серверами. На одном устройстве могут быть созданы одновременно несколько баз данных SQL СЕ. Каждая из баз данных на устройстве представляется единственным двоичным файлом; эти файлы можно вручную копировать с одного устройства на другое и автоматически синхронизировать с базой данных на сервере. Содержимое базы данных SQL СЕ может быть зашифровано с помощью пароля, что обеспечит разумный уровень безопасности данных в том случае, если устройство украдено или утеряно или его содержимое тайком скопировано.
Читать дальше