Compartir a través de


Arquitectura de BDC

Última modificación: jueves, 15 de abril de 2010

Hace referencia a: SharePoint Server 2010

En este artículo
Modelo BDC y Repositorio de metadatos de BDC
Modelo de objetos de tiempo de ejecución
Modelo de objetos de administración
Componente de infraestructura
Conectores BDC y el marco del conector
Servicio de almacenamiento seguro e infraestructura de seguridad de SharePoint
Almacenamiento en caché de metadatos

El Servicio de conectividad de datos profesionales (BDC) sucede al Catálogo de datos profesionales que se incluía en Microsoft Office SharePoint Server 2007; en esta versión, BDC se proporciona mediante Microsoft SharePoint Foundation 2010. BDC permite modelar sistemas externos de forma declarativa a fin de poder mostrar datos externos en SharePoint 2010 (y en aplicaciones de Microsoft Office mediante las Extensiones de cliente enriquecido de Servicios de conectividad empresarial). BDC conecta sitios de SharePoint con los sistemas externos al permitir la incorporación de datos clave de varios sistemas externos a las listas de SharePoint mediante la nueva característica de listas externas y columnas de datos externos, elementos web, búsqueda, perfiles de usuario y aplicaciones personalizadas.

BDC se implementa como un servicio compartido en Microsoft SharePoint Foundation 2010 y lo puede habilitar el administrador central. La función principal de BDC es proporcionar conectividad a los siguientes tipos de sistemas externos:

  • Bases de datos

  • Extremos de Windows Communication Foundation (WCF)

  • Ensamblados de conectividad .NET

  • Orígenes de datos personalizados (BDC proporciona un marco en el que los desarrolladores pueden conectar los conectores de los nuevos tipos de sistema externo a través de BDC)

Un objetivo de diseño fundamental en BDC es permitir el acceso a los datos de diversos sistemas externos de forma declarativa y sin apenas codificación. Para lograrlo, BDC proporciona acceso homogéneo a los orígenes de datos subyacentes con un modelo de metadatos que proporciona un modelo de objetos de cliente uniforme y simplificado.

Servicios de conectividad empresarial (BCS) de Microsoft proporciona compatibilidad con herramientas tanto en Microsoft SharePoint Designer como en Microsoft Visual Studio. Los usuarios experimentados con aptitudes equivalentes a las de un desarrollador de bases de datos pueden crear tipos de contenido externo describiendo la API de aplicaciones empresariales con el Diseñador de tipos de contenido externo en SharePoint Designer. Una vez que el usuario guarda el tipo de contenido externo en SharePoint Designer, los datos del sistema externo están disponibles inmediatamente en los sitios de SharePoint a través de las otras características de Servicios de conectividad empresarial en SharePoint 2010 y el modelo de objetos de BDC.

BDC consta de un Repositorio de metadatos de BDC y un modelo de objetos que proporcionan una interfaz de programación orientada a objetos sencilla y uniforme para la lógica de negocios que reside en las diversas aplicaciones empresariales.

La figura 1 recoge una vista de alto nivel de la arquitectura de BDC.

Figura 1. Vista de alto nivel de la arquitectura de BDC

Vista de alto nivel de BDC

La figura 2 muestra la arquitectura de nivel inferior de BDC.

Figura 2. Vista de nivel inferior de la arquitectura de BDC

Arquitectura de bajo nivel de BDC

Modelo BDC y Repositorio de metadatos de BDC

BDC usa metadatos para describir las API de las aplicaciones externas. Una vez que la descripción de la API de una aplicación externa se registra en BDC, BDC proporciona conexiones de acceso a datos dinámicas a los datos externos sin necesidad de código adicional. Por ejemplo, para mostrar los datos de la base de datos AdventureWorks en los elementos web y listas de SharePoint, se definen los metadatos de las consultas SQL que tienen acceso a datos de la base de datos AdventureWorks.

Un desarrollador o usuario con experiencia define los metadatos para cada origen de datos mediante la definición de las entidades de negocio con las que las aplicaciones empresariales interactúan, así como los métodos que están disponibles en las aplicaciones. En el ejemplo de AdventureWorks, tal vez desee definir los metadatos de las siguientes entidades: Customer, SalesOrder y Product. Para cada entidad que desee que esté disponible en BDC, se definen los metadatos de los métodos que se van a usar para capturar los datos del sistema externo.

