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


Основные сведения об использовании клиентского кэша службы Business Connectivity Services для оптимизации создаваемых решений

Дата последнего изменения: 7 января 2010 г.

Применимо к: SharePoint Server 2010

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

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

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

Клиентский кэш реализуется с помощью создаваемой для каждого пользователя базы данных SQL CE, шифруемой с помощью EFS. Учтите, что редактировать саму базу данных нельзя. Это не поддерживается корпорацией Майкрософт. Вместо этого для доступа к кэшу следует использовать объектную модель кэша.

Единицей хранения в кэше является экземпляр сущности. На клиенте выполняется процесс, называющийся BCSSync.EXE, обеспечивающий автоматическое обновление кэша и синхронизацию данных экземпляров сущностей. При выполнении над экземпляром сущности в клиентском приложении такой операции, как Read (чтение), Create (создание), Update (изменение) или Delete (удаление), вызовы не передаются напрямую во внешнее приложение (LobSystemInstance). Вместо этого операции помещаются в очередь операций, находящуюся в кэше, а затем выполняются последовательно в зависимости от доступности внешнего приложения. Более подробные сведения о том, как кэш обрабатывает каждую из операций, см. в остальных подразделах данного раздела. Процесс синхронизации также пытается поддерживать актуальность данных в кэше, обновляя их из внешнего приложения через определенные интервалы. Точное время обновления кэша предсказать нельзя, оно зависит от интервала обновления кэша (ExpireAfter), заданного пользователем, доступности источника внешних данных и ряда других факторов. Они подробно обсуждаются в подразделах ниже.

Разработчик должен понимать, как работает кэш бизнес-данных, по двум основным причинам:

  1. чтобы улучшить быстродействие разрабатываемого решения службы BCS, понимая, как строить приложение для достижения максимальной производительности и как максимально эффективно использовать кэш в создаваемом решении;

  2. чтобы справляться с ошибками синхронизации кэша в случае конфликта или наличия ошибок во внешних данных.

Чтобы упростить усвоение принципов работы кэша, рассмотрим простое решение службы BCS, развертываемое на клиенте, и отвечающее за подключение к Microsoft Outlook внешнего списка заказчиков Customers. Предположим также, что этот список создается с помощью операции GetCustomersByID SpecificFinder и что для этой сущности в модели было определено три представления, используя Finder, GetCustomers со значениями фильтра State="CA", State="WA" и State= "NJ" для просмотра заказчиков в штатах Калифорния, Вашингтон и Нью-Джерси, соответственно.

См. также

Концепции

Что такое подписка кэша?

Заполнение клиентского кэша служб Business Connectivity Services

Объектная модель кэша

Как выполняются операции чтения в кэше?

Распространение изменений на внешнюю систему

Когда обновляется кэш?

Как решения на основе служб Business Connectivity Services узнают об удалении элементов во внешнем источнике данных?

Практическое руководство. Повышение производительности решения Business Connectivity Services при использовании кэша