Thursday, April 8, 2010

Steve Hui:云联云是中国云计算的最好切入点

作者:Power-All Networks 总裁 Steve Hui
RAB_0345

Power-All Networks 总裁 Steve Hui

自2006年开始,云计算在美国市场爆发,2010年云计算成为全球的热点和主流。当今云计算炒作成分甚高,学术界对此态度较冷,而商业界相对热情。纵观目前市场的发展趋势,我个人认为,2010~2011年可以说是云联云的快速发展之年。在这场云计算的战争中,中国若想成为后起之秀,就必须目标明确,方能实现事半功倍。

那什么是云联云?从根本上讲,互联网作为从物理中分离而得以实现的虚拟架构,一直以来被称为巨云,而云计算是互联网(或云)上的虚拟分布网络计算。但云计算不包括孤岛云(未与其它IDC连接的单一IDC云),云计算必须通过单一节点(本地云)与同类节点(云联云) 及异构式节点( 互联云) 间互联实现。而且,它也不依赖于基层硬件产品实施,因此,云计算能否实现商用性,关键取决于虚拟机是否具有云、云联云、互联云计算的能力。

云联云会成为未来发展的重点,因为它满足了成功所需的六个条件。

云的基因化定义

云计算的定义仅局限功能与特性的描述,尚未明确根本性定义。

Internet一直以来被称为大云,云计算是建立在互联网之上的一种计算能力。同时 Internet是实现全球互联互通的网络。在Internet上的浏览器也可互联互通。云计算便是建立在这种互联网之上的计算。然而为什么云计算却无法达到互联互通的计算能力?目前这些孤立的、不兼容的云能否满足日后需求?就发展趋势来看,不能实现互联互通的孤岛云绝不会长久存在。

当今的互联网有两层,每层拥有不同的基因元素。如第一层基因元素为路由器、网点,基因协议为 TCP/IP;第二层独特组件为URL,基因协议为HTTP;只要用户遵守互联网规则,便可用自己的PC,通过不同的设计与方案,在接入后实现互联互通,无须认知其他用户。Internet的定义不是其特性与功能的描述,而是根据它的DNA元素定位,达到全球互联互通。

云计算的基因定义,正如其字面意思,非常简单。即建立在互联网架构及其元素之上从而采用虚拟化架构为基础的互计互算、互联互通的计算网络。

今天的互联网不具备计算基因,只有数据的路由(路由器、网点、TCP/IP)。若达到上述云定义功能,需要在现有互联网上架构一个计算层。Power-All Networks已将此技术公之于众。

云计算的颠覆性价值

云计算、云联云计算被认为是近十年最具颠覆性技术,那么颠覆性技术必定要产生颠覆性的价值。

当今最热门的话题一直锁定为“云”,因为没有基因层定义,便出现了很多“旧酒新瓶”的现象。采用以前的技术或软件,加以包装,再以云计算的身份出现。并且多数以卖产品为主,那么怎样才能体现颠覆性价值?

正如云的基因定义,云计算是以Internet架构为基础,以虚拟化基建为基本计算元素,再结合Internet及WWW的基本元素,从而实现互联互通,互计互算的网格计算。Internet网络对于终端PC没有品牌要求、没有产品销售,通过全球网络互联互通创造了网络颠覆性价值。而建立在此架构之上的云计算,只有达到了同样的互联互通,才能创造计算网络的颠覆性价值。

前车可鉴, 认清成败

“按需收费、即时扩展”不是IT的新特性。十多年前的ASP模型,为什么不成功?多年前的网格计算为什么不能普遍流行?最近的效用计算为什么雷声大雨点小?ASP、网格计算、效用计算的描述性的定义是不是与云计算普遍的定义有相同之处?只有认清前因后果才能指出正确的前进路线。

认清何为兼容

关于云计算, 目前普遍在谈论的是API的兼容问题。在没有Internet前,应用API网关或API桥接是最常用的方法。

互联网协议的兼容是OSI网络模型与各层的兼容,而不单单是应用层兼容。要真正达到云联云的互联互通、互计互算首先要实现各协议层的兼容。例如,在过去的十几年里,许多应用软件转变为中间件,与操作系统密切相关。如果我们利用API接口或网关把应用软件从一个云传送到另一个云,可进行数据与应用程序的传送,却无法在接收云内执行程序。如果接收云内没有运行中间件,或运行着不同的中间插件,则两个云间只能传送程序与数据,而达不到互计互算的目标。

应用层程序接口网关或桥接只能与少数供应商实现兼容,一旦其中一方API网关或桥接改变,则 API所有成员也随之改变。而无法达到全球互联互通、互计互算。

我们现在需要的不是API应用层的兼容,而是协议层的兼容。应用层API的兼容跟全面性协议层的兼容有极大的区别。在互联网上实现互联互通、互计互算首先要在协议层上(由底层至顶层)实现全面性兼容。实现这一基本概念后,才具备了超前登峰的最基本条件。

SaaS软件只有成为互联SaaS,才能发挥更大效应

今天软件公司最热门的话题莫过于SaaS软件,然而当今云还未实现全部兼容情况下,若想做 SaaS软件需要了解在哪个云或哪个操作系统上运作,并向云厂商及操作系统厂商询问提供哪些可供兼容的中间软件,一个软件云对于多个云来说,可以拥有多个版本。

如果云是颠覆性技术,如果以目前这种SaaS兼容情况,又怎能发挥其市场爆炸力?所以云联云计算是急需实现的必经之路。当今的SaaS及软件公司应尽快走向互联SaaS,才能发挥爆炸性的市场效果。

解决云安全是“治本”的问题

云计算、云联云计算对于用户来说,安全性是最为重要的。云是架构在Internet之上的计算。Internet是一种Best Effort服务模式,其基因层不具备安全保护元素,理由如下:

(1)Internet的地址是随机获取的,单单获得IP地址不能像电话那样快速找到元凶。这是Internet具有的一个天生缺陷。

(2)Internet只有一个网,其中IP包中包头含有控制资料,包内有数据,即拿到IP包便能掌握内容。现在的语音电信都设有两个网络,包括数据(数据语音)网与控制网,两网相对分开。

(3)Internet的协议是基于良好公民的行为之上。例如,普通用户以此来传送信息,A方用协议提出传送,B方回答可以,请A方回复即可。一些黑客或心术不正之人则拒绝回复,随即发来上万个传送请求而导致B方处于瘫痪状态,这便是DOS或 DDOS。

(4)目前的防侵防病在架构上是一种后知后觉、治标不治本。

建议方案有两个:

(1)云计算与云联云计算是架构在WWW层或Internet层之上的计算。自然便承接了下层的这种先天不足。在云联云的架构上解决的问题应治本不治标。架构于WWW(第二层)及Internet(第一层)之上的云联云,应将此架构设为具备三个独立网络虚拟层,包括:数据网、控制网及动态加密网。其中数据网、控制网与动态加密网的加密方法截然不同。这种“治本”的做法将会大幅度降低安全问题。

(2)云计算、云联云计算是网络计算。过去二十多年我们已建立OSI 1~4层,各层用的加密方法与保护密钥不尽相同。目前云计算有没有明确的分层?每层是否有不同的加密?其答案是,没有!原子弹爆炸原理是先发生核聚变,再产生大爆炸。如要体现云、云联云计算

颠覆性的价值,首先要弥补这种先天不足,在最短时间内创造爆炸性价值,使中国这位后起之秀,提前登峰造极。

编者注:本文作者是第一台COMC 主机电脑结构的六位设计者之一,1983年创建 EveresSystem 公司, 现任Power-All Networks 公司总裁 & 联合创始人。Power- All Networks 集团主要业务集中于通过单一PC 服务或PC 服务器集群进行LAN 与IDC 统一与虚拟化。

(本文来自《程序员》杂志2010年4月刊)

Friday, March 19, 2010

软件工程师的十个“不职业”行为

职业化是软件工程师的必然选择。本文根据我在教学和软件开发管理方面的实践,列举几个软件工程师“不职业”的行为或习惯,从另外一个侧面进一步探讨什么是真正的软件工程师职业化。陈尚义


■ 文 / 陈尚义


职业化之于软件工程师非常重要。因为:软件是看不见也摸不着的,它的进度也看不见摸不着,需要软件工程师严格自律、善于沟通;软件开发是创造性的劳动,创造性劳动依赖个人主观能动性,没有自我激励是不可能成为出色的软件工程师的;软件在国民经济和人们日常生活中发挥着越来越重要的作用,软件工程师的道德行为规范成为备受关注的问题。

下面是软件工程师十个“不职业”行为。在一些特定领域工作的人们可能会认为这些不具有非常广泛的代表性。例如,IEEE和ACM联合发布的关于软件工程师职业道德规范里,认为软件工程师首先要遵守的是社会公众原则,即所开发的软件要给人类带来福利,不能制造类似于计算机病毒那样的具有危害性的软件。由此,制作病毒显然是最大的“不职业”。然而,在一般的商业型公司里这个问题不是最突出的,因此制作病毒并没有包含在本文列举的十大不职业行为之内。


行为一:对外交付半成品

我们的态度反映在我们的工作上,职业化的人士从不从自己手上交出不合格的工作产品。那些不职业的软件工程师满足于把工作做成半成品,等着让别人来纠正他们的错误。

开发者总是不好好做单元测试,没有确认自己的代码符合不符合要求,就盲目自信地认为没有问题,提交给别人供集成和测试。殊不知,没有经过单元测试的代码,往往在集成和系统测试阶段发现大量的问题,要修复这些问题需要付出更大的代价,这个代价比你自己发现并修复要大得多,给组织造成了巨大损失。


行为二:不遵守标准和规范

