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


Архитектура подключения к бизнес-данным

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

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

В этой статье
Модель подключения к бизнес-данным и хранилище метаданных службы подключения к бизнес-данным
Объектная модель времени выполнения
Объектная модель администрирования
Компонент "Инфраструктура"
Соединители подключения к бизнес-данным и инфраструктура компонентов
Служба Secure Store и инфраструктура безопасности SharePoint
Кэширование метаданных

подключения к бизнес-данным (BDC) является преемником каталога бизнес-данных, появившегося в Microsoft Office SharePoint Server 2007, а в этом выпуске BDC предоставляется в составе Microsoft SharePoint Foundation 2010. BDC позволяет декларативно моделировать внешние системы, позволяя предоставлять внешние данные в SharePoint 2010 (и в приложениях Microsoft Office с помощью клиента для служб Business Connectivity Services). BDC связывает веб-сайты SharePoint и внешние системы, позволяя извлекать данные из различных внешних систем в списки SharePoint с помощью новой функции внешних списков и внешних данных, веб-частей, поиска, профилей пользователей и специализированных приложений.

BDC реализуется в Microsoft SharePoint Foundation 2010 как общая служба и может быть включена администратором центра. Ключевой функцией BDC является предоставление подключения к следующим видам внешних систем:

  • базы данных;

  • конечные точки Windows Communication Foundation (WCF);

  • сборки подключения .NET;

  • пользовательские источники данных (BDC предоставляет платформу, к которой разработчики могут подключать соединители для новых внешних систем, чтобы предоставить к ним доступ с помощью BDC).

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

Microsoft Business Connectivity Services (BCS) предоставляет инструменты как в Microsoft SharePoint Designer, так и в Microsoft Visual Studio. Опытные пользователи, обладающие набором навыков, эквивалентных навыкам разработчика баз данных, смогут создавать внешние типы контента, описывая интерфейсы API бизнес-приложений, используя внешних типов контента в SharePoint Designer. Как только пользователь сохранит внешний тип контента в SharePoint Designer, данные во внешней системе немедленно становятся доступными на веб-сайтах SharePoint пользователя с помощью других возможностей Business Connectivity Services в SharePoint 2010 и объектной модели BDC.

BDC состоит из хранилища метаданных службы подключения к бизнес-данным и объектной модели, предоставляющих простой, согласованный объектно-ориентированный интерфейс программирования для бизнес-логики, находящейся в различных бизнес-приложениях.

На рис. 1 представлена обобщенная схема архитектуры BDC.

Рис. 1. Обобщенная схема архитектуры подключения к бизнес-данным

Высокоуровневое представление подключения к бизнес-данным

На рис. 2 представлена более подробная схема архитектуры BDC.

Рис. 2. Подробная схема архитектуры подключения к бизнес-данным

Низкоуровневая архитектура подключения к бизнес-данным

Модель подключения к бизнес-данным и хранилище метаданных службы подключения к бизнес-данным

BDC использует метаданные для описания интерфейсов API внешних приложений. После регистрации интерфейса API внешнего приложения в BDC, BDC предоставляет подключения динамического доступа к внешним данным, не требуя написания дополнительного кода. Например, чтобы отобразить данные из базы данных AdventureWorks в списках и веб-частях SharePoint, определите метаданные для SQL-запросов, обращающихся к данным в базе данных AdventureWorks.

Опытный пользователь или разработчик определяет метаданные для каждого источника данных, определяя бизнес-сущности, с которыми взаимодействуют бизнес-приложения, и методы, доступные в приложениях. В примере AdventureWorks может понадобиться определить метаданные для следующих сущностей: Customer (клиент), SalesOrder (заказ на продажу) и Product (продукт). Для каждой сущности, которую нужно сделать доступной в BDC, определяются метаданные для методов, которые будут использоваться для извлечения данных из внешних систем.

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

Модель подключения к бизнес-данным определяет семантические метаданные, например внешние типы контента и их связи, добавляющие смысл в интерфейс API. После написания метаданных разработчикам, программирующим специализированные решения, используя BDC, не нужно изучать тыловые интерфейсы API; вместо них можно использовать упрощенные объектные модели BDC. Например, объектная модель среды выполнения BDC предоставляет такие вызовы, как System.Entity, Entity.FindFiltered и Entity.FindAssociated, которые значительно упрощают получение нужных серверных данных. Такая схема упрощает как для авторов метаданных, так и для разработчиков работу с внешними системами, обычно обладающими сложными интерфейсами API.

Модели подключения к бизнес-данным хранятся в реляционной базе данных и перед собственной интерпретацией средой выполнения BDC загружаются (или материализуются) в память. Набор таблиц баз данных и хранимых процедур для хранения, чтения и изменения модели подключения к бизнес-данным образует компонент хранилища метаданных службы подключения к бизнес-данным. Этот компонент существует только в развертываниях Business Connectivity Services на серверах. Для изменения элементов модели подключения к бизнес-данным вместо прямого редактирования базы данных следует использовать объектную модель администрирования. Редактировать базу данных напрямую ЗАПРЕЩАЕТСЯ. На клиенте этот компонент замещается промежуточной десериализацией в памяти модели подключения к бизнес-данным в базе данных Microsoft SQL Server 2005 Compact Edition.

ПримечаниеПримечание

