转来的一篇文章,解释了RIA,兴许有用。
D/S(Desktop App+ Server)架构理论来源: RIA是Rich Internet Applications的缩写,翻译成中文为丰富互联网应用程序。Internet已经日益成为应用程序开发的默认平台。用户对应用程序复杂性要求日增,但现在的Web应用程序对完成复杂应用方面却始终跟不上步伐。用户与今天中等复杂程度的Web应用程序交互时,其体验并不能令人满意。Web模型是基于页面的模型,缺少客户端智能机制。而且,它几乎无法完成复杂的用户交互(如传统的C/S应用程序和桌面应用程序中的用户交互)。这样的技术使得Web应用程序难以使用,虽然发布成本低,但支持成本高,并且在很多方面无法发挥效应。为了提高用户体验,出现了一种新类型的Internet应用程序。那就是Rich Internet Applications(RIA)。这些应用程序结合了桌面应用程序的反应快、交互性强的优点与Web应用程序的传播范围广及容易传播的特性。RIA简化并改进了Web应用程序的用户交互。这样,用户开发的应用程序可以提供更丰富、更具有交互性和响应性的用户体验。历史趋势是基于主机模式→C/S模式 →B/S模式→RIA模式。所谓RIA模式,其表现形式即在此指出的Desktop App;另外:如果用浏览器作为客户端,在开发时要使用多种开发技术,包括HTML+CSS++Ajax、浏览器界面设计等等;需要对程序员有更高与更多的技能要求,会增加开发成本及开发周期;而用D/S方式,程序员只用掌握java开发语言及Eclipse开发工具即可,另外要掌握的技能还有:Web Service、SWT开发等;并且,D/S方式对于医院管理系统、集团财务软件等不大适宜用B/S方式开发的应用有很好的适应性;微软公司及IBM/SUN公司的java阵营也已经意识到了B/S架构的这一缺陷,分别发展出了下一代应用框架:微软公司是Avalon+XAML的 SmartClient, 而Sun公司是RCP(富客户端)及java Web Start等;当然还有Adobe公司的Flex + Apollo计划,Laszlo公司的Laszlo服务器(它们是用Flash Player作为表现层基础服务);java富客户端只需要有本地系统中装JRE就能运行,而现在几乎所有PC机上都装有JRE,据网上数据,达90%以上(IE也不过95%、只有 Flash Player达到了97%),说明发布是没有问题的。特别是,我们公司的产品主要是针对财政,一般都在财政局域网内使用,不需要发布到互联网上,带宽的限制并不是很严重;就算要发布到互联网上,随着带宽越来越大,也不会成为严重的问题;并且,为了提高用户体验,需要在客户端表现越来越多的业务功能,而B/S方式在这方面有先天的限制(要用或者其他来访问业务内容,不符合MVC的设计要求);就算有Ajax的辅助,但需要学习并增加了把业务功能通过表现出来的冗余,降低了系统效率;而D/S方 式的业务功能通过Web Service发布,在表现层是通过java代码执行,是字节码,比动态语言效率更高,更可以通过JIT编译成本地代码,效率更高;用到的java组件及架构:Desktop App — 应用SWT来实现用户界面开发;Eclipse作为开发环境。相当于浏览器;富客户端,开发出的客户端效果与Delphi类似;SWT — IBM的java图形界面开发库;Eclipse即用此库开发,其美观与开发效率得到公认;java Web Sart — SUN公司通过WEB服务器发布java桌面应用的规范,实现了JNLP(java network Load Protocaol java网络装载协议)协议,能通过WEB更新java桌面应用;SWT Designer — Eclipse的SWT图形界面设计插件,非常好用,直比Delphi;HSQLDB – 纯java嵌入式关系数据库,在发布纯桌面版本时非常有用;osworkflow –简单高效的开源工作流产品;JasperReport + iReport — 强大的开源报表引擎及开发工具;Spring + Hibernate 是非常成熟的应用层与数据持久层开源架构,两者通常一起在java面象对象的数据库应用开发中使用;XML — Desktop与 Server通讯的格式;Web Service — Web Service是指由企业发布的完成其特别商务需求的在线应用服务,其他公司、合作伙伴的应用软件能够通过Internet来动态访问并使用这些在线服务。它为未来全球的电子商务发展提供了新的标准和架构。主要协议有:SOAP +WSDL + UDDI; XFire — 即开源的Web Service的java实现;与Spring与Tomcat结合得很好;SOAP — 是用于在分散的或者分布式的环境中交换信息的一个轻量级协议。SOAP基于XML,由三部分组成:一个必须的SOAP封装,一个可选的SOAP头和一个必须的SOAP体。通常情况下,SOAP = HTTP + RPC + XML。即:SOAP以HTTP作为底层通信协议,以RPC作为交互方式,以XML作为数据传送的格式。应用架构:Desktop App(SWT)[表现层]富客户端 — Tomcat+XFire[实现Web Service][服务层] — java Class [业务层] — Spring — Hibernate[持久层] — DB Server(MsSqlServer/Oracle/HSQLDB)[数据层]开发流程:1 — 数据库设计,包括Hibernate;
2 — 业务层的java Class设计,由Spring关联到对应的Hibernate生成的对象;
3 — 服务层设计,把业务层开放的业务操作接口用Web Service的方式暴露出去;
4 — 表现层设计,用SWT Designer设计富客户端;
5 — 在Tomcat及XFire环境中发布Web Service;
6 — 用java Web Start发布富客户端;
7 — 如果更新了系统,java Web Start自动发布更新;