您的位置:首页 > 其它

2006年技术概览,2007年技术前瞻

2007-01-09 14:31 232 查看
软件开发生命周期包括需求分析、设计、开发、测试、交付部署等各个阶段,以及贯穿在整个开发过程的软件开发项目管理环节,2006年,在每一个阶段都出现了令人眼花缭乱的技术与应用,同时这些技术还将进一步影响2007年的发展,令人充满期待。
  建模和开发工具平台

  UML在版本升级到2.0以后,原来的UML工具的大哥大Rational从风行到被收购,现在几乎没有了声音。

  建模工具没有太显著的变化,倒是开发工具出现了从原来的百花齐放到现在只有少数巨头竞争的局面。其中最耀眼的当属诞生于IBM,后在开源社区得到快速发展的Eclipse,目前它已进入嵌入式开发领域。另一个就是微软携其强大财力与人力打造的VSTS开发工具平台,它将成为可以贯穿整个软件开发生命周期和扮演不同的角色的平台,在最近也有不俗表现。此外还有Sun的NetBean IDE开发工具和BEA的WorkShop开发工具等。

  这些开发工具平台都可以进入整个软件开发生命周期,并且可以在其上进行各种不同应用的开发,说白了就是兼容性足够强。

  开发与应用

  不论使用何种工具,真正最活跃的仍然是应用与开发。JavaEE5的发布,EJB3.0标准的落地,标注取代部署描述符,实体即是POJO等,也许这些改变对Java进行轻量级应用开发的复杂性会有所改变。在软件开发界最流行的框架,包括Struts、Spring、Hibernate等,这些分布在Web容器和EJB容器中的各种应用框架变得让人眼花缭乱,要选择最适合自己的看来越来越困难了。由于JavaEE5的发布,著名的JBoss应用服务器的结构也发生了较大的变化。微软.NET的2.0平台和下一代操作系统Window Vista桌面版发布,同时提供给广大用户的WinFX平台,不仅给开发者而且给用户带来了挑战。

  由Ruby和Retail的联姻,AJAX的新瓶装旧洒,再加上Web2.0应用概念上的炒作,脚本语言、Web开发与应用在今年着时火了一把,因此今年搭上顺风车的PHP也要求能够同Java应用交互,克服语言与平台的障碍。

  桌面与企业服务器的开发应用也有相当发展,中间件市场、数据库、ERP等各种应用随着SOA得到市场的认可,各种技术与应用以及SOA的产品也逐渐多了起来。随着3G时代的到来,智能手机占有率的提升,手机平台的开发市场正进一步;不仅是手机,数字电视、各种电器和消费类电子产品的智能化发展也促使嵌入式领域的开发发生了很大变化,如:IP机顶盒、基于GPS全球定位系统的设备、工业自动化和医疗设备等,商业平台与开源Liunx平台共存。

  开源、互联网及其他

  开源软件逐渐挺进企业主流应用,不仅是Linux,还有Boss中间件、Mysql数据库、EnterpriseDB数据库等,而且还有各种应用软件,包括:Open office办公套件、Firefox浏览器、ERP、CRM等等。开源力量的加入也使得非常多的应用进入到微软平台上,在微软的.Net平台上也出现了大量的开源应用软件。

  互联网最大的应用与技术就是搜索、软件服务化(Software as a Service)。不管是通用搜索还是行业垂直搜索,不管是互联网搜索还是企业搜索,都已经不仅针对文本而且开始向音视频搜索发展了。

  最后不要忘了,由于人们对应用要求的提高,测试在这几年显得越来越重要了,测试工具与测试理论都有很大发展,这一点也值得关注。

2006年11月13日,Sun公司宣布将Java转为开源。预计到2007年3月份,除了一部分所有权不属于Sun的源代码之外,几乎全部Java技术的源代码都将按照GNU GPL自由软件许可授权协议公开。Java在和.net经历了两年的竞争后已显疲态,相比5岁的.net以及新生的动态语言Ruby,11岁的Java已略显复杂臃肿,甚至在网上还有“Java将死”的论调。Sun选择在此时将Java开源,不管是否是Sun迫不得已、在日薄西山前的最后博弈,但影响之深远却绝对不可小视。它引发的“蝴蝶效应”无疑会使Java技术的生命力更强,走得更远,更可赢得在开发语言竞争中起决定作用的更多程序员的芳心,相信未来Java领域将出现更多令人惊奇的开源产品。
  另外Sun还赶在圣诞节前发布了JDK的6.0 Release版本。对JDK而言,“成败皆在应用服务器厂商”。市场占用率最大的应用服务器Weblogic8、WebSphere5成就了1.4,但也限制了JDK5的普及。在JDK5还没有用热时,JDK6就来了。不过,这倒也是好事,可以直接跳过JDK 5去研究JDK6的应用了。

  JDK6对笔者的最大吸引力是它在JVM性能上的提升和对XML和Web服务的支持。性能方面,无论是运行时分析功能还是用户对性能情况的反馈,尤其是在Swing方面,JDK6对JIT都有了卓有成效的提升。

  一直以来,相对于微软的.net,Java对Web Services的支持复杂得难以接受,也因此产生了优秀的Axis和XFire框架。而在JDK6下,Java程序员也能享受到这种待遇了,不用针对Web服务另外加入额外的工具,不使用任何框架也能写出Web Services程序了。JDK6中固化了XML、Web Services的标准,如StAX、JAXB2、JSR181等。JDK 6在语法方面没有太大改变,最明显的就是添加了对脚本语言的支持,如JavaScript、Ruby、PHP。JDK6 中实现了JSR 223,提供了让脚本语言来访问Java 内部的方法。它可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本,这个脚本API 允许程序员为脚本语言提供Java 支持。

  另外在JDK6中内置实现了JDBC4支持的Derby数据库,为测试和小型系统的发布提供了便利条件。最后,JDK 6 中对内存泄漏增强了分析以及诊断能力,当遇到Java.lang.OutOfMemory 异常的时候,可以得到一个完整的堆栈信息,并且当堆已满时,会产生一个日志文件来记录这个致命错误。

  如果说谈到JDK 6更多的是对未来的一种希望的话,Java full-stack(Java full-stack,意指集成了全部所需功能的Java快速开发框架)则是一种已经可以见到的东西。

  很长时间以来,作为一个Java程序员,幸福的是从表现层到持久层都有众多的框架可供选择,痛苦的是在这些框架中挑选出适合自己的框架,而且还要付出将不同层次的框架粘合在一起的设计成本和时间,而架构的稳定性和实用性则往往取决于架构师的设计理念和经验。Ruby on Rails的流行再一次证明了在软件开发领域“简约至上”的真理,它使得诸多Java开发人员把目光放到了“提供最方便好用的Java full-stack框架”上面,因此Java开源社区如雨后春笋般地出现了一批又一批的full-stack框架,如Appfuse、SpringSide、JBoss Seam、RIFE、Grails、Trails、Rife等。Java领域也从此开始走向full-stack的快速开发道路。笔者就非常喜欢国外的JBoss Seam和国内的SpringSide。

