室内设计与SOA上海期货交易所CTO李大鹏博士在开始之前,我们先来看一段资料:八十年代初期,盲目的模仿港台的设计,导致国内的装修装饰行业千篇一律,不论什么功能的建筑都以宾馆、饭店的形式为楷模,可为不伦不类,此风刮遍大江南北。接着而来的是在室内设计中,大量的堆砌高级的进口装饰材料,使得装修的造价节节攀升,居高不下,严重的脱离了当前的经济水平,造成了极大的浪费。在近几年对简约主义的讨论中,许多室内设计师认识到盲目的追求豪华,使我国的装修装饰行业开始畸形发展,于是纷纷摒弃了繁琐的装修,把更多的精力放在了室内空间的营造上,注意了室内整体效果,把局部设计的思维提高到空间设计思维的高度。认识到要通过室内的装饰和陈设来体现个性化,充分反映出自己的设计风格,和业主的兴趣与爱好。可以这么说,近二十年来,我国的室内设计经历了一条漫长而曲折的道路。这似乎和我们的主题SOA没有什么关系,但如果我们仔细回顾一下国内企业的信息化建设的过程,不难发现,某些地方似乎有一些相似之处,“他山之石可以攻玉”。我认为,室内设计和SOA有着异曲同工之妙。为什么这么说呢?我们可以首先从他们最本质的定义来看。一般人都知道,室内设计和室内装饰、室内装修概念是不一样的。那究竟什么是室内设计呢?室内设计是根据建筑物的使用性质、所处环境和相应标准,运用物质技术手段和建筑美学原理,创造功能合理、舒适优美、满足人们物质和精神生活需要的室内环境。IBM关于SOA的定义是,面向服务的体系结构(service-orientedarchitecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。在SOA环境下,资源被作为一种独立的服务,并可用一种标准的途径,在网上被其他业务流程访问。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。我们接着对SOA的投资回报(ROI)进行分析。ROI中与技术最相关的是TCO。TCO=开发+上线+维护,核心主干是企业信息总线(EnterpriseMessagingBus-EMB),EMB的上线需要“生产”和“灾备”两个环境。SOA非SOA基础网络稳定性稳定性服务器硬件多台小服务器一、二台大服务器系统软件(主要是EMB)需要无有经验的架构师SOA经验无需SOA经验,C/S即可有经验的系统分析师基于服务模块的OOA一般OOA开发成本低高维护成本低高通讯成本分散集中时间成本低高表1SOA的投资回报(ROI)分析SOA的两个核心:技术上的高度分布式架构、业务上的明确模块化处理:高度分布式的技术架构是在设计上,每个功能模块不仅在逻辑上独立,而且在技术实现上可以布置在网络能联结到的任何结点上,互相独立的模块之间仅仅通过信息来交换数据和提出服务请求与回答。业务上的模块化是技术与业务紧密结合的结果,每个独立模块从业务的角度看,一定是明确的业务流程中的一个步骤,因此在整体结构设计中,首要的任务是有非常明确的业务模块定义。真正对整个行业形成影响力的体系架构,应该是Client/Server–C/S结构。典型范例是SYBASE数据库加POWERBUILDER的应用实现。从C/S的二级架构,到MICROSOFT提倡的N级架构,以COM为技术核心。对今天影响最大的应数SUNMICROSYSTEMS的J2EE(1998)。后来MICROSOFT以.NET来对抗而已。实质没有新概念。在真正提出SOA之前,要看另一个发展线路:从SGML到XML的信息交换标识语言。真正的SOA有两个基本点:1)标准的信息交换语言;2)跨平台的多级应用实现。SOA是一种理念,而WS是一种技术实现手段。如果应用了SOA来规划整个企业的技术系统,可以不用WS去实现。但是真正的WS,一定是SOA的体现。Amazon的架构已经使用了SOA。UPS正在使用。NASDAQ的新架构设计是WS。技术上,无论是使用J2EE还是.NET都没有关系,看对基础软硬件的考虑,但是逻辑架构和设计思想才是真正评判的标准。既然室内设计和SOA有异曲同工之处,那么室内设计师和企业架构设计师必然也存在某些共通之处。实际上的确如此。室内设计师在工作时必须要从整体上把握设计对象,具体来说,要从使用性质、所在场所、经济投入这三个角度来衡量。即解决为什么样功能设计建筑物和室内空间;这一建筑物和室内空间的周围环境状况;相应工程项目的总投资和单方造价标准的控制。逻辑架构和设计思想是企业架构设计师的工作内容,而SOA需要的是“面向服务架构设计师”。这个角色非常关键。作为一个合格的企业架构师,他必须:首先,要对各种技术实现的手段有深刻的了解,知道哪种技术可以最合适的应用到哪种场合中。其次,他/她应该对业务有全面的认识,不一定是非常深刻的,但是要准确,而且要配合业务部门将处理流程模块化。有了这些基础,总体结构的设计才能以服务为核心去构思。当然了,从传统的技术角度出发,架构师还要提出技术解决方案。从这个意义上说,和室内设计师的角色很像。而“面向服务架构设计师”必须从以下几个方面来考虑:首先是松藕合的原则是否满足,也就是说,每个模块的任何修改和移动,是否对其他模块没有影响,这是业务和技术两方面都要考虑的原则。其次是模块间通信标准是否完善,目前已经有通用的XML类协议标准可以使用,但是具体业务方面的描述不一定有很适合的语言,这就要自己去定义。再有就是环境的设置,这方面包括了从硬件系统、系统软件包、应用软件模块等的配置,还有数据支持方面,如数据库和更广泛的数据系统布局设计。现实是千变万化的,时尚和功能的需要也是一直在变的,所以现代室内设计的一个显著的特点,是它对由于时间的推移,从而引起室内功能相应的变化和改变,显得特别突出和敏感,不是一成不变的,而且以动态发展的过程来认识和对待。很多人都想知道,当面对业务扩展的时候,SOA是否能够很好解决由此带来的问题?我认为这是可以的,这实际上也是SOA的真正迷人之处。由于各个模块之间是通过松藕合原则实现的,因此整个系统的扩充与整合只是体现在信息流的控制上,只要是流入与流出每个模块的信息不便,模块就不受系统改变的影响。因此新业务的增加,如果不涉及现有业务逻辑,就能实现系统的无缝隙扩展。另外,松藕合原则还体现在各个模块间的实现独立性,所以随着技术的发展,新业务模块可能是使用全新的技术手段,而原有模块仍然可以保留自己的语言和实现风格。图1显示了一个应用实例,其中蓝色的模块是因为新业务而增加的服务,菊黄色的模块是现有业务逻辑,而且是已经运行15年的成熟业务,通过企业信息总线,新旧模块的数据和业务交换以服务的模式集成在一起。图2是另一个实例,整个系统工程浩大,而且有一部分现有业务将在开发过程中逐步被替代,通过SOA架构的开发和实施,每个业务模块逐步加入到系统中,使得技术开发不影响业务的运行。图1某金融机构现有的SOA应用实例图2某金融机构将来的SOA应用插件:金融服务公司StandardLife集团的案例(AMT编译)StandardLife声称,它把250个业务流程在网上公布了出来,每个服务都可以被其他程序重复使用,因为它们都遵照XML标准和公司自己的设计模式及服务架构。这种架构建立在IBM的Websphere平台和DB2通用数据库上,在IBM的eServerp690系统和zSeries主机上运行。StandardLife的应用程序设计总监,DerekIreland说,250个服务中,有123个被超过一个应用程序所用,有些被三个或更多程序所用。70个应用程序就把250个服务都包括了进来。据Ireland说,目前为止,对业务服务这种程度的重复利用为公司节省了200万英镑(380万美元)的应用程序研发费用,而且,该公司现在每天都在网上公布更多的服务,保证更多的重复利用。但是并非每个业务流程都可以被公布成服务。今天,StandardLife整个应用程序大约有40%都在SOA上运行。据Ireland说,“我们并没有让每个应用程序都成为面向服务的建构,我们需要兼顾到现有的应用程序,考虑一下我们(公布服务)的钱能否得到回报。”公司把网络服务储存在IBM的DB2数据库中,并用LotusNotes数据库进行规类。Notes和DB2数据库相互联系,以保证它们彼此同步。研发人员如果要设计一个新的应用程序,就先在Notes数据库里搜索可以重复使用的服务,以节省研发时间和成本。StandardLife的IS分析员兼设计员IanMuir说,研发人员要采用SOA的做法并不难。“他们可以看到,这更简单、更快速、更廉价。”