我们都知道b/s和c/s开发模式,这两个术语出现已经有些年头了,开始的时候是以c/s为开发作为主流的网络应用开发模式,后来要求客户端减轻负担,所以出现了b/s模式,对这两个术语我有些不甚了解,我知道c/s模式的程序可以任意的使用桌面应用所有的功能,而b/s却存在限制,最明显的莫过于只能限制在HTTP协议下的网络通信,使用浏览器作为客户端,于是我认为这样做的目的主要是避免用户去安装一个庞大的客户端,只要用系统自带的浏览器就可以了,可是浏览器也是一个软件,只不过他是通用的罢了,于是我想,这两种模式都是一样的,只是一个是安装系统的时候自带的(指浏览器)而另一个确实需要重新安装的(c/s的client端),假如我们大家装系统的时候也都自带了一个我们开发的c/s的client端,在这种意义上看其实是一样的。不知道我理解的对不对。
上面是一个小序,我真正困惑的问题如下:
对于java,到现在出现了几个另我很困惑的东西,applet, java web start, javafx,我想几个东西大家知道都了解点吧,开发倒不存在疑问,可是部署就出了问题。
首先,java运行需要jre进行解释字节码。那么也就是说无论什么东西用java做出来了,首先要安装jre,否则不可以运行。在这里不的不强调,一些浏览器自带java1.1或者一些比较低版本的jre, 那么我们如果写的applet都是用的这些低版本jre的api,ok,没问题,都可以运行,用户不需要安装任何东西。但是如果要运行在高版本的jre上呢?不好意思你得安装高版本的jre,更不幸,大多用户都没有安装,系统更不会自带,您得自个儿下一个,您不下载?当然可以,不过applet不可以用了,java web start也不可以用了。
此时我们不妨做这样一个假设,假设,jre是操作系统自带的,就像cpu指令的解释器一样,我们不能责怪SUN公司的东西运行必须要安装jre,每个程序无论什么语言写的,总归要有运行环境。我的定论:
你要运行java程序不论你怎么说的天花乱坠, 做什么花样,jre还是得安装。否则免谈运行。[color=#FF0000]假设做好了,我真正的问题出现了:[/color]
此时jre已经装好,applet,java web start, javafx都可以运行了,也就是说他们嵌入到网页浏览器中或者其他方式,你反正得从服务器端下载class文件或者jar文件,没错吧?那么他们的区别在什么地方,我觉得没啥地方有啥区别,只要有了jre,applet能做的事情,java web start, javafx都可以做,反之亦然,甚至我不用这些技术,我还是用我的client/server把client打包成jar提供一个链接,让用户随时可以下载到本地,没有用任何applet, java web start, javafx,甚至用下载工具比那些个技术下载的更快,然后直接双击运行,有什么区别?!!!!!
请大伙给个提示,我实在是困惑啊!另外有说的不对的地方,也请指出,万分感谢!!!

解决方案 »

  1.   

    还是有差别的:
    不管哪个版本的jre,都还是通用的,不同的应用,安装比较新的就可以了,你自己的client通用么?不通用,不同的应用,需要不同的client,这样就不是安装一个了程序了,比如你上新浪,你要装一个,上sun要装一个,上百度,也要装一个,.....,你的机器能装多少呢?每次上个新网站,都让你下载,安装,你干么?
      

  2.   

    还是有差别的:
    不管哪个版本的jre,都还是通用的,不同的应用,安装比较新的就可以了,你自己的client通用么?不通用,不同的应用,需要不同的client,这样就不是安装一个了程序了,比如你上新浪,你要装一个,上sun要装一个,上百度,也要装一个,.....,你的机器能装多少呢?每次上个新网站,都让你下载,安装,你干么?
      

  3.   

    我想这位仁兄大概误解我的意思了,我的意思是说,applet,java web start,和我自己开发的client不都是一样不通用的么,都是需要下载以后才可以使用的么?也就是applet要运行也需要下载已经开发好的class文件,java web start也必须下载开发好的定制的class为什么要出现applet,java web start, 和client?
      

  4.   

    applet不要把class下载到本地来安装吧?在浏览器里就能运行。java web start不知道,如果你的client也能在浏览器里跑,那没问题啊。
      

  5.   

    applet表面上是不需要安装class可是实际上需要下载的,也就是你的jar中的class是需要下载到本地(缓存)然后才可以运行,至于java web start类似,只是他可以脱离浏览器而已。client虽然不可以在浏览器里跑,可是可以强大的使用桌面应用的任何功能,我们为什么要限定一定要在浏览器中跑的应用为方便呢?我不明白的地方就是为什么不简单的用client而多此一举的出来applet, java web start, 现在又来了javafx ria,我困惑啊,晕死了。
      

  6.   

    用applet不是BS架构的全部,只是极小极小一部分,你要看到与CS相比,BS更灵活,更易部署、升级。。不到万不得已,没人去选择用applet.
    甚至我不用这些技术,我还是用我的client/server把client打包成jar提供一个链接,让用户随时可以下载到本地,没有用任何applet, java web start, javafx,甚至用下载工具比那些个技术下载的更快,然后直接双击运行,有什么区别?!!!!!
    假如你一个应用,一年后分发给了1000个客户,现在要升级了,你再让你的1000个客户去下载升级。用applet没这个问题,而且applet稍安全一些,好像不能访问本地文件系统。你要人家去下载你的jar包执行,要人家信得过你才行。