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自动发布更新;
分享到:
相关推荐
但从上述知识点出发,我们可以设想这样的培训项目可能会覆盖Java架构设计中的最佳实践和最新趋势,例如如何利用Spring Cloud搭建微服务框架、如何通过Kubernetes实现容器化部署、如何使用Docker简化开发环境配置等。...
### 淘宝秒杀技术架构设想 #### 技术背景与挑战 随着电商行业的快速发展,各类促销活动如“秒杀”、“限时抢购”等成为吸引消费者的重要手段之一。对于像淘宝这样的大型电商平台而言,如何在短时间内处理海量用户...
在实际项目中,开发人员可能会选择各种框架和库来简化Socket服务端的开发,例如Java的Netty、Python的Twisted或C++的Boost.Asio等。这些框架提供了高级抽象,简化了网络编程的复杂性。 总之,“Socket服务端架构...
在大数据背景下,医疗健康...这个医疗健康架构设想不仅关注技术实施,还考虑到团队建设、项目进度和资金规划,为智慧医疗的发展提供了全面的蓝图。随着技术和市场的变化,这样的前瞻性构想将引领医疗行业的创新和进步。
轻量级Java EE平台是较完善的企业级Java开发平台,由于其卓越的可 扩展性及稳定性,在金融、电信等领域被广泛应用。基于Android+Java EE的系 统架构可同时满足客户端的用户体验与系统的复杂信息处理功能,是移动互联...
【标题】:“JAVA 开发jsp+基于JB的人事管理系统(源代码+论文)” 这个标题表明,这是一个关于Java技术在开发Web应用时的应用实例,具体是个人事管理系统。该系统利用了JavaServer Pages (JSP) 技术,以及JavaBeans ...
这份报告详细记录了工程师在过去三个月中的工作内容、成就、个人成长以及对未来的设想,展示了其在Java开发领域的专业素养和技术实力。 在【工作回顾】部分,该工程师协助部门同事完成了日常工作任务,如测试环境的...
这些特性使得Java成为了开发大型应用程序和Internet应用的理想选择。Java的“一次编写,处处运行”的特点,即平台无关性,是Java成为网络时代重要编程语言的重要原因之一。 Java的诞生源于对一种独立于平台的编程...
为了解决这些问题,项目团队首先关注于语言的发展,设想一个能满足嵌入式应用需求的简单硬件平台架构,并制定了相应的规范,定义了该硬件平台的二进制机器指令系统(后来成为“字节码”指令系统)。这样,一旦语言...
- **JDK(Java Development Kit)**:Java开发必备工具包,包含了Java编译器、文档生成工具、调试工具等。 - **Eclipse**:一个开源的、可扩展的Java IDE,支持多种插件扩展,适用于复杂项目的开发。 - **SQL Server...
常用的Java开发工具有JCreatorPro、JDK、Eclipse以及SQLServer2008等,这些都是进行Java编程和开发所必需的工具。 游戏开发作为一种教学手段,具有内容简单、容易理解和操作上手快等优势。它能够吸引广大青少年群体...
10. **项目总结与未来规划**:总结项目开发的经验,以及对系统未来升级和扩展的设想。 通过这个PDF文件,开发者或学习者可以了解到一个完整的Java Web项目从概念到实现的全过程,对于理解Web应用开发流程、提升技能...
总而言之,Java从一个面向消费电子设备的设想,发展成为全球最流行的编程语言之一,这得益于其跨平台能力、强大的生态系统和持续的进化。从Oak到Java,从JDK 1.0到现在的Java 18,Java的历史是一部技术创新和市场...
标题“求职(从一个APP开发的设想看SNS的商业模式)”揭示了这篇博文的核心内容,它探讨了如何从一个应用程序(APP)的开发视角来理解社交网络服务(SNS)的商业模式。在这个数字化时代,SNS平台已经成为人们交流、...
【Java项目答辩模板PPT】是一个专门为Java编程语言开发的项目答辩准备的PPT模板集合。这个压缩包可能包含了多个PPT文件,每个文件都设计有专业的幻灯片布局,帮助开发者或学生清晰、有效地展示他们的Java项目成果。...
需求分析需要收集所有相关的开发需求,而设计阶段则需要根据需求来确定软件的架构,确保其强壮性和可维护性。 Java编程语言的语法规则和约定就是其语法,是计算机能够理解并执行程序的规则。学习Java的过程中,掌握...
随着SSH的流行,Java开发中XML配置文件的使用变得越来越普遍。虽然XML是一种很好的配置手段,但是过度依赖XML配置文件会影响代码的可读性和连贯性。许多应该通过代码实现的功能被分散到了XML文件中,这不仅增加了...
8. **结论与未来工作**:总结开发过程中的经验教训,可能存在的问题,以及对项目的改进和未来扩展的设想。 这篇毕业论文可能还包含了原创性声明和使用授权说明,确保作者对研究成果的所有权,并同意学校对论文的...
在本项目中,我们探讨的是一个使用Java编程语言开发的文本编辑器。Java是一种广泛使用的高级编程语言,以其跨平台的特性(Write Once, Run Anywhere)和强大的类库而闻名,非常适合进行这样的应用程序开发。课程设计...