用.NET Enterprise Servers创建集成系统

 

利用.NET Enterprise Servers的集成和互用性特征来创建一个完整的企业解决方案。 
By Rockford Lhotka and Christopher Winland

原文来自:http://www.fawcette.com/china/XmlFile.aspx?ID=203

涉及技术:Internet Security and Acceleration Server 2000, Commerce Server 2002, BizTalk Server 2002, SQL Server 2000, Exchange 2000 Server, Windows 2000 Server

在设计一个商业网络结构时,我们总是寻求最简单、最划算的解决方案。如果你想让你的企业支持Web或实现一体化,那么Microsoft .NET Enterprise Servers就是解决该问题的关键了。Microsoft创建了这些服务器,使它们一起工作,因此它们具有很多共同的特征——如.NET Framework和XML Web services——这些特征可以简化企业集成。我们将讲述一些主要的.NET Enterprise Server产品提供的关键的集成点,然后讲述两种应用情况来说明在现实世界中,服务器的互用性是怎样起作用的。

Microsoft .NET Enterprise Servers(包括Windows 2000 Server)为你的应用程序提供了一整套的服务。这些服务器一同给你提供了一个开发平台,你可以用这个开发平台来构建可扩展的、可管理的应用程序。例如,Windows 2000为可扩展的、可靠的COM+应用程序创建了架构;它也提供了一个架构来处理n层的应用程序,而在其它情况下,开发人员就不得不自己另外创建这个架构。Windows 2000与.NET Enterprise Servers的集成可以让你的企业以一种方式来管理它的服务器,或者把它们看作是一个服务器组,而不管它们的功能是怎样的。

尽管所有的.NET Enterprise Servers都为企业提供了很有价值的服务,但今天我们将重点讲述具有最广泛的适用性的几个服务器:Internet Security and Acceleration(ISA)Server 2000、Commerce Server 2002、BizTalk Server 2002、SQL Server 2000和Exchange 2000 Server(关于其它服务器的更多的信息,请参考工具条“研究.NET Enterprise Servers”)。.NET Enterprise Servers提供了一整套服务,你在新的.NET Framework上构建应用程序时,可以运用这些服务,包括对XML的支持(这是.NET Enterprise Server互用性的一个重要的部分)和对Windows security的支持。为了讲述这些服务器是如何一起工作的,我们首先来概述一下它们的主要功能。

ISA Server提供了防火墙、代理服务器和可逆代理服务器(reverse proxy)的一个软件版本。它可以使管理员保护内部的网络不受来自Internet的袭击,同时它也提供了Web缓存(caching)的好处,从而使最终用户可以更高效地访问Web页面。ISA Server的安全性是基于Windows Authentication的,所以管理员可以通过Windows domain security或Active Directory(AD)来管理它。

Commerce Server 2002提供了一个架构和一套工具,使开发人员可以创建可扩展的电子商务站点。你也可以运用特殊的Commerce Server工具创建其它类型的Web应用程序。例如,一些公司运用Commerce Server来开发事件日历程序、职位列表和新闻与评论站点,或者他们只运用验证和分析功能。企业经常用Commerce Server来构建商业或促销网站,如Sportsetail Ltd.的england-direct.com——这是英格兰的Football Association的官方产品推销网站(见附录资源)。

用BizTalk转换数据
BizTalk Server 2002运用XML将数据从一个应用程序转换到另一个应用程序,使数据消息可以在不同格式之间进行转换。例如,通过将数据从Electronic Data Interchange(EDI)形式转换成XML,你就可以将你的内部系统同一个原有系统(legacy system)集成在一起了。BizTalk也提供了工作流控制功能,可以让你一步步地控制消息在系统中的流程。在MEC 2002上,Microsoft宣布它计划将Commerce Server、BizTalk Server和Content Management Server合并成一个单独的、代号为Jupiter的产品。

SQL Server 2000是个支持Web的关系数据库,你可以用它来存储大量的数据。它的数据仓库(data-warehousing)、数据分析和联机分析处理(OLAP)功能可以让你运用你存储的数据。SQL Server 2000提供了Data Transformation Services(DTS),使我们可以在任务和工作流中处理数据;它支持XML,因此可以同其它的.NET Enterprise Servers集成在一起,如BizTalk Server 2002;它也支持与Microsoft Message Queue(MSMQ)进行通讯。.NET Framework包含内置的方法,这些方法有助于它通过运用XML与SQL Server沟通。

