/* 本文是前段时间,为了交单位留的一个作业而仓促写下的.要求是回顾一下上半年的软件领域的大事情.由于时间短,感觉有点临时拼凑的意味.欢迎大家在下面提出批评如果觉得还行,想转载本文,请注明出处: csdn blog Ericlee */
去年底写过一篇blog,”预测”了今年值得关注的软件技术。其实应该说是对XML数据存储,动态语言,多核等技术的肤浅理解更合适.如今07年已经过半,回顾软件社区的发展,最热的两个关键词当属”开源”和”Web服务”。也许它们是软件技术发展永恒的话题,但07年绝对是一个重要时刻。这里记录了发生在上半年个人理解对软件社区发展很有意义5件事。
1] Vista发布:后Vista时代 Windows 肩负起”桌面和Web共存“的使命
07年 1月30日,微软全球发布了Windows Vista消费版。意味着这个历时5年开发的PC桌面操作系统正式来到了人们面前。然而Vista已经不是当初Jim Allchin设想的Windows。这个被希望集成太多新技术的系统开发复杂度远超出了预计。典型的WinFS, 这个要重写Windows shell,基于SQL Server的数据存储技术,以最终被剥离而告终。也正因这些原因,这个本计划在03年底04年初发布的系统只能抱着“桌面包容网络”的梦出生在已不属于自己的Web世界。如今对计算能力的需求已经逐渐由PC转移到拥有大容量存储空间、高速宽带的网络中心。不过,显然微软并没有放弃”桌面与Web应用共存“的愿望,Ray Ozzie在Vista发布后表示微软将转移焦点,调整产品以迎接Web服务的网络时代,新一代的PC Windows将会成为安全的网络互动环境。本地、局域网和互联网融合协作被看作是后Vista时代Windows发展的一个方向。今年6月在北京举行的07MEDC & WinHEC大会上,微软也向人们讲解了还处在Beta版的第一款真正面向服务器端系统 Windows Server 2008。一个明显的变化是Windows Server集成了Server Core以及PowerShell命令行工具。作为服务器操作系统,Windows Server一直以来颇为诟病的地方就是,它是“Windows”,网管员其实并不需要DirectX、ADO、OLE等东西,而且Windows界面也一直影响着系统稳定性。通过Server Core以及运行在之上的PowerShell命令行工具可以取代图形界面管理,将使Windows网管员可以进行类似Linux和Unix服务器上的操作。Windows Server 2008 将成为Windows 由桌面端到网络服务器端的重要延伸。Vista在07年伊始的发布,标志一个20年PC桌面时代的结束,也掀开了Windows技术转向Web服务时代的序幕。
2] SOA 本质:业务敏捷需求向IT架构映射的思路
07年3月21日,SCA/SDO规范的主体部分已经起草完成,正式提交给OASIS标准组织,使该规范逐步成为正式国际标准。如果把SOA的思想简单表述为构建可复用服务组建的IT系统。则SCA相当于定义了链接不同服务的框架,而SDO相当于定义了用于插接在框架上服务的接口标准。SCA/SDO规范移交给OASIS的真正意义在于,不同厂商的服务彼此之间都能够方便互用。根据Gartner 的预测,到2008年SOA将成为占有绝对优势的软件工程实践方法,它将结束传统的整体软件体系架构长达40年的统治地位.那么07年就应该是透析SOA本质的时候了.什么是SOA?你也许有自己的表述.不过通过SOA概念的起因就会发现,SOA是为了让IT变得更有弹性,更敏捷的响应业务的需求.因此SOA其实是业务敏捷需求向IT架构映射的思路而非技术实现.而自从96年SOA概念的推出,似乎它就变成了让企业观望的名词.我想其中一个主要原因是SOA缺少具体的技术、产品的支持,SOA变为一种空泛的软件架构设计方式.虽然Web服务做为SOA的一种技术形式很大程度的推动了SOA 的"落地",但显然Web 服务并不是SOA,它仅仅是提供了分布式环境下服务的互操作能力.而企业其实最想获得的是如何将信息作为一个整体共享起来,以及实现敏捷业务需求的具体部署实施方法.去年10月OASIS组织发布了SOA参考模型,真正从语义层面阐述了SOA的标准。IDC也在5月29日发布了《SOA中国线路图》白皮书,正式解读了针对中国IT背景中国企业实施SOA的路线。白皮书中比较了中美SOA 的差异,指出了中国SOA策略.虽然带有较明显国际SOA厂商主导的意味,但也为国内SOA 开发商留下了足够的空间,它们需要的是提炼产品的组建度、模型度来解决业务的共性和差异问题,满足企业快速构建业务的需求。相信通过这一切的推动,07年将是SOA落地中国年。
3] RIA标准: 哪种技术和架构会走的更远
07年4月30日,微软Mix大会上Ray Ozzie亮出了SilverLight(WPF/E),通过它可以创建基于浏览器的互动网络应用程序,也是微软用来对抗老牌 Flash的新武器。 今年对RIA技术领域来说可以用喧闹来形容,因为很多企业或社区都预见到RIA模型将来可产生诱人的商业利润,所以争相推出自己的技术标准也就不奇怪了。从Ajax到SilverLight,从Apollo和AIR到Flex和Flash,以及 JavaFX、Google Gears等等。虽然选择多了,但是哪种技术和架构会有更长的生命力呢?也许可以将以上技术大致分为两个方向。一种是坚持以浏览器作为Web应用的容器,比如Ajax,Flash,Silverlight等,另外一种是创造PC-Web的新混合新型软件,不再严格界定客户端应用与Web应用的界限,未来的客户端应用将像现在的Web应用一样容易部署安装,比如WPF,AIR等。主流厂商比如微软和Adobe都提供了2种方式的支持,但所采用的技术并不太相同且各有优缺点.如果拿SilverLight与Flash比较,前者的对JavaScript、C#、IronPython多语言的支持将是一大优势,而Flash需要使用“晦涩”的AS,当然AS3.0已经有了很大的改善。如果从应用安全角度讲,Flash采用二进制编码方式执行,而SilverLight采用开放的XML发布,在某些应用环境下显然Flash更让人放心。对于AIR和WPF我倒是更相信微软在桌面应用开发上的经验以及Visual Studio、MS SQLServer等成熟的工具的支持,Adobe的Flex显然还有很多东西需要学习,不过最新的Flex3.0β版即将放出还是很值得期待。所以留给开发人员也许只能试图选择一种“正确”的技术了,但是正式多样的技术才能保证Web应用变得更加精彩。
4] Java开源:开源将给Java语言一个新的开始
07年5月8日,Sun在JavaOne大会开幕式上宣布,将在GPL 2的基础上对JDK 进行开源。自从96年SUN发布了JDK1.0,距今已经走过了10个年头,发布了6个版本.以JavaOne为标志,07年对Java绝对是极具历史意义的一年.在过去,Sun公司一直对于Java语言的开源比较抵制,从技术角度讲,SUN害怕那样做可能会导致用Java开发出一些不兼容的软件产品。而Java的整体价值其实正是通过一次编译就可以在任意环境的多次运行。虽然SUN建立了它自己的开发者社区来指导Java语言的发展,但Java编程接口、语言以及工具中所涉及的性能和复杂性始终是其这些年困扰Java发展的瓶颈,加上来自 C#和Ruby等语言的冲击,有人甚至提出了java消亡论。为了可以重新激发Java的活力, SUN CEO Schwartz 终于决定解除 JDK 对于 Java 开发人员社区的禁锢,鼓励更多的人参与到社团中来。一面,JDK 的质量将会显著改善,因为程序员们不再仅仅报告 bug而且可以进行修复。正如Linus 法则所陈述的那样,“只要给予足够的关注,任何 bug 都是显而易见”。另一方面来自社区的最新技术也能更好的融合进Java平台.比如为增强Java平台对动态编程能力的支持,开源社区已经自发的提供了Beanshell,JRuby,JPython,Groovy等动态向对象编程语言。当然对于Java平台也许需要的不是一另种语言,但是动态语言的特性却能因此而尽快的被包容进来.例如在即将发布的Java 6正式版中 一个重要特性是直接嵌入JSR-223规定的脚本语言和Rhino解释器,从而实现了invokedynamic新字节码操作,一个动态的Java也许是不远的事了。面对全球大约有40亿台不同的设备在运行Java语言的现状,Schwartz 在其博客中写到:“Java语言的应用范围非常广泛,超过了微软公司Windows系统、Linux系统、Solaris系统、Symbian系统和Mac系统的应用总和。”希望Java的开源可以进一步促进Java平台真正成为全球软件技术发展的一个共用标准,而迈向新的10年。
5] GPL3 草案: GPL3 "困扰"软件社区发展
07年5月31日,自由软件基金会公布了GPL 3的最新草案版本,并在6月28日公布正式版本的GPL 3。相对于GPL2和以前的版本,GPL v3在内容改动中,最主要包括四个方面:解决软件专利问题,与其它许可证的兼容性,源代码分割和组成的定义,解决数字版权管理的问题。不过从05年理查德•斯道曼决定起草GPL3开始,围绕新版GPL无休止的争论变得愈演愈烈,而这些争论其实反映了商业、非商业,开放源代码、封闭源代码争斗的本质:软件知识产权保护和软件专利。这才是真正左右着整个软件社区的发展的力量,而技术本身其实是使软件社区变得更加“有趣”。追溯理查德•斯道曼制定GPL软件发行许可证的目标是被称为“软件的4个自由度”:1 以任何目的运行此程序的自由;2 以学习程序工作机理为目的,对程序进行修改的自由;3 再发行复制件的自由;4 改进此程序,并公开发布改进的自由。然而从1991年6月 GPL2正式推出,16年来初于多方原因考虑不同的厂商或社区也分别推出了许多自己的软件发行许可证。如今,GPL3的推出一定会对重新规范软件社区标准产生积极的推动。但从Linux创始人Linus Torvalds猛烈抨击GPL3的数字版权管理规定.到Googleplex的Linux创立协作会议上个Linux内核发展高层对于GPL3的观望态度.不难看出GPL3的推行还有相当的困难。最明显的在两种协议都合法存在的前提下,具体的开源软件的所有者有权选择是继续使用GPL v2协议,还是采用新的GPL v3协议。而两种协议的“兼容问题”将会相对长时间内困扰软件社区的发展。好在最终的决定权并不是GPL的制定者而是来自与软件社区自己,但是软件社区的领导者又是谁呢?
回顾07上半年软件领域其实远非上面短短千字可以概括的,相信在今年下半年还有更多值得去关注的软件技术,比如新一代动态面向对象语言特性的发展,Mash-UPs互联网应用快速兴起,XML格式在众多领域的渗透,多核技术给软件多线程开发模式的影响,以及软件虚拟化技术等等.让我们留下更多思考空间,这一切等到07年底去寻找答案。