• 当前位置:首页>>JSP教程>>JSP数据库相关>>Pervasive Java
  • Pervasive Java

  • Pervasive Java  

    引言  

           进入正文之前,先来点废话。  


           这要从那部追随我近20个月之久的Nokia 3350说起。在去年5月的某一天,就在我上公汽的那一刹那,它被迫离开了我。后来买了一部N3100,就是经常可以在公汽和校园里见到的很多人在用的那种。它是彩屏的,可以支持java游戏,准确的说它采用了Nokia S40平台,可以支持MIDP 1.0。后来买了根COM口的数据线,从PC下载些图片和铃声,然后是游戏和应用软件。期间,我一直有一个想法,就是给它写一个小的游戏或者应用软件。因为自己的研究方向就是嵌入式系统,这种想法变得越来越强烈。在毕设的PCB设计脱手之后,我实现了这种想法。虽然只是编了个很简单很简单的东西,但是经历了全部的流程,对这件事情也有了个初步的认识。就这点粗浅的认识本不足撰文以记之的,但是有两个原因使我决定写这篇小文。我猜你一定在说,这些个读书人真是麻烦,写个文章还要扯这么多理由。名正则言顺嘛,约女生出来还得找个借书还书之类的幌子。  

           其一是因为好友yuanqs很喜欢钻研软件,而且对逆向工程比较有兴趣,经常和我交流心得,我每每劝他整理个文档,这样比较有条理,也便于日后拿起来。前一段准备和他一起研究一个Python写的应用软件,后来因为毕设和写手机程序就耽搁了。而且说起来容易,其实我也很少就自己学习的东西整理出个书面的东西,所以想想也不能光说不做。  

           其二是因为接下来的一段时间要调试硬件,写板子的程序(主要是C),并且要花很多时间写毕业论文,所以估计不会有很多时间去学习Java的东西。所以这篇文章也算是对之前学习的一个小节。  

    也许有点厌烦那些道听途说,众口一词的套话。我现在的想法是不说没有用的正确的废话,宁愿说一些有自己见解的不一定全面的看法。  

    学习Java于我是一个断断续续的过程,而且也没有长时间的在实际项目中使用它,所以对Java的理解一直是比较粗浅和有限的,我想即便现在也是。但是因为工作和学习内容的变化使得我有机会能接触到Java针对不同平台的版本,所以可以从不同的侧面来看Java,因而可能会有些不同的体会。这里我不想讨论具体的技术细节,那是汗牛充栋的东西。我想做的是叙述一个开发者对Java的理解和认识,以期与其他人的交流,并希望别人可以指出我的看法中不对和偏颇的地方,或者在一段时间之后再读到此文,觉得太粗鄙,那就说明是一种进步。  

    Java on Desktop  

      
    最早接触的是Java的桌面版本,当初学习它是因为热门,我想我说是因为看到Java的光明前途你也不会信的。花了两天的时间匆匆看完了两本Java核心技术,因为觉得很多语法和C++类似,当时还心存疑惑,有了C++,为什么还要搞这个,而且又很慢。语言毕竟是一个工具,所以我觉得看它怎么样还要看它能做出或者已经做出了什么样的东西。那时用Java做的桌面应用软件还比较少,看到相关的文章,当时对于纯Java能否做出一些比较大的实用的软件,很多人还是心存疑虑的。我所了解的用Java写的应用软件主要有几类。  

    第一类是软件的安装程序,以Oracle数据库的安装程序为典型,我想主要是因为数据库有不同平台的版本,核心的组件无法跨平台,但是安装模块却可以只做一个,这可以省掉很多的工作,确实很好的利用了Java的跨平台的优点。  

    第二类是一些IDE,以JBuilder为代表。到后来的几个版本,几乎是纯Java的代码了。当然JBuilder也继承了Java启动比较慢的特点,也是经常被诟病的地方。  

    第三类就是Java的应用服务器,例如WebLogic,WebSphere,SunOne。这些应用服务器对平台无关性的要求使得Java几乎成了一个必然的选择,否则为每个平台开发一个版本确实有点难以承受。  

           第四类是一个服务端软件的控制台,例如数据库和应用服务器。  

           第五类是通用的商业应用软件,例如永中office等。  

           第六类是开源的软件,现在这方面发展很快,好的作品也越来越多,比如大家熟悉的JBoss, Eclipse等等。  

           上面的分类不一定全面和准确,但是从中我们可以看出Java的能力已经无需证明,也就确立了它主流开发语言的地位。分析上面的一些软件,我们会发现Java的跨平台的优越性,得到了很好的体现,比较坚定的使用它的也是一些需要支持多平台的系统。我想这其中还必提到的一点就是Linux的发展。正是因为如此,使得Windows不再是桌面OS的唯一选择,需要开发很多Linux下可用的软件。或者也可以理解成Java和Linux是互相协助的一个发展,Linux的普及带动了Java的发展,Java的成熟也促进了Linux平台应用软件的丰富。它们还有一个共同的地方,那就是开放,所以很多的厂商和个人都可以参与进来,当然,他们必须找到自己的定位。  

           JDK1.5已经稳定,JDK1.6也即将发布。Java很好的体现了发展才是硬道理。它在不断的改进,它的优点得到体现,一些缺点也不再那么明显和难以接受,或者提出了别的解决方法。想起李维书中提到的C++ Builder和Visual C++的战争,VC在前几版中均不如CB,但是它一直在发展,到6.0就已经在很多方面超越了CB。软件总是在不断的改进,只要它没有失去发展的动力,就一定会变得更好。以前同事开玩笑说,还是等某个软件版本高一点吧,因为你看哪个服务器软件不是8.0,9.0,十几点几的。所以对Java在桌面系统的前景十分的乐观。  

      
    Enterprise Java  


    下面我们谈论一下企业级平台的Java。我想这也是Java最成功的领域。首先我想是因为这个领域的重要性和它在软件中所占的份额。企业级的系统一般承担着比较重要的任务,很多还是企业的命脉系统,比如电信,银行,证券等等。对于很多这类的企业,不是要不要信息化的问题,而且怎么做好的问题。他们要求系统的处理能力强,容量大,稳定性好,有良好的伸缩性,可扩展性,以及等等要求。天下没有免费的午餐,达到这些要求的系统自然价格不菲。硬件自不必说,数据库、中间件、报表、应用系统等等都比较昂贵。按理说,Java这个初出茅庐的家伙在这个平台应该不会有很多的机会。但是恰恰就在这个领域,Java获得了最快的发展。在国内,已经有很多的系统开始转向了Java的平台,以前可能说用C/S的两层结构,或者是基于传统的交易中间件,例如Tuxedo和CICS。据说在国外,Java在企业级的系统中应用得更广。  

    我分析了一下,可能有几个方面的原因。  

    首先Java一开始就对网络提供了很好的支持,很多架构也是专为网络设计。随着互联网的普及,基于Web的系统(各大门户网站之类)越来越多,另一方面,对传统的企业信息系统也提出了联网的要求,这使得原来比较封闭的信息系统不能满足现在的要求。而J2EE的相关技术很好的满足了这些需求,并随之快速的发展。除了SUN,这其中不能不提Oracle,IBM,BEA对Java企业级应用的推进。  

    其次,这个世界变得太快。变化快就对信息系统提出了很多更高的要求,他们必须快速的满足新的需求,这样才能在竞争中占得先机,否则可能成为被快鱼吃掉的慢鱼。J2EE的应用正好提供了快速的开发和部署的能力。这得益于它开放的标准,以及有很多可选的组件。现在的Java应用服务器的功能越来越强大,而且相关的开发工具也越来越多,使得信息系统的开发变得更加高效。当然,这对系统的架构和设计提出了更高的要求,因而这方面的问题也开始变得突出。  

    第三,平台的可选择性。在以前的企业系统中,一般是选定了某家厂商的产品之后就很少变动,硬件平台是这样,大型的软件平台也是这样。现在可能不再是这样,特别是针对一些规模小的企业,他们需要更多的选择,然后挑出对他们来说性价比比较高的。Java的这种跨平台的特性正好满足了这种要求。首先它可以跨硬件平台,使得开发的一套应用可以跑在不同的硬件上,购买硬件的时候也有了不同的选择。我以前所在的项目组,就曾经因为硬件性能的原因,将整个web应用从PC搬到一个小型机,过渡非常的平滑。另外一个被忽视的就是软件平台的可选,这里主要是应用服务器,因为数据库的选择可能涉及到很多移植的问题,处理不好会引起很大的混乱。听同学提起他们项目从SunOne到WebLogic只用了一个晚上。这样一来的好处是显而易见的。我想这样的需求可能也是因为竞争的压力。以前在电信这样的企业,对于信息系统的投资是不太计较成本的,现在的情况就完全不同了,想必其他的单位也是一样。  

    提起Java的企业级应用,就不能不提微软的.NET。因为它现在也得到了十分广泛的应用。微软的产品向来以后来居上著称,Visual Studio、IE、office,即便是Windows也一样,我想首先是因为MS有很强的学习能力和很强的开发能力。而在Windows按照Bill的理想推广到世界各地的Desk上之后,这种能力可
  • 上一篇:jdk 1.5学习之RowSet(二)
    下一篇:java中文解决大全(上)