职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。每个行业都有自己的技术规范,软件行业也同样如此,如IEEE发布的国际软件工程标准等;各个软件开发组织也有相应的代码规范、文档模板、代码审查清单等;有一定管理水平的软件开发组织还有相应的过程文件。

这些都是软件工程师在软件开发过程需要遵守的规定。特别强调的是,自人们认识到软件危机以来,无论是学术界还是工业界都在不断地总结出软件开发的失败教训和成功经验,并把他们总结成为最佳实践,进而形成标准,这些最佳实践是在大量实践的基础上提炼而成的,要充分利用这些最佳实践和标准指导自己的行动。


行为三:不积极帮助他人

技术人员最容易犯的错误是“保守秘密”,觉得自己开发的成果属于自己,不喜欢和别人共享。生怕影响自己在组织内的地位。

帮助别人也是帮助自己,这个简单的道理却被高智商的软件开发人士忽视。在其他行业中,帮助别人可能仅仅是一个美德,但在软件开发组织中,帮助别人还能为组织降低成本、缩短开发周期、提高产品质量,所有这些正是软件工程学科所研究、并试图解决的问题。


行为四:版权意识不敏感

我们既是软件的制造者,也是软件最积极的使用者。如果我们自身不遵守版权,就会给其他人造成极大的、负面的示范作用,也是对我们自己劳动成果的不尊重。在实际生活中我们看到太多的例子,大量的软件工程师盗版使用了其他公司的产品,并以此炫耀自己的能力。

不尊重版权的另一个例子是:不认真阅读开源代码的使用限制条款就随意使用;随便找到一个开发包,不问来龙去脉就嵌入到自己的系统;错误地认为它在组织内所做的工作成果是自己的,在离职后转让给他人;看到别人使用盗版软件不制止,而且还继续传播。


行为五:对待计划不严肃

软件工程强调计划性。在软件项目管理里,任何项目都要经过策划(Planning),策划的结果是项目计划。项目管理者跟踪项目计划的执行情况,记录计划执行过程中存在偏差的地方,对任何与计划有出入的想法都要事先经过评审和批准,然后才能付诸行动。

因此计划是严肃的。计划是大家沟通的平台,是检查项目状态(Project Status)的依据,也是控制项目变更的手段。计划还是一种承诺,因为策划过程是所有开发者都参与的,或者是征求过开发者意见的,承认了计划中的各种安排,就意味着你已经对外承诺了这些。

软件计划具有难以精确估计并动态变化的特性,因此需要我们软件工程师更加严肃地对待计划,而不应该成为我们不按计划行事的借口。


行为六:公事私事相混淆

公私分明是职业化的另一个重要特征。利用公司设备做自己的事情;在上班时间浏览自己感兴趣、和工作无关的网站,如上班炒股票,都是不职业化的行为和习惯,属于假公济私。

反过来也一样是不职业的:用自己私人的设备处理公司的事务,用免费的邮箱发送和接收公司的邮件;带个人的电脑来办公室处理公司的业务。这样做,可能给组织的软件安全性造成危害,也可能对组织的工作造成麻烦、惹出版权官司。在公和私之间画上一道红线,做到公私分明,是职业化软件工程师必备的素质。


行为七:不注意更新自己

职业的与非职业的软件工程师一个重要区别就在于职业化的人士经常学习,不断更新自己的知识,保持自己在本行业的竞争能力。

我接触到的很多工程师,他们想走捷径,对技术浅尝辙止;知其然不知其所以然;他们畏难而退:不想在一线战斗,喜欢搞他们想象的所谓的管理;想做测试,因为他们错误地认为测试对技术的要求不高……这些都是和职业化的软件工程师很不相称的。


行为八:不主动与人沟通

沟通,在软件开发领域,是责任问题,不是性格问题。

不主动沟通,其背后隐藏的更为重要的原因是工程师的责任感不够。主动和上级、同行、下属沟通是职业化所必需的,因为软件开发需要团队协作,任何一个工程师的工作都可能会影响别人,进而影响全局。软件工程的实践表明,个别人缺乏主动沟通,往往导致整个团队的技术方案出现偏差,或整个项目的进度受到影响。

报告(Report)是沟通的一个方式,有时显得特别重要。当你承担的任务进展顺利的时候,要报告;特别当任务进展遇到困难、可能会影响别人或引起变更的时候,更要报告。配合项目经理和QA人员跟踪项目的计划执行情况,是每一个工程师分内的职责。


行为九:不遵守职场规则

一些工程师不能很好地遵守软件行业的职场规则。比如:互相告知或打听工资和奖金的多少;离职时带走公司的源代码和文档;或急于到新单位工作而不专心交接等等。

软件计划的不精确性,导致开发任务的分布不均匀,特别是重要里程碑(如产品发布)之前,往往需要一定程度的加班。对此,职业化的软件工程师应给予理解和配合。


行为十: 不够诚实和正直

配合项目经理做好计划是工程师不可推脱的职责。进度的安排是根据任务承担者的经验、水平来确定的,对所安排的任务,工程师本人应该有比较正确的判断。实际工作中,却碰到有些工程师一天能完成的任务故意说成是两天,为自己争取到过分宽松的环境。虽然,也有组织要求软件工程师对工作量和进度有一定的判断和估计能力,但这和故意虚报计划的性质是不一样的,前者是水平问题,后者是诚信问题。

工程师的正直来自于强烈的社会责任感。只有维护行业的道德水准和职业规范,软件行业才能持久健康发展。牺牲职业道德和规范水准,换来了暂时的经济利益,伤害的却是整个软件职业的荣誉和信任度。


作者简介:

陈尚义,1989年毕业于北京航空航天大学计算机系。现任中软通用产品研发中心总经理,北京航空航天大学兼职教授、硕士研究生导师,中科院研究生院硕士生导师,IEEE授权培训结构高级讲师。

(本文来自《程序员》杂志0910期,更多精彩内容敬请关注0910期杂志)

华人的旗帜——首位亚裔图灵奖获得者姚期智

作者:吕娜


姚期智(1)2000年至2010年, 转眼十年。遥想21世纪的第一个春天,2000年度图灵奖被授予华人计算机科学家姚期智。这个消息如此振奋人心,有着“计算机世界的诺贝尔奖”之称的图灵奖,35年来首次迎来一位亚裔学者,姚期智也是首位获此殊荣的中国人。


姚期智生于上海长在台湾, 人生的前20年浸润在中国传统文化中。1967年,21岁的姚期智从台湾大学毕业后赴美国哈佛大学学习物理,并于1972年获得博士学位。姚期智深深热爱着科学研究,强烈的兴趣吸引着他津津乐道其中,他说:“我比较喜欢新奇的东西,有新的方向我就喜欢去看一看,试一试。”在加州大学作博士后研究时,姚期智发现,新兴的计算机科学有着主宰未来社会的强大威力,他敏锐地意识到这门十分重要的新兴学科具有巨大发展空间。于是这位年轻人作出了一生中的重要决定:放弃苦学8年的物理学,转而投向计算机科学研究。两年后,他顺利取得伊利诺伊大学计算机博士学位。


姚期智以敏锐的科学思维,不断探索新的学术领域,先后在麻省理工学院、斯坦福大学、加州大学伯克利分校等名校从事教学研究。1986年至2004年,他曾任普林斯顿大学计算机科学系教授,成为计算理论方面的顶尖科学家。姚期智是这样一位科学家—— 把艰苦工作视作无上乐趣。他认为科学研究具有独特的美感,迸发创造性观点时那“Happiest Moment”(最快乐的瞬间),是科学研究者最大的幸福。


他所发表的近百篇学术论文,革命性地改变了人们对“信息应如何有效地存储”的认识。姚期智作为国际上计算机理论方面最拔尖的学者,在伪随机数生成、密码学与通信复杂度等多个科研领域屡获殊荣。他是美国国家科学院院士、美国人文及科学院院士、中国科学院外籍院士及台湾中央研究院院士。他曾获得美国工业与应用数学学会乔治·波利亚奖,及以算法设计大师克努特命名的首届克努特奖,美国计算机协会(ACM)也把2000年度的图灵奖授予他。


人生宛如一出圆舞, 总要回到情系千里的故土。出国多年,姚期智仍然心系祖国,他认为中国的图灵之路走了三分之一,“希望能为中国和同胞尽点微薄之力”。2004年,姚期智决定将57岁以后的人生回归中国大陆,开创科学研究的新舞台。他毅然辞去了普林斯顿大学终身教职,卖掉了在美国的房子,正式加盟清华大学高等研究中心任全职教授。“我所学的东西能有机会在我出生的中国生根,有条件在该领域为中国培养出世界级的研究人员来,我觉得这是一件非常有意义的事情。”


到清华大学仅1年半,姚期智就发起了志在培养国际计算机科学领军人物的“软件科学实验班”。他最看重清华有许多很好、很有潜力的学生,“我回中国的一个目的,就是希望在短时间内,在中国,至少在我的研究领域,能够创造出一流的研究环境。”姚期智坚定地说,“我们要建立一个计算机领域的‘超级公路’,使得我们的学生从本科生开始,一直到研究生、教授,在中国工作可以比世界任何其他地方机会更好,也更感到荣耀。”


短短几年,姚期智带领他的清华团队在理论计算机科学研究方面颇有斩获。除填补了中国在《美国科学院院刊》等前沿国际刊物上发文的空白,在2006年理论计算机科学领域最顶级的学术会议FOCS上,清华大学计算机系有3篇论文入选,实现了国内学者在该会议上“零的突破”,其中一篇还获得2006年度FOCS最佳论文奖。