今天的企业信息化面临着更加具体的问题,比如终端数据如何快速采集传输; 缺乏软件应用标准,行业应用深度不够; 系统间交互性差、各自为战,资源共享程度不高; 系统具有一定规模后,维护、升级困难。由于企业在这些方面的需求非常迫切,未来各个软硬件厂商必定在这方面有所作为,基于此,笔者以为2007年以下这些技术将会有比较大的突破。

  1. 数据采集自动化、便捷化

  随着MCU(多点控制单元)应用范围的不断扩大,以往的各类硬件终端,比如电力、燃气、水等终端数据采集或检测设备,已经逐步从简单的计数、指示功能,向智能数据采集终端转变,而且传统装置经过简单的改造,也可实现终端数据的采集和存储,这不仅让人从数据采集的工作中解放出来,更可以通过相对廉价的手段解决采用人工采集数据所带来的一些问题。

  正是基于这种前提,微软Office办公套件的新成员InfoPath让我们眼前一亮,借助它可以快速、方便地设计出具有超强表现力的电子凭单,以满足信息采集、企业内部和企业之间的信息传递。更令人称道的是,它不仅可以使用传统的数据库作为数据源,更可以使用XML作为数据的存储格式,让不同系统之间的数据交互更加畅通有效。

  2. 软件插件化、框架化

  大凡用过Eclipse的程序员都会被它的灵活和开放性所打动,而目前部分行业欠缺软件应用标准就是摆在开发商面前的诸多问题之一。类似权限管理、自定义查询、自定义报表、组织业务功能等应用系统必备的功能,完全可以通过抽象形成框架,提高代码重用度和稳定性。同时,采用软件框架进行系统的开发,不仅可以让系统分析和设计人员把主要精力放到业务模型的建立上,缩短项目周期,更可以让系统用户和开发商体会到系统稳定、维护方便、升级简单的方便。

  在此必须要提的是Java,如果说Java的诞生是为了网络,那么可以说它已经不辱使命,而且在推动着网络技术的发展,开源性使得它的追随者们努力工作,Struts、Spring等优秀的、基于框架的作品纷至沓来,逐步让我们脱离繁杂的技术旋涡,把时间和精力投入到业务分析领域,使软件的插件化、框架化不再是海市蜃楼。

  3. SOA

  近几年SOA(Service-Oriented Architecture,面向服务架构)概念的提出,使得用户和软件开发商对系统建设有了新的认识。笔者认为SOA不仅是架构模型,更是一种应用思想的体现。对于软件功能粒度的划分、软件功能的部署、系统驱动模式等都会由于SOA而产生较大的影响。

  企业通过应用SOA,不仅可以在成本没有太大增幅的条件下,让用户使用已经成熟的组件增强B2B的有效性,还可以让开发商最大限度地复用代码,把软件产品变成真正的服务。此外,SOA的实施更可以加速行业标准的制订和执行,因为只有大家遵循同样的标准和接口,才可能营造出业务共享和跨系统业务交互的良好氛围。

  4. 虚拟软件

  有时一些系统尤其是比较老的,对OS或DBMS有特定要求的系统,或系统在兼容性方面与新版本有差距,这时虚拟机就是最好的选择,不仅可以节省用户的硬件资源减少维护和管理成本,更可以让原有应用正常运行,为应用系统的升级换代赢得时间。与VMWore相比,微软的Virtual PC也在紧追不舍,笔者认为尽管较VMWare还有一定距离,但是无论产品孰优孰劣,最终受益的还是用户。

  核心观点

  行业特点决定行业应用,行业应用需要软件相关技术手段提供支持,而行业应用又会引发技术的创新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: