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

     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. JQ学习(一)

    通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行“操作”(actions). jQuery 语法 jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些 ...

  2. SpringHttpInvoker解析1-使用示例

    HTTP invoker是一个新的远程调用模型,作为Spring框架的一部分,来执行基于HTTP的远程调用(让防火墙可以接受),并使用Java的序列化机制. 服务端 定义服务接口UserService ...

  3. mongodb学习01介绍

    安装/运行 查看当前mongodb运行情况: pgrep mongo; 在当前路径下建立数据库: mkdir -p data/db 按照一个数据库路径运行mongod --dbpath ./data/ ...

  4. 数据库查询Database中的表

    public class UserDA { SqlConnection conn; SqlCommand cmd; public UserDA(Use uuu) { conn =new SqlConn ...

  5. STL UVA 11995 I Can Guess the Data Structure!

    题目传送门 题意:训练指南P186 分析:主要为了熟悉STL中的stack,queue,priority_queue,尤其是优先队列从小到大的写法 #include <bits/stdc++.h ...

  6. ACdream1157 Segments(CDQ分治 + 线段树)

    题目这么说的: 进行如下3种类型操作:1)D L R(1 <= L <= R <= 1000000000) 增加一条线段[L,R]2)C i (1-base) 删除第i条增加的线段, ...

  7. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 A. Anagrams

    A. Anagrams time limit per test 1 second memory limit per test 512 megabytes input standard input ou ...

  8. Android --时间控件的使用

    1. mian.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...

  9. U-Boot编译过程解析

    解压u-boot-2010.03.tar.bz2就可以得到全部U-Boot源程序.在顶层目录下有29个子目录,分别存放和管理不同的源程序.这些目录中所要存放的文件有其规则,可以分为3类. ● 与处理器 ...

  10. Maven_如何为开发和生产环境建立不同的配置文件 --我的简洁方案

    其实也是最近才看Maven, 以前都是用ant+ivy, 对于轻量级的项目来说足够了, 而且非常灵活. 看了看Maven, 约定.... 现在编程都说约定, 约定是挺好, 问题是超出约定的事情太多了, ...