现在很多大型企业信息化程度很高,运行中的系统可达到数十乃至上百个。而大部分系统由于建设的时间、开发团队和技术 往往不相同,系统之间的大部分都是独立运行的。随着信息化建设的深入各系统之间的交互需求越来越紧迫。但是由于信息化的建设不可能一触而就,也不可能再组 建一个团队把所有的系统重构。因此需要一个系统与系统之间交互的中间件。

     BizTalk就是这样一个中间件。它本质上是一个消息处理引擎,处理消息验证,映射,业务流程等。以下是BizTalk的运行时高度概括结构,了解其结构可以在更有针对性的开发相关业务。
 
     
     BizTalk运行时通过适配器能接收端口接收数据创建消息,经接收管道处理比如升级消息里的内容为消息属性复制到消息上下文等。消息经处理管道处理之后 将会存储到MessageBox数据库。下一步将决定消息的传送目标,在BizTalk系统中消息可以传给业务流程处理也可直接传往发送端口。不管目标为 哪一个,BizTalk都是采用发布订阅机制,每个订阅方都会从BizTalk消息引擎中获得消息的副本。最终消息由发送管道处理之后由发送适配器以相应 的格式发送到目标。
 
BizTalk主要开发内容
 
消息
       BizTalk 的消息指的是XMl文件、二进制文件、SOAP消息等所有的格式。但在BizTalk内部唯一使用XML文档。每个消息都可以可以视为一个多部分消息,此 类消息可以由一个或零个消息组成。所有消息在BizTalk中都是不可改变的,这就意味着消息在构造之后就不可以再改变(这点在开发过程中很重要)。系统 的每个消息都带有一个属性集,包括消息ID,接收端口,实例ID等信息。消息的属性可以通过管理控制台查看。
       实际开发过程中主要定义消息的格式,由于BizTalk内部唯一使用XML文档因此主要通过Schema编辑器定义XSD(XML架构定义语言)。建议熟悉XSD定义。
 

映射

映射由多个底层组件组成,并依赖于已创建的架构。这些架构又依赖于 XML 架构定义 (XSD) 语言。在开发映射过程中如果懂得XSLT语言则会更加方便。

 
适配器
       适配器是一种软件组件,可以使用符合可识别的常用标准的传输机制通过 BizTalk Server 便捷地发送或接收消息:SMTP、POP3、FTP 或 Microsoft 消息队列 (MSMQ)。BizTalk Server 2006 包含以下类型的适配器(也称为“本地”或“集成”适配器):基本 EDI、BizTalk 消息队列、FILE、FTP、HTTP、MQSeries、MSMQ、POP3、SMTP、SOAP、SQL,以及 Windows Sharepoint Services。

每个本地适配器均关联有一个接收位置,用于在特定地址侦听来自特定传输的消息。在接收位置收到消息后,消息将传递给适配器。适配器将向消息(通常在消息的 正文部分)附加数据流,添加有关接收数据的源终结点的所有元数据,然后将消息提交到 BizTalk 消息引擎。

由于BizTalk提供的适配器已基本满足需求,如有特别需求可以参考SDK文档进行开发。

管道

尽管初始消息是由适配器创建的,但对收到消息的处理过程大部分发生在接收管道中。管道处理针对消息内容以及消息上下文。对消息内容的处理通常发生在解码、拆装和验证阶段,而对消息上下文的处理则可发生在所有阶段。

BizTalk提供了比较方便的管道开发方法,通过继承BizTalk SDK提供的接口将消息流接收过来,经过处理之后再返回接口即可。无需涉及事务,大消息等复杂的内容。因此如需对消息进行底层的开发(例如Excel数据 流转为拆装器可识别的XML数据流,针对XML消息添加命名空间等操作)大部份是在管道中进行。

业务流程

业务流程是用于表示可执行的业务程序的灵活且功能强大的工具。您可以在直观可视化绘图中设计流、解释和生成数据、调用自定义代码以及进行所有处理。

消息、作用于消息的发送和接收操作以及传输消息的端口都是业务流程的基本元素。消息是业务流程与外界进行通信以及实施电子商务的媒介。