Exchange 2000 Server是最受欢迎、运用最广泛的电子邮件系统。它还具有其它的一些功能,包括实时的即时消息(instant messaging)功能和实时会议功能。同ISA Server一样,Exchange Server也是与AD紧密集成在一起的。这就使Exchange servers可以与其它应用程序(包括其它的Exchange servers)一起共享信息。Exchange server的内置的Exchange Store可以让开发人员给Exchange提供Web支持。

现在,你已经对这些服务器和它们的功能有了大概的了解了,我们来看看如何运用这些提供了集成点的普通的功能(见下图)。

图1. 通过集成得到多种支持
/*
.NET Enterprise Servers集成了Windows 2000、COM+、Internet Information Services(IIS)、.NET Framework,提供了一个全面的平台,使你可以在这个平台上构建和管理应用程序。这些服务器通过HTTP或Windows客户端给内部和外部用户提供服务。它们也通过多种通讯协议给内部和外部应用程序提供支持,包括HTTP、XML、Simple Object Access Protocol(SOAP)、File Transfer Protocol(FTP)和Simple Mail Transfer Protocol(SMTP)。
*/

这些功能包括Windows integrated security、集成管理(integrated management)、integrated logging(记录)和运用Application Center进行集群管理和监控。所有的.NET Enterprise Servers也在多个集成点之间提供了XML数据支持,并通过Microsoft的COM技术提供了可编程性。随着每个服务器产品的新的版本的发布,它们也通过.NET Framework得到了可编程性。

.NET Enterprise Servers和Windows 2000的集成为管理带来了很多好处。你可以通过Windows Management Instumentation(WMI)控制台来管理所有的服务器,这个控制台提供了一个一致的管理和监控界面使你可以确定服务器的状态。服务器运用Windows系统和应用程序日志文件来记录状态和错误状况,提供了一个一致的区域和格式来监控和跟踪服务器的活动。它们也运用标准的Windows性能记数器(performance-counter)方案,该方案可以提供系统内一个特定的区域的详细的性能数据。

与Windows NT domain security或AD security的集成可以让你从一个单独的环境为Windows和.NET Enterprise Servers管理用户、集群和安全策略。管理员可以将用户一次性添加到Windows或AD中,使他们可以自动运用每个服务器产品,而不用为每个服务器产品添加和配置用户。这种安全集成类似于近几版的SQL Server提供的一种功能:在给基本架构添加新的服务器和服务时,你可以用预定义的安全结构。这种集成可以节省时间和资源,因为你可以在多个服务器中同步安全设置。

运用COM对象
所有的.NET Enterprise Servers都是基于Microsoft的Windows和COM技术的:它们通过COM对象提供了管理和编程接口,你可以用基于COM的开发工具(如Visual Basic、Visual C++和VBScript)对这些COM对象进行编程。

大多数服务器产品也包含挂接(hooks),所以开发人员可以通过COM组件扩展它们。例如,Exchange Server有一些hooks,你可以在一个消息到达一个文件夹时或从一个文件夹删除时,或经过一段时间后,编写一个COM组件来扩展该服务器。你可以用这个功能来创建自动化的消息处理程序。例如,你可以根据消息或数据库中的数据,扩展Exchange自动将消息发送给特定的人。因为你创建的组件是可以扩展的,所以它也可以运用其它服务器产品——例如,它可以从SQL Server读取数据。

一些.NET Enterprise Servers(不管品牌是什么)还没有完全的.NET集成功能,因为.NET还很新。幸运的是,.NET开发人员可以通过运用.NET Framework内置的对COM互用性的支持来集成所有的服务器产品。例如,虽然SQL Server的管理对象仍然是基于COM的,但.NET Framework包含一个本地的驱动程序——用于SQL Server的.NET Managed Data Provider——它提供了比ActiveX Data Objects(ADO)更好的性能。其它的服务器已经完全集成了.NET。例如,Commerce Server 2002通过多个集成项已经完全与.NET集成在一起了,这些集成项包括Windows domain security、AD security、ASP.NET HTTP模块、Open Database Connectivity(ODBC)数据库、一个Lightweight Directory Access Protocol(LDAP)store、COM组件、XML和.NET Framework。缺省情况下,Commerce Server也将所有的数据保存到一个SQL Server数据库。Microsoft正在开发.NET Enterprise Servers的新版本,目的是将.NET直接集成到每个产品中。在这一点上,大多数服务器都没有提供一个本地的.NET接口。

