BI 的前景

 “我最佩服的是林肯,他很善于用人,能把各种各样的人,甚至是曾经的竞选对手的智慧都发挥到极致”。2007年初夏的一天,John Schwarz在接受本刊的采访时说道。作为Business Objects这家商务智能软件供应商的CEO,Schwarz不断地强调人的重要性。“商务智能(BI,Business Intelligence)也进入了2.0时代。如果说在过去的1.0时代,商务智能意味着数据,那么BI2.0时代,核心将是人——用户将发生翻天覆地的变革,高科技让每个人都成为专家”。Schwarz对高科技的憧憬,让人看到了一名“科技乐观主义者”特有的自信。

  1990年Bernard Liautaud成立了Business Objects公司,在国际上率先开辟了商务智能软件市场,十多年来,Business Objects逐渐成为商务智能阵营中最具影响力的独立供应商之一。Gartner的调查数据显示,2000年到2004年之间,企业的IT投资排在第一位的一直是安全,在商务智能方面的投资2000年时仅排在第14位,而到了2007年却突飞猛进,排到了第一位,而且预计还在上升。

  两年前Bernard退居二线,时任赛门铁克公司总裁兼COO的Schwarz加入Business Objects,成为这家商务智能先锋新的领航人。在Schwarz执掌Business Objects前后,商务智能市场中的角逐者开始掀起此起彼伏的并购风暴。就在Schwarz接受本刊独家专访之后不到两周,Business Objects宣布收购Inxight软件,一家从施乐公司分离出去的搜索技术公司。而在快速变化的市场中,目前规模在5500人,年收入为12.5亿美元的Business Objects也有可能成为一些更大的软件商的囊中之物。

  “我们对被收购丝毫不感兴趣,保持独立很重要”。Schwarz告诉记者,他为Business Objects设立了一个远景目标,在2009年之前,把Business Objects做成一家年收入上几十亿的独立软件公司。精力充沛的Schwarz在赛门铁克期间,就曾经帮助这家公司把业务从不足10亿元美元做到超过27亿美元。

  虽然面对同样的数字压力,“然而,这一次很不同,”在谈论业务和技术时一直很严肃的Schwarz,眼睛里开始出现柔和的光芒,“Business Objects,商务智能,不但可以推动商业,而且是可以挽救生命的高科技”。

  热爱航海的Schwarz掌舵Business Objects之后,除了像其他公司的CEO一样会见股东、拜访客户以外,把更多的时间花在了和不同行业、不同职位、不同层次的人进行交谈,从谈话中吸取对方的创新想法。对于行业趋势的深入了解让Schwarz有了更大的信心,“现在已经是商务智能收获的季节了。”

  用科技挽救生命让我感到很兴奋

  Q:对你本人而言,在软件业界有着丰厚的经验,你是如何运用以往获得经验,来经营一家由众多精英组成的公司?

  A:我其实不太确定自己的经历是否称得上丰厚。我在软件行业工作了35年,所以,每一类软件都接触过,从操作系统到数据库再到应用程序。我也曾经目睹了一家公司从100人的小规模逐步发展到8000人的大公司。所以,我获得了一些鉴赏能力,能实现从创新的想法到工程开发,到产品,然后到客户的过程。

  我意识到的最核心的问题在于,如何在个体创新和必要的控制之间实现平衡,因为后者对于高质量的创造和保持专注的方向来说,是至关重要的。

  Q:在你30多年的高科技从业生涯中,最让你感到兴奋的有哪些时刻?

  A:其实有许多。加入Business Objects是让我很兴奋的一件事情。因为在这之前,我的职业生涯中全是在解决技术问题、数据库问题。加入Business Objects之后,我第一次尝试使用高技术手段来解决商业问题和挽救生命。

  Q:挽救生命是怎么讲?BO只是一家做软件的公司????

  A:是的,我们是在挽救商业的同时也在挽救生命。举个例子,我们曾经和一个应急中心合作。他们在医院中使用我们提供的工具来监控疾病、疫情和自然灾害。我们还帮助他们实施了器官移植的管理项目。这些精彩的案例让我直接看到,从科技出发可以去挽救生命。这是前所未有的经历。

  Q:那在你的职业生涯中,经历过的最困难的时刻是什么时候?

  A:那应该是2000年当我离开IBM的时候,那时我加入了一家小公司,为媒体行业提供电子商务。主要是出售音乐、广播和书籍。最后我们不得不在市场上作价,把这家公司卖掉。这对于我来说是很难过的事情,因为在当时,除了出售公司以外,我们看不到其他更好的出路。

  Q:你觉得自己的领袖风格是怎样的?

  A:我比较民主、开放,善于倾听。我总是尽量把来自不同的人的不同想法整合在一起。但是我比较缺乏耐心,所以,我总是告诫自己,不要急着做决定,要等到时机成熟,充分考虑事情的正反两面。此外,我非常注意不使公司业务个人化——有很多CEO是这样做的。这家公司有5500人,所以,关键在于让每个人都承担一部分责任。我的工作只是去引导和协调,而不是唯一的决策者。当然我必须以CEO的身份来代表公司形象,但我不会让自己成为唯一的决策者。

  商务智能直接进入收获季

  Q:高树楷先生(Business Objects大中华区总裁)曾经比喻,商务智能的萌芽期就像上海的春天一样,非常短暂,很快就会进入夏季。那么你预计,对商务智能来说,收获的季节什么时候会来到?

  A:现在就是了。现在,人们无论是对商业管理,或是机构管理都热情高涨。如果你看看Gartner或者IDC的报告就会发现,在商务智能方面的投资已经成为企业IT投资中优先度最高的项目。

  Q:在这样利好的背景条件下,你对Business Objects的业务预估也会有所提升吗?

  A:我们没有具体的预测数字。我们希望成为一个年收入几十亿美元的一家公司。去年我们做到12.5亿美元,今年又有明显的增长。我们相信在2009年以前,收入可以突破20亿,但这个不是计划,是我们的愿景。

  Q:要实现这样的愿景,你预计要跨越怎样的障碍?

  A:我想目前最大的挑战来自于技能方面。不光是在公司内部,我们的合作伙伴和客户也面临这个问题,如何深刻理解客户在业务中遇到的问题,如何理解正确的决策点,如何把数据呈现给用户,帮助他们更容易地做出最佳决策,这些都需要熟练的技能。我们在不断创造工具帮助人们使用数据,但是却仍然缺乏对于真正需求的了解。

  另一个挑战来自于Oracle、SAP等大公司在市场上制造的迷雾,他们宣称商务智能是ERP应用在某些方面的延续,这是没有道理的。商务智能的基础价值在于,它是所有应用的延伸,而不仅仅是ERP。

  创新:有序的自由

  Q:对于Business Objects来说,最重要的竞争力来源于哪里?

  A:随着市场上兼并的不断发生,许多真正很有创造性的人才不太喜欢在大公司里面工作,他们会选择加入同样具有创造性,而且反应快速的公司。我们正是这样一家独立、行动迅速而又专注的公司,不会由于人数众多以及内部系统庞大而受困。

  同时,我们公司的组织架构并非错综复杂的形式,我们寻求的是网络式的结构,采取分散式的管理,以便方便地搜集到来自各个角落的创新想法。因为我们对于那些有能力引领自己未来的员工,我们会充分地赋予权力。我们毫不犹豫地采取自下而上式的创新机制,显然,这样的机制形成,需要管理者投入时间,我们会鼓励员工参与到这一过程中。

  Q:关于自下而上的创新,在公司内部有没有一些成功的实例?

  A:例如,网络查询服务(Query)现在是我们的产品上的一颗明珠,但这个想法最初正是来自于和用户的一次会面。当时我们有一个从事生物科技的美国客户,他们需要远程读取公司内部数据库里的信息,而他们不想重新构建基础设施,只想实现简单的功能。我们的一名客服工程师研究了一下,然后提出,如果我们能够为产品界面提供查询入口,就能满足客户的需求。然后他就召集了一些工程师,开发了一套模型,并向客户演示,果然奏效。其后,他们看到了这个功能的强大作用,就把它加到了企业数据库当中。这样的创新是以客户需求为导向的。

  Q:在Business Objects你是怎样实现自下而上的创新?

  A:首先我们有一个愿景,确保公司里的每一个人都认可这一愿景。具体的来说,就是要通过信息的智能化,帮助客户改善他们的业务模式。每个员工都在思考,他们要如何做才能帮助把这一切变成现实。我们有专门的流程去搜集员工的想法,然后整理、排序,并测试这些想法的可行性,想方设法把它们实现。

  例如,我们建立了一个“实验室”,把最好的、最有创造力的三四十名开发者放进去,但其实这个团队是分布在温哥华、巴黎、印度和中国等不同地点,他们不断收集新的想法,建造新模型,当发现真正有吸引力的东西,就会把它引入工程开发阶段,最终形成产品。所以,我们采用的是一种既受到管理又相对自由的自下而上式创新。归根结底,我们是一家上市公司,是需要盈利的,但是我们通过管理与创新之间的平衡,尽量不让公司的创新部门背上负担。我们现在这样做还是比较容易的,但如果公司到了10万人的规模就比较难了。所以我们现在保持在一个容易实现互动和快速反应的规模。

  软件无处不在,人人都是专家

  Q:谈及软件行业的未来发展趋势,你对商务智能的长远预测是什么?

  A:从技术的角度来看,有三个大潮流。首先,是网络服务变得日益重要。在网络上,连接不同应用的服务和功能将越来越强大。原先这些应用软件是被设计成独立完成各自的任务的,将来它们将变成可以互相协作。

  其次,未来的应用将更多地迁移到移动终端上面。软件将围绕移动终端的特征展开设计,例如,用户界面将会很不一样,要充分考虑到语音操作或适用于移动终端的小屏幕。这将是一个给我们带来革命的趋势。

  第三,软件将不仅仅是一个工具,而将变成终极目标。人们在过去要思考,怎样在电脑上打开复杂的浏览器,打开一个个程序。在未来,人们只需要想到简单的动作,获取数据、设计一所房子,就像打个电话一样简单。软件将无所不在,但是却将隐身于人们周围的环境当中。这需要结合图形、语音和媒体的技术来实现。所以,软件会变成环境的一分子。

  Q:你认为BI2.0 不同于BI1.0的地方在哪里?

  A:最大的不同是,在1.0的时代,你需要专家。你需要专家告诉你,数据在什么地方,如何建立一个报告,如何做查询。而在2.0的时代,每个人都可以做到这一点。每个人都可以读取到数据。每个人都可以协作,社区的概念将形成,尽管里面的人有可能隔着半个地球,说着不同的语言,他们彼此协作共同解决问题的时候,根本不需要知道对方的存在。BI2.0使得人、数据和工具充分融合。

  Q:在软件行业,并购时有发生。每一个公司既有可能收购其他公司,也有可能被收购。Business Objects在这方面有什么样的策略?

  A:我们所在的行业竞争很激烈,软件公司之间的并购趋势是显而易见的。我们希望做收购者,事实上我们已经在收购其他公司,它们都是非常专注于BI领域的。我们的战略是:在自己擅长的部分依靠自己的力量,在缺乏技能之处通过并购来解决。我们希望成为真正可以把商务智能变成现实的领先者。我们认为,只有保持独立才能做到这一点,所以我们对于被收购丝毫不感兴趣。

  Q:你认为怎样做才能保证并购的成功?

  A:对并购来说最重要的是寻找合力。在很多情况下,并购只是为了获得用户,而产品的重合却是一个非常难以解决的问题。如果两家公司原来的产品很类似,客户就不得不从一种产品转向另一种,它们是很讨厌这样做的。所以,这是一个代价高昂,吃力不讨好的事情。

  我们寻求的是互补性。这意味着尽可能少的产品重合,尽可能多的合力。所以,我们真正收购的是竞争力。购买商务智能方案的客户,和购买财务报告方案的是同一群人。我们在满足客户需求时,并不需要替换他们原来使用的方案。这就是合力。

  中国:一步跨越10年

  Q:你对中国的商务智能市场有怎样的预期?

  A:我们在中国的业务增长很快,目前差不多有100人在负责中国业务。我们认为中国是世界上第三或第四大经济实体。当中国的客户完成了实施ERP以及基本的自动化之后,他们将会对商务智能非常感兴趣。我们已经在一些领先的公司看到了这样的潮流产生。而且我们相信,在世界其他地方需要15年才完成的过程,在中国有可能在两三年内实现。

  Q:所以你认为中国有能力一步跨越10多年?是什么让你有这种信念?

  A:是的。通过借鉴发达国家的经验,中国可以跳过很多误区,可以看到,错误是怎样产生的,因而可以更开放、更大规模地发展,而且,可以在一开始的时候就采用更先进的方案。

  回顾欧美发达国家企业的发展历程,由于自动化产生了许多孤岛,即,一个部门在做一件事情,另一件部门也在做同样的事情,而且到最后它们不能很好地融合,而在中国,我很少看到这样的情况。所以我认为中国可以避免走欧美企业走过的弯路,只用2~3年的时间就可以经历10多年的发展。

  约翰·施瓦兹(John Schwarz)个人档案

  Business Objects公司CEO

  赛门铁克公司前总裁和首席运营官。此前,在IBM 就职长达25年。

  目前还担任美国信息技术协会(ITAA)软件部主席。

  拥有加拿大多伦多大学的工商管理学位和Manitoba大学的计算机学学士学位。2004年,被Dalhousie 大学授予法学荣誉学士学位。


