技术开发 频道

未来BizTalk商业整合之路,还有多远?


【IT168 分析与评论】

   不同的协议,规范以及公用技术都是通过网络构建的,每个都能解决特定的问题。这些通用的网络缩写不仅仅是一个命名,通常一个命名能引起一整套模型集合来解决问题。以FTP, HTML, XML或 SOAP为例,我将把ISB补充到日益增长的缩写模型里。

    一个ISB就是一个服务“结构”,完全在网络上操作,而不是像Enterprise Service Buses和其他信息技术一样,主要在Enterprise上操作。几个月前,微软发行了Community Technology Preview (CTP) ISB,命名为BizTalk Services。BizTalk Services CTP对于企业应用程序集成或信息世界就像Hotmail 或者 GMail属于邮件世界一样。因为BizTalk Services CTP是以EAI和Messaging解决方案为基础的,因此可以把BizTalk Services CTP看成是以EAI服务或信息解决方案为基础的自由的"as-is"软件服务。

    下面我会解释BizTalk Services的所有部件,因此你可以创建自己的EAI or Messaging解决方案。本文除了创建一个信息解决方案以外,最重要的是,你能感觉到BizTalk 和 WCF未来的潜能。

The BizTalk Services Tapestry

   BizTalk Services引进了Internet Service Bus (ISB)的概念。集成产品一般作为代理或者消息而工作,并且在许多解决方案中提供安全。一个ISB服务同一个目的,它只是网络间的一种服务,而不是非得配置或保持在你的构建中。和许多集成解决方案一样,BizTalk Services包括SOA概念,这些概念都是建立在WS* (SOAP, WS-Trust等)基础上的。

   回顾了BizTalk Roadmap以后,明显看出WCF and WF是未来BizTalk解决方案的常用“结构”。但是却不容易看出:还要走多远,这些新的解决方案才能解决这些商业问题。过度强调“缺陷”和“开发新方法”让人觉得BizTalk Services想打开一个对话来回答这个与深度有关的问题,想给微软定一个方向,在通往未来BizTalk 和.NET Framework的路上,哪里才是第一个站。

    就目前的构造而言,BizTalk Services是一个Community Technology Preview。当我们在BizTalk Labs上阅读资料时,很明显就能看到这点。和许多CTPs一样,它不是一个完整的解决方案,因为现在他只是为创建.NET Framework.的新特性提供了一个试验场。

BizTalk Services 和 .NET Framework

   BizTalk Services建立在Windows Communication Foundation (WCF) 和Cardspace的顶端。在这篇文章中,我们不会完整地回顾WCF and Cardspace。

   BizTalk Services结构体系包括以下部分:

B2B解决方案的连接服务(作为中继):中继服务器由微软控制。使用中继连接的应用程序向中继发送信息。收听应用程序听从于中继,并从中继重新找回信息。

身份证明服务处理安全:Identity Service是一个安全标记服务。在客户方,Identity Service依赖于Cardspace。

中继连接是BizTalk Services SDK的主要组件。和所有WCF解决方案一样,一个连接命令传输,信息译码器,信息交流模型以及一个Channel Stack。

工作流量支持被隐藏为后来的数据,但是在这篇文章中我们就不再列出了。

BizTalk Services SDK

    BizTalk Services SDK包括中继连接、文件,以及样本代码。如果你熟悉WCF,使用BizTalk Services SDK时,你就不会有困难。样本WCF是通过使用典型的XML配置而配置的。下面就是一个样本服务。