El modelo de metadatos abstrae los orígenes físicos subyacentes y proporciona un modelo uniforme y sencillo a los creadores de metadatos que trabajan con distintos tipos de aplicaciones empresariales.

El modelo BDC define metadatos semánticos (como los tipos de contenido externo y las asociaciones) que aportan significado a la API. Tras escribir los metadatos, los desarrolladores que programan soluciones personalizadas mediante BDC no necesitan comprender la API back-end, sino que pueden usar los modelos de objetos de BDC simplificados. Por ejemplo, el modelo de objetos de tiempo de ejecución de BDC proporciona llamadas como System.Entity, Entity.FindFiltered y Entity.FindAssociated, lo que hace que sea tremendamente sencillo obtener los datos back-end necesarios. Gracias a este diseño, los creadores de metadatos y los desarrolladores encontrarán más fácil trabajar con los sistemas externos que suelen tener API complejas.

Los modelos BDC se almacenan en una base de datos relacional y se cargan o materializan en memoria antes de que el tiempo de ejecución de BDC los pueda interpretar. El conjunto de tablas de base de datos y procedimientos almacenados para contener, leer y modificar el modelo BDC conforma el componente Repositorio de metadatos de BDC. Este componente existe solamente en las implementaciones de servidor de Servicios de conectividad empresarial. El modelo de objetos de administración debe usarse para modificar los elementos de un modelo BDC en lugar de modificar directamente la base de datos. La base de datos NUNCA debe modificarse. En el cliente, este componente se sustituye por una deserialización transitoria en memoria del modelo BDC en una base de datos de Microsoft SQL Server 2005 Compact Edition.

Nota

El Repositorio de metadatos de BDC no contiene datos externos, sino solo los metadatos relacionados con el sistema externo.

Para obtener más información, vea Infraestructura del modelo BDC.

Modelo de objetos de tiempo de ejecución

Como se muestra en el diagrama de nivel inferior anterior, la interfaz pública de BDC tiene dos conjuntos de API: el modelo de objetos de tiempo de ejecución y el modelo de objetos de administración.

El modelo de objetos de tiempo de ejecución está diseñado para su uso por parte de aplicaciones y clientes de BDC. Tiene las dos funciones siguientes principales:

  • Proporcionar una interfaz intuitiva orientada a objetos que resuma los orígenes de datos subyacentes. Este modelo de objetos de tiempo de ejecución aísla las aplicaciones cliente de forma que no tengan que conocer los paradigmas de codificación específicos del sistema back-end y, asimismo, permite a los clientes obtener acceso a todos los sistemas externos a través de una sola interfaz uniforme. Gracias al modelo de objetos de tiempo de ejecución, llamar a un método en una aplicación de SAP es parecido a llamar a un método en una aplicación de Siebel, o a ejecutar una consulta en Microsoft SQL Server. Al usar el modelo de objetos de tiempo de ejecución, las aplicaciones pueden leer, escribir y actualizar los datos back-end.

    Nota

    BDC no lleva a cabo realmente la ejecución del método, sino que solo delega la invocación del cliente al proveedor de ADO.NET adecuado para las bases de datos, el proxy de servicios web destinado a los servicios web y el ensamblado .NET Framework para los ensamblados .NET Framework.

  • Permitir la lectura (únicamente) de los objetos de metadatos de la base de datos de metadatos y la ejecución de la lógica de negocios descrita. El modelo de objetos de tiempo de ejecución es rápido, ya que usa los metadatos almacenados en caché de la memoria. Los clientes que solo tienen que consultar la información de metadatos en la base de datos de metadatos usan el modelo de objetos de tiempo de ejecución.