微软公司近日正式发布了新一代新版本的BizTalk企业级的面向服务的架构(简称SOA)——BizTalk Server 2006 R2。此次发布的版本中包含业界预期的RFID功能,这项举措标志着软件巨头微软将对RFID市场发动猛烈的进攻。虽然逾期近一年,但是就BizTalk RFID本身来看,新一代BizTalk的发布将会加速RFID的应用。

作为BizTalk平台的一部分,微软公司的新产品能使程序员尽快地研发出新的针对RFID的应用程序,而不需编写复杂的与读写器及相应硬件连接的接口代码。由于微软公司提供的产品都是捆绑出售,因此作为应用程序供应商可以运用此产品作为一个平台来建立其产品。如Xterprise公司在微软新发布的产品中拥有许多其它的针对RFID的应用程序。这将为所有应用开发商与系统集成商创造RFID应用程序打开了一扇门。

BizTalk RFID的另一个优势是它与其他微软产品的无缝结合,因而能用于位于世界各地各的种组织的各种架构中。拥有微软的这项产品也意味着拥有一大批专业的应用开发商与系统集成商,他们将精通RFID终端用户使用的微软技术。

BizTalk RFID系统还具有鲁棒性。该系统已经由微软的合作伙伴Xterprise公司试运行,至今已经过了一年的测试。另外,微软公司在系统正式宣告发布之前曾让12个系统集成商试用过,很少出现问题。