<services> 
<!—应用服务 -->
<service name="System.ServiceBus.Samples.EchoService">
<endpoint name="RelayEndpoint"
contract="System.ServiceBus.Samples.EchoContract"
binding="relayBinding"
bindingConfiguration="default"
address="" />
</service>
</services>
   
    BizTalk Services中最有趣的事情就是它作为Message Bus or Broker而使用。因此,尽管他们能够使用BizTalk Services来彼此定位并彼此直接对话,但是基于BizTalk Service解决方案的客户和服务方不需要直接结合。

   BizTalk Services SDK包括所有的支持装配,其中System.ServiceBus.dll是核心装配。装配其中一个有趣的方面就是它的命名空间。我习惯看一些标有Microsost.Sample.ThisDemo的样本和demos。当看到命名空间上标志的“.NET Framework (System.ServiceBus)的一部分”时,我非常惊讶。

    SDK样本主要遵循一个订阅交流模型,但是在许多不同格式(图像,RSS,元数据等等)交流数据。微软和非微软的人创建了样本,这些样本支持其他交流模型以及其他一些有趣的样本应用程序。观察样本代码是掌握怎样与连接性和Identity Services相结合的最好方法。

连接服务

    SDK里的Echo Service样本是其他样本的基本样本。下面的代码是Echo Service样本主要客户方的一部分。

Uri clientUri = 
new Uri(String.Format("sb://{0}/services/{1}/EchoClient/",
RelayBinding.DefaultRelayHostName, userName));
Uri serviceUri =
new Uri(String.Format("sb://{0}/services/{1}/EchoService/",
RelayBinding.DefaultRelayHostName, serviceUserName));

ChannelFactory<EchoChannel> channelFactory =
new ChannelFactory<EchoChannel>("RelayEndpoint",
new EndpointAddress(serviceUri));
((RelayBinding)channelFactory.Endpoint.Binding).ClientBaseAddress =
clientUri;
channelFactory.Endpoint.Behaviors.Add(tokenProvider);

EchoChannel channel = channelFactory.CreateChannel();
channel.Open();
   
     代码的一个不寻常的方面就是URL格式化。通常这个计划包含传送器的一些迹象。因此,你通常可以看到像"http" or "net.tcp"一样的东西,而不是你在上面的代码中看到的“sb”。通过SDK来处理翻译URL和联系微软hosted的服务器。
BizTalk Services的许多管理,配置和提供方面在BizTalk Services站点处理。BizTalk Services支持像分类法的命名协定。因此,可以划分或标注执行不同类别或商业功能的服务。

   当你运转样本时,必须拥有一个开放端口808。许多公司的防火墙对安全的考虑都是出于阻止这个端口。我推荐从Sandbox运转样本。而且Identity Services下面的URL格式化让你相信,当你使用net.tcp.时,SDK使用了http传送器。

    像我前面所说的,这是一个CTP,因此自然会缺少一些功能。储存和传送是你在特别的信息解决方案里看到的,BizTalk Services CTP本身并不支持储存和传送。

任何基于网络解决方案的重要部分就是安全。BizTalk Identity Services为BizTalk Services处理安全问题。

BizTalk 身份服务

    BizTalk Services支持平常的用户名和密码安全,并担任CardSpace提供商。通过使用鉴定方式,SDK包括样本代码。下面就是CardSpace鉴定样本代码。
CardSpaceTokenProvider tokenProvider =
new CardSpaceTokenProvider();
string userName = tokenProvider.GetUserName();
    对于任何鉴定形式,你需要建立一个BizTalk Services项目。你需要把这个项目与Windows LiveID连接起来。下面显示的就是项目建立的屏幕。



    通过SDK,使用CardSpace,你需要建立个人卡片,把卡片与上面的BizTalk Services项目连接。下面是"Add Card"对话框。



   BizTalk Identity Services也处理安全配置。你可以限制或打开通往你的服务的通道。看下面的管理屏幕。



结论

    BizTalk Services是网络上的技术预览ISB,时刻准备满足信息解决方案的要求。你可以通过BizTalk Services SDK把它连接起来。BizTalk Services平衡投资,这些投资是微软在Windows Communication Foundation 和CardSpace获得的。我们有理由相信,未来的版本将提供一个更完整的信息解决方案。
0
相关文章