Chinaunix首页 | 论坛 | 博客
  • 博客访问: 521379
  • 博文数量: 147
  • 博客积分: 10105
  • 博客等级: 上将
  • 技术积分: 1594
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-14 10:18
文章分类

全部博文(147)

文章存档

2011年(4)

2010年(4)

2009年(6)

2008年(5)

2007年(40)

2006年(88)

我的朋友

分类: Java

2006-11-23 14:06:19


    B/S应用与C/S应用相比,B/S应用的主要缺点是:
    1. 客户端UI表现能力不足
    2. 客户端表现主要基于HTML、XML之类的脚本语言,而桌面应用开发基于事件驱动,而且有大量成熟的可视化设计工具,如Delphi,VS.net等。相比之下WEB应用开发的可视化设计工具更多是设计UI,而较难把业务逻辑与UI集成开发。
    C/S的主要问题是:
    1. 安装部署不便
    2. 升级及客户端程序的维护不方便
    3. 需要自己定义客户端和服务端间的通讯协议、数据交换,开发者需要了解TCP/IP之类的协议,开发复杂度较高。

    为了克服各自的缺点,出现了一些如SmartClient、Flex等RIA技术,从各自不同的方向对两者进行了改进。

    微软的SmartClient技术是从C/S方向出发改进了C/S应用程序部署方式。但其本质上仍然是C/S模式的应用,应用程序需要自己维护客户端和服务端的通讯,业务逻辑分布于客户端和服务端,开发复杂度和维护仍然有不足。

    Macromedia的Flex技术则从B/S方向出发改进B/S应用的UI表现,它利用Flash出众的表现能力做为UI表现层,其它则与传统的B/S应用开发保持一致,较好的解决了B/S的不足。但也有一些问题,如:需要客户端安装一个Flash插件,这个问题不大;但开发需要使用基于XML的一套专有标记语言,仍然是脚本方式开发,增加了开发复杂度,而且Flex的脚本似乎不支持动态控件创建,比如不能临时根据程序逻辑创建一个未定义过的窗口等,造成应用开发上有一定的局限性。

    还有如Bindows直接在HTML基础上进行CS界面的模仿,也存在一些性能问题,而且许多控件的实时事件不能完全模拟,表现力与真实的CS界面仍然有较大差距。

    其它一些技术方案或多或少与上述类似,完美的方案目前阶段尚不存在,任何对B/S或C/S进行改良的方案,或多或少都要在其它方面付出相应的代价。

    SmartSWT也是从B/S方向出发对传统B/S模式的一种改良,相比较而言,它与上述方案相比有以下优点:
    1. 拥有和C/S应用一样的UI表现:因为SWT控件本身就是使用系统本地控件,实际上使用的是和桌面应用同一个控件。
    2. 拥有C/S一样的开发方式,使用基于事件驱动的开发方式:SmartSWT应用本身就是一个标准的SWT应用,可以使用成熟的SWT可视化开发工具(如:Designer),完全不需要与脚本打交道,开发人员只需要掌握一种开发技能――SWT开发技术即可。
    3. 拥有和B/S一样的部署方式,基于WEB访问:开发人员只需关注于用JAVA+SWT实现业务逻辑即可,不需同时开发客户端和服务端两套应用,只需按桌面应用的开发方式实现逻辑并部署在服务端,则其它客户端只需通过IE浏览器即可访问,不需要维护客户端和服务端的通讯,不需了解TCP/IP等通讯协议。

    简言之,SmartSWT技术能让你的标准SWT桌面应用程序直接部署成为一个基于B/S模式的WEB应用程序。

    如前所述,任何改良均需付出其它方面的妥协,SmartSWT也不例外:
    1. 客户端的浏览器需要安装一个SmartSWTClient的ActiveX插件,这点和Flex一样,Flex需要在浏览端安装一个Flash播放器插件。
    2. 浏览器目前暂只支持IE5.0以上浏览器,同时这也限定了客户端必须是Windows系统,但服务端并没有限制,可以运行在任何支持JAVA的操作系统上。
    3. SmartSWT对网络条件要求较高,要有很好的网络数据传输速度,需要有2M以上的带宽,所以它必须运行在局域网内,而且最好是有线局域网,在无线局域网性能表现不佳。

    如果您的应用是基于内网的企业应用,那么以上问题通常不会成为障碍,SmartSWT将是您RIA开发的上佳选择。




SWT Control Example run in SmartSWT




    Eclipse作为当前最流行的JAVA开发环境,其SWT控件也因其跨平台性、界面美观、良好的性能逐渐成为广大JAVA开发者开发UI应用的首选。现在通过SmartSWT平台,SWT不仅可以用来开发桌面应用,也可以直接用于开发WEB应用,使你的WEB应用具有桌面应用的外观。

    SmartSWT是RIA平台,允许你使用Eclipse的SWT控件开发WEB应用程序。标准的SWT应用程序几乎不需要任何修改,就可直接发布到SmartSWT平台成为B/S模式的WEB应用程序,客户端可通过浏览器访问该程序。

    简言之,SmartSWT平台可将一个普通的SWT应用程序,部署成为一个WEB应用程序。

    SmartSWT所指的标准SWT应用程序是指符合以下条件的SWT应用程序:
    1. 纯JAVA开发的完整独立的SWT桌面应用程序
    2. 只使用SWT及其扩展API(JFace、GEF等)做为UI表现
    3. 没有使用其它JNI本地调用技术,或使用了JNI技术或ActiveX组件,但不做为UI组件使用,而且发布为WEB应用后仅在服务器端调用,不涉及对客户端操作。

    SmartSWT网址:

    以下是一个SWT应用(Address Book)发布到SmartSWT后,在客户端使用IE浏览器访问的结果:


阅读(1601) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~