BizTalk平台目前已较成熟。因其不仅仅是来自微软的几个中间层应用程序,更是一个企业级的平台。Xterprise公司生产的基于BizTalk的装置每个月都在处理数百万的RFID数据,而另一种装置已经安装在近24个生产基地中。

微软推出的低成本的BizTalk RFID解决方案标志着第2个具有领导性的技术公司于今年进入RFID市场。另一个是Intel,该公司于今年3月份 发布了Gen2读写器芯片

 查看全文

日前,IBM(中国)发布LotusNotes/Domino8(简称ND8)这个以Web2.0为技术平台的协同工作平台发布的同时,IBM还宣布使用ND8的产品的可以免费使用Open office源代码生成的生产力套件(Productivity tools),作为一般办公软件套件使用。

如果按微软历代office平均300美元来算,每个用户省去300美元。这对于IBM公司来说,绝对不是单纯地想给ND8用户顺便送去300美元大礼那么简单,实在是一个用ND8后台颠覆目前几乎占有95%的前台的MS office的行动。

尽管OpenOffice前身名叫Star Office,其自身是一个可以独立使用的免费开源社区中产品,7年来由SUN提供技术支持.但从应用角度和与微软文档格式兼容方面来说都不太理想。

IBM加入了OpenOffice.org社区,并且将Lotus noteS底层基于eclipse开发重新写过,开发出来的员工生产力套件替换掉自己的亲生儿子Lotus1?2?3办公套件(当然用户也可以花钱买到其升级版本),并在这次作为Louts ND8中的一个办公组件发布的生产力办公套件,不但成为统一通信、统一沟通非同质化的表现,同时说明IBM己经公开在前台产品上招募了SuN,并且和微软直接对阵。.

