整个.NET平台体系结构可以分为4个主要部分:
.NET基础设施和工具:用来构建和运行电子企业系统的基础设施和工具,包括Visual Studio.NET,.NET Enterprise Servers,.NET Framework。 .NET基础服务:.NET服务包括一组用于Internet的信息共享服务,如Passport.NET (用于用户身份验证),以及用于文件存储、用户偏好管理、日历管理的服务。这些服务将由微软公司以及微软的合作伙伴提供。 .NET用户体验:这将是一个更广泛、更适应的用户体验,信息可以各种方式、在各种不同设备上提供。 .NET设备:这种设备软件使得可以使用新的可以利用网络服务的智能Internet设备。[JM1] .NET Framework与Visual Studio.NET也许.NET平台最重要的部分是.NET Framework。这是一个与操作系统紧密相关的综合运行环境。它包括面向组件的中间层基础结构(COM+),Common Language Runtime (CLR) 环境,一个准时制编译器,一组使用.NET组件模型打包的操作系统库。.NET系统(可能不包括数据层,笔者将在互用性中进行讨论)中服务器侧的每层将运行支持.NET Framework的操作系统。
与.NET Framework密切相关的是主要的程序员开发工具,Visual Studio.NET。表示层程序员使用Visual Studio.NET来定义向瘦客户端系统提交HTML页面的逻辑。商务层程序员使用Visual Studio.NET以多种语言实现商务逻辑,然后将商务逻辑打包为COM+组件。
Visual Studio.NET是中性语言。它被认为是最好的开放的程序设计平台,可以插入多种语言。可以与Visual Studio .NET一起使用的“标准”微软语言由VisualBasic,VisualC++和VisualC#。其他语言可以通过第三方获得,包括富士通(Fujitsu)公司的COBOL语言,Interactive Software Engineering公司的Eiffel语言。许多其他种与Visual Studio兼容的语言,包括Haskell,Mercury,Oberon和Perl正在由大学研究方面进行调查。
Visual Studio.NET (实际上,是整个.NET平台)的语言中性对于.NET平台策略是至关重要的。它是通过将所有Visual Studio.NET语言翻译成一种称为Intermediary Language (IL)的通用语言而实现的。实际上,它是通过语言开发商创建的使他们的语言与Visual Studio.NET 兼容的IL翻译器实现的。这样的语言被称为.NET支持语言(.NETenabled language)。
IL文件通常以可部署的称为汇编组件(assemblies)单位进行打包。这些汇编组件被加载到通用运行语言(Common Language Runtime,.NET Framework的一部分)种,由IL编译器进行编译,然后在通用运行语言(Common Language Runtime ,CLR)内运行。CLR提供了许多特性,我们可以将这些特性与一种特定的语言联合起来,包括碎片收集,类型定义,多型方法解析,错误处理,和部署模型。
将语言特性合并到一种通用运行语言(CLR)中,而不是合并到一种特定的语言中,使得各种语言可以自由地在整个.NET平台内互用。碎片收集,类型定义和错误处理都以一种统一形式进行处理,从而实现了无与伦比的语言互用性。也许跨语言互用性给人印象最深刻的例子是在一种语言(比如说,C#)内定义一个基类,然后以一种完全无关的语言(比如说,COMBOL)重写各种方法。笔者在最近的文章中曾给了这样一个例子。[1]
在表示层使用.NET Framework意味着,任何支持.NET的语言(换句话说,任何有IL解释程序的语言) 都可以用作表示逻辑的脚本语言。并且由于.NET Framework包括编译器,它还意味着对表示层脚本进行编译,而不是进行解释,从而显著地改善了性能。
我们正在看到,各种类型的瘦客户端(浏览器,蜂窝电话,电子写字板,等等)开始迅速增长,每一种客户端都支持自己的HTML子集。今天的表示层脚本必须首先确定客户端的类型,然后为该客户端创建特制的HTML。这种操作非常费时,易出错,并且在新客户端系统变得可用时很难维护。
Visual Studio.NET包括一个新的表示层程序设计模型,该模型设计用来简化为瘦客户端系统的激增所进行程序设计工作。这种新的程序设计模型称为ASP.NET。ASP.NET允许表示层逻辑为客户端中性。这种程序设计模型是以今天非常成功的VisualBasic程序设计模型为基础的。With ASP.NET, the presentation tier scripts ask controls (such as menus or pull down boxes) to act in certain ways, and then respond to events that those controls raise. It then becomes the control's responsibility to deliver its functionality using the HTML best suited for a given client device.
设计一个ASP.NET应用程序只需将GUI控件(如菜单或下拉工具箱)从模板投放到设计桌面上。然后程序员以任何支持Studio .NET语言编写对控制事件响应的代码。由控件,而不是由程序员负责根据客户端的实际设备确定最好的解释方法ASP.NET架构负责判断客户端采取特定的动作(如按下按钮)。由于所有这些都是在表示层发生,因此同一个代码基可以正确地工作,而不论实际的客户端设备是否任何.NET技术。
控件/事件程序设计模型,将设备感知内置到了表示控件而不是表示逻辑中,从而大大减少了开发和维护阶段的工作。开发工作减少了,是因为一个简化的代码块可以解释客户端的需求,并对任何最终客户端设备的HTML需求进行处理。维护工作减少了,是因为我们可以通过下载我们使用的最新版本的控件,加入对新的客户端设备的支持。
.NET企业级服务器.NET企业级服务器是一组附加的、设计用来提供专用的企业级服务的服务器产品。每个服务器产品都是单独定价的,从而在配置整体解决方案方面提供了最大的财务灵活性。一个企业只需为所需的服务付费。
最出名的企业级服务器是微软公司的Probably the highest profile SQL Server。这是微软公司的高端数据库产品,该产品的许多功能已经远远超过了本文的范围。足可以说,SQL Server是具有高性能、高可用性、高可伸缩性的关系数据库,是企业市场中一个强有力的竞争者。
但是,对于.NET平台使用户依赖SQL Server,没有任何意义。许多组织机构使用整个.NET平台来创建他们的电子商务系统,他们可以选择自己的数据存储技术,如Oracle或DB2。每个流行的数据库系统都可以用作.NET数据层。例如,Oracle可以通过数据库中性的ADO.NET接口访问。大型机数据库,CICS和IMS可以通过Host Integration Service (HIS)访问。
最新的.NET企业级服务器是Application Center Server(应用中心服务器) Server。这个产品是专门为那些需要24X7可用性和/或低伸缩成本的公司而设计。Application Center Server既是一个群集协调者,又是一个群集管理者。
Internet Security and Acceleration Server (Internet安全与加速服务器,ISA Server)重点解决表示层的需求。It ISA Server提供了两个重要功能:HTML页面缓存,可以显著提高许多重点的性能,以及防火墙功能。当然,防火墙功能对于保证任何重要的电子商务站点的安全是至关重要的。ISA Server为基于硬件的防火墙产品提供了一个低成本的软件解决方案。冒着冗余的风险,ISA可以与其他.NET产品一起使用,但这并不需要。
BizTalk Server是一个综合的、集成产品,主要用来将各种组织机构的操作联系在一起,并且允许该组织机构与合作伙伴的操作互用。
Commerce Server是用于创建电子商务站点的架构。它重点是解决电子商务零售业务的需求。使用Commerce Server提供的组件,并进行专门化,就可以快速地创建这样的网站。
UDDI协作基础结构协作是电子企业的未来。正在定义以支持电子协作的行业标准集可以在Universal Description, Discovery, and Integration (UDDI)下进行分组。
虽然UDDI独立于.NET平台,但是大多数UDDI相关活动都是由微软公司倡导的。这样,看起来在.NET平台部分中描述UDDI比较合适。
UDDI标准归uddi.org协会所有,一点也不奇怪,该协会的网站为www.uddi.org。该协会由Ariba,IBM和微软公司领导,同时包括100多个支持公司,包括Andersen Consulting,波音,康柏,戴尔,惠普,福特,Loudcloud,Merrill Lynch,Rational,SAP AG,Sterling和Sun。要了解当前的支持者清单,请访问该协会网站。
UDDI是在一组现有的、获得广泛支持的基础标准上建立的。这些基础标准包括:
HTTP – 用于在Internet上进行通信的标准协议。 XML – 一个用于对数据和有组织字符串打包的、被广泛接受的工业标准。 SOAP – 一个迅速出现的标准(主要由微软公司和IBM公司领导),用于对客户端工作请求和作为XML字符串的系统相应进行打包。SOAP代表简单对象访问协议(Simple Object Access Protocol)(这是一个令人迷惑的简称,因为它既不简单,也不与任何对象相关!).HTTP和SOAP组合被认为是未来所有的电子协作的基础。在本白皮书中,当笔者讨论SOAP时,将假定使用HTTP作为传输协议。尽管其他协议(如那些基于信息队列的协议)可以用来传输SOAP请求,但在电子协作体系结构中,这将是不可能的。
图2为最常见的基于电子协作体系结构的SOAP协议。由于在例子上下文中更容易进行解释,笔者将使用最初的电子企业原型MoneyBroker。让我们看看MoneyBroker是如何使用SOAP与AustinKayaks协作的,最终的结果是AustinKayaks允许客户使用MoneyBroker帐户付款。
[1]请参阅ObjectWatch 通讯第29期中Roger Sessions的文章:Letter from the PDC 2000; The Unveiling of Microsoft.NET (http://www.objectwatch.com/issue_29.htm)
[JM1]If we’re paying for this white paper, we should make sure we have the correct taxonomy. Dburner will have the most current.
本文地址:http://com.8s8s.com/it/it18641.htm