2007年3月29日,姚期智领导成立了清华大学理论计算机科学研究中心。他从清华开始,逐步建立中国的计算机理论科学的研究队伍,试图在国际上造成影响。姚期智饱含深情地说:“在国内,我所专长的这门学科,发展还是比较迟缓。而我们有这么多人才,能够教给他们这门学问并引导他们朝这方面走,是最快乐的事情。”


(本文来自《程序员》杂志2010年3月刊)

我的七个建议

作者:Joel Spolsky


软件随想录[编者按]由于Joel Spolsky的双重身份(昔日耶鲁大学计算机系学长,今日Fog Creek软件公司的CEO),所以听听他的建议,对于当今无数困扰于就业压力的中国高校计算机专业学子来说,是大有裨益的。你们会发现,大多数建议,都在强调“软实力”的价值。本文转载自《软件随想录》(作者:Joel Spolsky ,译者: 阮一峰,2009年12月出版),感谢北京图灵文化发展有限公司的支持。


如果你喜欢编程,那么你真是受到了上天的眷顾。你是非常幸运的少数人之一,能够以自己喜欢的事谋生。大多数人没有这么幸运。你认为理所当然的观念“热爱你的工作”,其实是一个很现代的概念。通常的看法是,工作是一种让人很不开心的事,你为了拿工资才不得不去上班。你工作的目的是为了攒下钱去干那些自己真正喜欢干的事,但是前提是你得等到65岁退休之后才行,而且还有不少条件。条件一,你的积蓄必须足够多;条件二,你没有老到走不动,你还有体力去干那些事情;条件三,你喜欢的事情不需要用到脆弱的膝盖、昏花的视力,也不要求你走上一里地不喘气,等等。


我刚才说到哪里了?对了,我要提建议。


毕业前练好写作


如果不是Linus Torvalds不断地散布福音,请问Linux操作系统会成功吗?虽然他是一个非常聪明的计算机天才,但是Linux吸引来全世界一大批志愿者的真正原因却是Linus Torvalds的表达能力。他通过电子邮件和邮件列表用书面形式传播自己的想法,最终引起了所有人的注意。


你听说过现在风靡一时的“极限编程[ ] ”(Extreme Programming)吗?我在这个地方不谈我对极限编程的看法,我只说如果你听过这个词,那么原因就是它的倡导者都是一些非常有才华的作家和演说家。


即使我们缩小范围,将目光局限在任何一个软件开发团体中,你也会发现该团体中最有权势和影响力的程序员正是那些表达能力强的程序员,他们无论是做书面表达还是做口头表达,都能够清晰、自如、具有说服力地传达观点。此外,长得高也有助于提升影响力,不过这个不取决于你。


一个普通程序员与一个优秀程序员的区别,不在于他们懂得的编程语言谁多谁少,也不在于他们喜欢用Python语言还是喜欢用Java语言,而在于他们能否与他人交流思想。如果你能说服其他人,你的力量就可以得到放大。如果你能写出清晰的注释和技术规格说明书,其他程序员就能够理解你的代码,因此他们就能在自己的代码中使用,而不必重写。如果你做不到这一点,你的代码对其他人就没有价值。如果你能为最终用户写出清晰的使用手册,其他人就能明白你的代码是用来干什么的,这是唯一让别人明白你的代码有何价值的方法。SourceForge[ ]上有许多优美的、有用的代码,但是它们都像被埋葬了一样,根本没人来用,原因就是它们的作者没有写好使用说明(或者压根就没写)。这样一来就没有人知道他们的成果,他们杰出的代码就衰亡了。


如果一个程序员不会用英语写作、没有良好的写作能力,我就不会雇他。如果你能写,不管你去哪家公司工作,你很快就会发现写作技术文档的任务会落到你头上,这意味着你已经开始在放大自己的影响力了,管理层正在注意到你。


大学里有些课程被公认为“写作密集型”(writing intensive)课程,这就是说为了拿到学分,你必须写作多得可怕的文字。一定要去上这样的课程!不要管学科,只要这门课每周甚至每天都要你写东西,你就去上。


你还可以动手写日记或者网志。你写得越多,写作就会变得越容易。写起来越容易,你就会写得越多。这是一个良性循环。


毕业前学好C语言


第二点我要讲的是C语言。请注意,我说的是C语言,而不是C++。虽然在实际使用中C语言已经越来越罕见,但是它仍然是当前程序员的共同语言。C语言让程序员互相沟通,更重要的是,它比你在大学中学到的“现代语言”(比如ML语言、Java语言、Python语言或者其它正在教授的流行垃圾语言)都更接近机器。你至少需要花一个学期来了解机器原理,否则你永远不可能在高级语言的层次写出高效的代码。你也永远无法开发编译器和操作系统,而它们恰恰属于目前程序员能够得到的最佳工作之列。别人也永远不会放心将大型项目的架构设计交给你。我不管你懂多少延续(continuation)、闭包(closure)、异常处理(exception handling),只要你不能解释为什么while (*s++ = *t++);这句代码的作用是复制字符串,或者不觉得这是世界上对你来说再自然不过的事情,那么你就是在盲目无知的情况下编程。在我看来,这就好像一个医生不懂得最基本的解剖学就在开处方,他看病的根据完全是因为那些娃娃脸的医药厂商销售代表说这种药有用。


毕业前学好微观经济学


如果你没有上过任何经济学课程,那么我首先来做一个超短的评论:经济学是这样的学科之一,刚开始学的时候轰轰烈烈,有许多有用的、言之有理的理论和可以在真实世界中得到证明的事实,等等;但是,再学下去就每况愈下,有用的东西就不多了。经济学一开始那个有用的部分正是微观经济学,它是商业领域所有重要理论的基础。跟在微观经济学后面的东西就不行了。你接下来学的是宏观经济学,如果你愿意,尽管跳过去,也不会有什么损失。宏观经济学开头的部分是利息理论,内容比方说是利率与失业之间的关系,但是怎么说呢,看上去这部分里面还没有被证实的东西多于已经被证实的东西。学完这部分,后面的内容越来越糟糕,许多经济学专业的学生实际上都变成在搞物理学,因为这样才能在华尔街上找到更好的工作。但是不管怎样,你一定要去学微观经济学,因为你必须搞懂供给和需求,你必须明白竞争优势,你必须理解什么是净现值(NPV),什么是贴现,什么是边际效用。只有这样,你才会懂得为什么生意是现在这种做法。


为什么计算机系的学生也应该学经济学?因为,从经营一家公司的角度来看,比起那些不懂的程序员,一个理解基本商业规则的程序员将会更有价值。就是这么简单。我无法告诉你有多少次我是那样地充满挫折感,因为我看到了太多的提出一些疯狂的想法的程序员,这些想法在代码上也许可行,但在资本主义世界中毫无意义。如果你懂得商业规则,你就是一个更有价值的程序员,你会因此得到回报的,但是前提是你要去学习微观经济学。


不要因为枯燥就不选修非计算机专业的课程。


想提高GPA绩点的一个好方法就是多选修非计算机系的课程。请千万不要低估你的GPA的重大意义。千千万万的人事经理和招聘人员在拿到一份简历的时候,第一眼就会去看GPA,包括我也是这样。我们不会为这种做法道歉。为什么?因为GPA不反映单个的成绩,而是代表了许多个教授在一段很长的时间中,在不同的情况下,对你的表现的一个总的评估。SAT成绩难道不够吗?哈,那只不过是一场几个小时的测试罢了。GPA中包括了四年大学期间你的小论文、期中考试和课堂表现,总数有几百次之多。当然,GPA也有自己的问题,不是百分之百准确。比如,这些年来,老师对学生的打分越来越宽松,学习成绩有通货膨胀的趋势。再比如,GPA无法反映课程的难度,没人能够看出你的GPA是来自无名社区大学家政系的轻松课程还是来自加州理工学院针对研究生的量子力学课程。渐渐地,我形成了一套自己的做法,首先我会过滤掉所有来自社区大学、GPA低于2.5的简历,然后我会要求剩下的人给我寄成绩单和推荐信。我再从中发现那些成绩一贯优秀的人,而不是那些仅仅在计算机系课程中得到高分的人。


为什么我要关心某人的“欧洲历史”课程成绩呢,毕竟作为雇主我要找的应该是程序员啊?何况,历史是那么枯燥,不得高分很正常。哦,这么说来,你的意思是我应该雇用你,而不用考虑一旦工作变得枯燥你会不会努力工作?别忘了,在编程工作中也有很枯燥的东西。每一项工作都有枯燥难耐的时刻。我不想雇用那些只想干有趣事情的人。


选修有大量编程实践的课程


我依然清楚记得我发誓绝不读研究生的那一刻。那是在一门叫做“动态逻辑”的课程上,教师是活力十足的耶鲁大学教授Lenore Zuck,她是计算机系那些聪明的老师中最聪明的人之一。


如今, 由于记忆力糟糕, 我已经差不多把这门课的内容忘光了,但是不管怎么说,在这里我还是想要对付着说一下。大致上,形式逻辑的意思是说,如果条件成立,你就能证明结论也成立。比如,根据形式逻辑,已知“只要成绩好,就能被雇用”,然后假定“Johnny的成绩好”,你就可以得到一个崭新的结论“Johnny会被雇用”。这完全是经典方法。但是,一个解构主义者(deconstructionist)只需要10秒钟就能破坏形式逻辑中所有有用的东西。这样一来,留给你的只是一些趣味性,而不是实用性。


现在再来说动态逻辑。它与形式逻辑其实是一回事,但是必须再多考虑时间因素。比如,“你打开灯之后,就能看见自己的鞋子”,已知“灯以前是亮的”,那么这就意味着“你看见了自己的鞋子”。