据悉,Open office已能与Linux无缝联接,如果说,中间协同用ND8,前台操作系统能免费用Linux,加上前台应用生产力套件,起码可以给用户省、越多的用户越省钱多多。

尽管IBM公司的前台操作系统诞生于1994年,2000年后代声称放弃前台桌面定位,OS/2WAP就是证据。近几年突然间,IBM公司意识到,尽管前台应用不赚钱,或者根本赚不到钱(微软也这样认为),可失去了前台市场就等于失去了面对公众的界面,IBM对于用户影响力的减少,无法量化描述,成为IBM公司的硬伤。当然IBM公司可以不承认,可以死撑到底,拼命把自己往企业级用户所用的中间件线上靠。但是为什么又悄悄地将power pc芯片潜入游戏机市场?

IBM公司的市场顾问们应该知道,这是一个消费时代,尽管消费类市场可以带动企业级市场,但必竟不是一个完全的企业用户的时代、这是一个几乎所有IT产品应用向五六级市场进军的时代,这甚至是一个可以人人可以利用IT产品都是成为媒体、都可以导演的时代,难道IBM公司死抱住后台中间件,不肯向前一步?除非IBM顾问团和决策层集体有病。

但是,怎样二次进军前台的战术如何制定、如何实现?再像90年代中期那样拿出什么名叫0S/3之类的操作系统与windows系列、office系列短兵相接,费力费时还没把握取胜?干脆白送!白送?决不能白送,必须拉动ND8!这样IBM有了影响前台产品格局的同时,又有ND8的营业额,还有了面向7.72亿网民的品牌效应,一箭三雕。

当然,这只是IBM的单相思,微软决不是省油的灯,微软在12年前,IBM推出OS/2Wap时就作好了用前台颠覆后台的准备,并且收购了当时exchange、sLQ serber等企业、产品系列的同时,使足了吃奶的劲,把windows推向后台。

推出了Sever级的产品,当然英特尔X86服务器,一路升二路,二路升四路体系结构、加之单核、双核、多核、…CPu、80nm、65nm…半导体工艺…推波助澜,水涨船高,才有了今天PC服务器的这般繁荣,眼看着UNIX己属三流服务器市场日落西山,只靠着升级换代市场为生,或者五年折旧完毕换PC服务器的结果。

这结果IBM能不着急吗?

说完了IBM后台颠覆前台、微软前台颠覆后台的绕口令之后,再来看看市场。尽管每天邮箱垃圾不断,病毒常来烦,动不动莫名其妙地死机,新产品从上市起就打补丁,一直补到产品淘汰…咱们的用户每天还是离不了用现在的office,白送一个Open office咱们大多数用户(那怕有50%)愿意把文件往白送的Open office上转移吗?除非大多数用户成了发烧友。