Хранилище метаданных службы подключения к бизнес-данным не содержит внешних данных. Оно содержит только метаданные о внешней системе.

Дополнительные сведения см. в разделе Инфраструктура модели подключения к бизнес-данным.

Объектная модель времени выполнения

Как показано на предыдущей подробной схеме, в общем интерфейсе BDC предусмотрено два набора интерфейсов API. Это объектная модель среды выполнения и объектная модель администрирования.

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

  • Предоставить интуитивно понятный объектно-ориентированный интерфейс, абстрагирующий используемые источники данных. Объектная модель времени выполнения изолирует клиентские приложения от специфических серверных парадигм кодирования и предоставляет клиентам доступ ко всем внешним системам, используя один единообразный интерфейс. Благодаря объектной модели времени выполнения вызов метода для приложения SAP похож на вызов метода для приложения Siebel или выполнение запроса к Microsoft SQL Server. С помощью объектной модели времени выполнения приложения могут считывать, записывать и изменять серверные данные.

    ПримечаниеПримечание

    В BDC не происходит фактического выполнения метода. Вызов клиента делегируется соответствующему поставщику ADO.NET (для баз данных), прокси веб-служб (для веб-служб) и сборке .NET Framework (для сборок .NET Framework).

  • Разрешить (только) чтение объектов метаданных из базы данных метаданных и выполнения описанной там бизнес-логики. Объектная модель среды выполнения использует кэшированные в памяти метаданные и поэтому является быстрой. В клиентах, которым нужно запрашивать из базы данных метаданных только информацию о метаданных, следует использовать объектную модель среды выполнения.

Пространство имен Runtime содержит два основных объекта:

  • IEntityInstance. Концептуально, экземпляр сущности — это одна строка данных, возвращаемая серверным бизнес-приложением в BDC. Интерфейс IEntityInstance абстрагирует используемые источники данных и изолирует клиентов от необходимости разбираться в специфических для приложения парадигмах кодирования. Он предоставляет им доступ ко всем бизнес-данным единообразным упрощенным образом. С помощью интерфейса IEntityInstance можно работать со строкой данных из базы данных точно так же, как и со сложной структурой .NET Framework, возвращенной веб-службой.

    С экземпляром сущности в BDC связана особая семантика. Например, она позволяет узнать, какое поле или поля в строке представляют собой идентификатор экземпляра сущности, и вызывать для этого экземпляра сущности методы, такие как GetAssociated, GetIdentifierValues и Execute.

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

Объектная модель администрирования

Объектную модель администрирования можно использовать для создания, считывания, изменения и удаления объектов метаданных в хранилище метаданных BDC. Эта модель обеспечивает надежную проверку метаданных во время публикации и поддерживает целостность данных во всем хранилище. Для повышения быстродействия модель использует кэширование метаданных в памяти. Поэтому она обладает относительно высокой задержкой — до одной минуты может пройти, прежде чем BDC обновит кэш на всех интерфейсных веб-серверах и серверах приложений в развертывании. Этот компонент существует в развертываниях Business Connectivity Services на серверах. На клиентах используется клиентская версия объектной модели администрирования.

Компонент "Инфраструктура"

Компонент "Инфраструктура" определяется в пространстве имен Microsoft.BusinessData.Infrastructure в библиотеке Microsoft.SharePoint.dll.

Как показано ранее на подробной схеме архитектуры BDC, объектная модель среды выполнения опирается на компонент "Инфраструктура" для создания и управления подключениями к физическому источнику данных. Компонент "Инфраструктура" обеспечивает управление подключениями во время выполнения и общими службами безопасности для клиентов BDC.

Соединители подключения к бизнес-данным и инфраструктура компонентов

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

Служба Secure Store и инфраструктура безопасности SharePoint

BDC предоставляет технологию проверки подлинности для серверных систем с помощью встроенной проверки подлинности или единого входа (SSO) в Office SharePoint Server 2007. В SharePoint Server 2010 эта служба также поддерживает проверку подлинности на основе утверждений или токенов. Единый вход заменяется службой Secure Store, которая также является подключаемой. Следовательно, если какая-либо независимая сторона не планирует использовать службу Secure Store SharePoint, используя вместо нее службу единого входа, разработанную независимым поставщиком или специализированную, BDC полностью это поддерживает.

Кэширование метаданных

Для улучшения быстродействия BDC кэширует все объекты метаданных. Таким образом, вместо постоянных обращений к базе метаданных при каждом вызове метода служба материализует все объекты метаданных из кэша и предоставляет их объектной модели среды выполнения. Кэширование метаданных обеспечивает клиентам более быстрый доступ к вызываемым объектам метаданных.

ПримечаниеПримечание

Используя объектную модель, можно включить и отключить кэширование на уровне отдельных объектов метаданных. В результате можно избежать кэширования редко используемых объектов.

BDC кэширует объекты при их первой загрузке. Задача таймера, работающая на каждом сервере, проверяет объекты метаданных на возможные изменения один раз в минуту. Если обнаруживается, что объект метаданных изменился, задача очищает кэш и загружает его заново. В результате после изменения метаданных необходимо подождать какое-то время, не более минуты, чтобы дать изменениям время распространиться на все серверы в ферме. К серверу, на котором выполняются изменения, они применяются немедленно.