SharePoint 4 Developers

Guia de referência adicional em desenvolvimento .NET / SharePoint

Business Connectivity Services – Parte I

Aprenda sobre o Business Connectivity Services e como desenvolver soluções utilizando o SharePoint Designer 2010 e Visual Studio 2010 através da criação de External Content Types. (Parte I)

Oi pessoal, tudo bem?

Nesses últimos meses trabalhei bastante com o novo BCS do SharePoint 2010 para integração de dados e agora vou relatar um pouco dos conceitos envolvidos e minhas experiências a partir de exemplos em diferentes lições. Aqui inicio uma série de posts relacionados ao assunto e esse é o primeiro. Trata-se de um conteúdo completo focado ao desenvolvimento, que é o propósito deste blog. Espero que gostem!

Nessa abordagem entenderemos o que é o BCS, sua arquitetura e componentes.

Business Connectivity Services

Você já pensou ou teve a necessidade de integrar dados de origens diferentes em um sistema unificado? Saiba que isso é possível no SharePoint 2010 graças ao Business Connectivity Services (BCS).

Por padrão a plataforma do SharePoint 2010 disponibiliza features Out-of-the-box (OOTB) nativas do BCS para exibição, manipulação e pesquisa de dados, e com a utilização das ferramentas SharePoint Designer 2010 e/ou Visual Studio 2010 podemos criar soluções para o BCS que façam integração de dados e serviços.

A versão anterior do BCS chamada de Business Data Catalog no MOSS 2007 também permitia a conexão à fontes de dados externos, porém a criação dessas soluções era difícil devido à falta de ferramentas de design. Apesar de ser relativamente simples de criar aplicações read-only, aplicações que persistiam dados já eram bem difíceis de serem criadas. Agora essas restrições são facilmente contornadas pela utilização das novas ferramentas SPD2010 e VS2010.

Pela reutilização de um conceito aplicado no agrupamento de metadados chamado Content Types, o BCS cria um mapeamento chamado External Content Types, devido à criação de um mapeamento de metadados externos, do qual falaremos mais adiante.

OBS: Muitas empresas já entenderam que o SharePoint pode ser utilizado como um Portal de Integração e estão estendendo seus sistemas internos (ERP, CRM, etc) com soluções customizadas e soluções OOTB. Isso vem ocorrendo desde a versão do Business Data Catalog disponível na versão do MOSS 2007.

Arquitetura

Vejamos os blocos e componentes que compõe o diagrama abaixo, que nos traz uma visão do funcionamento do BCS, confome Figura 1:

arquitetura680

Figura 1 - Arquitetura do BCS

Conforme podemos perceber na Figura 1, cada bloco foi enumerado para explicação de seus componentes:

Bloco 1 – Fontes de Dados Externos

Esse bloco exibe o suporte oferecido a diferentes tipos de fontes de dados externos, através da conexão por:

Databases

Por padrão as conexões diretas via database são realizadas utilizando o SQL Server.

Web / WCF Services

O suporte é oferecido a ambos Web Services (*.asmx) e WCF Services (*.svc).

Assemblies .NET

A conexão a diferentes bancos de dados (Oracle, MySql, etc) só é possível através da criação de assemblies .NET customizados para essa tarefa.

Custom Data Sources

Através da utilização de Custom Connectors é possível a conexão a diferentes tipos de Data Sources. Ex: Dados em XML e Texto.

Bloco 2 – SharePoint Site

Esse bloco é responsável pela conexão às fontes de dados externos, permitindo que operações do tipo Create, Read, Update, Delete, and Query (CRUDQ) sejam realizadas. Vejamos alguns de seus componentes:

BDC Metadata Store

Pertencente à camada de serviços, é responsável pelo armazenamento de External Content Types, que descrevem como conectar às fontes de dados externos.

Secure Store Service (SSS)

Trata-se de um local seguro do SharePoint 2010 para armazenamento de credenciais. Substitui o Single Sign On do MOSS 2007. Utilizado pelo BCS para armazenar as credenciais de fontes de dados externos e mapeá-las a uma identidade (ou um grupo de identidades).