可不颠覆不行吗?不行,看那价格,看微软那种对待用户不用也得用的劲头,不颠白不颠!IBM公司当然明明知道,颠了也白颠,起码让用户感觉,既使冒险转移文件,起码还有选择。

IBM LOtusND8白送Open office,不管用户领不领情,也虽败尤荣。


  观察过去一年 SOA 在美国的发展,一个愈来愈明显的趋势是,SOA 和传统 EA (Enterprise Architecture;企业架构) 领域逐渐在协作和融合。不久前,美国知名的 SOA 顾问大卫·林锡肯,David Linthicum 在一个由 The Open Group 主办的大会上预言:五年后,大家将不再像现在这么看待 SOA,因为 SOA 将逐渐融入 EA,变成只是 EA 实践中的一部份。此话一出,引发各方激烈的讨论。

  对于绝大多数 IT 从业人员来说,"EA" 一直是个模糊而遥远的名词,尽管它已经悄悄存在约二十来年了(这点,从 EA 相关书籍数量之少,便可看出)。在许多世界五百强、一千强的大企业中,尽管在 IT 中存在着 EA 的组织,但这些架构师在组织外的其他 IT 同事眼中,往往是一小撮象牙塔里的文书官僚 (paper-pushers),对于他们实际的工作内容,往往非常陌生,也不关注;许多项目实施团队,对于 EA 架构小组所制定的各种标准和规范,甚至采取 “上有政策,下有对策” 的态度。

  要正确了解什么是“企业架构”?首先必须先对 “Enterprise”、即“企业”有一个清楚的界定。制定 EA 规范的机构 The Open Group,对 “Enterprise” 所下的定义是:

  若干个组织的集合体,具有共同的目标和/或单一的财务底线。

  一个企业可以是:

  ·一个政府机关

  ·整个公司

  ·某公司的一个分支

  ·一个单独的部门

  ·一个组织链,所有权同属于某群人/组织

  ·一个“延伸型企业”,其中包括伙伴、供应商,和客户,以及内部的业务单位

  由此可见,EA 架构方法论,对“企业”适用的范围,相当具有弹性。不过,任何企业或组织在实施 EA 之前,应先在宪章中,对 “企业” 的范畴,有清楚的界定。必也正名乎。

  把 EA 中的 "E" 交待了以后,我们可以把 EA 简单定义为:一套管理企业 IT 转型计划和变革的一连串动态过程和方法论。它为企业提供一个何去何从的地图,为业务和 IT 变化提供路线,计划,和蓝图。作为一个专业科目,EA 的任务在通过架构督导和治理,来促成业务和 IT 的紧密配合。

  在这里,我们看到一个在 SOA 领域不断出现的关键词 -- governance(常见翻译包括:治理、管控、督导、监管)。由此可看出,EA 和 SOA 有着相同的总目标 -- 让业务和 IT 更紧密地配合 (alignment),以 IT 作为重要的竞争工具,进而达成企业的战略目标,包括为客户提供更好的服务、提升客户满意度,进而为股东创造最大的价值。至于 SOA 究竟为 EA 带来什么样的新思维和新方法,稍后再来谈 。

  上面对于 EA 的解释,比较抽象。我们可以进一步用城市规划 (City Planning) 来比喻:EA 要做的工作,就是一个城市的整体规划,具体的工作和内容,涉及多几种角色,包括市政府领导(业务拥有者、stakeholder)、建筑师(架构设计)、土建包商(项目管理)、专业施工团队(程序员)。大家都知道,软件设计有许多灵感来自可重复套用的建筑模式 (Design Patterns),被 Gamma 等进一步体系化,一转眼已经走过一轮生肖了;其实 EA 甚至更早便从建筑中得到灵感,例如著名的 Zachman (扎克曼)框架体系,正是受建筑和航天工业的启发,这是二十年前的事了(注:"ch" 在此发 /k/ 的音,美国著名的投资银行 Goldman Sachs,和一家大银行 Wachovia 名字中的 "ch",也是相同的发音)。扎克曼以建筑作比喻,让规划者能将复杂的企业架构内容,分解成水平六层不同的视角来分析,就像前面比喻的城市规划,市政府领导、建筑师、包商,和施工队成员,各层有各层关注和需要的信息;在纵向的维度,再根据六大问句来切割 -- What(数据)、How(功能)、Where(网络)、Who(人、演员)、When(时间、事件)、Why(动机)-- 来一一整理出不同层面的架构信息。扎克曼提供了一个很好的逻辑分类结构,来描述企业信息化的方方面面。

  除了扎克曼架构外,其他几个最主流的 EA 架构,包括 The Open Group 的 TOGAF(The Open Group Architecture Framework;读作:偷盖夫)、美国联邦政府的标准架构 FEA、美国国防部的 DoDAF。

  TOGAF 的主干是一个包括业务、信息、应用,和技术架构的四维模型:

  业务架构:定义业务战略、业务驱动因素、治理 (governance)、组织结构、角色定义,和重要的业务流程

  信息/数据架构:描述一个组织的逻辑数据模型、物理结构,和数据管理资源,包括数据的规类、与业务应用的关系、数据的使用和管理策略等

  应用架构:对要部署的应用系统,提供一个蓝图,应用间的相互关系,和他们与核心业务流程之间的关系

  技术架构:描述用来支持业务、数据、应用服务部署的基础设施能力,包括中间件、网络、通信等软硬件,及相关的平台和技术标准等

  TOGAF 提供一套详细的方法过程(称作 ADM; Architecture Development Method),依据业务需求,来指导企业架构的开发。ADM 和 Zachman、FEA

  等框架间没有冲突或矛盾,而是为所有的框架,提供一个从收集、记录现况,然后制定未来蓝图愿景,再分析鸿沟,并制定如何填满鸿沟的计划;一个自上而下的规划过程。

  看到这里,可能有人会问:EA 工作如果做得好,规划出来的项目都能一一落实,是不是就不需要 SOA 了?换一个角度问,SOA 是否给传统 EA 领域,带来什么新的理念和方法?

  前面一开始提到,多年下来,许多企业的 EA 组织,在一般 IT 同事的心目中,往往是一群定标准规范、做 PPT、画蓝图,定架构发展路线图的理论家。换句话说,EA 规划和项目的执行成效,落实与否之间,往往有一个断层。在许多企业中,EA 的角色,最后往往流于只是在制定软硬件采购标准这类的工作。但制定标准规范这件事本身,并不能使业务更加敏捷灵活(应该说只有比较间接的帮助),而这样的贡献,更是很难订出指标来衡量其绩效;在这样的恶性循环之下,EA 的 ROI 很难得到充分的支撑。

  有人批评 SOA 的 “S”,认为到底什么是“服务”,已经说不清楚了;而这两年市场上关于 SOA 的炒作和杂音,似乎只让问题更为加剧。这是个非常有趣的话题,因为 SOA 给 EA 带来的关键价值,我认为其实正在于此 -- 表面上看,“服务” 的确是个模糊的概念,从业务人员、架构师,到程序员,各自对“服务”的解读,都不相同;但这恰好是 SOA 给 EA 、传统面向应用的需求管理,和项目交付方式,所带来的最大价值。“服务”概念的出现,其最大意义,在于提供了我们一个能贯穿从业务需求、架构规划、项目交付,一路到上线后的运营监控的统一概念 -- 一个具有很长的生命周期、能够全程管理的单元。业务功能能通过“服务”来沟通,并且针对个别服务,制定契约来规范它的功能,以及效能指标、安全要求等非功能性需求。用扎克曼层次化的概念来看,尽管“服务”在各个层次所着重的内容不同,但最终是个统一贯穿的概念;更重要的,是它跨越了传统 EA 和项目交付两大迭代,让 EA 所规划出来的模型和规范,能真正贯彻、落实到项目的执行,甚至于上线后的生产运营,和监控管理(第三个迭代),将绩效反馈给业务的 stakeholder,形成一个能不断迭代精炼的闭环。这是 SOA 概念及方法论给 EA 和传统面向应用的需求、项目管理方式,所带来最大价值。


  用Ruby on Rails来编写数据库管理系统是非常快速的。Ruby on Rails之所以有如此高的生产率,不光是Ruby的语法灵活,而这一切在很大程序上是拜活动记录(Active Record)所赐。那么什么是活动记录呢?如果用一句话来解释,那就是一个可以将数据映射成对象的框架(这有些类似于Hibernate)。也许你会说:"这有什么,现在这种框架多得是,Hibernate不是也非常强大吗?",但如果你用了Ruby on Rails(以下简称为RoR),你就会发现它和其它的同类框架是多么的不同,它比其它框架更容易使用,编程效率也更高,据官方说,使用RoR比使用Java和Hibernate的生产率高10倍(也许并没有这么夸张,但活动记录的数据映射的确比其它框架的数据映射的生产率高一些)。

  无论是桌面程序还是基于Web的程序,数据处理始终是它们的核心。数据可以使用不同的技术进行描述和处理。

  这些数据处理技术之一就是对象关系映射技术,或者简称为ORM技术。ORM技术将数据库中的数据表或视图映射成了面象对象的类。而ORM框架的作用就是架起数据和对象之间的桥梁,以及为桥梁两端的数据和对象提供相应的服务。由于ORM框架自成一体,因此,开发人员的主要工作就是将ORM框架和其它的框架(如web框架)连接起来,从而使它们可以协同工作。

  在ORM框架家族中,RoR很特别。RoR的核心是ORM框架,而这个框架在RoR中是以活动记录的形式表现的。在本文中,我们将关注活动记录的一些基本概念和她最诱人的地方:快速连接和操作数据库。本文的第一部分将讨论活动记录的基础知识。第二部分将一步步地指导读者如何使用活动记录快速地连接和操作数据库。在第三部分中我们以一个完整的例子来讨论如何将活动记录和ActionController以及ActionView一起使用。以上是本文所讨论的主要内容。

  什么是活动记录

  活动记录是一个ORM框架,也可以看做是和RoR一起发布的一个数据库映射层。活动记录是RoR的核心。活动记录是一个ORM层,它提供了以下的映射服务:

  1. 将表映射成类

  2. 将字段映射成类的属性

  3. 将表中的主键映射成Ids属性

  4. 将行映射成对象

  活动记录和其它的ORM框架最大的区别是它们的映射方式不同。大多数流行的ORM框架(如Hibernate)是以XML作为映射容器。而活动记录采用的是更容易使用的"约定"方式进行映射。下面让我们来看看活动记录是如何做的。

  将表映射成类

  为了将表映射成类,Ruby类必须从ActiveRecord::Base继承。这个Base类在ActiveRecord包中。那么一个类从ActiveRecord::Base继承后发生了什么呢?实际上这个子类已经和一个数据表相对应了。也许大家看到这有一些迷糊,我除了写一个从ActiveRecord::Base继承的空类什么代码都没写,怎么就映射完了。其实这要依靠活动记录的命名约定。活动记录假设一个类名的复数形式(英文类名)就是表名。如果类名中有多个大写字母,那么活动记录就假设表名就是这些单词中间用下划线隔开后连在一起,请看下面的例子。

