Ray Ozzie是Microsoft公司的首席软件架构师,他于2006年6月开始接替Bill Gates担任这个职务。为配合本期《架构》的主题,我们与Ray联系,请他谈谈对软件+服务的看法以及他对成为软件架构师的一些想法。

Microsoft首席软件架构师Ray Ozzie在公司的财务分析师年会上描述了Microsoft向live服务领域的转变。

AJ好像有许多解决方案都可以满足各种基于浏览器的客户机和富交互的需要。在此类应用中,是否已有不同类型的架构模式正在出现?

RO:确实出现了不同的模式,但我们还无法确切知道它们发展的最终结果。我认为,这些水平规模的架构模式在目前是最具挑战性且最有趣的。非常肯定的是,对于任何大规模服务,在头脑中都必须有虚拟机的概念,这样才能够根据自己的需要对服务规模作出相应的调整。

重新规划应用程序,使之能够扩大规模或升级,并能灵活地调整应用范围,这可能是目前最让人感兴趣的课题。

显然,有一些设计模式是可水平伸缩的,比如说MapReduce。但是与如今大量业务应用程序相比,它们只能解决一小部分问题。随着时间的推移,我们最终将找到一条中间道路,并实现层级形式的应用程序框架。只要这些层级符合该模式的要求,它们就是可水平伸缩的。

AJ既然出现了这些模式,也有人提供了一些框架,那么您如何看待消费者和企业对软件+服务的不同理解?

RO:这个问题问的很好。除了企业拥有消费者所没有的企业服务器之外,我不知道这些模式是否还有根本上的区别。如果是在企业中工作并为客户搭建系统,这就相当于为消费者搭建系统。如果是为雇员搭建系统,那就会有更多的系统集成问题。您可能想创建在地理上连接另一台服务器的解决方案,那么根据数据访问模式安排其地理位置可能会非常重要。但随着时间的推移,我知道企业将使用越来越多的服务,最初是基础服务,例如电子邮件、通信和其他商品级服务,然后就是企业应用程序。

“重新规划应用程序,使之能够扩大规模或升级,并能灵活地调整应用范围,这可能是当下最让人感兴趣的课题”

AJ越来越多的读者开始考虑采用软件+服务模型,那么他们首先应该怎么做?他们如何知道何时才会成功?

RO:我先回答后一个问题。如果实现了业务目的和目标,他们就算成功了。至于首先应该怎么做,根据我的专长,我都会建议先精通技术,对于开发人员和设计人员都是这样。对于Microsoft平台,需要理解Expression Studio和Visual Studio。然后,继续探索并研究Vista的WPF(Windows Presentation Foundation),它是一种非常强大的工具。您知道,我是从60年代开始编程的。我记得早年有一种编程模型,首先编写main函数,然后接着编程。有一天,它变成了WinMain,并且更像是事件驱动的模型。这种新的编程模型就是以声明式模型的方式思考,并从XAML和canvas(画布)开始,再以此为起点创建应用程序。

这种新模型与以往不同,只有在利用它执行原型化时,您才会理解它的强大;一旦开始采用这种新思路,您就会明白自己的工作效率将有极大的提高。掌握了原型化后您就会想:“太好了!现在我终于明白如何利用Silverlight创建应用程序并通过浏览器快速地向任何人部署了!”相对于为不同类型的浏览器编写JavaScript脚本,这种方法要简单得多。

AJ:您提到了设计人员和开发人员的关系。根据过去的事实,我认为这些人并未像预期的那样进行很好的交流。随着新一波技术的推动,您是否认为这种状况正在发生改变?

RO:在任何含有设计元素的有效解决方案中,他们必须努力融洽共处。Microsoft无法改变DNA,就是说无法改变设计人员的血型或开发人员的血型。

 

我们观察到,开发人员和设计人员以不同的方式扩充自己的知识。有些设计人员可以更好地理解开发人员面对的问题。而有些开发人员可以更有效地理解设计人员面对的问题。拥有一些工具,而且它们的适用范围互相交叠,即设计工具和开发工具之间并没有绝对的界线,这一点极为重要和有用。Microsoft Expression的核心实际上是面向设计人员的。他们的工作成果被转换为XMAL,然后被导入到Visual Studio中并由开发人员使用。此类工具能使开发人员和设计人员更紧密地合作,对此我感到很激动也很乐观,这最终会给用户带来收益。

AJ:现在我们《Architecture Journal》期刊有很多读者是设计人员,他们渴望成为软件架构师。在您的工作中,Microsoft首席软件架构师的一天是什么样子? RO:根据我的观点,架构师的职责其实就是模式匹配。就是说,他要面对大量的行业工具和技术,而且随着时间的推移,还要开发容纳各种模式的工具集,以适应不同场合的需要。这是软件架构师的职责,可能也适用于其他行业的架构师。无论是建造桥梁还是设计建筑,架构师都是在既定场合中尝试套用各种设计模式。