External Content Type (ECT)

Determina o schema do conjunto de dados externos que mapeia, recursos de acesso a dados e seu comportamento dentro das aplicações Office e SharePoint.

BDC Server Runtime

Esse componente sabe como realizar a conexão à fonte de dados externos utilizando-se dos ECTs para essa tarefa.

Search, Workflow, Web Parts

O BCS oferece suporte à utilização de features OOTB que o SharePoint 2010 disponibiliza. Dentre eles suporte a pesquisas, workflows e Web Parts.

External List

Lista criada a partir de um ECT para exibição no SharePoint Site.

Conectores

Os conectores são responsáveis pela interface entre o BDC Runtime e o acesso a dados externos.

Bloco 3 – Office Client

Tanto aplicações criadas (Add-ins / Custom code) para o Office 2010, como os produtos Microsoft Outlook 2010 e Microsoft SharePoint Workspace 2010 podem manipular dados externos de maneira eficiente. Vejamos o funcionamento dos seguintes componentes:

Cache

Durante os momentos em que a aplicação está online, o SQL Compact entra em ação por armazenar dados temporariamente, o que garante que mesmo a aplicação estando offline o conteúdo seja exibido.

Offline Operations

As operações de leitura e escrita realizadas em cache são persistidas quando a aplicação volta a ficar online.

BDC Client Runtime

Esse componente é responsável pela sincronização dos dados externos, que são realizados de maneira consistente da seguinte maneira:

  • Em modo online faz a conexão do cliente diretamente à fonte de dados externos. Pelo Sync uma cópia dos ECTs são enviados ao cliente, o que permite o acesso direto.
  • Em modo offline persiste os dados em cache para posterior sincronização.

Office Add-in / Custom Code

O deploy via ClickOnce de pacotes VSTO permite que aplicações sejam disponibilizadas rapidamente pela utilização de smart-clients.

Bloco 4 – Ferramentas

As novas versões das ferramentas abaixo possibilitam a criação de diversas soluções, devido ao novo conjunto de features que elas oferecem.

SharePoint Designer 2010

Possibilita a criação de ECTs e External Lists sem a necessidade de criação de código customizado, o que permite a rápida criação de soluções utilizando seus recursos OOTB.

Visual Studio 2010

Nos casos em que as soluções criadas pelo SPD 2010 não satisfaçam as necessidades de negócio, podemos utilizar o VS 2010 para desenvolvimentos avançados via código.

External Content Types

O BCS utiliza External Content Types como principal objeto para o mapeamento dos dados externos. Você já ouviu falar de Content Types no SharePoint? Por definição Content Types são coleções de metadados, que na prática são utilizados como agrupadores de Site Columns no SharePoint. Internamente os Content Types armazenam o schema de seus metadados em XML, que servem para identificar seus tipos de dados. Ex: String, boolean, number, etc.

Um ECT faz a extensão desse conceito, vejamos a Figura 2 que mostra a utilização dos ECTs:

ect680

Figura 2 - Utilização de um ECT

Como vimos na Figura 2, além de armazenar o schema de seus metadados, um ECT disponibiliza recursos de acesso a dados a uma fonte de dados externos e também disponibiliza meios para integração dentro do Office e SharePoint, que são disponibilizados através de entidades e métodos. Por fim esse objeto é armazenado no BDC Metadata Store que contém todos os ECTs (conforme já descrito na Arquitetura).

Essa foi uma introdução teórica, considero esse entendimento fundamental para a explicação das demonstrações dos próximos posts. A propósito, no próximo post veremos como criar ECTs. Aguardem!

Referências:
http://msdn.microsoft.com/en-us/library/ee556826(v=office.14).aspx
http://msdn.microsoft.com/en-us/library/ee557898(v=office.14).aspx
http://msdn.microsoft.com/en-us/library/ee557790(v=office.14).aspx
http://msdn.microsoft.com/en-us/library/ee554916(v=office.14).aspx

[]’s

Marcel Medina

Clique aqui para ler o mesmo conteúdo em Inglês.

blog comments powered by Disqus