Dynamics CRM 2011编程系列(55):Dynamics CRM 集成开发简述

来源:互联网 发布:直播软件sdk 编辑:程序博客网 时间:2024/05/21 15:38

    在之前的博文中我提到了Dynamics CRM是款体现SOA概念的软件,其核心功能都是以Service的方式对外公布的。这样的系统架构不但有利于其本身(扩展性,复用性,职责单一等等)而且有利于与其它系统进行集成:Microsoft Office,Microsoft Lync,Microsoft SharePoint,Microsoft Dynamics ERP,以及非微软阵营下的产品。用Dynamics CRM系统集成微软阵营下的产品往往能得到更好的集成体验以及集成效率,而且有许多被微软支持的集成工具可以直接使用:Dynamics Connector,Business Connectivity Service等。如果我们要集成第三方的软件呢?集成结果会不会效率低下呢?

    在回答这些问题前,我们来了解下Dynamics CRM的集成原理:数据的集成,服务的集成。所谓数据集成就是将Dynamics CRM中的数据导入或导出到其它系统中,这个过程中数据的流向可以是单向的也可以是双向的。 服务集成即为对其它系统提供或消费服务,这里亦可以是单向调用或双向调用。 因此看来影响系统集成效率的根本原因为:集成机制以及集成程序的性能。

    这篇博文我将会介绍些目前比较流行的Dynamics CRM 集成方法,但并不会在这里进行深入的讨论。毕竟系统集成涉及的知识面之广,区区一篇文章是不足以完全涵盖的。我们先从集成对象开始吧:

数据集成

    用最直白的方式表达数据集成就是:数据的导入导出。随着使用场景的不断变化使用的工具也可以从简单到容易:自带到Import Data Wizard到包含容错事务的自定义同步程序。就开发系统集成程序而言我们应该遵循简单至上的原则:简单的同步数据结构。我们可以通过很多的方式来完成这类集成:

1.Import Data Wizard

     使用Dynamics CRM的数据导入导出功能将数据集成到系统中,可以手工完成。适合一些实时性不高,数据量不大的集成需求.

2. T- SQL Script

      在Database层进行数据的集成,比如编写一个Procedure用来对Dynamics CRM系统的数据进行导入/导出处理。需要对Dynamics CRM的Database有一定的了解。

3. Custom integration application

       按集成需求开发自己的集成程序,该程序负责对Dynamics CRM系统的数据进行导入/导出处理。这里我们可以使用Web Service,WCF Service,windows service,command console application作为运行集成程序的宿主环境。

4. SSIS

   基本上在Database层进行数据集成,因为SSIS具有高度的扩展性。可以把它认为是步骤2+步骤3的集成体。

 

服务集成

       服务集成即为向其它系统提供服务或消费其它系统的服务。如果我们想在Dynamics CRM系统中添加一个文章翻译功能,CRM系统中却并不提供这类功能可以供我们直接使用,但是百度却提供了一个翻译API可以提供文字翻译功能,那我们将这个API放进CRM系统并使用这个过程就可以理解为完成了一项服务集成开发。

    服务集成体现了SOA的感念,如果你要消费服务你就去引用你所需要的服务,如果你要提供服务你就公布你的服务给大家。向其它系统提供服务只有一种方式:WCF Service,但将其它的服务集成进Dynamics CRM系统却有很多方式:

    1. User Interface

                 通过JScript对消费的服务进行调用,并提供相应的UI供用户使用。如:Ribbon按钮,输入框的OnChange事件等。

    2. Business Logic Layer

                在系统的业务处理内部对消费的服务进行调用,可以使用这些方法:Plugin,Custom Workflow。

               3. Data Layer

              在这层面上进行服务集成的并不多,毕竟在Data Layer消费服务不太方便。但如果确实有这样的疑难需求,使用SSIS会是个不错的选择。

 

 

     Dynamics CRM的集成开发涵盖面非常的广泛,对它也只能做些抛砖引玉的介绍。对于集成程序的开发亦可以由易到难,对一般的集成需求开发个集成程序就可以了,但对于一些业务复杂如:需要集成多个系统并让它们协同工作的需求,选择一些支持ESB(Enterprise Service Bus)概念的工具是个不错的选择,例如Biz-Talk。