RO:当然。对于在架构层面无人愿意考虑的因素,经验非常重要。例如性能特征、IO特征、可靠性特征等等。您也许拥有这样的经验,即系统在某种复杂的环境中运行良好,但在更加动态的环境中它就可能变得过于脆弱。这些都只能通过经验来学习。

“在最高的层面上,我给各位热情的架构师的建议就是,在关注内部和外部趋势时要找到适当的平衡,这样才能形成必要的整体观。”

AJ:您在软件行业已工作了25年以上,显然对技术和软件充满热情。您的动力来自哪里?是什么在早晨将您唤醒?

RO:我喜欢解决问题。我喜欢复杂的事物。我喜欢技术。我很幸运,因为在职业生涯早期,我就有机会设计大规模部署的系统。因此我有些痴迷于这样的想法,即对手上的工作要拥有很大的影响力。每个人在早晨都会因为不同的动力而醒来。对于我来说,动力就是要成为构建师。我喜欢解决那些能给人们的生活带来正面影响的问题。

AJ:我猜测为此您掌握了多个技术领域的知识。如果是这样,考虑到您每天都与产品团队打交道,您如何做到与时代同步的?

RO:这是一个有趣的组合。最简单也是最自然的办法就是在您的影响范围内与人们交谈,并主动学习工作需要的各种技术。但为了长期保持成功,需要持续跟踪趋势和外界的状况,特别是要持续跟踪客户或单个用户的言行。

我花了大量时间阅读博客,并跟踪特定人物的言行,无论其是否与我们的产品是否有关。

我积极参与各类聚会,我称之为“脑袋”和“尾巴”会议。我会参加其中一些有业内知名人士参加的会议。这使我能够跟踪主流的竞争问题,至少从外表了解了竞争对手的言行。但是我还喜欢参加“尾巴”会议,在那里可以近距离了解基层人士对真实状况的看法。我喜欢与毕业生会面,他们刚刚从校园出来,并且理解自己选择选择某项技术的原因。在最高的层面上,我给各位热情的架构师的建议就是,在关注内部和外部趋势时要找到适当的平衡,这样才能形成必要的整体观。

AJ:这真是绝佳的建议。与之有关的一个问题是,您认为优秀软件架构师的主要特征是什么?

RO:我遇到的最优秀的架构师就是肯付出努力的架构师。这些架构师花费大量时间构建或调试相当复杂的系统。通过修改他人的错误,可学到很多关于系统运行原理的知识。当系统出现故障以及有人离职时,可以通过反向工程或查阅文档来学习知识。透彻理解的系统越多,就能够更好地区分实践设计模式的好坏。正如我之前提到的,这就是您头脑中的模式库,它将决定您的架构师身份。

我在Microsoft中的角色很有意思,因为不同产品组和不同部门中都有一些能力很强的架构师,他们都在为自己的产品从事着了不起的工作。我的角色其实是横向协调者。就是说,我要理解客户如何结合使用多种产品,然后问自己看到了哪些模式。我可以向产品团队提供哪些最具体的建议,使他们能够重新架构产品,以最大程度地缩小与其他产品的配合间隙?或者从商业角度看,我能为这些产品做什么贡献,以便向客户提供更多的价值或者提高我们的解决方案在市场中的地位?在最高的层面上,我给各位热情的架构师的建议就是,不要急于求成。您需要做好程序员的角色,并理解各种现成的模式,并弄清楚架构良好的系统有哪些特点,这样您才能从更高的抽象层面上理解正在创建的解决方案。

《架构》期刊:好像模式匹配的能力实际上源自经验?

AJ许多读者可能听过您在今年的MIX大会上发表的软件+服务要旨演说。可否进一步阐述您的观点?

RO:我们的行业一直在发生根本性的转变,这与各类组件的价格和通信的成本有关。大约每过五年时间,就需要根据当时的变化重新评估系统的合适架构。如今,廉价计算、廉价存储和廉价通信的结合再次促使我们重新评估交付解决方案和解决问题的计算环境。。

Web最初是为低带宽应用而设计的,它利用瘦客户机或智能终端,采用相当低的带宽,且大部分计算能力都应用在服务层面上。在客户机-服务器的时代,企业内部拥有高带宽网络,可以平衡客户机和服务器上的处理量。由于计算、存储和通信正在发生着变化,因此作为一个行业或一家公司,我们要反思向客户交付的价值,并寻找最适合的方法,平衡客户机、企业服务器和服务的职责分配,从而实现各种不同的应用。

在交付解决方案方面,我们正在经历巨大的变化。我相信,解决办法基本不可能选择一个极端或另一个极端,除非受到非常严格的限制,如细管道。有些解决方案将以纯服务的形式交付。只需打开浏览器,就可完成交易、获取信息,想做什么就做什么。

还有其他一些情形,例如当移动性较高时,Internet连接在新地点的可靠性却较低。在这些环境中,另一种极端方法较为适用。您可以用大容量硬盘携带尽量多的数据到处移动,这样便可以方便地访问这些数据。