业务流程不但跟实际的需求关系紧密而且需要了解的技术也比较多。主要有以下几个需要了解的技术:事务,相关集,多部分消息,类型(端口,多部分消息)。还有应熟悉业务流程设计器提供的各种形状,这些形状表示了业务流程的逻辑流。

BizTalk开发系列(六) BizTalk开发简述的更多相关文章

  1. (一)react-native开发系列之Mac开发环境配置

    写在前面 在开始之前,先说下选择react-native的背景原因 最近一年来,公司为了节省开发成本,以及降低维护成本,指派我开始做起前端开发app的工作,我和公司的小伙伴们就开始了漫长的app开发之 ...

  2. 【Qt编程】基于Qt的词典开发系列<六>--界面美化设计

    本文讲一讲界面设计,作品要面向用户,界面设计的好坏直接影响到用户的体验.现在的窗口设计基本都是扁平化的,你可以从window XP与window 8的窗口可以明显感觉出来.当然除了窗口本身的效果,窗口 ...

  3. 微信小程序开发系列六:微信框架API的调用

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  4. leaflet-webpack 入门开发系列六矢量瓦片(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...

  5. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  6. arcgis api for js入门开发系列六地图分屏对比(含源代码)

    上一篇实现了demo的地图标绘模块,本篇新增地图地图分屏对比模块,截图如下(源代码见文章底部): 对效果图的简单介绍一下,在demo只采用了两分屏对比,感兴趣的话,可以在两分屏的基础上拓展,修改css ...

  7. arcgis api 3.x for js 入门开发系列六地图分屏对比(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  8. iOS开发系列--IOS程序开发概览

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

  9. Android开发系列之搭建开发环境

    接触Android好久了,记得09年刚在中国大陆有点苗头的时候,我就知道了google有个Android,它是智能机操作系统.后来在Android出1.5版本之后,我第一时间下载了eclipse开发工 ...

随机推荐

  1. JavaScript中设置元素class的三种方法小结

    第一.element.setAttribute('class','abc');  第二.element.setAttribute('className', 'abc') : 第三.element.cl ...

  2. RxJava

    Grokking RxJava, Part 1: The Basics Grokking RxJava, Part 2: Operator, Operator Grokking RxJava, Par ...

  3. Uva 11059 Maximum Product

    注意long long  long long  longlong !!!!!!   还有 printf的时候 明明longlong型的答案 用了%d  WA了也看不出,这个细节要注意!!! #incl ...

  4. 工具:使用jekyll生成静态网站

    在使用前端框架构建网页而不使用后端平台与数据库,即没有服务器的条件下读取文件夹其他文件,浏览器可能会阻止访问.对于这种静态构建可以使用简单的生成工具jekyll.它主要适用于将静态文件生成静态网站,在 ...

  5. Swift3.0语言教程获得一个公共的前缀

    Swift3.0语言教程获得一个公共的前缀 Swift3.0语言教程获得一个公共的前缀,当在一个程序中有多个字符串时,我们需要判断是否有两个字符串有公共的前缀时,是很困难的.在NSString中的co ...

  6. Codeforces Round #341 (Div. 2)

    在家都变的懒惰了,好久没写题解了,补补CF 模拟 A - Wet Shark and Odd and Even #include <bits/stdc++.h> typedef long ...

  7. Python基础7- 流程控制之循环

    循环: 把一段代码重复性的执行N次,直到满足某个条件为止. 为了在合适的时候,停止重复执行,需要让程序出现满足停止循环的条件.Python中有三种循环(实质只有两种): while循环 for循环 嵌 ...

  8. EF框架step by step(7)—Code First DataAnnotations(2)

    上一篇EF框架step by step(7)—Code First DataAnnotations(1)描述了实体内部的采用数据特性描述与表的关系.这一篇将用DataAnnotations描述一下实体 ...

  9. Handling events in an MVVM WPF application

      Posted: June 30, 2013 | Filed under: MVVM, WPF, XAML |1 Comment In a WPF application that uses the ...

  10. 【转】如果成为一个牛比的BI售前

    转自:天善智能 没有最厉害,只有更厉害啊.也没有一定哪儿厉害,会因人定制各有不同啊.打个比方,如果你长得很庄重,年长,光头或布满银丝,然后以专业的态度,以饱满的激情去跟你客户宣讲,杀伤力巨大.所以,卖 ...