使用Eclipse的SWT开发WEB应用--SmartSWT RIA平台测试版发布

javaboy 2006-02-07 08:56:09
SmartSWT是RIA开发平台,允许你使用Eclipse的SWT控件开发WEB应用程序。标准的SWT应用程序几乎不需要任何修改,就可直接发布到SmartSWT平台成为B/S模式的WEB应用程序,客户端可通过浏览器访问该程序。
简言之,SmartSWT平台可将一个普通的SWT应用程序,部署成为一个WEB应用程序。
使用SmartSWT平台,您可以使用SWT开发一个桌面应用程序一样来开发一个Web应用程序,也可以将已有的SWT应用程序几乎不需怎么修改的直接部署发布成一个WEB应用,成为一个典型的B/S模式应用。
详情及下载:http://www.smartswt.net/smartswt/index.htm
...全文
446 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujiangbaby 2006-02-27
  • 打赏
  • 举报
回复
我们的争论焦点是:1,RIA服务器端的计算任务是否被客户端分担。
2,bs模式和cs模式的主要区别。
3,applet是不是bs模式。
首先,回答第一个问题:依据: macromedia公司的说法:“RIA的引入给我们带来重新在客户端和服务器端进行更好的平衡的机会”也就是说客户端必须首先将大量的所需数据下载到本地,然后自行计算后才能得到所需结果.
第二个问题:我认为bs的基本特点是在browser下运行,浏览器通过访问webserver来访问数据库或者其它服务。cs要自己维护通讯协议,难道基于soap协议的网络应用就都是cs模式的吗?所以用是否需要自己维护通讯协议不能作为cs与bs模式的区别。我的观点是bs的基本架构是3层:浏览器(UI),webserver,数据服务器。cs采用的基本架构是客户端(UI),数据服务器。当然在这基础上可以扩展,但是本质区别就是2层和三层的区别。
第三个问题:同过上面两个的讨论,我想答案已经很明显了,applet在浏览器中运行,采用的是http协议于webserver交互,如果应用复杂的话也会用到jndi,rmi等通讯方式,但本质都是tcpip协议,所以applet是bs模式的应用。
遗留问题:applet不需要用服务器端返回的数据生成页面,而是由下载到本地的UI来负责显示,也许这就是他与传统的bs模式的区别,也是大家认为applet不是bs模式的主要原因吧。
欢迎继续讨论,但是我想换个地方,这里显得稍为冷清了些,哪里比较好呢?
zhujiangbaby 2006-02-17
  • 打赏
  • 举报
回复
C/S丰富的UI表现?cs模式的UI表现丰富,主要体现在复杂的逻辑表现力,如单页面内的数据交换,实现UI的部分更新,不需要更新整个页面,这一点很重要,这也就是为什么现在IBM等大厂商推广AJAX的主要原因.
cs的UI表现丰富是有代价的,大数据量需要比较高的带宽,客户端保持数据,调用本地方法,需要一定的计算能力,也就是说客户端分担了服务器端部分的计算任务,胖客户端瘦服务器模式也就是传统的cs模式。
如果SmartSWT和Flex丰富的UI表现没有消耗网络带宽或者本地计算资源,他丰富的UI表现从何而来?FLEX的本地矢量图像数据难道不消耗本地资源吗?大量的矢量数据传送到本地不影响网络带宽吗?
客户端是什么?是UI吧,难道bs就不要写UI了吗?cs和bs的UI主要区别在于:大部分的计算任务是服务端负责还是客户端负责。
至于是bs还是cs,让我们从整体架构来分析一下。
传统的cs是两层结构:服务器,客户端。通过网络连接交换数据。
bs模式:三层架构,在cs模式的中间夹了一个WEBSERVER。
APPLET是不是bs模式呢?它发布在webserver下,运行在bs模式的三层体系结构下,你说是不是bs模式呢?
欢迎继续探讨。SmartSWT,SmartClient,他们的运行方式是什么呢?
javaboy 2006-02-17
  • 打赏
  • 举报
