Поделиться через


Общие сведения и сценарии

Платформы Sync Framework обеспечивают синхронизацию между базами данных. Предоставляется гибкий и интуитивно понятный API-интерфейс, который позволяет создавать приложения для работы вне сети и различных вариантов совместной работы. Этот API-интерфейс позволяет использовать все или некоторые из предоставляемых компонентов в зависимости от архитектуры и требований приложения. Платформа Sync Framework поддерживает клиент-серверную, одноранговую и смешанную топологии. В клиент-серверных топологиях все клиенты синхронизируются с центральным сервером. В одноранговой топологии каждый клиент может синхронизироваться с другим узлом без передачи изменений через центральный сервер. Смешанные топологии образуются сочетанием одноранговых и клиент-серверных топологий.

Сценарии синхронизации

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

  • Требования к сети

    Чтобы пользователи могли производить доступ к данным, удаленное устройство должно иметь постоянное соединение с корпоративной сетью. Для некоторых работников, например для тех, кто работает дома, это не представляет проблемы. Для других пользователей, таких как агенты по продажам, которым приходится постоянно переезжать с места на место, это может оказаться труднее. Например, если менеджер по продажам находится у клиента и не может получить доступ к данным о наличии продукции на складе из-за отсутствия подключения к сети, то ему будет очень трудно эффективно выполнить свою работу.

  • Скорость доступа к данным

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

  • Единственная точка сбоя

    При использовании подобного решения работа пользователей часто зависит от одной базы данных сервера. Если база данных оказалась недоступной из-за планового отключения или отказа сервера, то все удаленные работники не смогут получить доступ к своим данным.

  • Масштабируемость сервера

    Увеличение числа удаленных работников отражается на производительности серверов организации, что приводит к необходимости добавления оборудования.

Приложения без постоянного соединения

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

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

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

Платформа Sync Framework использует службы синхронизации для связи с каждой синхронизируемой базой данных. Поставщики базы данных Sync Framework, аналогичные поставщикам данных ADO.NET, позволяют другим компонентам Sync Framework работать независимо от реализации каждой базы данных. Sync Framework включает пять поставщиков баз данных, каждый из которых поддерживает два типа сценариев: работа вне сети и совместная работа. На следующем рисунке показан сценарий работы вне сети: в клиент-серверной топологии клиент подключается к центральному серверу для синхронизации данных, когда доступно соединение.

Сценарий работы вне сети для служб Synchronization Services

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

Сценарий совместной работы для служб Synchronization Services

Пять служб синхронизации базы данных, входящих в платформуSync Framework, можно разделить на две категории.

  • DbServerSyncProvider и SqlCeClientSyncProvider поддерживают сценарии работы вне сети. Данные поставщики имеют следующие характеристики:

    • Подходят для клиент-серверных топологий.

    • Всегда используются парами. Например, две базы данных сервера нельзя синхронизировать с помощью двух экземпляров ServerSyncProvider (вместо этого используйте SqlSyncProvider или DbSyncProvider).

    • Могут иметь сложность меньше, чем у поставщиков совместной работы, однако не могут участвовать в топологиях с другими поставщиками Sync Framework.

    Дополнительные сведения о синхронизации вне сети см. в разделе Сценарии работы вне сети.

  • SqlSyncProvider, SqlCeSyncProvider и DbSyncProvider поддерживают сценарии совместной работы. SqlSyncProvider и SqlCeSyncProvider используются для синхронизации баз данных SQL Server и SQL Server Compact соответственно. Для синхронизации баз данных, не являющихся базами данных SQL Server, обычно используется DbSyncProvider. Данные поставщики имеют следующие характеристики:

    • Подходят для одноранговых и смешанных топологий. Могут использоваться в клиент-серверных топологиях, если необходимы расширенные функции, например сложная работа с пакетами.

    • Могут использоваться более гибким образом. Например, можно синхронизировать два экземпляра DbSyncProvider либо один экземпляр SqlSyncProvider и один экземпляр SqlCeSyncProvider и т. д.

    • Используют метаданные Sync Framework и могут участвовать в топологиях с другими поставщиками Sync Framework.

    Дополнительные сведения о совместной работе с данными см. в разделе Сценарии совместной работы.

См. также

Основные положения

Синхронизация баз данных