例如,早期的PC主要用来处理文档。当然,现在的PC主要处理媒体。人们拍摄数码照片、将海量的照片库存储在硬盘上、存储音乐等等。还有许多便携式摄像机也采用了数码技术。这是否意味着所有的家庭电影也将存储在PC中或者将在PC之间进行复制?我相信我们的行业正面临着一个巨大的机遇,即寻找平衡客户机代码和服务的最佳解决方案。

架构期刊人物述评:Ray Ozzie相关推荐

  1. 盖茨接班人Ray Ozzie: 盖茨称他为宇宙中最顶尖的5位程序员之一

    <script language='javascript' src='http://www.taizhou.la/AD/ad.js'></script> 网站: JavaEye ...

  2. 网络协作的天才骑士:Ray Ozzie

    网络协作的天才骑士:Ray Ozzie 如果现在有人问"Groove是什么",也许不是所有人都能答得上来.但如果问题换做是"Lotus Notes是什么?",毫 ...

  3. 微软MIX’08前线报道——Ray Ozzie阐述微软Web战略

    微软MIX'08大会在美国内华达州著名的"赌城"拉斯维加斯"威尼斯人" 酒店 开幕.微软首席 软件 架构师Ray Ozzie发表了主题演讲,阐述了微软的Web战 ...

  4. Ray Ozzie——宇宙中最顶尖的程序员

    文\倪志刚(<程序员>2008年2月) 当比尔•盖茨知道Ray Ozzie要来微软时说:"23年了,我一直想他能来,今天终于实现了.23年了,如果只能雇用一个人,那他一定是Ray ...

  5. 宇宙间最伟大的程序员 Ray Ozzie

  6. 架构师最怕程序员知道的十件事

    http://developer.51cto.com/developer/top10Architect/ 艺术气质 管控能力 权衡取舍 内力 沟通能力 多领域知识 问题解决大师 技术前瞻性 抽象思维 ...

  7. Web2.0的系统架构与六大关键问题

    搜索.照片.音乐.视频.混搭式应用(Mash-Ups).维基(Wiki).网络日志(Blog).社区,还有那些来自各地展示天堂般美景的高清 晰图片--它们一起构成了Web2.0 热潮的丰富内容.但是对 ...

  8. 全球50大最重要互联网人物

    全球50大最重要互联网人物 1.埃里克·施密特.拉里·佩奇和塞吉·布林--Google三巨头 2.史蒂夫·乔布斯(Steve Jobs)--苹果CEO 3.布拉姆·科恩(Bram Cohen)--Bi ...

  9. 架构师:每天要在鱼和熊掌之间做选择

    架构师每天都需要做选择题.什么选择?怎么做选择?架构师需要进行怎样的学习.培训和锻炼来进行正确的选择?读了本篇文章,你会对架构师为什么会需要权衡取舍以及妥协的能力有一个更加深刻的印象,并对于如何锻炼这 ...

最新文章

  1. Android 项目结构说明
  2. [翻译]帮助文档-jQuery 选择器
  3. Oracle根据已有表的数据建立新表
  4. (传送门)Ubuntu 常用软件安装
  5. Android百分比布局初探
  6. 用python做毕业设计小程序_用Python写一个模拟qq聊天小程序的代码实例
  7. python3精要(20)-函数(1)
  8. 5.3 使用tensorflow搭建GoogLeNet网络 笔记
  9. Spring Boot自动配置原理分析
  10. 01-java基础加强,eclipse工具使用,快捷键,断点调试,单元测试,jdk5新特性,增强for循环,集合map,list,可变参数,枚举,反射,泛型
  11. css 向左白色箭头,带CSS的工具提示左侧的箭头
  12. 清新BLOG-CMS博客主题源码
  13. 设置hive的执行引擎_0506-如何将Hue4.0版本中默认执行引擎设置为Hive而非Impala
  14. w ndows7浏览器网页,win7系统IE浏览器播放网页视频失败的解决方法
  15. MATLAB 学习资料整理
  16. Windows10使用命令行打开3389_如何在Windows 10上安装Python 3和设置本地编程环境
  17. android ogg 播放器,android如何让自己开发的播放器成为可供文件选择的播放器
  18. 黑客红客骇客红客蓝客飞客是什么?有什么区别?(学习资料)
  19. python--字符串
  20. 软考高项 : (14)论信息系统项目的沟通管理

热门文章

  1. 俄罗斯通过“主权互联网”法律:可与全球互联网断开
  2. 【解救ROS】实战演练ros机器人动态导航与自动避障
  3. mm,bmm和matmul的区别
  4. Oasis Management收购海燕资本,后者已在东英投资平台上成功运行三年
  5. Java的四种引用类型
  6. Acrobat Pro 集成升级包的方法
  7. 使用ps提取图片线条
  8. [论文理解](未完成)形变卷积网络Warped Convolutions: Efficient Invariance to Spatial Transformations
  9. 计算机电竞英语翻译,电竞用英语怎么说,电竞王朝英语怎么?
  10. 云计算基础教程(第2版)笔记——基础篇与技术篇介绍