对于像Zuck教授那样聪明的理论家,动态逻辑充满了吸引力,因为它看上去很有希望让你在形式上证明一些计算机程序的相关理论问题。这样做说不定很有用。比如,你可以用它在形式上证明,火星漫游车的闪存卡不会发生溢出(overflow)问题,不会因而整天一遍又一遍地重启,耽误了它在那颗赤红色的星球上漫游寻找火星人马文(Marvin the Martian)。


在第一堂课上,Zuck博士写满了整整两面黑板,甚至黑板旁边的墙上都写上了很多证明步骤。需要证明的问题是,有一个控制灯泡的开关,现在灯泡没有亮,这时你打开了开关,请证明灯泡将会点亮。


整个证明过程复杂得不可思议,处处都是陷阱,必须十分小心。保证这个证明不出错太困难了,还不如直接相信打开开关灯就会亮。真的,虽然证明过程写满了许多块黑板,但是还是有许多中间步骤被省略了,因为如果要从形式逻辑上完整证明所有步骤,那就琐碎得无法形容了。许多步骤是用各种经典的逻辑证明方法推导得到的,包括归纳法、反证法等,甚至有些部分还是由旁听的研究生证明的。


留给我们的课后作业是证明逆命题:如果灯原来是关着的,现在却亮了,那么请证明开关的状态一定同原来相反。


我动手开始证明,我真的去证明了。


我在图书馆里待了很长时间。


我对照着Zuck博士的原始证明想依样画葫芦。研究了几个小时之后,我在其中发现了一个错误。可能我抄写的时候抄错了,但是这使得我想通了一件事。如果花费3个小时,写满了一块又一块的黑板,每一秒钟都可能出错,最后能够证明的却只是一个很琐碎的结论,那么这种方式有多大的实用性呢?在活生生、充满趣味的现实世界中,你永远都不会有机会使用它。


但是,动态逻辑的理论家们对这一点不感兴趣。他们看上它不是因为它有用,而是因为它可以为他们带来终身教职。


我放弃了这门课,并且发誓绝不会去读计算机科学的研究生。


这个故事告诉我们,计算机科学与软件开发不是一回事。如果你真的非常幸运,你的学校可能会开设很像样的软件开发课程。但是另一种可能是,你的学校根本不教你在现实中如何编程,因为精英学校都觉得,教授工作技能最好留给职业技术学校、犯人重返社会的培训项目去做。你到处都能学怎么写代码。别忘了,我们是耶鲁大学,我们的使命是培养未来的世界领袖。你交了16万美元的学费,却在学循环语句的写法,这怎么可以?你以为这是什么地方,难道是机场沿途的酒店里临时拼凑起来不靠谱的Java语言培训班?哼哼。


麻烦在于我们没有一种真正教授软件开发的专门学校。你如果想成为一个程序员,你可能只能选择计算机科学专业。这是一个不错的专业,但是它同软件开发不是一回事。在那些400等级的课程代号中,去寻找名称中带有“Practicum”这个词的课程吧(编者注:指供人实习的课程)。不要被这个拉丁语单词吓倒,这些都是有用的课程,之所以起这种名字,只是为了让那些文绉绉、装腔作势、满嘴胡说八道的公司经理们觉得高深莫测。


别担心所有工作都被印度人抢走


我首先要说的是,如果你本身就已经在印度了,或者你就是印度人,那么你真的毫无必要去想这件事,根本不用琢磨所有的工作机会是不是都跑到了印度。那些都是非常好的工作,好好地享受吧,祝你身体健康。


但是,我不断听说计算机系的入学人数下降得很厉害,已经到了危险的程度。根据我听到的说法,其中的一个原因是“学生们不愿去学一个工作机会都流向印度的专业”。这种担心大错特错,有很多理由可以反驳。首先,根据一时性的商业潮流决定个人的职业选择,这是愚蠢的。其次,即使编程工作无一幸存地都流向了印度和中国,但是学习编程本身依然是一种第一流的素质训练,可以为各种超级有趣的工作打下基础,比如业务流程工程(business process engineering)。再次,不管是在美国还是在印度,真正优秀的程序员依然是非常非常短缺的,这一点请相信我。不错,确实有相当一批失业的IT从业者在那里鼓噪,抱怨他们长时间找不到工作,但是你知道吗?即使冒着触怒这些人的风险,我还是要说,真正优秀的程序员根本不会失业。最后,你还能找到更好的专业吗?你觉得什么专业好?主修历史学?如果那样,你毕业的时候就会发现,根本没有其他选择,只能去法学院。不过我倒是知道一件事:99%的律师都痛恨他们的工作,痛恨他们当律师的每一分钟。可是,律师每周的工作时间偏偏长达90小时。就像我前面说过的:如果你喜欢编程,那么你真是受到了上天的眷顾。你是非常幸运的少数人之一,能够以自己喜欢的事谋生。


不过说实话,我不觉得学生们真的有上面的想法。近年来,计算机系入学人数的下降只是回到了历史上的正常水平,因为前些年的互联网狂热使得入学人数出现了大泡沫,抬高了基数。由于这种泡沫,许多并不真的喜欢编程的人也来读计算机系。他们心里想的是,只要进了计算机系,将来就能找到诱人的高薪工作,就能获得24岁当上CEO、进行IPO的机会。谢天谢地,这些人现在都离计算机系远远的了。


找一份好的暑期实习工作


精明的招聘负责人都知道,喜欢编程的人高中时就将牙医的信息输入了数据库,进入大学前就去过三次电脑夏令营,为校报做过内容管理系统,有过软件公司的夏季实习经历。招聘负责人就是要在你的简历上找这些东西。


如果你喜欢编程, 就不要随便什么工作都答应,否则你会犯下最大的错误。不管是暑期工作,还是兼职或者其他性质的工作,只要与编程无关,就不要轻易接受。我知道,其他19岁的孩子都想去购物中心里打工,在那里折叠衬衫。但是你与他们不同,你19岁时就已经掌握了一门非常有价值的技能。将时间浪费在折叠衬衫上是很愚蠢的,等到毕业的时候,你的简历上本应该写满了一大堆与编程相关的经历。就让那些财经类的毕业生去租车公司“帮助人们满足他们租车的需要”吧,你要干的是别的事(在电视中扮演超人的Tom Welling注1除外)。


为了让你的生活变得更容易一些,也为了强调这整篇文章完全是为了满足我的个人目的,我要告诉你,我的公司——Fog Creek软件公司——提供软件开发方面的暑期实习机会。我们非常看重简历。“比起其他公司的实习工作,你在Fog Creek最有可能学到更多的编写代码、软件开发、商业运作方面的知识。”这是去年夏天我们的一个实习生Ben说的。他会这样说,并不完全是因为我派了人到他的宿舍让他这样说。我们接受实习申请的截止日期是2月1日。一起来吧。


如果你听从了我的建议,你还是有可能落得一个悲惨的下场,比如很早就卖掉了微软公司的股票,再比如拒绝了谷歌公司的工作机会,原因是你想要一间自己的可以关上门的独立办公室,或者做出了其他生命中愚蠢的决定。但是,这些可不是我的错。我一开始就告诉过你,不要听我的话。


(注1 : T o m W e l l i n g是一个美国演员, 在电视剧《超人前传》(Smallville)中扮演超人。该电视剧讲述还没有成长为后来超人的克拉克·肯特少年时代的故事。)


作者简介:


Joel SpolskyJoel Spolsky,世界最具影响的程序员网志Joel on Software的主人,软件业一位旗帜鲜明的思想者,一位传统软件管理理念的挑战者。他创办的这个网站被程序员誉为“反呆伯特宣言书”,并被翻译为三十多种语言。Joel毕业于耶鲁大学,随后即进入微软公司工作,曾任微软公司E x c e l 开发小组项目经理。现在他在自己创办的Fog Creek软件公司任CEO。此外,他与人合办的Stack Overflow已经成为如今最热门的技术网站。


(本文来自《程序员》杂志2010年1月刊)

高科技人才管理的五个方程式

作者:张亚勤


张亚勤[编者按]张亚勤以高层管理者的视角,用五个方程式构建了一个适合高科技人才学习、工作和成长的系统。对于普通开发者来说,这些公式同样适用,因为每个人自成一个系统,所以五个公式又可以变形为个人意义的:创新思维、善于规划、积极尝试、交流协作、开阔视野等。本文转载自《变革中的思索》(作者:张亚勤,2009年 12月出版),感谢北京博文视点资讯有限公司的支持。


三年前, 在我担任微软亚洲研究院院长期间, 我曾总结出五条定律来描述IT企业管理和文化的理想状态。今天,当我带着新的思考与使命来看时,发现这些定律仍在代表着微软中国研发集团管理与文化的精髓,只是有了更新的内涵。


1. IT=IQ(Talents)+IP(Intellectual Properties)


吸引和培养第一流的人才,给他们架设一个足以充分发挥其才能的空间,并保护其智慧成果。


这条定律在之前的文章中我已谈过。大体上,IT=IQ+IP,这条定律展示了微软中国研发集团在两个层面的努力。一是为员工构建一个充满引力的创新磁场,让他们同才华横溢的同事们一道,在一个充满机遇与激励的环境下分享彼此的灵感和激情。奋发、进取、和谐、舒适的空间,将淋漓尽致地释放出每个人的潜能,使他们感觉到“英雄自有用武之地”。二是创造机会,让他们有机会参与到核心技术和产品的研发中,激扬其智慧。未来,微软中国研发集团将不断输入资金、领袖及人才,输出一项项对微软公司、对中国用户、对全球IT产业影响巨大的创新成果。


2. E=MC2


吸纳一大批有卓越潜质的人才(M),同时缔造一个过程(C2)——一个完全释放人才潜质的过程。在此过程中,先进的管理方式、富于感染力的企业文化将在个人、群体之间产生一系列正面的连锁反应,从而最大程度地激发出微软中国研发集团的动能(E)。


