在采用AJAX技术的应用中, 常见的是两种架构设计, 一种是采用RPC(Remote Procedure Call)方案,
后台应用直接将java对象包装为service接口, 在js对外暴露(java对象完全不知道web层),
在js中通过类似函数调用的方式访问后台服务.而另外一种方案是在后台维持一个前台DOM节点的映象,触发前台事件之后, 前台引擎自动截获该事件,
并翻译为对后台事件监听器的调用, 将请求提交到后台, 后台程序处理请求之后更新后台DOM节点, 然后将页面变更部分传回前台页面.
这两种方案一种是倾向于在js中提供自我封闭的程序模型(对远程服务的调用体现为对一个js函数的调用),
一种是倾向于在后台提供封闭的程序模型(对前台页面的更新体现为对一个后台java对象的属性和结构的改变).
这两种方案的共同之处在于它们都试图在一定程度上屏蔽前后台程序的交互细节, 而提供一种统一的程序模型.
但是我们需要记住软件设计的第一要义在于系统的分解,
而Browser和Server之间客观存在的http信道是天然存在的一种分界线. 任何强迫我们忘记B/S之间的界限的技术都是需要谨慎对待的.
例如控制后台对象的权限问题, 很多RPC方案限制了应用程序对于web接入层的直接接触, 而只能通过AOP(Aspect Oriented
Programming)技术来动态织入权限控制代码. 在实际使用中,
这种方式往往因为service接口函数的多样化而造成配置上的繁琐. 而在我们的体系架构中,
系统边界划分在web访问层上(而不是java service层), 借助于web访问协议自身的一致性和透明性, 我们只需要如下实现
Object invokeWebEvent(){
return new ActionMethodInvocation(getWebObject(), getObjectEvent(), getInterceptors()).proceed();
}
就为所有WebObject加入interceptor堆栈, 完全不需要AOP的动态织入技术.
在witrix平台的设计中, 因为大量采用pull方案, 我们对于前后台交互方式采取的是完全开放的态度,
前后台的交互接口完全定义在web访问层上(即前台程序直接访问一个url获取数据), 尽量避免将系统架构的限制引入到应用程序设计中来. 确实,
Browser和Server之间的原始交互方式是受限制的, 狭窄的, 但是从系统设计的角度上说,
这正是异构系统集成和进行系统核心控制的最好场所, 任何试图独占该连接信道并在层层封装之后提供更加丰富的访问语义的努力在我看来都是可疑的.
分享到:
相关推荐
Ajax中文乱码问题解决方案
.net中ajax学习解决方案,很好地代码程序,供大家参考
ajax乱码问题.ajax乱码问题的一些解决方案,总结网友的一些方法。
Ajax跨域问题及其解决方案.docx
关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是...o表现(整理了一些遇到的问题以及解决方案) 如何解决ajax跨域 oJSONP方式 oCORS方式 o代理请求方式 如何分析ajax跨域 ohttp抓包的分析 o一些示例
NULL 博文链接:https://exceptioneye.iteye.com/blog/1405495
简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题
ajax设计方案封装库
在前台通过动态添加script标签及src属性,表面看上去与ajax极为相似,但是,这和ajax并没有任何关系;为了便于使用及交流,逐渐形成了一中非正式传输协议,人们把它称作 jsonp 。 代码如下: html: <body> ...
Ajax跨域访问解决方案,访问第三方网站的资源
本人收集的解决Ajax的乱码解决办法,自己试了很多,确实能够解决问题。
struts,ajax乱码解决方案
ajax跨域CORS方案 JSONP跨域请求方案.zip
方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统...
现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不
1个编程完整解决方案 31.1 Ajax概述 677 31.1.1 Ajax定义 677 31.1.2 Ajax运行原理 677 31.1.3 Ajax与Atlas的关系 677 31.2 搭建Ajax开发环境 678 31.2.1 Ajax开发环境下载与安装 678 31.2.2 ...
该资源为ASP.NET网站开发技术中使用Ajax进行跨域请求时利用JSONP方案解决浏览器同源策略限制的源码,比较简单,仅供参考
GBK编码下jQuery_Ajax中文乱码解决方案
AJAX聊天室无刷新技术方案AJAX聊天室无刷新技术方案