回复
1. 两层架构和三层架构不是BS和CS的区别,CS也可以用三层结构,几层结构更多是逻辑上的层次,而不是物理上的层次,按物理的话,B/S也是两层,Browser和Server。

2. 按计算任务区别也不严谨,这只是表象,如果JS写得好且应用简单的话,非要极端的做法的话,用HTML+JS的WEB客户端也可以写大部分业务逻辑,而服务端只是存储数据而已。但你不能说它是CS。

3. B/S和C/S的区别之一是,客户端UI展现容器是不是Browser。传统的DHTML,包括AJAX当然符合这个条件,Applet、ActiveX、Flash也符合这个条件。

3. BS和CS的区别之二是,该应用的客户端是否自己维护和服务端的通讯协议。DHTML包括AJAX只需向服务端发Call,不需关心通讯协议,也就是说应用本身不需要关心TCP/IP或UDP等协议。而CS应用的客户端必须通过自定义的TCP/IP协议,也就是说它要关心通讯协议。如果Applet和ActiveX只是下载下来在浏览器中做为显示或本地操作之用,不产生与服务端的通讯,那么也符合这个条件,但是称不上一个Server应用,就像普通Flash一样,虽然也能写游戏这样的程序,但不与服务端通讯,也就是一个普通桌面应用的意义。倘若,它只是为了下载方便,为了能够在浏览器中运行,而实际下载下来在浏览器中跑起来后仍然干CS一样的活,那它只是运行在浏览器中的CS程序而已。

4. 至于说丰富UI要有代价,Of course,当然要付出代价。当然要消耗带宽和本地资源。但是许多场景下,用户愿意在客户端付出代价,而且完全可以承受这个代价,他们需要的是有这么一个好的提供富UI表现的技术。举个例子,很多富翁想上太空甚至月球,也愿意也能付出数千万美金,问题是,现在的航天技术没办法让这些人都实现愿望。

5. SmartClient是CS为基础的技术,但它提供了像BS模式那样的易发布和更新的方式。而SmartSWT和Flex是以BS为基础的技术,但它们提供了像C/S一样的富UI表现,而SmartSWT其实就是和C/S完全一样的UI表现,用的就是Windows本地控件和外观。Flex只是用Flash大体模仿。
javaboy 2006-02-14
  • 打赏
  • 举报
回复
RIA(Rich Internet Applicatoin)并没有说一定要客户端分担服务器端的计算任务。恰恰相反,Flex做为RIA的典型代表,其客户端并没有分担服务器端的业务逻辑计算,SmartSWT和Flex一样,客户端只是UI展现和提供交互,也不分担应用程序在服务器端的业务逻辑处理。
所以,SmartSWT和Flex都是具备丰富UI表现的真正B/S模式的应用。是具备C/S丰富UI表现优点的BS模式。
而SmartClient、Applet则不是B/S模式应用,它们是C/S模式,是具备了B/S的发布更新方便等某些优点的改良的C/S模式。但改良的C/S模式仍然需要写客户端和服务端,客户端需要分担逻辑处理,这是改良C/S仍然存在的缺点。
zhujiangbaby 2006-02-14
  • 打赏
  • 举报
回复
applet的安全性可以由沙箱机制和数字签名机制来解决,完成复杂的页面表示逻辑和相对cs模式的便于运行安装的优点都是java applet的特点!
zhujiangbaby 2006-02-14
  • 打赏
  • 举报
回复
RIA是mcromedia提出的一种富客户端的模式,兼有bs和cs 模式的优点,同时也有他们的缺点.选用哪种格式要根据项目的情况来订制.但是smartswt的运行都在服务器端运行为什么还是RIA模式呢?他并没有分担服务器段的计算任务!
谈祥庆 2006-02-12
  • 打赏
  • 举报
