ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用 BizTalk Server 扩展 B2B

使用 BizTalk Server 扩展 B2B

原创 Linux操作系统 作者:iDotNetSpace 时间:2008-01-25 08:50:04 0 删除 编辑

B2B电子商务的目标是在降低成本的同时提高业务响应速度。然而,在全面发挥B2B潜质的道路上,摆在业内人士面前的一大困难便是如何允许小型企业合作伙伴的系统能够与您的后端应用实现通信。通过使用BizTalk Server充当B2B引擎,并选择Microsoft Office XP(全球领先的商务生产力软件)作为连接套件,即便面对规模最小的合作伙伴,您也将能够轻松发挥电子化业务流程的巨大潜力。

概述:如何建立解决方案

BizTalk Server为建立能够轻松进行开发与维护的B2B解决方案提供了理想之选。它是一种能够接受来自外部的扩展标记语言(XML)文档(例如订单或发票)、并将其提供给内部应用使用的自动化引擎。Office XP提供了一种能够帮助您通过Internet向运行BizTalk Server的计算机轻松发送信息的综合客户端开发平台。以下图表显示了一种基本的Office XP/BizTalk Server解决方案。

B2B architecture with Biztalk Server and Office XP

这种B2B体系结构由三部分组成:

  1. 第一部分.Office XP生成一份XML文档,并将其提交至一个位于Web服务器——运行Internet信息服务(IIS)——上的URL。
  2. 第二部分. IIS接受这个XML文档,并将其提交至位于BizTalk Server服务器上的Message Queuing(也称作MSMQ)消息队列。
  3. 第三部分.BizTalk Server对这个XML文档进行处理并同您的后端应用进行交互。

说明:根据实际需要的性能等级,小规模实施方案可以在同一台计算机上实施后两部分处理过程。

第一部分:利用Office XP生成XML文档

利用Office XP生成XML文档是一项非常轻松的工作。在Microsoft Excel 2003中,一个Microsoft Visual Basic® for Applications(VBA)宏(通过组合键ALT+F11进行访问)只需通过一行代码即可将区域(Range)对象转换为XML文档格式。下图显示了如何在Office XP中将区域对象的Value属性投射为XML格式。

Value property of a range object as XML in Office XP


XMLBody = _
  ActiveSheet.Range("B3:B5").Value(xlRangeValueXMLSpreadsheet)
      

上述代码将返回一个符合规范化XML 文档格式的文本字符串。与您的商务处理过程需求相比,Excel将生成更多的XML属性,然而,通过一个称作映射(Mapping,该处理过程将在本文第三部分中详细介绍)的处理过程,BizTalk能够帮助您轻松屏蔽掉其中无需使用的部分

下一步工作是通过Internet将XML文档发送到运行IIS的服务器上。由于MSXML组件已包含在Office XP中,因此,这项工作只需通过三行代码即可实现。


Dim XMLHTTP As New Msxml2.xmlhttp
XMLHTTP.open "POST", "http://nameOfIISServer/submit.asp", False
XMLHTTP.send (XMLBody)
      

您可能希望捕获来自Web服务器的响应信息,以便确认XML文档已被成功接收。为此,您可以访问通过ResponseText属性返回的HTML信息,或者通过ResponseXML属性返回的XML信息。为完成这项操作,您需要额外添加一行代码:


XMLResponse = XMLHTTP.ResponseText
      

由此可见,只需编写五行代码,您便可以合并来自Office文档的信息,将其通过Internet进行发送,并获取用以标志对方接收成功的确认信息。与几年前使用的类似产品——如Microsoft Visual C++?和分布式组件对象模型(DCOM)解决方案——相比,Office XP所提供的工具使B2B解决方案的客户端部分变得更加易于开发和维护。有关XML 打开方式 的的MSDN?文档中包含允许您将嵌入到请求中的用户名和口令发送至服务器端的相应属性。如需加强安全性,您也可以将这些属性设置为空并提示用户输入相关信息。

第二部分:利用IIS接收XML文档

您所创建的活动服务器页面(ASP)将负责接收来自Office XP的XML文档,并将其放置在位于BizTalk Server服务器上的消息队列中。首先,应从Server.Request对象中装入XML文档:


set XMLParser = Server.CreateObject( "Microsoft.XMLDOM")
XMLParser.load(Request)
XMLDocument = XMLParser.xml
      

之后,应连接Message Queuing消息队列,并向其中添加消息:


Set QueueInfo = CreateObject ("MSMQ.MSMQQueueInfo")
QueueInfo.Formatname = "direct=os:Servername\nameOfQueue"
Set Queue = QueueInfo.Open (MQ_SEND_ACCESS, MQ_DENY_NONE)
Set Message = Server.CreateObject ("MSMQ.MSMQMessage")
Message.body = XMLDocument
Message.Send Queue, false
      

如果消息队列位于同一台服务器上,请将包含QueueInfo.Formatname的那行代码替换为:


QueueInfo.Pathname = ".\private$\nameOfQueue"
      

仅仅通过九行代码,您已将XML文档完全迁移至运行BizTalk Server的计算机上。加上第一部分中的五行代码,利用短短14行代码,相关信息便通过Internet从Office XP中传送到了运行BizTalk Server的计算机上。由此可见,一旦这种解决方案部署完成后,其所能发挥的作用将是不可限量的。

第三部分:利用BizTalk Server处理XML文档

您需要对用以接收IIS所发送文档的消息队列进行监控。为此,您需要利用BizTalk Server管理工具对BizTalk Server进行配置。在BizTalk Server管理工具中,您需要对负责接收XML消息的队列路径和BizTalk Server通道进行命名。BizTalk Server通道允许您将接收到的XML文档映射为您所指定的格式。您可以通过以下步骤建立一个通道:

  1. 利用BizTalk Editor创建您的内部架构。
  2. 针对来自Office XP的XML文档创建一个架构(BizTalk Editor允许您导入XML文档并在其基础上生成一个架构)。
  3. 利用BizTalk Mapper将相关字段从Office XP文档拖放到您的内部文档中。

上述操作将生成一份扩展样式表语言(XSL)地图,BizTalk Server将通过该地图删除那些由Office XP在XML文档中添加的额外属性与元素。在BizTalk Mapper中,您可以使用预先创建的functoids对数据进行操作,以便添加相关信息并执行数据库查询操作。BizTalk Messaging Manager将负责管理有关通道运行时机的具体细节。以下屏幕快照显示了BizTalk Mapper如何将Office XP架构链接到内部架构上。

BizTalk Mapper linking the OfficeXP schema to an internal schema

至此,由通道生成的XML文档将与您的内部架构相匹配。该通道的终点是一个用以控制BizTalk Server与内部应用交互方式的BizTalk Orchestration Schedule(图中未予显示)。该调度程序分为两个部分——一部分面向您的商务流程,另一部分面向您的技术实现。商务流程部分将定义BizTalk Server处理XML文档所需的操作步骤、决策途径以及分支方式。技术实现部分负责将XML文档中的信息映射为COM组件参数。当BizTalk Server针对一个接收到的XML文档运行调度程序时,它将创建一个COM组件实例,并根据调度程序中所描述的顺序依次运行其中的方法。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-160069/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5293729