然而,你不应该将这个事实看作是集成的障碍。所有的服务器产品都支持通过XML进行交互,XML在许多方面都直接集成到了.NET Framework中了。这种集成使我们可以运用XML与服务器产品进行交互。例如,SQL Server可以用.NET Framework内支持的格式来读取和编写XML数据。开发人员可以用XPath或SQL查询数据库并返回XML结果。而且,开发人员可以将大量的XML作为关系数据加载到一个数据库。BizTalk Server 2002完全支持Simple Object Access Protocol(SOAP)。

通过紧密集成Windows,创建COM组件来与服务器交互、甚至扩展服务器,你就可以得到很多功能。你可以从.NET中的代码直接访问所有的.NET Enterprise Servers,或通过COM互用性来访问它们。Microsoft将继续为.NET Enterprise Servers发布本地的.NET Framework支持。例如,SQL Server的新版本(代号为Yukon)提供了更完整的.NET功能。通过服务器和.NET Framework对XML的支持,你也可以用XML在服务器之间转换数据。为了帮助你了解这种集成可以给你的企业带来什么样的好处,下面我们来看看一些普通的商业应用情况,在这些例子中,服务器发挥了它们的作用。

实际应用情况
.NET Enterprise Servers可以通过集成给许多类型的应用程序带来好处,但我们将主要讲述两种应用情况:基于Web的应用程序/B2C和B2E交易,以及与商业伙伴、供销商或客户的B2B电子商务集成(其它的应用情况,请参考工具条“评估.NET Enterprise的应用情况”)。我们呈现的每种应用情况都可以从Microsoft .NET Enterprise Servers的强大的集成中受益——尤其是受益于SQL Server、BizTalk、ISA Server和Windows 2000 Server的集成。

第一个例子是一个虚构的中型公司(Northern Distinguished Computers(NDC))的一个电子商店——它在North Dakota出售预制的品牌计算机。NDC同一些大的计算机供销商打交道,给客户提供系统。同许多企业一样,NDC意识到客户希望在Internet上进行商业交易。大多数NDC的客户都运用该公司的网站购买他们的系统,NDC也通过Internet同大多数供销商进行后台交易。我们稍后再讲述NDC同它的供销商之间的交易。现在,我们将重点讲述NDC同它的客户之间的交易(见下图2)。


图2. 提供客户支持
/*
Commerce Server、SQL Server和 BizTalk Server提供了一个强大的基础使我们可以构建集成的B2C和B2B应用程序。通过在ISA Server后运行,它们就得到了防火墙的保护,并得到了代理服务的性能和管理好处。通过将它们集成在一起,我们在创建和长期维护一个Web应用程序时,就可以减少开发精力并降低开发成本。
*/

NDC很快发现仅用一个Web服务器在Internet上建立一个企业网站会带来很多安全问题,并需要进行很多开发工作来与外部的供销商进行交易。最大的问题是,随着时间的推移,对每个附加的供应商的支持会需要越来越多的开发工作,这就使整个解决方案很难管理。

NDC决定运用Microsoft .NET Enterprise Servers来解决安全问题,并减少随着时间的推移维护系统所需要的开发量。这种类型的应用中所包含的Microsoft .NET Enterprise Server技术有ISA Server、Commerce Server和SQL Server。

NDC担心黑客会袭击网站,破坏Web服务器。而且它也想保护网络的其它部分,于是它运用了ISA Server的功能,使ISA Server作为一个防火墙来保护网络不受外部的袭击。虽然其它的防火墙产品已被人们广泛使用,但ISA Server通过Windows domain security或AD提供了集成的Windows security。这就使管理员可以指定哪个.NET Enterprise Servers,甚至哪些用户可以同网络内部或外部的特定资源通讯。

ISA Server也提供了另外的功能,包括可以缓存和运用可逆的代理服务器进行查找,可以跨越防火墙在客户和内部的.NET Enterprise Servers之间提供高性能的交互。基于Web的用户通常运用一个Web浏览器同NDC的Web服务器通讯。ISA Server将所有的Web请求发送到适当的.NET Enterprise Server,如Commerce Server 2002,它是在具有Internet Information Services(IIS)的Windows 2000上运行的。NDC将ISA Server配置成一个可逆的代理服务器,为IIS提供更高级别的安全性,使它既可以运用一个不标准的端口,也可以位于防火墙后。

轻而易举地构建电子商务站点
当NDC开始创建一个电子商务站点时,它想避免从头创建一个站点所需要的大量的时间和金钱。作为替代,它雇佣了一个全职的开发人员,这个开发人员知道如何运用Commerce Server,用它来提供一个可定制的、预制的架构。这就减少了NDC创建网站所需要的时间,而且网站也支持以后的集成。虽然Commerce Server的价格很高(因为每个处理器的成本很高),但是NDC进行的一项分析表明,从头构建一个站点的成本比Commerce Server的价格更高。

当客户浏览网站上的产品条目,把它们放到购物篮时,主要是Commerce Server、SQL Server和BizTalk Server在起作用。企业中的Commerce Server也可以很容易地同其它.NET Enterprise Servers通讯,因为它可以通过集成到那些服务器中的XML、COM和其它.NET hooks与它们进行通讯。

SQL Server 2000提供了数据存储功能,并可以在Commerce Server网站内跟踪订单。它可以阅读XML语句、在数据库中转换它们来处理数据、将XML语句写回到其它的应用程序,如Commerce Server。XML的功能通过与BizTalk的集成而被人们广泛使用。例如,如果BizTalk收到一个订单,它可以发送一个XML请求到SQL Server。SQL Server处理XML并返回提供了产品信息的XML,表明每种产品是否有现货。BizTalk将这个信息返回到发送原始订单的服务器。

有些NDC的客户是社团。NDC利用了SQL Server的功能,通过XML Web services来提供数据,从而简化了查看产品可用性的过程。NDC的开发人员用SQLXML 3.0创建了XML Web services,SQLXML 3.0扩展了SQL Server 2000的内置的XML功能,并扩展了.NET Framework。运用SQLXML,他们就可以从SQL Server存储过程和服务器端的XML模板直接创建XML Web services了。我们在后面讲述B2B时,会更详细地讲述XML Web services。

客户将计算机放在购物篮中,通过网站下订单。Commerce Server将该请求传送到SQL Server,对购物篮中的产品进行处理,为客户创建一个订单。在SQL Server完成了创建该订单所需要的一个或多个交易后,它就返回一个状态消息到Commerce Server,表明它已经创建了订单。Commerce Server依次处理信息,通过公司的Web浏览器、ISA Server、客户的Web浏览器将消息返回给客户。这个过程对客户是完全透明的。

NDC的商业站点和其它供销商(如一个供应商)之间的交易对客户来说不是公开的。B2B交易是重要的商业交易,如实时库存管理和订单的完成。NDC不存放它出售的产品,所以它不建立自己的产品库存。作为替代,它依靠与商业伙伴的紧密合作来管理它的库存。

扩展B2B交易
在前面的例子中,SQL Server发送一个状态消息到Commerce Server,表明成功地创建了一个订单。当SQL Server创建订单时,它激活了一个触发器来确定哪个供应商存有所订的产品项目。SQL Server用COM组件将一个订单请求发送到MSMQ 3.0中的一个队列。这时候,SQL Server就不再控制该过程了,而由MSMQ和BizTalk在下面的几个步骤中处理一个或多个订单。

消息队列技术使在不同时间运行的应用程序可以在临时离线的网络和系统上通讯。通过对COM的支持、对.NET Framework的支持、动态的基于目录服务(directory service)的结构和内置的集中系统管理,消息队列就集成到.NET Enterprise Server环境中了。

你可以在MSMQ的消息到达时或经过一定的时间间隔后,配置BizTalk Server对它们进行处理。队列中的消息一直保留在队列中,直到BizTalk对它们进行处理。这种配置就可以使应用程序在任何时候发送消息到BizTalk Server——即使是服务器不在线时。

更重要的是,你的SQL Server存储过程或触发器不需要等BizTalk来处理消息。当消息在队列中等候处理的时候,SQL Server也可以继续处理来自Commerce Server的更多的请求。而且,Commerce Server也可以继续处理来自多个客户的订单。这就使我们可以对用户的交互作出响应,而且可以在后台处理大量的实际订单。

供应商可能也需要用MSMQ和XML Web Services来接收订单。MSMQ消息可以通过XML Web services发送,这就使服务的调用者可以根据企业的计划和商业需求在消息列队等候处理时继续它的工作。

NDC设计了它自己的订单格式。虽然这种方法简化了它的内部系统,但它使与商业伙伴的通讯变得复杂了,因为每个公司都有独特的订单格式。NDC利用了BizTalk的功能,将数据从本地的内部商业格式转换成供应商的数据格式。BizTalk可以将任何XML文件转换成许多其它的文件格式。BizTalk Server可以通过多种方法发送和接收文件,包括电子邮件、FTP、HTTP、MSMQ和XML Web services。NDC配置BizTalk来从消息队列监控和读取它的内部订单消息。BizTalk将NDC的订单从内部格式转换成供应商可以理解的特殊的格式。BizTalk通过内部网络、穿越ISA Server将订单直接发送给供应商。