磁场理论可以解释为何天才的周围很少有庸人——优秀的人物总是像强磁场一样时刻吸引着与他们志同道合的英才。经过多年的积累,当前研发集团形成了金字塔型的人才结构。位于金字塔顶端的员工约占20%,他们大多在微软总部或其他跨国公司的研发机构从事过多年的技术和产品创新,能力超凡,经验丰厚,甚至因成就卓越而享誉国际,形成了人才的品牌效应。这不仅是简单的“志向”上的吸引,更是职业生涯的加速器。在其引导下,新员工将很快成长为谙熟大型软件研发流程的“高手”。


对一个快速成长的研发组织,人才间的“惺惺相惜”固然是吸引和培养人才的渠道,但系统的 “360度培养战略”更加重要。在这方面,微软中国研发集团投入了巨大的资源与精力,希望让每个员工在这里都能最大限度地发挥自己的潜能。目前集团内部正在进行的培训项目有100多项,涵盖研究与开发的各个领域,其中我们特地从总部引进了“卓越软件工程”部门(Engineering Excellence Group),通过丰富的培训项目提高我们工程师的实践技能,提升我们工程进展的效率和产品开发的质量。我们正在为每一个职位建立职业发展模型(Career Stage Profile),帮助我们的每一个员工在不同的阶段制定和实施职业发展规划。而名为“Maco Polo”的轮岗计划,则是邀请雷德蒙德总部的资深技术专家来中国工作一段时间,“传道、授业、解惑”。此外,我们还有面向每个员工的 “Mentorship”制度,通过经验丰富的员工来担任“导师”,为我们培养了一批又一批的后起之秀,这对我们未来的成功至关重要。


此外,还要为人才提供潜能爆发的环境、过程及必要的“刺激”。微软中国研发集团内开放、自由、平等的氛围,是一个能让研发人员安心去做“可以记一辈子的大事”的地方。同时,在集团各机构工作也需时刻面对压力和挑战,因为团队之间已形成了你追我赶、不甘人后的进取氛围。


3. ΔV • ΔP≥α


鼓励创新,允许失败。创新而不因循。


“粒子的动量与位置这两个变量的乘积大于某个常数”——海森堡测不准原理是量子力学中最重要的理论之一。微软中国研发集团将“测不准理论”引入到管理和文化中。ΔV和ΔP两个变量分别代表研发集团项目目标的准确度和风险度,所得出的乘积便是机构或团队发展的速度。


在确定发展目标和评估研究课题时,微软中国研发集团旗下不同职能的机构就会根据其自身的业务特点而在发展速度与风险度之间权衡一个最佳点。比如在研究院,我们强调“鼓励创新、允许失败”。选择课题时,我们鼓励员工去开掘那种难度极大、风险莫测,但可能给公司、给用户带来巨大利益的项目,因为投入大、风险大,成功后的影响也大。而对于产品开发部门,则更倾向于风险相对较小的项目。当然,无论是企业确定发展方向,还是研究机构评估技术课题,都应该把握一些基本原则,即确保项目是有用的、一流的、主流的、相关的。


微软中国研发集团希望旗下各机构能够在一种“创新而不因循”的机制之下不断健康发展,创造全新的技术和产品成果,最终孵化出深刻影响公司未来及全球用户体验的产品,向全世界展现中国的创新智慧。


4. 1+1≥3

有关企业的内部交流及合作,我认为,只有在1+1≥3(或者说“多赢”)的前提下,才是有价值和有必要的。


微软中国研发集团是由本土高校培养的中国精英、海外归国华人学者及外籍技术专家构成的“多国军团”,而在创新实践时,研发集团员工又与微软雷德蒙德总部产品部的同事以及分布于其他国家的微软员工沟通协作,造就了研发集团独有的内部合作环境。我们强调“融中外、弃劣扬优”,让不同文化背景下成长起来的微软中国研发集团员工都能够互信无疑、合作无间。


另一方面,微软中国研发集团的诞生,标志着微软在华研发资源的完全整合。随着一个由基础研究、技术和产品孵化、产品开发和战略合作所组成的、前所未有的完整研发创新产业链的形成,今后,集团旗下各职能机构之间的合作必然会越来越多样、越来越广泛、越来越深入。在这种趋势下,“1+1≥3”理所当然地成为了合作的一大必要前提。我们希望微软中国研发集团旗下各机构在将创新灵感转化为技术成果、将技术成果转化为实际产品的整个流程中能够坚持“多赢”(对合作各方、对用户、对产业)的理念,从而使每一次合作都可释放出最大化的能量、创造出多元化的价值。


5. △S>0(封闭系统,自发过程)


我们希望构建一个开放的、共赢的IT产业生态圈(Ecosystem),和全球范围内(特别是中国)的学术界、企业界合作伙伴协力创新,共同分享资源、经验与成果。


1850年,德国物理学家鲁道夫•克劳修斯(Rudolf Clausius)提出“热力学第二定律”的定性表述;15年后,他又首次引入了“熵”的概念。作为19世纪最伟大的科学发现之一,热力学第二定律说明:随着时间无限推移,封闭系统中的状态逐渐倾向于无秩序,熵趋于无限大,有规律而可用的能量趋于无限小,最终归于熵寂死的混沌。


IT企业也是这样。在全球技术共享化的今天,任何可能导致闭塞和封锁的举动都会让企业或机构无法辨识未来的机遇或危机,延缓前进的步伐。“零和”的自私心态只能让一个企业走向没落。因此,微软中国研发集团致力于构建一个开放的IT产业生态圈,令我们的研发人员总能在第一时间了解到其所在领域内的最新创新成果,开拓眼界、增强学术素养,以加速他们的成长。另一方面,微软中国研发集团旗下各机构还将积极与中国、亚太乃至国际范围内的IT产业同仁协力创新,共同分享资源、经验与成果。例如,向有需要的国内外企业提供技术授权;帮助合作伙伴寻找商业机遇,向他们移植微软的创新流程,培训富于研发经验、谙熟流程管理的员工等。


合作共赢是微软中国研发集团的重要发展战略。我们成立了战略合作部,通过技术授权、软件外包、人才培养等方式,把与中国信息产业的合作进一步向纵深推广。此外,在业务重点上,除移动与嵌入式技术、数字娱乐、互联网服务及服务器与工具四大领域之外,我们更把面向中国这一新兴市场的产品开发作为发展方向,希望能够通过与中国信息产业的紧密合作,真正的“在中国创造,为中国创造”。


IT产业的技术更新速度极其迅速,对于微软中国研发集团,秉持共赢思路、追求与所在区域产业的共同繁荣也就意味着更多的生机、更多的可能,无论对管理、经营还是文化来说都是一样的。


在微软中国研发集团独有的管理与文化氛围之中,我们正与每位员工一道,共同为早日实现成为“微软全球技术研究和产品开发的核心研发基地”的目标而携手努力。


作者简介:

张亚勤, 现任微软公司全球资深副总裁、微软( 中国) 研发集团主席、微软( 中国) 有限公司董事长, 负责微软公司在亚太地区的研发、技术战略和业务。

(本文来自《程序员》杂志2010年1月刊)

Tuesday, March 16, 2010

初学者如何开发出高质量J2EE系统

(转自CSDN Java频道)

J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种容易理解的角度对这些概念向初学者进行解释,以便掌握学习 J2EE学习方向。

首先我们需要知道Java和J2EE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种 软件系统的流派,当然目前主要是.NET和Java两大主流体系。

J2EE可以说指Java在数据库信息系统上实现,数据库信息系统从早期的dBase、到Delphi/VB等C/S结构,发展到B /S(Browser浏览器/Server服务器)结构,而J2EE主要是指B/S结构的实现。

J2EE又是一种框架和标准,框架类似API、库的概念,但是要超出它们。如果需要详细了解框架,可先从设计模式开始学习。

J2EE是一个虚的大的概念,J2EE标准主要有三种子技术标准:WEB技术、EJB技术和JMS,谈到J2EE应该说最终要落实到这三个子概念 上。

这三种技术的每个技术在应用时都涉及两个部分:容器部分和应用部分,Web容器也是指Jsp/Servlet容器,你如果要开发一个Web应用,无 论是编译或运行,都必须要有Jsp/Servlet库或API支持(除了JDK/J2SE以外)。

Web技术中除了Jsp/Servlet技术外,还需要JavaBeans或Java Class实现一些功能或者包装携带数据,所以Web技术最初裸体简称为Jsp/Servlet+JavaBeans系统。

谈到JavaBeans技术,就涉及到组件构件技术(component),这是Java的核心基础部分,很多软件设计概念(设计模式)都是通过 JavaBeans实现的。

JavaBeans不属于J2EE概念范畴中,如果一个JavaBeans对象被Web技术(也就是Jsp/Servlet)调用,那么 JavaBeans就运行在J2EE的Web容器中;如果它被EJB调用,它就运行在EJB容器中。

EJB(企业JavaBeans)是普通JavaBeans的一种提升和规范,因为企业信息系统开发中需要一个可伸缩的性能和事务、安全机制,这样 能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。

至此,JavaBeans组件发展到EJB后,并不是说以前的那种JavaBeans形式就消失了,这就自然形成了两种JavaBeans技 术:EJB 和POJO,POJO完全不同于EJB概念,指的是普通JavaBeans,而且这个JavaBeans不依附某种框架,或者干脆可以说:这个 JavaBeans是你为这个应用程序单独开发创建的。

