首页 百科知识 风格的空间数据共享架构

风格的空间数据共享架构

时间:2022-10-09 百科知识 版权反馈
【摘要】:逐步的暴露数据,不要在单一的文档中暴露所有数据。Ajax不需要进行完全刷新就可以与服务器进行交互,这一事实使有状态客户机再次成为可用选择。这意味着负责隔离应用程序资源和数据资源的 Ajax 引擎是高度可缓存的。Ajax是典型的REST风格的客户端,可以作为空间数据共享的客户端,服务器端既可以采用Java EE方式,也可以采用CGI等方式,数据库层具有高度的异构可融性。

5.6 REST风格的空间数据共享架构

构建基于REST的空间数据共享模式(如图5-6所示),关键是将每个概念层实体抽象为资源,为每个资源创建URL。对资源进行分类,区分出哪些客户端只能获取表示,哪些是可以修改的。前者使用HTTP GET来访问,后者使用HTTP POST,PUT和DELETE来访问。保证没有表示是作为孤岛存在的。在资源表示中放入超链接。逐步的暴露数据,不要在单一的文档中暴露所有数据。提供超链接来获取更多的信息。使用Schema来指定响应的格式。

人们通常将 Ajax 应用程序描述成无需在每次点击时彻底地刷新整页的 Web页面。尽管这个描述非常确切,但是根本的动机在于彻底刷新整页会令用户不耐烦,从而无法获得愉快、融入式的用户体验。从架构的角度来看,整个页面全部刷新的设计甚至非常危险,这种设计使您无法选择在客户机存储应用程序状态,这可能会导致妨碍应用程序充分利用Web最强大的架构设计点的设计决策。

Ajax不需要进行完全刷新就可以与服务器进行交互,这一事实使有状态客户机再次成为可用选择。这一点对于动态融入式 Web 应用程序架构的可能性有深远的影响:由于应用程序资源和数据资源的绑定转换到了客户端,因此这些应用程序都可以享受融入式 Web 应用程序中动态、个性化的用户体验以及遵守 REST 准则的应用程序中简单、可伸缩的架构。

Ajax引擎特征之一就是:尽管它包含了很多应用程序逻辑和表示框架元素,但是如果经过恰当的设计,它可以不包含任何业务数据或个性化内容。应用程序和表示都冻结在部署时。在典型的 Web 环境中,应用程序资源可能 6 个月才会变更一次。这意味着负责隔离应用程序资源和数据资源的 Ajax 引擎是高度可缓存的。

用户浏览一个 Ajax Web 站点,加载 Ajax 应用程序引擎,最好是从浏览器缓存中加载的,否则就从本地代理服务器加载。那么对于业务数据来说情况如何呢?由于应用程序逻辑和状态都在浏览器上驻留并执行,因此应用程序与服务器的交互就与传统Web 应用程序的方式有很大的不同。不需要获取混合的内容页面,只需要获取业务数据即可。

有状态 Web 客户机、可缓存 Ajax 引擎、可缓存 Ajax 数据,利用Ajax的这三个特点,就可以设计出REST风格的客户端了。同样其他富客户端技术,例如,Flex、Silverlight、JavaFX等,都可以设计出REST风格的客户端。

Ajax是典型的REST风格的客户端,可以作为空间数据共享的客户端,服务器端既可以采用Java EE方式,也可以采用CGI等方式,数据库层具有高度的异构可融性。其架构图如图5-7所示。

服务器端的静态资源,例如,存储在数据库中的矢量数据、存储在某一URL下的栅格数据等,可以在客户端发送http get时获得,而动态生成的资源如地图GML则要采用http post方法才能获得。与实体型资源不同,操作型资源是指对某个实体型资源的操作,例如,用servlet实现的一个获取地图请求。与此同时,作为REST风格的一部分,缓存机制是必不可少的,当用户发送的某个请求所需要的资源可以在本地缓存中找到时,就可以从缓存中读出,而不必再向服务器发送请求,服务器端的缓存也是如此。同样,客户端也可以访问基于N层应用的其他服务器资源。

img49

图5-7 REST风格的空间数据共享架构

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