前言 在j2ee中,客户端常用的两中方式是Html,和基于application的applet,因为采用的技术不同,这两个方式都有其优缺点,在考虑采用何种技术(或者两种都用),需要根据两种技术的特点,以及此项目的应用范围来综合考虑。以下分“易用性”,“性能”,“维护,扩展”,“交互”,“安全”五部分来说明各自的特点,并针对客户,开发人员角色阐明一下个人观点。
易用性
客户对于易用性要求非常的高,往往因为易用性不足,开发人员对代码的重写,有些易用性的不足,甚至导致设计人员对项目部分结构进行重新设计。下面说明各技术在易用性方面的特点:
1)web方式已经得到大家认可,相对于c/s模式,可以减少用户的掌握该软件时间
2)web界面丰富,能得到用户的喜爱;
web界面可以由多种技术支持,如applet,flash,二进制图片,javascript等,而且,在美观界面上,web方式从不缺乏相关资源。美观的界面,能得到用户的喜爱;
3)由于client有较强的 交互性,在某些客户的特殊要求上,client有绝对优势,带来了很好的易用性
client方式是基于组建的,美观上很难同web方式比较,但是,由于采用application的client端有很好的交互性(见下所述),能完成html不能完成的界面,如在网管软件中最常用的图形管理,即通过图来看网,管网。这是基于web方式几乎无法完成的。
性能
性能也是用户关心的一个重点,它取决于很多方面,如体系设计,访问方式,甚至是编写代码的质量,仅仅考虑客户端使用, 关键在于一下两点:
1)web方式
经典的j2ee模式如下:
html-----servlet -----ejb ----database,由于采用html,每次页面更新都需要刷新页面,很显然导致服务器端于用户响应变慢。另外由于中间还采用了servlet,同样也使响应变慢。
2)在client保留静态数据,提高速度
采用application的client通过直接访问数据(database 或者 bean)可以提高响应速度,它也不需要刷新页面,一次装载就可以了。另外,在项目中,常常有些静态数据(staticdata)可以保留到客户端内存中或者是本地数据库中,极大的改善了系统性能,而web方式却是没法做到的。
维护,扩展
对于采用swing来开发一个客户端是及其痛苦的事,1)是集成环境不好;2)是开发人员往往不了解,不熟悉swing,导致开发中频频出错,3)是swing 可供使用的资源太少。这是在我一系统中深刻体会,不言而喻,带来的结果就是,代码难以维护,扩展,十分不便。而web方式则不同,界面定制者可以很容易按照客户需求做出合适的界面,如果需要某某资源(如源码),也很容易找到。
交互
这里的交互指得是应用程序之间的交互而非用户与应用程序的交互。两者都有大量相似的控键和技术来完成程序间的交互,但以下两点二者有明显的不同:
1)同步
为了动态响应其他客户端对资源作的修改,或者是为了响应服务器发送给客户端的消息,以web方式的客户端最常用的是没隔一定时间就刷新页面。从服务器端消息队列取的新消息或者数据库里取到修改后的资源,这是非动态,及时的一个策略。在对同步要求高的项目中,这个是不可取的,采用application,在Java中使用jms很显然就可以完全可以达到理想的同步要求。
2)图形界面
很多网管系统都开始采用图形来看网,管网。采用web方式,最多只能静态的放映出图形,无法进行事件响应,很难具备交互功能,而采用application则不同,用户可以在图形上进行拖拉,点击,并触发相应操作等操作
安全
这里只是从系统集成的角度出发考虑安全,由于远程application通常都是通过rmi/iiop直接访问bean来获得信息,而bean是在受防火墙保护的应用服务器上,必然导致防火墙开发某些端口,允许某些信息进入防火墙内,这样就导致了系统的不安全性,另外,在客户端,要使用applet,必须给它一定权限,如采用本地数据库技术,则需要给applet访问本地数据的权限,为了采用jms获得同步,则又需要开发其端口权限以便接受消息。如果applet访问策略配置不正确,都将会导致客户端的不安全采用基于http协议的web方式则同时避免以上两种情况。
(出处:http://www.knowsky.com)