不同的供应商的系统可以有不同的转换需求。NDC配置BizTalk Server,运用适当的转换机制,将重新格式化的订单发送给每个供应商。有些NDC的供应商运行的是Microsoft的产品,而另外一些供应商运用的是其它公司的产品,这一事实并不是个问题,因为BizTalk Server可以将数据转换成XML、EDI或其它格式。例如,有个NDC的供应商运用的是一个非Microsoft的平台,在其它情况下,它就不能与一个Microsoft平台通讯。但现在,BizTalk Server对SOAP的支持和XML Web services就可以使NDC和这个供应商相互之间有效地通讯了。

实现安全的B2B交易
另一个NDC的供应商有这样一个Microsoft解决方案,它包括一个提供安全的ISA Server和一个接收订单的XML Web service,该订单放在了供应商系统的消息队列中。供应商的ISA Server允许一个由NDC签署的安全的订单进入网络,发送订单请求到XML Web service,然后进入消息队列。供应商的商业系统在那里对它进行适当的处理。

XML Web services可以为.NET Enterprise Servers或其它服务器之间的集成提供一个重要的集成点。一个Web service是一个程序层,它将它的接口公布给其它Internet应用程序。在本例中,供应商已经提供了一个XML Web service,使NDC可以给它发送一个订单。你可以把XML Web services看作是你的服务器提供的一个功能,这样其它程序就可以跨Internet调用那个功能。这些其它的程序都运用SOAP标准,因此它们可以在任何平台上运行,而且可以用任何编程语言编写。

位于供应商站点处的Web service处理请求,然后将订单发送到一个内部消息队列系统。供应商运用类似于NDC的处理过程来处理订单。然后供应商的服务器给NDC返回一个文件,表明供应商正在处理产品项目。这时候,NDC的BizTalk就将供应商的文件转换成NDC可以理解的格式。BizTalk包含商业逻辑,它将一个电子邮件消息直接发送到Exchange Server,让客户知道订单正在被处理中。BizTalk也将消息发送回Commerce Server,根据转换的文件做处理。Commerce Server记录供应商提供的交易和信息,然后以XML的格式发送SQL Server信息,表明订单状态应该变成“Being Processed”。

这个过程也用了一个COM组件将一个消息发送到一个Exchange Server消息文件夹。当Exchange 2000 Server接收到确认消息时,它就把该信息发送给最终用户。Exchange 2000 Server给客户发送电子邮件,表明NDC正在处理产品项目,他/她的订单正在处理中(见下图3)。


图3. 与商业伙伴的集成
/*
.NET Enterprise Servers不仅可以在HTTP或Windows客户端的基础上创建内部和外部应用程序,它们也支持B2B和EAI功能。通过它们对XML、SOAP、EDI和其它格式的支持,你就可以集成内部和外部应用程序为你的企业提供一个全面的解决方案了。
*/

大多数中型或大型企业都需要.NET Enterprise Servers支持的集成类型。由于服务器产品不需要高级的开发,它的管理和维护成本也不高,所以通常会带来一定的投资回报(ROI)。记住,你可以逐步添加.NET Enterprise Servers。如果你的企业或应用程序目前不需要紧密的集成,或者还没有对多个.NET Enterprise Servers进行投资,那么你可以在以后的时间根据你的需求来扩展它。例如,你可以开始时只装SQL Server,以后再添加BizTalk Server来辅助自动化流程处理。

同任何技术一样,你可以在购买前评估一个软件解决方案的商业利益。确定你的长期目标,将它们与你当前的或以后的IT基础架构做比较,这样会有助于你作出适当的选择。不管你选择什么工具,它们必须尽可能地紧密地结合在一起。.NET Enterprise Servers为有效的和紧密的互用性提供了潜能,使开发可以更顺利地进行,并可以从根本上降低成本。像NDC一样,你可以根据你的实际商业需求用它们来定制你的平台,或集成多个平台。


关于作者:
Rockford Lhotka是位主要的技术传播者,Christopher Winland是Magenic Technologies的一位高级顾问,这是一家Microsoft技术的咨询公司。Rockford经常为Visual Studio Magazine撰稿,并已经写了好几本关于Microsoft和.NET编程的书。Rockford的联系方式是rocky@lhotka.net, Chris的联系方式是chrisw@magenic.com

附录:资源

posted on 2004-06-30 15:24  feeling  阅读(1351)  评论(0编辑  收藏  举报

导航