类名 表名
Record Records
LineItemLine_Items
DatumData

  以上所描述的是活动记录的默认的映射行为,我们也可以为活动记录定义自已的行为。要改变这些默认的行为,可以按以下步骤做:

  1.将全局变量ActiveRecord::Base. pluralize_table_names设为false。这个变量被定义在config目录中的environment.rb中。

  2.可以通过set_table_name改变默认的表名。例如,如果将表Orders映射成类Order的代码如下:

class Order < ActiveRecord::Base
end

  但如果这个类名要映射成MyOrder,那么它的实现代码如下:

class Order <ActiveRecord::Base
set_table_name "MyOrder"
end

  接下来让我们看看如何将字段映射成属性。

  将字段转换为属性

  在一个数据表被映射成类后,表中的字段就将自动映射成类的属性。这是因为活动记录是在程序运行时动态地将表中的字段映射成类的属性。事实上,在从ActiveRecord::Base的类自动将表中的字段包装在了类中。下表将描述SQL数据类型将被映射成Ruby的哪些数据类型:

SQL数据类型 Ruby数据类型(类)
int, integerFixnum
decimal, numeric Float
interval, dateDate
clob, blob, textString
float, doublefloat
chat, varchar, stringString
datetime, timeTime

  下面让我们来讨论主键的映射。

  将主键映射成Ids

  假设有一个Orders表,它的主键是Order_Id。现在让我们看看这个Order_Id字段,这个字段由16个数字组成,其中包括Item id,User Id等。在以后如果Order_id变成20位数字,最后4位数字是一个RFID代码,那么所有依赖这个Order_id字段的列都将发生变化。这些工作量是非常大的,即使这个应用程序并不大。然而活动记录确能自动做到这些。自动映射可按如下代码去做:

class Order < ActiveRecord::Base
set_primary_key "orderId"
end

  将记录映射成对象

  无论什么时候,映射类的查询方法被执行时,在内部都会调用相应的SQL语句来查询数据库,并且将查询结果返回,这些返回的结果最终以对象的形式表现。列值将成为对象的属性。返回的每一行将被映射成一个对象。例如以下代码将返回Id等于100的Order对象:

an_order = Order.find(100)

  上面的代码演示了如何得到特定的记录。接下来让我们看一下使用活动记录建立相应的操作的步骤。
本文将讨论RoR中提供的基础服务之一:动作视图。动作视图可以使你更快速地将数据展现给用户。在本文中将介绍一些动作视图的服务,并且将举一个例子来说明如何使用动作视图。

  在MVC模式中的V,即视图(View),它的作用是将数据以用户所需要的形式展现出来,和传统的模式不同的是,视图在展现数据时可以省去许多不必要的细节。也就是说,任何基于MVC模式的框架(framework)都应该提供更容易的方法提取和显示需要的数据。RoR就是这样的框架。它将动作视图作为其核心组件之一。

  在本文中,将主要讨论动作视图的基础服务。第一部分介绍了和动作视图相关的服务。在第二和第三部分讨论动作视图的一些基本功能,在最后一部分,将给出一个实例来说明如何使用动作视图。

  动作视图的服务

  视图的功能就是向用户展现数据。下面列举了动作视图中的主要服务:

  ·模板

  ·布局

  ·分页

  当然,在动作视图中还在很多的服务,但上面的三个服务在动作视图中是最重要的。

  模板

  所谓模板,就是在一个文件中预定义了一些共用的资源,应用程序通过使用这些共用的资源,可以简化应用程序的开发过程,从而达到重用的目的。在动作视图中的模板所包含的资源主要就是布局信息、一些数据所存放的路径等。在动作视图中的模板很多,如HTML格式的登录模板、以及Email模版等。

  布局

  从软件(包括Web和桌面程序)上来说,布局就是将GUI中的控件进行组织和安排,也就是说布局控制着GUI控件(如按钮、文本框等)如何被放置在界面上。例如,布局可通过垂直等间距方式将要排列的控件按垂直方向等间距进行排列。

  分页

  分页的作用就是将大量的数据分批地显示在页面上,可通过"上一页"和"下一页"进行页间的切换。分页有些象用打印机打一个大的文档,一张纸打不下,就将数据分成多张纸来打。虽然将分页这种显示数据的方式应用到程序中可以解决大数据量显示的问题,但这同时又会带来另外一个问题,那就是如果对数据进行导航,也就是翻页问题。

  除了以上提到的服务外,在动作视图中还有其它的服务,如格式化助手等。但是上面所介绍的三个服务是动作视图中最重要的。在下一部分,我们将讨论如何使用这些服务。

  模板和格式化助手

  动作视图为我们提供了很多建立动态视图的服务。下面是动作视图提供的主要的服务:

  ·模版

  ·格式化助手

  ·分页

  ·布局

  上面的4种服务,除了格式化助手外,其它三个服务都已经在前面介绍过了。

  模板

  就象以前讨论的一样,在模板中包含了一些代码、标记、简单文本或它们的组合。在其中的代码可以通过Controller中的访问信息提供动态的内容。代码通过执行环境访问信息。这个环境为代码提供了以下的信息:

  1. Controller的实例变量,通过这些变量可以将数据从Controller传给模板。

  2. 作为存取器的Controller对象。这些对象包括对象头、参数、请求、响应和会话。

  3. 当前正在使用的Controller对象。模板代码可以从这个Controller对象中调用它的public方法。

  在RoR中的模板是RHTML文件。RHTML文件有些类似于JSP文件,在RHTML文件中有静态的HTML,也有动态的内容。动态的内容可以由内嵌的代码生成技术产生,也可以用手工编写。如以下的RHTML文件显示了当前的日期和时间:

<h1>大家好!</h1>
<p>
<b>
当前日间: <%= Time.now %>
</b>
</p>

  和JSP类似,在RHTML中有两种写动态代码的方法,一种是将代码写到<%= … %>中,另外一种是将代码写在<% … %>中。在<%= … %>中的Ruby语句只是当作一个值返回,如果其中含有多条语句,则返回最后一条语句的值。而将代码放到<% … %>中,则按着正常的程序逻辑执行。虽然RHTML中可以执行Ruby语句,但最好不要将商业逻辑代码写在RHTML中。代码的执行原理可看下面的例子。

  如果有以下代码:

<% 5.times do %>
<5>
<% end %>

  在执行RHTML时,将上述代码转换为Ruby语句:

5.times do
puts "<5>"
end

知名调查分析公司Gartner通过分析调查,宣布五大技术会改变现今的IT格局。 知名调查分析公司Gartner通过分析调查,宣布五大技术会改变现今的IT格局。

1. Web 2.0Web 2.0社区已经为技术变革开始布道,比如微软、IBM。传统的IT商业组织必须拥抱这个技术,否则就会丢掉市场份额。

2. SAAS传统的软件生产方式、认证和标准下,通常软件厂商跟软件最终的结果关系不大。但是有了SAASsoftware as a service),服务而不仅仅是软件提供商,将为最终的结果担负更大的责任,也会提高标准。

3. Global-Class SystemsGlobal-Class Systems,或者说是许多电脑节点作为一个系统的方式(像Google服务器之间的关系),可能将会打破微软和IBM在信息通讯领域的格局。Gartner相信,到2012年,Global-Class应用将超过届时SAAS软件总数的四分之三。

4. 企业消费者化(consumerization):企业消费者化会带来“IT内战”,小公司集中于面向以消费者为导向的产品,而大厂商集中于传统的管理和控制。

5. 开源:开源使上述四种技术更好地得到开发和应用。但运行方式仍是需要解决的问题,虽然开始时的直接成本降低了,但最终花费会由于多版本带来的管理花费而上升。【


一、 Ajax的简短历史
  在短短几个月内,Ajax从一种十分模糊稀罕的技术一下变成最热门的东西。本文将介绍极其容易使用的Ajax支持-作为Ruby on Rails web应用程序框架的一部分实现。本文不是一个详细的教程,所以我假定你已经了解一点关于如何组织和构建一个Rails web应用程序的知识。