回复
谢谢 javaboy(星仔) 同学的解释,我将继续关注该SWT框架的发展,希望正式版的及早出现。或许可以作为开源项目,让广大SWT的拥护者共同完善该项目。
javaboy 2006-02-11
  • 打赏
  • 举报
回复
另外,Applet不能实现SmartSWT的功能。
1. Applet如果它有服务端的话,是C/S模式的应用,它必须通过自己定义的通讯协议,与服务端进行通讯和数据交换,再由服务端收到信息后根据要求进行保存数据库等操作。也就是Applet得与客户端和服务端两个软件。
2. Applet如果没有服务端的话,它只是下载一个JAVA程序在浏览器运行,不是真正的B/S模式应用。
3. 而SmartSWT是B/S模式的WEB应用。和J2EE WEB应用一样,只需要写服务端一个程序,客户端不需要另外一套程序,客户端只是将服务端SWT程序运行的界面展示出来,并把事件发回服务端原应用程序处理,所有逻辑处理过程都在服务端完成。而这些不需要自己定义通讯协议。
4. SmartSWT并不是把SWT应用从服务器上下载下来运行,而是直接在服务端运行,在客户端获得UI,SWT应用操作的资源,如数据库,文件系统都是相对于服务端的。
javaboy 2006-02-11
  • 打赏
  • 举报
回复
感谢jacktan(贫僧法号[梦遗]) 的中肯意见。
答复如下:
1. 安装定制虚拟机确实不便,不过这个安装在企业内网还是比较方便的,而且安装过程很快很简单。而且不因为服务端的软件改变而改变,安装一次即可,不必像C/S软件那样,每次升级通常都要升级客户端。
2. 测试版为了方便大家理解,是需要从SmartSWT桌面启动的,以降低理解门槛,实际上是可以通过配置直接启动用户的程序,而没有桌面,获者可以更换界面的背景标识等。
3. 该框架的通讯是高度加密的,保证不容易通过监听窍取原始数据。该框架是做为RIA,它克服了其它RIA框架对本地操作的限制,服务端软件可以操作客户端本地资源,可以直接在本地进行打印,扫描等操作。但客户端本身是不具备这类操作的,是由服务端软件运行时进行的,所以这个的安全保证由用户开发的服务端软件自己来保障。因为这是内网应用,你使用的服务端软件当然是你所真正要用的,是自己授权安装使用的,这个安全性至少是自己知情的。而Applet是常用在广域网上,无法保障每家提供商都是善意的,所以要做操作限制。
4. 部分SWT API不被支持的意思是非公开包中的API。这在SWT本身也不能保证长久支持。比如有的非公开API在3.0中有,在3.1中可能就没有了,这些API在SmartSWT中可能不支持,这不影响SWT开发。目前SmartSWT支持SWT 3.1 Windows正式版中几乎所有的公开与非公开API,包括OS类中的API。这已经足够大家超越SWT标准API进行开发了。
谈祥庆 2006-02-11
  • 打赏
  • 举报
回复
首先需要在客户端安装定制的JAVA虚拟机,不便之一。需要在smartswt桌面启动自己开发的SWT程序,如果某应用厂商需要使用这样的方式开发自己的产品,那就失去了定制个性化的可能,不便之二。关于该框架的安全性不知如何考虑,是否有applet类似的安全管理器机制?不便之三。部分SWT API不被支持,不便之四。

想法不错,不过有待继续增强,应该予以支持。不过使用applet同样可以实现smartswt的功能。

javaboy 2006-02-10
  • 打赏
  • 举报
回复
http://news.csdn.net/n/20060208/86464.html
直接用SWT像开发桌面程序一样开发内网的WEB应用,比Flex还爽
javaboy 2006-02-08
  • 打赏
  • 举报
回复
楼上的能说说您用的觉得有哪些不爽吗?我好在正式版中改进
TinyJimmy 2006-02-08
  • 打赏
  • 举报
回复
支持, 不过好像不那么好用

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