borland传奇-第31章
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
Java的虚拟执行环境以及EJB的模型来重新塑造的组件模型了。+将逐渐退居幕
后提供系统核心服务,甚至会慢慢地消失于未来的执行平台之中。不过由于
的进入门槛不低,而且目前仍然有大量的原生Windows开发人员以及Windows应用程序,
因此,这个从组件模型完整转换到的过程可能仍然需要数年之久,而在现
在开始的数年内仍然是Windows平台上最重要的中间件技术。
据Gartner Group的调查和估计,在2003到2004年使用EJB技术开发的Java应用系统将
占整个Java平台的40%左右,这表示EJB技术已经获得了大型企业和专业软件厂商的
认可,是企业级的组件模型。EJB 2。0必须开始增加执行效率,故此加入了Local
Interface。此外延展性也成为EJB应用程序服务器的发展重点,因为EJB应用程序服务
器势必将承载更多的存取,以担负起企业的关键应用。因此,EJB厂商开始在EJB服务
器中切割虚拟伺服环境,并且在每一个虚拟伺服环境中执行不同的软件。例如一个虚
拟伺服环境负责执行JSP/Servlet Container,而另外的虚拟伺服环境则执行EJB
Container等,如下图所示。这样做的好处是不但每一个Container更安全,而且应用
程序服务器的延展性将更为优秀,因为在多CPU的机器中可以分配专门的CPU给不同的
Container,并且在一个EJB服务器中可以同时执行多个EJB Container。
这里有一个很有趣的区别,那就是由于Microsoft掌握了操作系统,Microsoft可以尽
量地把的虚拟执行环境移往操作系统的核心,提供更为良好的执行效率;但是由
于提供EJB的厂商没有这项优势,因此必须以更好的实现方式来开发EJB应用程序服务
器,这也是为什么SUN以ECperf这个标准来评定各家EJB应用程序服务器的执行效率的
原因。但是从目前EJB服务器的实现观念和技术看,仍然是领先于Microsoft的。
不过不要小看Microsoft,虽然在2002年的第一季才推出,但是Microsoft已经在
开发的第2个版本了,的发展步伐是很快速的。
中间件技术将会继续不断地发展下去,各种新的组件观念和实现技术也将持续地出现。
组件模型技术和中间件已逐渐取代早期的程序语言和数据库服务器,成为现在信息架
构的主导力量,Microsoft和SUN都希望成为这个领域的领导者。不过谢谢信息市场的
竞争力量,让这两家大厂都无法消灭对方,反而由于竞争的力量造成了组件模型不断
地创新,使信息人员能够持续地使用新的、更好的、更成熟的中间件技术,来实现日
趋复杂的信息系统,虽然这个学习的过程很辛苦,但这也是信息行业让人感觉到有趣
味的地方,因为你不会总觉得工作是一成不变的。
只是现在Web Service的兴起让组件模型的界限开始显得模糊了,而Web Service也是
Microsoft和下一版Java JDK强调的重点功能。看起来,Web Service技术将会开
始把组件模型逐渐地转换为面向组件服务,让组件模型的决胜点从面向功能逐渐转向
面向服务。以后哪一个组件模型能够提供企业级的服务模型,将会是决定系统使用的
架构的关键点,而这个现象已经可以从一些中间件厂商最近的动作中隐约的看出。
对于开发工具厂商的影响
的推出,对于所有开发工具厂商而言都是一大挑战,这除了牵涉到技术层面之外,
还包含了复杂的产品定位的问题。相对于当初Windows 3。0/3。1推出时各个开发工具厂
商百家争鸣的盛况比起来,如今的平台就显得逊色了许多。当然这主要的原因在
于中语言不再是重点,再加上语言可以内嵌在Microsoft的Visual Studio中,
这顿时让许多的开发工具厂商失去了定位以及竞争优势。如果开发工具厂商只是做一
个语言的Plug…In到Visual Studio中,那将很难生存下去。
对于像Borland的Delphi、C++Builder以及Sybase的PowerBuilder而言,如何在新的
环境中保持竞争优势是很重要的问题。因为在中,应用程序执行环境、mon
Language Runtime(CLR)以及 Framework都是由Microsoft所掌握,其他工具厂
商如何在Microsoft一手控制的环境中营造出竞争优势呢?另外在中,开发工具
厂商必须把应用程序编译成mon Intermediate Language(CIL)的格式,再由JIT编
译器编译成原生机械码执行,如下图所示。
因此,如果开发工具厂商要在环境中继续提供竞争产品,那至少必须在下面的三
个领域中找到答案,并且做出实际的解决方案:
■ 编译器的竞争如何把程序语言最正确且有效率地编译成CIL
■ Framework的竞争如何在 Framework上进行加值的工作,并且定位产
品竞争力
■ 开发工具本身功能集(Feature Set)的竞争
从编译器角度来说,由于的CLR内建的Virtual Execution System(VES)支持一般
的程序语言功能,同时又提供了丰富的对象模型支持能力,以提供面向对象语言对映
到CLR的能力,因此可以说是OOP…Friendly的执行环境,这非常有助于面向对象
程序语言在中实现,例如对C/C++、Object Pascal等真正的OOP来说是个好消息,
而Microsoft的新语言C#就是一个好的OOP实现范例。但是对于使用脚本语言作为骨架
的开发工具(例如PowerBuilder)来说,可能就需要花上许多的功夫重新规范,以便能
够适当地使用CLR的特性。当然除了程序语言之外,如何开发出一个有效率的CLR编译
器更是开发工具厂商需要费心的地方。
在Framework方面,Microsoft的 Framework摆明了要和SUN的J2EE/J2SE/JEME等
竞争,而且花了许多的资源打造 Framework,力求能够提供给程序员最好的开发
功能。但是,对于开发工具厂商来说则是有喜有忧。一方面,Microsoft虽然提供了
良好的 Framework,可以减少开发工具厂商需要花费的成本;但另一方面,开发
Framework的权力掌握在Microsoft手中,特别是Microsoft也有Visual Studio作
为竞争产品,因此如何定位便成了重要的问题。就我的看法,如果开发工具厂商无法
在 Framework上进行增值的工作,那最后仍然难逃被淘汰的命运。
即使开发工具厂商能够克服前面讨论的两个问题,最后仍然要回到产品本身的竞争力
上来。没有集成开发环境、组件架构、调试环境和高生产力,仍然无法和Visual Studio
竞争。开发工具厂商不但要像以往一样提供一个集成开发环境,甚至还必须做得
比Visual Studio更好、更具创意。这也不是一件容易的事情,因为这必须有突
破性的想法。例如,其中的一种可能就是再把的通用性延伸,除了像不把语
言的差异作为重点之外,也不把CIL产生的结果作为差异。由于CIL是一组标准的中介
信息,开发工具厂商可以继续把CIL转化为、原生窗口应用程序、Linux应用程序,
甚至是移动设备上的程序代码,如下图所示。
如此一来,这种开发工具将更为广泛和实用,也是开发工具极好的竞争优势,特别是
现在仍然有许多的软件厂商需要继续开发小而快的原生窗口应用程序。
Microsoft 的出现不单对于Microsoft本身有重大的意义,对于窗口平台上所有
开发工具厂商和SUN都有巨大的影响。开发工具厂商正面对着从Windows推出以来最严
格的考验,这是一场生与死的竞争。对于SUN来说,代表的是Microsoft正式全面
地向Java平台挑战,时间将决定JVM和CLR的胜负,而Java单一语言的通用性也将面临
语言中立的考验。至于传统的窗口程序设计人员而言,也许正如〃魔戒传奇〃中的
哈比人一样,明知前途坎坷,仍然必须选择走向严寒的雪山或是诡谲的地道,因为目
的只有一个:在新一波的软件技术和平台中找到一条生存之路。
^v^v^v^v^v^v^v^v^v
第十章 令人焦虑的时代
〃通向未来之路在哪里?〃
时间进入2000年之后,许多事情变得似乎都不确定了,世界经济的走向和信息技术的
趋势变得更令人困惑。在经过了Internet/Intranet、Linux和Open Source的洗礼之
后,目前信息技术的发展似乎已经趋向多元化的状态。虽然许多的信息系统仍然在使
用我们早已熟悉的技术(例如Web和主从架构),但各种新的信息技术也在层出不穷地
出现(例如SOAP和Web Service),再加上和Java两大平台之间逐渐升温的战火,
让许多软件开发人员眼花缭乱,继而心生疑惑〃自己未来的前途到底在哪里?〃
其实,信息人员产生这样的疑惑是很正常的。因为信息技术的发展到达了前所未有的
阶段,不但各种程序语言之间掀起了混战,操作系统平台、虚拟执行平台、开发工具、
组件模型等都兴起了热战。而虚拟执行平台让跨平台模糊了以往壁垒分明的开发领域,
程序语言的多样化稀释了原本由数种语言瓜分天下的态势,而Web和多层架构又逐渐
瓦解了传统的信息架构。这些信息技术的多元化发展,不但让传统的开发人员面临难
以抉择的命运,虚拟平台、程序语言和信息架构等众多的组合变量,也让开发人员顿
然之间感觉负担沉重,担心自己已经跟不上信息发展的快速脚步,那软件开发人员的
未来到底在哪里呢?
信息技术多元化的发展
和许多人的工作一样,也许你还在使用Delphi/C++Builder开发主从架构或是Web或者
一般的应用系统,又或许是使用JBuilder开发Java应用系统。总之,你可能已经熟知
目前所使用的技术,并且大量地应用在日常的应用系统中。但是,身为软件开发人员,
必须了解软件趋势的发展,必须随时注意新的软件技术,因为唯有不断地增加自己的
附加价值,才能够在这个竞争激烈、演进快速的产业中生存下去。
其实从整个软件技术发展的趋势中,细心的软件人员已经能够看出未来的方向。在软
件开发的过程中,每一个时代都有主导的软件技术在影响着当时的产品以及软件公司
的兴衰。当然,能够掌握软件趋势的人或是公司也都获得了成功。从下图中我们可以
看到,在不同年代中不同的信息技术掌握了当时的主宰力量。60/70年代是由数据处
理和程序语言独领风骚,到了80年代便由数据库当家作主,90年代各种组件和中间件
又主导了系统架构。
但是从60/70/80/90年代的软件技术来看,每一个时代都是由一个点的信息技术来主
导。不过在Internet/Intranet时代,面向对象和Modeling等技术对于信息系统的影
响愈来愈大,信息技术的演进逐渐从点形成了面,上图就显示了在2001年之后主要的
软件力量来自平台的整合和竞争、以及全方位的软件技术。其实,作为软件人员,我
们也可以从自己的信息生涯中咀嚼出这个趋势,问题只是在于有没有花时间进行自我
思考。
数年前的软件人员可能只需要了解程序语言即可,例如只需要会C/C++就可以找到工
作。那时数据库也几乎属于专门的技术领域,当时的DBA只要会管理数据库就行,因
为还有许多专门写SQL的程序员。但随着时间的推移,软件人员开始需要同时会程序
语言、SQL以及管理数据库。接着又需要了解组件技术、Web技术、终至面向对象和
Modeling等技术。为什么对软件人员的要求会愈来愈高?这是因为整个软件的发展
趋势正在走向信息技术整合的道路。
未来的软件趋势是走向软件和系统整合,这代表着软件人员必须知道得更多,掌握更
多的技术才能够顺利迎接未来的挑战。唯有掌握每一个独立的软件技术,软件人员才
可能有能力拥有系统整合的能力。从许多的观察、分析和统计中,我们可以抽离出下
面这些最重要的软件技术或是软件特质。这些技术需求和软件特质是未来成功的软件
人员都必须具备的,唯此才能够持续地在竞争愈来愈激烈的软件业中保持高度的竞争
力。
■ 了解多种程序语言
■ 熟悉更多的系统架构
■ 面向对象和UML模型技巧成为软件人员的基本要求
■ 快速学习和开发的能力
■ 精致化的开发能力
对于上述的技术和特质,许多读者会认为这本来就是正常的事项,为什么还需要在这
里再次提出?这是因为其中许多的事项由于时空因素的关系,不是有了新的意义,就
是有了更大的压力。在本章和第13章中我会分别做详细的说明。
软件人员在发展本身技能并且了解信息技术发展的趋势之时,当然也需要了解目前各
种软件平台和软件领域发展的状况,以便规划本身的发展方向。目前,如果我们以平
台作为分类的标准,便可以概略分成UNIX/Mainframe、Windows、Java以及四大
平台。由于未来趋势的演进,在这些不同平台中的软件人员也会有不同的境遇和发展。
不过总体来说,UNIX/Mainframe和Windows平台的前景都属于逐渐下滑的趋势,其原
因就在于这些平台已经处于成熟、饱和或是即将由新的平台所取代。
如果仔细观察Java平台,可以发现它已经开始进入爆炸成长期。事实确实如此。Java
在历经了数年的奋斗之后,的确开始在全世界开花结果。Java除了在美国和欧洲快速
占据市场之外,在亚洲也开始快速崛起。例如Java在台湾的表现一年比一年好,不但
使用Java的人数增长了许多,Java的开发工具(例如JBuilder)也一年比一年卖得好。
JBuilder已经隐然有和Delphi/C++Builder分庭抗礼的趋势。也由于Java的势力日盛,
因此Java软件人员的身价也水涨船高。
更有趣的是的发展。虽然在2002年才正式推出,但是许多的分析和预测都显
示了的发展将不会像Java一样需要花上6/7年才达到一定的高度,的脚步将
快上许多。从上图中我们也可以看到平台的趋势已经处于温和上升的状态。根据
Microsoft最新公布的信息,到目前为止,全世界已经有4千万台的PC安装了的虚
拟执行环境。估计在2003年,Microsoft推出下一代的操作系统Microsoft Server
之后,将有为数更多的PC安装虚拟执行环境。当然这也代表了的时代可能会
比我们想像中更早到来,这同样预示着软件人员的需求会开始浮现。
根据Gartner Group的调查显示,以后的信息势力会由Java/平分市场,最有可能
的结果是Java将会称霸中/后端以及UNIX/Linux/Mainframe市场,而则可能控制
客户端、Microsoft的行动消费端,并且逐渐朝向中间件攻城略地。未来更有可能通
过Intel/AMD高阶CPU的计算能力以及Microsoft的 Server而在原本由UNIX控制的
低/中/高阶工作站市场取得一定的优势。
下面的分析图更是显示了四大平台之间势力消长的情形。将很快取代Microsoft
原本的DNA架构而成为Windows平台下的企业系统核心技术和架构。我认为这个现象是
合理的,但是更有趣的问题是何时将穿透Mainframe和Java平台呢?
看完了平台之间的