考虑到网络是一种无状态的联接模型,网络应用程序开发人员所面临的一个很复杂的问题是,他们要对用户与基于网络的接口的交互作用作出反应。网络利用ASP+的体系架构提供了一套丰富的服务,以帮助开发人员建立交互式网页。用户与网页交互作用的状态管理的复杂性被ASP+网络表单和网络表单控件隐藏起来了。对开发人员来说,提供的丰富数据绑定服务使得显示通过数据访问服务得到的数据变得非常容易。
代码与内容的分离使ASP+网页能动态地编译到受控类中,用以提高性能。每个引入的HTTP请求都被传递到一个新的网页实例中,因此开发人员不需要关心代码中的线程安全性问题。
ASP+网络服务
ASP+网络服务体系架构为用ASP+建立网络服务提供了一个高级可编程模板。虽然建立网络服务并不需要使用网络服务平台,但是它提供许多的优点将简化应用程序的开发过程,并且它使用的编程模型对用ASP或VB工作的开发人员来说是很熟悉的。使用这个可编程模型,开发人员可以不需要理解HTTP、SOAP或其它任何网络服务规范。ASP+网络服务可编程模型如图3所示。
开发人员用ASP+生成一个扩展名为 .ASMX的文件,并把此文件配制为网络应用程序的一部分,就建立起了一个网络服务。ASMX文件包含受控类的引用,或这个类的定义。这个类是由ASP+提供的WebService类所派生的。公有的类方法在标记上WebMethod属性后,就会成为网络服务方法,把HTTP请求发送到ASMX文件中的URL后,这些方法就会被调用。你不必手工为你的网络服务建立一个契约。当被调用者发出请求时,ASP+会检查类的元数据,从而自动生成SCL文件。
客户可通过SOAP、HTTP GET和HTTP POST提交请求。对方法和参数进行编码的约定是:HTTP GET,将被编译为查询字符串;HTTP POST,将被编译为表单数据。HTTP GET和HTTP POST 的机制不如SOAP有力,但是它们使得客户在访问网络服务时不必支持SOAP。
ASP+网络服务模型假定了一个无状态服务结构。无状态结构通常比有状态结构更具可扩展性。每次收到一个服务请求后,就生成一个新对象,请求被转化为一个方法调用,当方法调用返回时对象被销毁。如果这些服务需要跨请求维护状态,那么它们将使用ASP+状态管理服务。基于ASP+的网络服务在网络应用程序模型中运行,因此它们得到了该模型的所有安全、配制和其它优点。
ASP+网络服务还提供了一个为在SCL文件中描述的网络服务生成分类的受控代理工具。代理生成器把SCL文件中描述的消息映射成受控类中的方法。代理对应用程序代码隐藏了所有的网络和引导设备,因此使用网络服务看起来就象使用其它受控代码一样。代理将优先使用SOAP链接网络服务,但是它同样支持HTTP GET和HTTP POST机制。
结论
网络服务为在Internet上绑定应用程序提供了简单的、灵活的、基于多标准的模型,同时,最大可能地重用现存体系架构和应用程序。网络应用程序可以很容易地与本地开发的服务或已存在的服务集成在一起,而不用考虑开发平台、开发语言或使用的对象模型,以用于实现任何组成的服务或应用程序。
Microsft.NET框架为开发人员提供了一个极为方便的开发环境,从而简化了安全、可靠、可扩展、高可用性的网络服务的建立、部署和不断的发展。