El espacio de nombres de Runtime consta de dos objetos clave:

  • IEntityInstance. Conceptualmente, una instancia de entidad es una sola fila de datos que una aplicación empresarial back-end devuelve en BDC. La interfaz de IEntityInstance resume los orígenes de datos subyacentes y aísla a los clientes para que no usen paradigmas de codificación específicos de la aplicación; además, permite el acceso a todos los datos profesionales de una forma tremendamente simplificada. Al usar la interfaz IEntityInstance, se puede trabajar con una fila de datos de una base de datos exactamente del mismo modo que se trabaja con una estructura de .NET Framework compleja que un servicio web devuelve.

    Una instancia de entidad en BDC tiene una semántica especial asociada. Por ejemplo, tiene la capacidad de determinar qué campo o campos de la fila representan al identificador de la instancia de entidad y ofrece la posibilidad de llamar a métodos como GetAssociated, GetIdentifierValues y Execute en esa instancia de entidad.

  • IEntityInstanceEnumerator.  Los enumeradores pueden usarse para leer los datos de la colección, pero no pueden para modificar la colección subyacente. IEntityInstanceEnumerator admite la transmisión por secuencias y, por lo tanto, resulta muy útil cuando la aplicación back-end devuelve grandes cantidades de datos.

Modelo de objetos de administración

Puede usar el modelo de objetos de administración para crear, leer, actualizar y eliminar objetos de metadatos en el Repositorio de metadatos de BDC. Proporciona una auténtica validación de metadatos en el momento de la publicación y mantiene la integridad referencial en todo el repositorio. Usa el almacenamiento en la memoria caché de metadatos para el rendimiento. Por lo tanto, tiene una latencia relativamente alta y un retraso de hasta un minuto antes de que BDC actualice la memoria caché en todos los servidores front-end web y los servidores de aplicaciones de la implementación. Este componente existe en las implementaciones de servidor de Servicios de conectividad empresarial. También existe una versión cliente del modelo de objetos de administración en el cliente.

Componente de infraestructura

El componente de infraestructura se define en el espacio de nombres Microsoft.BusinessData.Infrastructure en Microsoft.SharePoint.dll.

Tal y como se muestra en el diagrama de arquitectura de nivel inferior de BDC anterior, el modelo de objetos de tiempo de ejecución se basa en el componente de infraestructura para crear y administrar las conexiones al origen de datos físico. El componente de infraestructura proporciona administración de conexiones en tiempo de ejecución y servicios compartidos de seguridad para los clientes de BDC.

Conectores BDC y el marco del conector

Servicios de conectividad empresarial ofrece conectores a todos los tipos de orígenes de datos que admite. Además, proporciona extensibilidad mediante un modelo de proveedor. Los ISV y asociados pueden desarrollar conectores BDC para los tipos de back-end que BDC no admite de forma nativa.

Servicio de almacenamiento seguro e infraestructura de seguridad de SharePoint

BDC proporciona autenticación para sistemas back-end a través de la autenticación integrada o inicio de sesión único (SSO) en Office SharePoint Server 2007. En SharePoint Server 2010, también admite la autenticación basada en tokens o notificaciones. SSO se reemplaza por el almacenamiento seguro, que también es acoplable. Por lo tanto, si un tercero no tiene intención de usar el almacenamiento seguro de SharePoint, sino uno personalizado o cualquier otro SSO de ISV, BDC es totalmente compatible.

Almacenamiento en caché de metadatos

Para proporcionar un mejor rendimiento, BDC almacena en caché todos los objetos de metadatos. De este modo, materializa todos los objetos de metadatos de la memoria caché y los proporciona al modelo de objetos de tiempo de ejecución al mismo tiempo, en lugar de realizar idas y venidas a la base de datos de metadatos cada vez que se llama a un método. El almacenamiento en caché de metadatos proporciona a los clientes un acceso más rápido a los objetos de metadatos a los que llaman.

Nota

Con el modelo de objetos, se puede activar o desactivar el almacenamiento en caché en el nivel de un objeto de metadatos individual. Por lo tanto, no será necesario almacenar en caché aquellos objetos que se usen con poca frecuencia.

BDC almacena en caché los objetos cuando se cargan por primera vez. Un temporizador que se ejecuta en cada servidor busca cambios en los objetos de metadatos una vez cada minuto. Si detecta un cambio en un objeto de metadatos, borra la memoria caché y, a continuación, la vuelve a cargar. Como resultado, tras cambiar los metadatos, se debe esperar un minuto para que éstos se propaguen en todos los servidores del conjunto o granja. Los cambios se reflejan de inmediato en el servidor en el que se realiza el cambio.