SharePoint24x7 It's all about SharePoint.

10Feb/112

Article – Business Connectivity Services (BCS) Part II – Terminology & Solutions Types

Posted by Joy

In the previous article, we discussed what BCS is, the evolution of BCS, investments areas in BCS in SharePoint 2010 release and BCS features by SKU. In this article we are going to get familiar with the BCS terminology which will help us going forward and will learn about the different solution types we can deliver with BCS.

BCS Terminology

It's always better to get the right terminology in place when we deliver solutions using BCS. They are:

  • Business Connectivity Services (BCS) – the umbrella term Microsoft uses to name this set of technologies which help us surfacing business data from external systems such as SAP, Oracle, Siebel, PeopleSoft, Dynamics, etc…
  • Business Data Connectivity (BDC) – the plumbing components which provides the runtime for both server and the client. This provides the actual connectivity runtime for SharePoint and Office clients.
  • External System – the legacy system which hosts business data. Examples are, SAP, Dynamics, Siebel, PeopleSoft, SFDC, etc…
  • External Content Type (ETC) – the building block of the BCS solutions. It's a reusable collection of metadata and it encapsulates connectivity information, data definitions and behaviors. This is stored in a dedicated database called Business Data Connectivity service database.
  • Model – the XML representation of the actual external data business entity such as Customer, Product, Order which BDC will transport using ETC.
  • External List – brand-new list template which provides same look and feel of the SharePoint lists and libraries along with support of CRUD operations against business data in external systems. These lists don't live in Content Database and have tighter integration with Office clients such as SharePoint Workspace and Outlook.

BCS Solution Types

Solution we deliver with BCS can be categorized in to 03 main areas and they are:

  • Simple solutions
  • Intermediate solutions
  • Advanced solutions

Following diagram will help us understand the same.

BCS Solution Types - Source: Microsoft

BCS Solution Types - Source: Microsoft

Simple solutions

Simple solutions are the solutions which leverages out-of-the-box capabilities of BCS using SharePoint and Office. This type of solutions does not require code and can be implemented by business/ power users. This helps organizations to free developers and IT Pros from having to build such solutions but IT Pros can still have the control over the actions performed by these solutions.

An example would be a power user creating an External Content Type (ETC) using SharePoint Designer 2010 to bring Employee data from HRS system and surface the same information using External List. Further end-users can take employee data offline by syncing the external list with either Outlook or SharePoint Workspace.

Intermediate solutions

Sometimes these types of solutions are referred as intermediate declarative solutions. That is mainly to indicate that even in this category we don't have to write any code.

An example would be adding a workflow to the same earlier employee data set we brought from the HRS system using External Content Type (ETC) and External List and adding Custom Actions to appear in Edit Item menu, customizing the look and feel of the View, Edit, New Info-path forms generated out-of-the-box.

Advanced solutions

Sometimes these types of solutions are referred as advanced code-based solutions. It clearly showcases the message of level of coding required to provide such solutions.

An example would be adding code-behind for Info-path forms to provide advanced validation, extending out-of-the-box Business Data web parts to provide advanced functionality, creating .NET assembly connector to aggregate data from multiple external systems. Or it can be an end-to-end solution in which you build the custom .NET assembly connector to bring data provide advanced validation/ business rules on the fly and display data in a custom user interface component.

These types of solutions are created using Business Data Connectivity Model project type in Visual Studio 2010. Visual Studio 2010 provides bunch of nice designers and skeleton code for developers to rapidly develop BCS solutions.

9Feb/110

Article – Business Connectivity Services (BCS) Part I – Introduction

Posted by Joy

Business Connectivity Services (BCS) is not something new in SharePoint 2010. This has been there from the SharePoint Portal Server 2003 (SPS 2003) and through Microsoft Office SharePoint Server 2007 (MOSS 2007). I assume everyone is familiar with the Business Data Catalog (BDC).

What is BCS?

Simply put, BCS is a platform feature of SharePoint 2010 which allows us to integrate business data from legacy/ Line-Of-Business (LOB) systems such as PeopleSoft, SAP, Siebel, etc… This integration technique allows us not only to surface business data but also to write-back to business data systems.

Evolution of BCS

Microsoft first introduced BDC in year 2003 and it was delivered as a premium feature as part of the Enterprise CAL. In this 1st release of BDC, Microsoft provided the capability only to surface LOB data within SharePoint. Also the implementation semantics were very primitive compared to other related technologies. What was meant by that is integration between SharePoint and LOB data required intensive coding exercises.

Integration Options in SPS 2003 - Source: Microsoft

Integration Options in SPS 2003 - Source: Microsoft

