BDC Functional Capabilities
Published: May 2010
Business Data Connectivity (BDC) service in Microsoft Business Connectivity Services (BCS) is the underlying framework in the Microsoft SharePoint Foundation 2010 platform on which Business Connectivity Services is built. BDC facilitates the declarative integration of SharePoint applications and Office applications with external systems, thus enabling you to surface external data in SharePoint Server and in rich client Microsoft Office applications with read/write capabilities. Most of the other features of Business Connectivity Services are built around BDC.
BDC is deployed as a shared service in a SharePoint farm. The BDC runtime is present on both client and server.
BDC provides the following functional capabilities.
One of the major design goals for BDC is to enable you to surface business data from various external systems declaratively, with minimal coding effort. To achieve this goal, BDC provides homogeneous access to the underlying data sources with a metadata model that provides a consistent and simplified client object model.
Using SharePoint Designer or Visual Studio, the developer can declaratively describe the external system and tell SharePoint Server what data he or she wants. The developer does not have to write code to develop an interface to a back-end system, such as ERP, as long as the data source type is supported natively by BDC.
In the 2007 Microsoft Office system, BDC was provided only in the Microsoft Office SharePoint Server 2007 Enterprise CAL. In Microsoft Office 2010 and SharePoint 2010, BDC is included to provide symmetrical client server scenarios. The primary reason for the client-side presence is to enable external data integration scenarios on Office client applications such as Microsoft Outlook 2010, Microsoft SharePoint Workspace 2010 and Microsoft SharePoint Workspace 2010. On the client computer, a Microsoft SQL Server Compact Edition database is used to cache external data to provide a uniform experience offline when there is no network connectivity. BDC supports two data paths from client to external system:
Client to external system, direct connection (known as online connection mode)
BDC client fetches data from the local cache (known as cached connection mode)
The BDC Runtime object model provides programming interfaces that make the experience of programming against varied back-end systems uniform. This is performed by programmatically converting method calls into stereotypical, normalized operations that are requested by an application into a back-end business application-specific invocation. BDC transforms the line-of-business (LOB) system interface definitions into normalized, stereotypical operations against Entities, such as "Create-An-Entity-Instance", "Read-Entity-Instances", and "Check-Entity-Instance-Permissions”. Assuming that the underlying back-end system does expose Create, Read, Update Delete, Query (CRUDQ) interfaces and is modeled in the BDC accordingly, the Runtime object model provides capabilities to perform these operations without requiring details about the underlying system. For more information, see Stereotyped Operations Supported by BDC.
BDC includes a set of security services for authentication and authorization that provide great flexibility for declaratively modeling how to connect and authenticate against systems. It also provides a centralized location from which to manage users and what actions they can perform against these external systems. For more information, see Business Connectivity Services security overview (SharePoint Server 2010) and Business Connectivity Services security overview (SharePoint Foundation 2010). .
Developers can use the BDC Runtime object model to write generic applications by using the stereotyped APIs as building blocks. Such generic applications are then ensured to work against any external system, including those that are preexisting and those that are yet to be built.
Developers can also write specific applications that make assumptions about the abstract entity model (the fields exposed by these, and the types of the fields).
And with the .NET Assembly Connector, Custom Connector and the pluggable Secure Store provider, it provides a rich extensibility mechanism for software developers.