app教程网 综合百科 XML、Web服务和.NET框架

XML、Web服务和.NET框架

应用程序开发技术正在发生质的飞跃,这从根本上提高了开发人员的生产力,并为应用程序的全新概念打开了大门。

过去,开发人员一直通过集成本地系统服务来构建应用程序。在这种模式下,开发者可以访问丰富的开发资源,并严格控制应用程序的行为。

如今,开发者已经在很大程度上脱离了这种模式的束缚,致力于构建一个结构复杂的N层系统,可以整合网络中的众多应用,大大提升应用的价值。这样一来,

开发人员可以专注于探索软件的独特商业价值,而不是日夜担心如何构建基本结构。一个可喜的局面将应运而生:软件投放市场的时间将大大缩短,开发者的编程效率将显著提高,最根本的是开发出高质量的软件。

我们正在进入一个全新的计算时代,一个互联网时代,其核心技术是“可扩展标记语言”,即XML。XML创建了强大的应用程序,任何人从任何地方都可以访问和使用。它极大地扩展了应用程序的功能,

实现了软件的不间断传输。在这种环境下,软件并不完全是指从光盘上安装的节目,而是演变成了一种服务:类似于来电者的身份验证或者按观看次数收费的电视,人们可以通过传播媒介预订这种服务。

所有这些都是通过将紧密耦合和高效的N层计算技术与面向消息和松散耦合的Web概念结合起来实现的。我们把这种计算风格称为Web服务,它的出现标志着人类进入了应用开发技术的新时代。

Web服务是一个应用程序,它可以使用标准的Internet协议,如超文本传输协议(HTTP)和XML,在Internet和intranet上以编程方式显示其功能。您可以将Web服务视为Web上的组件编程。

理论上,开发者可以通过调用Web应用程序编程接口(API)将Web服务集成到应用程序中(就像调用本地服务一样),但不同的是,Web API调用可以通过互联网发送到位于远程系统中的一个服务。举个例子,

Microsoft Passport服务使开发人员能够验证应用程序。通过Passport服务编程,开发者可以充分利用Passport的基本结构,通过运行Passport来维护用户数据库。

保证其正常运行,定期备份等等。

松耦合

在网络中分布应用程序逻辑并不是一个全新的概念,但是在Web中分布和集成应用程序逻辑却是一个全新的概念。

过去,分布式应用程序逻辑需要使用分布式对象模型,如微软的分布式组件对象模型(DCOM)、对象管理组的通用对象请求代理架构(CORBA)或Sun的远程方法调用(RMI)。

通过使用这种基本结构,开发人员仍然可以拥有使用本地模型提供的丰富资源和准确性,并且可以将服务放在远程系统中。

这些系统都有一个共同的缺陷,就是不能扩展到互联网上:它们要求服务客户端和系统提供的服务之间有一个紧密的耦合,也就是要求有一个相似的基本结构。这种系统通常非常脆弱:如果一端的实现机制发生变化,

那么另一端就会崩溃。例如,如果服务器应用程序的接口发生变化,客户端将会崩溃。

要求一个紧密耦合的基本结构是可以理解的,很多应用都是建立在这个系统上的。然而,当公司需要相互合作或信息技术提供商扩大业务范围时,很难实现单一和统一的基本结构。

你不能保证你想与之进行远程通信的管道的另一端有你需要的所有基本结构:你可能对它使用的操作系统、对象模型或编程语言一无所知。

相反,Web服务之间是松散耦合的。连接中的任何一方都可以在不影响应用程序正常运行的情况下更改执行机制。从技术角度来看,人们已经转向基于消息的异步技术来实现高可靠性的系统性能。

统一连接是通过使用HTTP、简单邮件传输协议(SMTP)以及最重要的XML来实现的。

消息传递系统将通信的基本单元打包成自描述的数据包(也称为消息),并将它们放在网络电缆中。消息传递系统和分布式对象系统的本质区别在于,发送者需要识别接收者的基本结构。

在分布式系统中,发送方需要对接收方做出各种猜测:应用程序是如何激活或解包的,调用什么样的接口,等等。

另一方面,消息传递系统在电缆格式级别创建合同。发送方不需要考虑消息接收后的情况,也不需要考虑发送方和接收方之间的通信。唯一需要考虑的是接收方是否能识别发送的信息内容。

在电缆格式级别创建合同的优势是不言而喻的。例如,接收方可以在任何时候进行更改,而不会干扰发送方的消息,只要它仍然可以识别原始消息。此外,

发送者可以与接收者交流,而不需要任何特殊的软件:只要它以正确的格式发送消息,接收者就可以做出响应。

电缆级XML:SOAP