J2EE应用系统开发工具有很多:如JBuilder、Eclipse等,这些IDE首先是Java开发工具,也就是说,它们首要基本功能是可以开 发出JavaBeans或Java class,但是如果要开发出J2EE系统,就要落实到要么是Web技术或EJB技术,那么就有可能要一些专门模块功能(如eclipse需要 lomboz插件),最重要的是,因为J2EE系统区分为容器和应用两个部分,所以,在任何开发工具中开发J2EE都需要指定J2EE容器。

J2EE容器分为WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器等,其中Web容器直接使用 Tomcat实现的。所以你开发的Web应用程序可以在上面两种容器运行,而你开发的Web+EJB应用则只可以在JBoss服务器上运行,商业产品 Websphere/Weblogic等和JBoss属于同一种性质。

J2EE容器也称为J2EE服务器,大部分时它们概念是一致的。

如果你的J2EE应用系统的数据库连接是通过JNDI获得,也就是说是从容器中获得,那么你的J2EE应用系统基本与数据库无关,如果你在你的 J2EE 应用系统耦合了数据库JDBC驱动的配置,那么你的J2EE应用系统就有数据库概念色彩,作为一个成熟需要推广的J2EE应用系统,不推荐和具体数据库耦 合,当然这其中如何保证J2EE应用系统运行性能又是体现你的设计水平了。

衡量J2EE应用系统设计开发水平高低的标准就是:解耦性;你的应用系统各个功能是否能够彻底脱离?是否不相互依赖,也只有这样,才能体现可维护 性、可拓展性的软件设计目标。

为了达到这个目的,诞生各种框架概念,J2EE框架标准将一个系统划分为WEB和EJB主要部分,当然我们有时不是以这个具体技术区分,而是从设计 上抽象为表现层、服务层和持久层,这三个层次从一个高度将J2EE分离开来,实现解耦目的。

因此,我们实际编程中,也要将自己的功能向这三个层次上靠,做到大方向清楚,泾渭分明,但是没有技术上约束限制要做到这点是很不容易的,因此我们还 是必须借助J2EE具体技术来实现,这时,你可以使用EJB规范实现服务层和持久层,Web技术实现表现层;

EJB为什么能将服务层从Jsp/Servlet手中分离出来,因为它对JavaBeans编码有强制的约束,现在有一种对JavaBeans弱约 束,使用Ioc模式实现的(当然EJB 3.0也采取这种方式),在Ioc模式诞生前,一般都是通过工厂模式来对JavaBeans约束,形成一个服务层,这也是是Jive这样开源论坛设计原理 之一。

由此,将服务层从表现层中分离出来目前有两种可选架构选择:管理普通JavaBeans(POJO)框架(如Spring、 JdonFramework)以及管理EJB的EJB框架,因为EJB不只是框架,还是标准,而标准可以扩展发展,所以,这两种区别将来是可能模糊,被纳 入同一个标准了。 但是,个人认为:标准制定是为某个目的服务的,总要牺牲一些换取另外一些,所以,这两种架构会长时间并存。

这两种架构分歧也曾经诞生一个新名词:完全POJO的系统也称为轻量级系统(lightweight),其实这个名词本身就没有一个严格定义,更多 是一个吸引人的招牌,轻量是指容易学习容易使用吗?按照这个定义,其实轻量Spring等系统并不容易学习;而且EJB 3.0(依然叫EJB)以后的系统是否可称为轻量级了呢?