As you can see from the above figure, developers were required to write lot of codes to surface LOB data within SharePoint. Following was the feedback we received from both customers and System Integrators (SIs):

  • Need a way to reduce the integration code – it required intensive ADO.NET code to implement the solutions.
  • Much deeper integration of data into the places users work (Office System) – ability to surface data in Office clients was very limited though Office is the familiar tool among Information Workers.
  • Improve structured data search – though we could surface data with BDC, we were not able to search same information via SharePoint Search.
  • Need a way to centrally manage security, auditing and connections – there was no single screen in which we can manage all the aspects of the BDC solutions.

Based on the above feedback we received Microsoft did some enhancements to the BDC infrastructure and provided the 2nd version of it with MOSS 2007. With BDC in MOSS 2007, we were able not only to surface data but also to write back to LOB systems. But to be honest, write back was very reliable and promising with SQL Server back-end and with other database management systems, developers had to take a challenge most of the time.

As you can see from the following figure, implementation semantics shifted from intensive code to declarative fashion. This eliminated the need of writing intensive code.

Integration Options in MOSS 2007 - Source: Microsoft

Integration Options in MOSS 2007 - Source: Microsoft

Following is the feedback we received from both customers and SIs for the 2nd release of BDC:

  • Read is nice, Write back should have been more powerful – though Microsoft introduced write-back facility, it was at a very primitive level and didn't meet the industry standards. In short, lot of developers didn't even want to consider BDC as a way of write-back mechanism to LOB data.
  • Lack of tooling support , need an easier way to create, debug and maintain application definition XML files – though implementation mechanism shifted from .NET code to XML declaration, there were no rich tools provided by Microsoft to help developers to generate the required XML. Developers had to either write it manually or invest on 3rd party tools such as BDC Meta Man.
  • We wish it was baked into the platform – BDC was offered as a premium feature with SharePoint Enterprise CAL and lot of customers had to go all the way up to Enterprise to get this feature when they could have easily settled with WSS 3.0 for rest of the things.
  • Wouldn't it be nice to have offline capabilities – BDC didn't support Information Workers to take data offline and manipulate them on the go and sync them back to the server when they are back online. BDC couldn't cater roaming users.

Based on the above feedback we received for the BDC, Microsoft decided to re-engineer the entire technology to cater all of the customer feedback. Following is the architecture of new BCS technology:

Architecture of BCS in SharePoint 2010 - Source: Microsoft

Architecture of BCS in SharePoint 2010 - Source: Microsoft

Based on the feedback on 2007 release, Microsoft has invested in 03 main areas in this release of BCS and they are:

  • Presentation
  • Connectivity
  • Tools

Presentation

Microsoft has enhanced the end-user experience of working with external data by investing heavily on SharePoint 2010 and Office 2010. Some of the main features of the presentation investments are:

  • External List – this is a brand-new list type we see in SharePoint 2010 and this list template allows us to create a new list associating with an External Content Type (ETC). External Lists looks and feels like any other normal list in SharePoint 2010 and this list allow all the CRUD operations against the external system.
  • External Data Column – in MOSS 2007 we had a column type called Business Data Column and this has been re-engineered in this release to form the External Data Column. We can add a new column to an existing list or library based on this to bring data from an external system.
  • External Data Web Parts – SharePoint 2010 provides 05 web parts named Business Data Item, Business Data List, Business Data Related List, Business Data Actions and Business Data Item Builder that can be added to any SharePoint page to display external data.
  • Enterprise Search – SharePoint 2010 Search allows users to search data available in external systems within the SharePoint Search Center.
  • Office 2010 – SharePoint Workspace (SPW) and Outlook clients provide the capability of connecting to External Lists and take external data offline and sync them later. Word client allows creating or editing documents with data coming from lists and libraries as external data columns.

Connectivity

BCS provides both read and write capability with the new connectivity infrastructure. This facility has been extended to Office clients as SharePoint Workspace, Outlook as well. New connectivity infrastructure allows reading/ writing capability to ADO.NET databases, WCF/ Web Service Services and any other custom data sources through .NET assemblies.

Main player in this connectivity infrastructure is the Business Data Connectivity (BDC) which has 02 implementations for the Server (SharePoint) and Client (Office) and they are almost identical.

Tools

This is one of the major limitations in the 2007 release of BDC and in this release BCS provides an integrated tooling experience that scales from simple no-code solutions to complex code-based solutions including powerful packing and deployment. The tools provided are:

  • SharePoint Designer 2010 – allows us to bring data from Databases and WCF/ Web Service Services. All the CRUD operations can be generated using a simple wizard. Allows surfacing external data within SharePoint and Office.
  • Visual Studio 2010 – allows us to aggregate external data from multiple external systems by creating a .NET assembly connector. Allows us to execute custom business logic/ rules. Surface external data into other Office applications which are not supported out-of-the-box using VSTO.

BCS features by SKU

Though BCS is a part of SharePoint platform, depending on the SKU, the features of the BCS varies. Following table will show how BCS features vary depending on the SKU:

BCS Features by SKU - Source: Microsoft

BCS Features by SKU - Source: Microsoft