实现Web服务和整个Web的异构基础结构的关键是实现支持简单数据描述格式的技术。这种格式是XML。

Web服务必须使用XML来完成三件事:基本电缆格式、服务描述和“服务发现”。

SOAP:在最低层次的通信中,系统需要使用相同的语言。特别是,作为通信双方的应用程序需要遵守同一套通信规则:如何表示不同的数据类型(如整数或数组)以及如何表示命令(即需要对数据执行什么操作)。

此外,在必要时,应用程序需要适当地扩展语言。简单对象访问协议(SOAP)是XML的一个实现工具,它提供了一组解释如何表示和扩展数据和命令的通用规则。

Web服务描述语言(WSDL)。在得到如何表示数据类型和命令的规则后,两个应用程序都需要有效地描述接收到的特定数据和命令。仅仅说收到了一个整数是不够的;例如,在接收到两个整数后,

应用程序必须明确它可以将这两个整数相乘。Web服务描述语言(WSDL)是一种XML语法,开发者和开发工具可以使用它来表达Web服务的特定功能。

“SOAP发现”:在最高层,应该制定一套关于如何定位服务描述的规则:默认情况下,用户或工具在哪里可以找到服务的功能描述?根据“SOAP发现”规范中提供的规则集,

用户或开发工具可以自动找到服务的SCL描述。

一旦实现了这三个功能层,开发人员就可以很容易地找到Web服务,将其实例化为对象然后集成到应用程序中,然后构建一个功能丰富的基本结构。这样,生成的应用程序可以与Web服务反向通信。网络服务引擎

显然,许多基础结构需要使上述过程对开发者和用户透明。的。NET framework提供了这种基本结构。从.的角度来看。NET框架,所有的组件都可以是Web服务,Web服务只是组件的一种。实际上,

NET framework提取了微软组件对象模型(COM)的精髓,将它们与松耦合计算的精髓有机结合,生成了一个强大高效的Web组件系统,简化了程序员的“流水线”操作,深度集成了安全性,

引入了基于互联网的操作系统,大大提高了应用程序的可靠性和可扩展性。

的。NET框架由三个主要部分组成:公共语言运行时、多级结构的类库统一集合、高级版的“动态服务器页面”(也称ASP)。

公共语言运行时

这个名字不能准确地反映它的所有功能。事实上,公共语言运行时在组件开发和软件运行过程中起着非常重要的作用。在组件运行期间,

运行时负责管理内存分配,启动或取消线程和进程,实现安全策略,满足当前组件对其他组件的需求。在开发阶段,运行时的角色发生了一点变化:与今天的COM相比,

运行时的自动化程度大大提高(比如自动内存管理),所以开发人员的工作变得非常轻松。特别是,映射功能将大大减少开发人员在将业务逻辑转换为可重用的编程组件时所需的代码量。

对于编程语言来说,运行时的概念并不新鲜:事实上,每种编程语言都有自己的运行时。Visual Basic?开发系统有最明显的运行时(名为VBRUN),

Visual C++?跟Visual FoxPro?Jscript?SmallTalk、Perl、Python和Java一样,有一个运行时MSVCRT。

NET框架的关键作用是它提供了一个跨编程语言的统一的编程环境,这也是它能独树一帜的根本原因所在。

统一的编程类

.NET框架中的类为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的类库集(API)。现今,C++开发人员使用的是微软基础类库,Java开发人员使用的是Windows?基础类库,

而Visual Basic用户使用的又是Visual Basic API集。简而言之,NET框架统一了微软当前各种不同的框架。这样,开发人员不再需要学习多种框架就能顺利编程。远不止于此的是,

通过创建一个公共的跨编程语言的API集,NET框架可实现跨语言继承性、错误处理功能和调试功能。实际上,从Jscript到C++的所有编程语言,都是相互等同的,开发人员可以自由选择理想的编程语言。

高级版“活动服务器页面”(ASP+)

ASP+是使用.NET框架提供的类库构建而成的,它提供了一个Web应用程序模型,该模型由一组控件和一个基本结构组成。有了它,Web应用程序的构建变得非常容易。开发人员可以直接使用ASP+控件集,

该控件集封装了公共的、用于超文本标识语言(HTML)用户界面的各种小组件(诸如文本框、下拉菜单等等)。实际上,这些控件运行在Web服务器上,它们将用户界面转换成HTML格式后再发送给浏览器。

在服务器上,控件负责将面向对象的编程模型呈现给Web开发人员,这种编程模型能提供面向对象的编程技术拥有的丰富功能。ASP+还提供一些基本结构服务(诸如会话状态管理和进程循环),这些服务进一步减少了

本文来自网络,不代表本站立场,转载请注明出处:https: