江西现代职业技术学院江西南昌330095
【摘要】了解ASP.NETAJAX异步通层的架构的深入理解相关内容的必要前提条件。让我们先从最高点俯瞰一下ASP.NETAJAX中的异步通层结构,以及客户端和服务器端通信的过程,ASP.NETAJAX中的异步通信层在物理上被分散到了客户端和服务器端两个位置。
【关键词】异步;架构;程序;应用
当客户端第一次请求服务器端(例如用户在浏览器中输入某个ASP.NETAJAXASP.NETAJAX应用程序的URL)时,服务器端的ASP.NET页面将初始的页面UI以及行为发送给客户端。
之后,客户端和服务器端之间的通信将传递纯粹的数据-——数据的生成和保存由服务器端业务层和数据层完成,数据的显示方式以与用户与数据之间的交互(包括修改、添加和删除)则由客户端表示层完成。至于客户端与服务器端传递数据的实现过程,则正是我们本章探讨的主题——-异步通信层来完成的。
简要了解ASP.NETAJAX中的异步通信层结构,以及客户端和服务器端的通信过程之后,我们接下来更深入一步,分别探究ASP.NETAJAX中异步通信层的客户端和服务器端的具体架构。
一、客户端架构
ASP.NETAJAX异步通信层的客户端部分包含了若干个javaScript组件,ASP.NETAJAX异步通信层的客户端部分中,众多的javaScript组件可以分为两大类:核心通信组件以及支持组件。下面我们分别介绍。
(1)核心通信组件
核心通信组件是指实现与服务器端WebService交互所必需的客户端脚本组件。WebService代理、页面方式代理、webRequest组件、webRequestManager组件以及XMLHttp-Executor组件均属于核心通信组件。
(2)WebService代理
在ASP.NETAJAX中,WebService的客户端代理可以由服务器端的异步通信层自动生成。然后开发者即可在javaScript中通过这些WebService代理非常直观地对服务器端的WebService方式进行异步调用。调用这类代理的语法和服务器端代码(例如C#或vb.net)的调用语法非常类似——这也正是“代理”的含义。关于客户端的WebService代理与普通的HTTP请求一样,调用服务器端的WebService方法也可以使用GET和POST两种方式。
以GET方式进行调用,那么需要为WebMethod添加{scriptMethod(UsehttpGet=true)}属性。
(3)页面方式代理
与客户端的WebService代理类似,ASP.NETAJAX异步通信层的服务器端部分同样能够为定义在ASP.NET页面中的静态服务器端方法自动生成客户端的代理,因此也能够大大简化在客户端javaScript中的调用过程。
(4)WebRequest组件
*WebRequest组件是异步通信层中客户端部分的“经纪人”,用来收集发起异步HTTP请求所用到的参数,例如请求地址、请求的主体部分、超时设定以及用户上下文信息等。一般来讲,WebRequest组件是我们使用ASP.NETAJAX异步通信层创建并发起一次HTTP请求唯一需要打交道的客户端组件。当然,若是该HTTP请求的目标是某个WebService或某个ASP.NET页面中的静态方式,那么则毫无疑问应该选用主动生成的WebService或页面方法的客户端代理,这样讲会更加简单。
*XMLHttpExecutor组件
XMLHttpExecutor组件是异步通信层客户端部分中最为“劳苦功高”的“实干者”,它将使用原始的XMLHttpRequest对象完成客户端与服务器端的通信工作。此外,XMLHttpExecutor类继承于WebRequestExecutor基类,WebRequestExecutor基类为上层调用者提供了客户端与服务器端通信工作的抽象,而XMLHttpExecutor只是WebRequestExecutor的一种实现。
*WebRequestManaget组件
WebRequestManaget组件是异步通信层客户端部分中的“大管家”,用来维护并协调WebRequest组件与XMLHttpExecutor组件之间的关系,保证异步通信流程的顺畅。
(5)支持组件
支持组件是指对WsbService或页面方法代理进行再次封装的组件,包括身份验证代理和用户个性化代理。实现客户端/服务器端序例化/反序例化功能的组件也属于支持组件,即JSON序例化组件。
二、身份验证代理
身份验证代理组件是由服务器端验证服务自动生成的。通过使用身份验证代理组件,即可在客户端用JavaScript以异步回送,也就是Ajax的方式,实现用户的登录/注销功能,而无需完成传统方式中的一次整页回送。
*用户个性化代理
用户个性化代理组件是由服务器端个性化服务自动生成的。与身份验证代理组件的功能非常类似,通过使用用户个性化代理组件,即可在客户端用JavaScript以异步回送的方式获取/修改/更新用户的个性化信息,同样避免了传统方式中的一次整页回送。
*JSON序例化
JSON序例化组件能够把需要发送给服务器端的数据序例化程JSON格式,还能够将服务器端返回的JSON字符串解析程真正的JavaScript对象(使用JavaScript的eval()函数)。
三、总结
在ASP.NET开发中需要使用异步通信来实现不同架构之间的数据交互是非常必要的,可以使用WebService代理、页面方式代理等多种方式来完成。
参考文献:
[1]辛颖楠.办公自动化系统的开发与应用[J].中国管理信息化.2015(10).
[2]王书荣.浅谈SQLServer数据库的安全机制问题[J].数字技术与应用.2013(02).
[3]边境,庄红,林永兴.一种数据库加密技术在高校OA系统中的设计与实现[J].浙江理工大学学报.2009(01).