JAVA开发架构设想介绍

JAVA开发架构设想介绍

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+JavaScript+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方式在这方面有先天的限制(要用JavaScript或者其他来访问业务内容,不符合MVC的设计要求);就算有Ajax的辅助,但需要学习并增加了把业务功能通过JavaScript表现出来的冗余,降低了系统效率;而D/S方 式的业务功能通过Web Service发布,在表现层是通过JAVA代码执行,是字节码,比JavaScript动态语言效率更高,更可以通过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自动发布更新;