前面谈了服务层框架,使用服务层框架可以将JavaBeans从 Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关,一 般是通过标签库(taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。

这样,表现层和服务层的分离是通过两种框架达到目的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来是其目的,持久层框 架有两种方向:直接自己编写JDBC等SQL语句(如iBatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。

持久层框架目前呈现百花齐放,各有优缺点的现状,所以正如表现层框架一样,目前没有一个框架被指定为标准框架,当然,表现层框架现在又出来了一个 JSF,它代表的页面组件概念是一个新的发展方向,但是复杂的实现让人有些忘而却步。

在所有这些J2EE技术中,虽然SUN公司发挥了很大的作用,不过总体来说:网络上有这样一个评价:SUN的理论天下无敌;SUN的产品用起来撞 墙;对于初学者,特别是那些试图通过或已经通过SUN认证的初学者,赶快摆脱SUN的阴影,立即开溜,使用开源领域的产品来实现自己的应用系统。

最后,你的J2EE应用系统如果采取上面提到的表现层、服务层和持久层的框架实现,基本你也可以在无需深刻掌握设计模式的情况下开发出一个高质量的 应用系统了。

还要注意的是: 开发出一个高质量的J2EE系统还需要正确的业务需求理解,那么域建模提供了一种比较切实可行的正确理解业务需求的方法,相关详细知识可从UML角度结合 理解。

当然,如果你想设计自己的行业框架,那么第一步从设计模式开始吧,因为设计模式提供你一个实现JavaBeans或类之间解耦参考实现方法,当你学 会了系统基本单元JavaBean或类之间解耦时,那么系统模块之间的解耦你就可能掌握,进而你就可以实现行业框架的提炼了,这又是另外一个发展方向了。

以上理念可以总结为一句话:
J2EE开发三件宝: Domain Model(域建模)、patterns(模式)和framework(框架)。

推荐一套高质量的J2EE开源系统: JPestore

Thursday, March 11, 2010

2010年3月4日史蒂夫·鲍尔默在华盛顿大学演讲全文

史蒂夫·鲍尔默在华盛顿大学的演讲 (转自http://www.programmer.com.cn/)

华盛顿大学

史蒂夫·鲍尔默

华盛顿大学计算机科学与工程Paul G. Allen中心

2010年3月4日

主持人:欢迎华盛顿大学校长Mark Emmert先生讲话

MARK EMMERT:早上好!

首先,欢迎各位莅临计算机科学与工程学院。我们曾预计今天将会座无虚席,现在就连悬厅也坐满了。欢迎大家的到来。众所周知,我们与微软之间有着非常悠久的关系。从史蒂夫和比尔刚进入校园,开始痴迷于计算机,一直到现在,可以说华盛顿大学与微软之间已建立并将继续保持前所未有的重要关系,对此我们深感自豪。每年,我们向微软公司输送约100位毕业生。学校还有大批微软实习生。我们还在研究、扩展和教育领域与微软互换师资,这对我们非常重要。因此,华盛顿大学的师生们热烈欢迎史蒂夫在这里发表演讲,让大家有机会聆听他的真知灼见。

显然,我不需要花时间来介绍史蒂夫了,他的名字如雷贯耳。他的履历几乎无可挑剔——除了“不是华盛顿大学的学子”这一点。他的成就已经超越了他所获得的哈佛学位,作为一名卓越的企业领导,他非常成功。在微软诞生的过程中——我猜您就像一个助产士、一个24小时废寝忘食工作的员工,对吗,史蒂夫?

史蒂夫参与了微软所有的重大事件,并且一开始就作为整个企业的领导层,一手打造了这个对全球产生变革性影响的企业,改变了我们的工作方式和生活方式。

因此,我非常荣幸能把史蒂夫·鲍尔默——这位华盛顿大学伟大的朋友、出色的企业领导、西北地区的卓越公民——介绍给大家。(鼓掌)

史蒂夫·鲍尔默:谢谢Mark。我必须承认,我从未遇到过悬厅都座无虚席的情况。所以,我今天要争取好好表现。楼上的朋友,大家好!还有外面的朋友,也向你们问好!

我非常荣幸有机会在贵校发表演讲。曾经有过一些具有讽刺意味的经历——当我在世界各地出差时,微软同事总说:我们希望你在这个大学、那个大学,奥斯陆大学、布达佩斯大学发表演讲。具有讽刺意味的是,我从未在华盛顿大学演讲过。所以,今天我来了,并有机会和你们分享我的一些理念、回答大家感兴趣的问题。对我来说,真的很荣幸。

正如Mark刚才所言,对于微软来说,华盛顿大学是最重要的研究机构、人才摇篮以及合作伙伴和朋友,从来都是如此。我们总能在这里找到最好、最聪明的人才,他们能够切实推动并塑造未来技术,这就是今天我想讲的重点。

你知道,从某种意义上来说,技术行业不断向前发展、发展、再发展,这是让人惊喜的!对于其它行业或其它技术的宏伟历史我没有太多研究,但是它们似乎在某个时期都会出现枯竭的迹象。而我认为,技术行业就像天赐礼物一样,永不停息地给予。大家知道,第一台计算机诞生于1949年,60年后,我们坐在这里,依然有很多方面等待我们去推进。

华盛顿大学的Ed Lazowska 以前曾经强调:1969年的确是一个重要的年份,诞生了伍德斯托克音乐节、人类首次登上月球,但是相对而言,这些都不算大,因为在1969年,人们首次接触到互联网,这个礼物就像天赐的一样,总是不停的给予。

今天,我想谈谈云技术。云技术是互联网赐予的一个礼物。它是计算机领域的下一步、下一阶段、下一个过渡。你会说:云技术始于5年前、10年前——这取决于你是谁,你如何思考。如果你愿意,甚至可以追溯到1969年,你可以说云技术诞生于40年前,因为微处理器和互联网就是天赐的礼物,不断给予我们机会,让我们有所作为。

你回想一下最近的历史:90年代初,诞生了浏览器。Windows 95在当时非常前卫,因为它带有内置式浏览器。我不会对浏览器的历史花费太多口舌。大家知道,免费电子邮箱诞生时,我们在90年代末推出了 hotmail,然后是搜索。然而,云技术是另一大进步,大家都在热烈讨论和思考,它能使在座的各位进行重要研究、开发重要产品、不断向前进,并且做各种美妙的事情。

大约在五年前,微软首席软件架构师Ray Ozzie撰写了一份备忘录,主要阐述云技术及其重要性,我们立即被触动了,不断敦促公司关注云技术!云技术!云技术!云技术!现在,已是五年之后,云技术依然具有许多没有实现的潜力。那么,究竟什么是云技术呢?这是个大问题。

现在,我站在那些有机会使用、推动、塑造、涉足云技术的人的角度来简单介绍一下云技术。我将阐述我的观点,但是我想你们都愿意了解一下大街上普通路人、华盛顿大学的学生对云技术有何认识。

我不知道未来我们是否一直会谈论云技术,这个词语已经出现3年、5年、甚至10年了,据说这是一个不断给予的礼物。今天我们所要做的就是了解云技术的规模,我可以告诉你们,我们正在将公司的未来投注在云技术上,我还相信,业内许多公司也将各自公司的未来投注在云技术上了,价值3.3万亿美元的全球产业都对难以置信的云技术变革下了投注。

在某种意义上,人们认为这就是云技术的一切了。但是,感谢上帝,我们还有Coach Sarkisian,他非常精通云技术最重要的部分。因此,我想要和大家分享云技术的五个主要维度、五个主要机遇、五项需要各位最佳理念、最佳构思、最佳发明、商业发明、学术发明、产品发明的关键事宜,这些将切实推动云技术的发展。我还将介绍微软在该领域的一些背景资料。

第一个原则,云技术创造了机会和责任。现在,它听上去就像某些陈词滥调的商业术语。其实它是各种广泛的创新行为,我想我们已经看到,并将持续看到新的软件投资,这些投资创造新商业模式、新机会来启动并成就业务。由于出现了前所未有的商用软件基础设施,它还为用户创造了保护自己的机会和责任——保护自己的隐私、保护自己的机密信息。尽管这都属于社会问题,但是它们也是技术问题、发明问题和创新问题。

由于我们将云技术看作了一个契机,我认为人们可以利用它来做很多事。创意人开发一块内容、一个软件,立即让它出现在全球任何一个角落,这不是很其妙的事吗?但是,我们看到越来越多的公司宣传自己的基础设施可以支持这些小创意。我们看到App Store这样的发明,苹果公司做了一件非常好的事,让人们能够从自己的知识产权中获得商业利益。

我们看到越来越多的工作在有条不紊地进行着。在云时代到来之前,多年以来,我花很多时间思索出色的理念,人们说我们编写的应用程序非常伟大,我们在故乡Dubuque有了两个客户。但是现在的微软今非昔比,在Des Moine、西雅图、纽约,我们的客户遍及各地。请你想象一个商用基础设施,它能支持全新的创意者、具有各种知识产权的创意者。

开源已成为一个有趣的现象。人们说,我愿意花我自己的时间免费参与软件的开发工作。有了这些即将到来的新商用基础设施,我相信许多积极参与的发明者现在就会发问:我如何赚钱?我如何从我的奇妙创新中获得经济利益?

人们依然需要大批新发明。世界还不算完美,尤其是在商用基础设施领域。是的,你可以创建一个网页并且发布广告。有些事,你是可以做的。但是,我们还没能开发出使创意者变得更强大的技术。这就是我对云技术充满激情的一个方面——我对它将发挥的作用感到兴奋。

人们立刻紧张起来,尤其是谈到广告。让人感到不安的是——我的隐私怎么办?这就是为什么我们必须讨论机会和责任。对于创意者、企业员工来说,他们的责任就是尊重消费者、建立真正让用户能够掌控的技术。在微软内部,我们曾经发生激烈的争论,是为了新推出的 Internet Explorer 8中带有一个名为隐私搜索的新功能。

如果你真的能够关闭,那么业内商务部门的员工就会说:这可不是个好主意,因为商业活动受限制。因此,我认为我们所有人都肩负着一个责任,那就是:不仅从社会角度尊重用户,还要开发能够保护其匿名、隐私、安全性的技术,这些安全隐私包括:我说了什么,我跟谁说话了,我去哪里,哪些东西对我很重要。

发明水平是很高的。我敢打赌,如果我做一个调查,我们就能了解全球部分Facebook用户。Facebook在许多方面都干得很漂亮。大家都看到了一些挑战,比如:如何让一个人从技术角度来描述智能用户界面?如何描述你是谁?你想保护哪些内容?你想让这些内容免受哪些侵害?无论是华盛顿大学、微软公司、还是其它地方,都有大批高智商人才想要搞清这些问题。

在微软,我们试图以一种有趣的目光来看待这一问题。我们认为,作为一家大公司,我们必须在保护隐私方面发挥领导作用。我们必须尽最大努力、做出色的工作,确保在所有提供商用基础设施的公司之间形成充满活力而健康的竞争氛围。我们了解分类帐目两边的情况,因为对于创意者来说,能有机会真正建立一个强大的企业是非常重要的,无论是支付基础设施、商店、目录、结算,还是广告,市场上有许多强大的创新商业公司。因此,这就是云的维度,我认为,打造云的维度需要我们所有人的共同努力。

第二,云的规模。云技术不仅能学习还能帮助你学习、做出决策。如果你问大多数人:什么叫互联网,而不是问他们:什么是云技术。如果你问大多数人什么是互联网,他们将告诉你,互联网就是虚拟汇集公司和个人的地方。它和虚拟世界有关系。

这个世界大而复杂。因此,在帮助用户浏览方面,首先要开发的就是目录服务、搜索服务。人们开发工具帮助用户浏览并寻找信息,并将这些信息收集起来。但是,我们必须进一步有所作为。云技术、互联网也需要了解用户的秉性,需要不断学习理解这个虚拟世界中的一切。

我们很高兴地看到,全球共有8300万网站,但是你真想找到具体信息,我不得不说:这很难!作为美国医疗保健体制的辩论一方,我认为我应该确切了解社会将资金花在哪里了。试一试你就知道网络规模有多大了!选择一个你喜欢的搜索引擎,然后开始搜索。你将搜到大把链接,找到大量数据,你可能想要剪切、复制、粘贴这些数据,但是你想要的只是简单的、填充好的小图表。我们在医疗上花了多少钱?老年人、青年人、贫困人口、富裕人口分、临终人口分别用了多少钱?

只需要简简单单的八个数据,但是碰巧这八个数据你都无法在后面的公共辩论中了解到。但是,我认为作为公民,我们应该知晓这八个数据。但是,云技术就能从所有这些数据中了解到有用信息,云技术要是想从我这里了解我对什么感兴趣,可不是几年就能完成的任务。

机器学习是一门科学,在华盛顿大学,这是一门非常巨大的科学。但是,它也是一门没有太多实践的科学。我敢说,回顾这个行业,至少有10年历史。但是今天,它可能是计算机科学最热门的领域之一,因为我们都在尝试看到信息并从信息中搜集意义。我们想看一看人类表达,并且从中了解人的意图。这方面的努力将继续推进。

与此相关的工具确实能帮助人们得到他们想要的信息并做出决策。当我在搜索引擎中输入“花”时,我对10个关于花的链接并不感兴趣,我只是想以最合适的价格买一些花。你可以看人们做的许多事物,我们如何提供工具和技术呢?这不仅仅是搜索引擎的问题。我非常喜欢我们一款名为OneNote的产品,作为搜索工具,它能让用户从各种资源中收集信息。但是如何才能适用?如何才能发挥作用呢?答案是Excel,我碰巧是个具有数字思维的人,我开发了一个关于医疗保健的小电子表格。我想让Excel去云中获取信息。这种理念就是:了解、了解我、了解世界、做出结论,并帮助我做出决策采取行动——我认为这是一个大理念。

不仅仅是几家大公司在自己实验室中关注的领域,像我们这样的公司,以及我们的竞争对手和合作伙伴,我们都发挥着特殊的作用,我们必须将该领域开放,因为不计其数的人在其各自领域都具有创新理念。

Hank Levy、Ed和我谈到了科学。有许多人更了解语义,并且能够描述、并帮助梳理网络,以获得科学数据。群体的力量要大于微软、谷歌、或任何大公司单独的力量。但是,如何让人们参与进来,并利用云技术提供新的学习、新的背景资料、新的数据?这是一个巨大的机遇,我们充满激情地期待着!

我想让各位直观地了解一下云技术是如何学习的。云自身需要学习。它必须收集新数据、感应新数据、表现真实世界,并不断变得越来越智能、越来越好,这样它才能帮助我来学习。

接下来我们将邀请Blaise Agueray Arcas上台,他将为你们简要展示云技术是如何学习并帮助用户学习的。

史蒂夫·鲍尔默:这个演示有多重意义。首先,它能让你了解它能够做些什么。第二,它有助于了解世界,如何互相学习,如何汇聚网上的数据来了解世界,让其在真实的生活中有意义。

第三,云强化人的社交与专业互动。说到这,你可能会想到电子邮件、社会网络等等。这都没错,不同的是人们互相之间联系的程度。

我们都会上学、工作,都有个人生活。这些活动都可以社会化。

人们总是在工作时才说到专业。我的妻子平时在家工作并参与一些和寄养有关的工作,但你会发现她其实可以在家以外工作,她管理日程、工作或者与其他人合作的方式都融合在一起。云创新让我们的生活更加紧凑,让我们以希望的方式生活,以希望的方式与人交流。

我们希望能够把这些事情放到一起,希望能够在做一些事情时做其他事情,例如工作、游戏、看球赛、与朋友交流,或者仅仅是出去散步、寻找朋友等。创新的数量是惊人的。今天,我们谈到了社交网络。但实际上,这才只是开始。Facebook,Xbox Live、Twitter,很多很多的创新不断涌现。

接下来谈谈我们互相联系的方式。我认为我应当来华盛顿大学做演讲。有讽刺意味的是,尽管我来这里谈论的是虚拟互动、社会化,但我并不认为我不需要亲自来到Allen中心这里和你们交流。当通过云进行的虚拟互动像现场一样成功时,我们就成功了。这需要整合各种软硬件创新。一些人认为这只是带宽的问题。而我可以向你证明,带宽永远不会够用。

因此,需要有足够好的软件来处理这个房间的实时虚拟场景。虚拟会议并不容易,但这是考虑社会和专业互动的良好开始。

企业的合作方式已经发生变化,而且还会继续改变。我们有一个云客户叫Aviva,是全球第五大保险公司。Aviva是一个新名字,在一次兼并交易后,他们在24个小时内转换到了新名称。第一天,他们认为需要告诉员工我们有了新名字。这并不容易,他们的配偶或重要人士可能根本不知道他们在哪里工作。

由于并不是所有人都上班,这项工作就变得很困难。你不能指望着所有人都在公司内,他们可能在客户处等各个地方,如何把所有人聚集起来是个很大的问题。这时就可以看到创新的重要性了。以虚拟的方式做同样的事情,又要保持相同的安全性和隐私保护水平是非常具有挑战性的。

这就是微软的主要工作。想想伴随我们成长的Office办公软件,电子邮件、Word、PowerPoint、表达、互动与合作。把Office搬到云中,使其在云中运行,帮助人们联系和沟通以及表达自己。这是我们将于6月份推出的下一代Office产品的核心目标。

我们已经取得了一些成功。我们的某些Office产品已经进入云中,90%的客户,至少是机构客户将继续选择我们。很多针对个人用户的工作仍在进行中。我们正在通过Hotmail和Windows Live推动这些工作。这是非常重要的工作领域。

第四方面,云需要更智能的设备。这不是说我们不需要继续在浏览器和标准上做很多工作。对于云来说,用来访问它的设备确实很重要,不管是PC、手机还是电视。就像前面所展示的,你所使用的设备很重要。

我们用来了解你的方式就是传感器、摄像头、语音、手势等等。今年,我们会通过TellMe服务收集到云中并处理大约100亿个语音,包括来自呼叫中心的语音,必应的手机语音搜索等。因此就需要设备能够连接用户,提供更丰富的界面,从传感器传回数据,并藉此改进云计算。

去年末,我们发布了Project Natal。它是一种适用于Xbox的摄像头,可以识别用户、声音和手势。硬件很重要,绝对很重要。好的智能设备硬件可以同时融入目前最好的应用,例如丰富的客户端应用、浏览器内容、下一代自然用户界面、语音、触控等等。

看看目前的创新发展速度。PC已经不像五年前的PC,这与云有很大关系。手机也不像五年前的手机,未来五年肯定也会不一样。它们都是智能设备,而且会越来越智能。当然,这不是说它们一定就很复杂,也不意味着它们一定很贵。我们创新者的工作就是让人们享受到云的智能,同时还有简洁性和低价格。就像这款 PC,它大约1.5磅重,非常轻巧,有着大屏幕以及Amazon的Kindle阅读器等。你可以得到一切你想要的。这是一款非常棒的设备。或许目前对很多人来说有点贵,但还在承受范围之内。类似的产品未来会陆续上市。

电视也一样。人们会把这些设备放到电视机旁边,让每一台电视都具备智能,而不仅仅是播放视频游戏。Simon刚刚展示了它的功能,它有着用户真正期待的界面和智能。

从微软的Windows说起。它是世界上最流行的智能设备,我们的目标是把未来的Windows设计成云需要的智能设备。如何让全球数十亿智能设备用户使用它?如何让它在云世界中体现越来越高的价值?

如何把这些技术用于新的设备?我们目前正在围绕手机开展工作。我们有新版的智能设备Windows Phone 7系列,真正为云所设计。之前的Windows手机主要针对语音而设计。当Windows Phone 7系列手机上市时,你会看到一些非常有趣、并且真正把这些技术融合在一起的东西。

我不会再更详细地讲这些东西。我们要做的就是按照Blaise和Simon谈到的方式为用户整合人、地点、内容、商务等所有东西,这与其他公司不同。我们很早就在关注这个问题。

对我们来说的一个大问题是,按照云的要求开发更智能的设备,手机、PC、电视以及其它下一代设备。

第五个方面,云推动服务器的进步,反之亦然。最初的云概念只是一组服务器。是的,人们购买服务器。1969年的第一个互联网站点,就是每一边都有一台服务器。然后是PC服务器等越来越多的服务器。截至目前,全球已经售出了大概200万台用于云计算的服务器。

目前服务器硬件和软件的使用方式在云时代需要改变。规模化推动了云计算的发展——服务器数量、存储的数据量等。地球上的照片、图像和视频都在按照 Blaise展示的方式变得数字化,而实际上只有其中的小部分数据可以在网上访问。

负载情况也在不断变化,可能忽然上升,也可能忽然下降。还有地理规模问题,我们确实在天空电视台上碰到了这个问题。感谢上帝,他们没有在西雅图向我们销售这项服务。地理规模问题确实存在。硬件和人力成本也存在规模问题。这是互联网的世界,这是云的世界。一切都在快速变化。你需要服务器硬件和软件来快速地部署新功能,新数据以及新产品。

因此,云正在改变我们看待服务器硬件和软件的方式。我们在门口展示了一款云产品,下一代服务器。它相当于大约10,000台服务器。完全完全的下一代概念产品。过去,我们需要灭火管给它们降温。而下一代技术用橡胶软管就足够了。它是硬件技术,也是软件技术。

最初的软件概念是把一切都虚拟化。如果只是希望给予软件和IT人员更多一点的敏捷度,虚拟化已经足够好了。但是,如何采取下一步,帮助人们设计可以立即用于云中的应用软件?这正是我们所需要做的。

目标不是丢弃所有软件,重新开始。因此,需要能够迁移软件并利用以前的技能。但是,当编写软件时,你需要知道它会在什么硬件上运行,实际应用场景是什么样的。它应当可以立即部署。机器出现故障不是你或其它人的问题。不应当需要有人时时刻刻照看所有这些机器。

根据这个原则,你需要设计不同的开发工具、硬件、管理工具。这个领域需要大量的创新。在华盛顿大学,我们有一个称为Azure Ocean的项目,收集全球的海洋地理数据并放到Azure云中。这意味着超大规模的数据,而且全球各地的传感器还会不断提供更多数据。最近的智利地震就会产生更多的数据。

还有负载高峰,不断增加的数据。如何应对?在哪里处理这些数据?这是非常非常重要的事情。

云推动服务器技术的进步,而后者反过来又推动云本身的进步。如何让云不仅仅是在微软和其他四家公司得到应用,而让更多的用户和机构所使用?如何构建你自己的(客户)内部云?你应当能够运营自己的云,可能没有10,000台服务器那么多,但你可能需要购买制冷设备,线缆、电力、网络连接,还有可以使用的云。

你可能说,为什么不把所有这一切放到公共云中呢?这可能是因为要与其它系统集成等等各种原因。但我们现在确实看到政府机构和企业正在购买云,并部署在自己的设施中,或在自己的国家或省市运营。毫无疑问,云已经改变了服务器。通过私有云或(客户)内部云,这些创新也在改变着云本身。

这就是我今天希望谈及的五个方面。下面,我想说一下微软的情况。简单地说,云推动微软的发展,而微软也在推动云的发展。从这里到我们的总部只有10 英里。我们目前在全球有大约40,000名员工从事软件开发工作。具体来说,其中大约70%专门从事云相关的工作,或者从事我刚提及的五个方面的工作。

购买新的设备并放到数据中心就是云计算么?我甚至无法区分私有云和下一代服务器与企业计算。但,我们大约70%的员工都在从事云相关工作。一年后,这个数字可能达到90%。

我们将继续服务于目前的客户。但是,我们目前的工作和想法都是基于云。

对于云服务来说,Windows 7还有很多工作要做。我们目前工作的灵感来源于云。Windows推动着云所需的智能设备的发展,例如Windows手机、Xbox等。当然,必应也是源自云的服务。基于Windows Server和SQL Server的Windows Azure和SQL Azure也是把云作为设计的起点。

Microsoft Office和Exchange以及SharePoint是专业人士所使用的后台工具,目前也已经把焦点放到云上。这对我们公司来说也是一个大赌注。这非常有趣。在这个行业发生如此大的变革通常需要5年、10年等时间,肯定不是每一年,当然也不需要40年。互联网已经问世40年了,期间出现了3、4、5或者6次大的机会。

很多公司抓住这些机会并取得了一些成功。它们是否能够转向,真正地关注并抓住这些新机会呢?而这正是我们目前工作的重心。如果不想改变,就不要进入我们这个行业,这从个人和公司层面来说都是如此。目前的技术潮流早就不是我30年前刚加入公司时的技术。

就像在座各位一样,你们所学的学科也大不一样了。很多年前也有今天的系统工程专业,但其内容却在不断发展前进。对我们所有人和企业来讲,这是一个很好的机会。

你们中的很多人可能会说“这与我的关系不大”,我还在上学或者刚刚毕业或者有很多好的想法。我想说的是,你们正在进入一个全球最奇妙的行业,有机会做出伟大的学术研究和产品,抓住难得的商业机会。我们欢迎你们加盟微软。

我的电子邮箱地址是SteveB@Microsoft.com,如果感兴趣可以把简历发给我。现在正是加入这个行业的大好时机,云是处理器和互联网之间的基础。对于这个行业的所有人来说,目前值得大赌一把,是推动下一代技术进步的良机。

我说的时间有点过长了。谢谢你们这么有耐心。现在可以回答你们的问题了。这是我第一次在Allen中心演讲,感到非常荣幸。

再一次感谢你们百忙之中参加此次活动。如果有兴趣加盟微软,别忘了给我发电子邮件:steveb@microsoft.com。谢谢!