-
评SOA“落地”的切入点
2006-06-10
SOA作为一种系统架构概念和观点,最终必然走向“落地”应用,即实际部署实施于现实企业系统之中。在2006年IBM WebSphereLive!产品与方案大会上,IBM软件集团SOA架构全球副总裁Dan Power先生指出:“SOA在任何公司都扮演着战略性角色,因为它能帮助企业识别新的商机、进行创新并不断满足客户的需求。SOA的成功首先取决于如何顺利‘进入’SOA,避免更多的开支,以及确保企业的SOA投资符合其发展战略,并能够经受住市场的波动与公司的变革。”
在随后的发言中,Power先生详细指出:根据全球最佳实施经验、第三方研究结果、以及IBM与各行业、各种规模的企业开展的1,800余项SOA合作的心得,IBM发现并指出了5个可以帮助客户更加容易地着手实施一个SOA项目的切入点。这些切入点包括:以人员(People)、流程(process)、信息(Information)为中心的方法、以及系统连接性(connectivity)和重用现有资产的能力(creating and reusing services)。
个人认为,人员是企业业务的执行者、流程是企业业务的架构者、信息是企业业务的支持者。
以人员为中心的SOA切入点,能够为业务执行者们提供整合的综合信息,便于执行者们做出更加良好的决策和更加高效的执行,无论从决策力还是执行力角度来讲,SOA以人员为切入点都切实符合提高企业效率的目的;
以流程为中心的SOA切入点,提供了一种借助重新利用和优化流程,快速部署创新的业务模式。在现代经济社会的企业竞争中,“蓝海”越来越成为企业角逐和竞争的焦点,如何让作为企业业务架构者的流程能够快速适应不断变化的业务需求是SOA要解决的核心问题,自然以它为切入点便于我们更加良好的架构随需而动的企业流程模型;
以信息为中心的SOA切入点,以嵌入式(in-line)或现场(in-context)的方法提供可靠信息服务,提高企业业务洞察力,从而降低企业运营风险。信息是企业业务的支持者,任何企业业务必将依据大量现实信息,通过对历史信息进行数据挖掘的从而提供决策支持的基础之上,决定企业业务行为,并产生新的信息供其它企业部门决策或执行之用,所以以信息为切入点实际上是希望SOA能够为企业决策、执行提供及时、准确、充足的信息。
用血液循环系统来作为企业隐喻恐怕能让更多人良好地理解人员、流程、信息在企业运营中的作用,人员相当于血红细胞、流程相当于血管组织结构、信息相当于血液中所携带的养分,三者共同构成了血液循环系统的核心。
个人对系统连接性和重用现有资产能力作为切入点并不太合适,他们作为企业SOA的评价机制恐怕更加好一些。系统连接性不足以影响整个系统的运行功能,只是在其性能尤其是易用性、安全性等角度提供更加良好的支持;充用现有资产能力实际上是企业成本降低的一种评价标准,重用率越高表明企业原始资产价值的转化率越高,使企业架构新型信息系统的成本降低,从某些角度上来讲它可以影响企业决策层是否选择在企业内部部署SOA的决心和信心。
其实所有切入点背后都隐藏着一个关键点——价值,如何在SOA部署的过程之中以价值为核心,更加高效地运转企业价值创造和实现的过程才是企业在SOA部署中面临的核心问题,从这个角度上来讲,企业SOA的部署脱离了信息领域而重新回到了商业领域。所以我们认识到企业信息化进程的根本目的是什么,信息化在企业运营中所起的作用是什么,脱离这些空谈信息化、空谈SOA,最终永远只能是纸上谈兵,因为没有人愿意为没有价值的东西买单,而SOA的价值恰恰应该体现如何提升企业自身价值上。
切入点是指导,它指导我们在实际部署SOA的过程中必须详细了解该企业的现有信息系统状况、现有业务状况、未来业务发展愿景和趋势,在这些基础之上考察人员、架构、信息,将他们分别独立地进行“采样”和分析,最终汇总并权衡给出符合该企业的SOA组织结构,这才是SOA实现“落地”的正途。换句话说,SOA是一种用概念的指导并不是实际的模型,任何企业都应该有符合自身状况的不同的实际SOA模型,而SOA架构分析师的价值就体现在如何根据事实分析、抽取、提炼、升华出这样的模型的过程中。所以人本身的价值在于创造,SOA的概念提出是一种创造,同样实际企业中信息系统的SOA模型的提出也是一种创造,创造本身并无不同,不同仅仅在于具体创造的内容和其价值而已。
-
SOA概览
2006-06-07
6 可重用的服务及服务接口设计管理【导读】最近半年以来,在企业级应用开发领域,谈论最多的一个词,恐怕非SOA(Service-Oriented Architecture,面向服务架构)莫属。那么SOA究竟拥有什么样的魔力,能够让众多的软件厂商对他趋之若骛,掀起新的一轮企业架构浪潮。让我们在本文中一探SOA的究竟。 什么是SOA?
SOA是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA的关键是“服务”的概念,W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化”。
Service-architecture.com将SOA定义为:“本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。”
Looselycoupled.com将SOA定义为:“按需连接资源的系统。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合关系。”Gartner则将SOA描述为:“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。”
Gartner相信BPM和SOA的结合对所有类型的应用集成都大有助益??“SOA极大的得益于BPM技术和方法论,但是SOA面临的真正问题是确立正确的企业意识,即:强化战略化的SOA计划(针对供应和使用)并鼓励重用。”
虽然不同厂商或个人对SOA有着不同的理解,但是我们仍然可以从上述的定义中看到SOA的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。
需着重注意的是,SOA并不是新生事物??大型IT组织成功构建和部署SOA应用已有多年的历史??这要比现有的XML和Web服务长很多。IBM CICS和BEA TUXEDO就是过去被用于构建SOA应用的两种技术范例。重点说明的是SOA并不是一种现成的技术,而是一种架构和组织IT基础结构及业务功能的方法。SOA是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)的模型。这一定义阐明了SOA的范围。
SOA要求开发人员将应用设计为服务的集合。SOA要求开发人员跳出应用本身进行思考,考虑现有服务的重用,或思索他们的服务如何能够被其他项目重用。“单独的”、“独立的”、“封装完善的”服务所具有的一个关键的好处是,可以采用多种不同方法将它们组合成较大型的服务,由此来实现重用。
但是,SOA并不仅仅是一种开发方法??它还具有管理上的优点。例如,现在管理员可直接管理开发人员所构建的相同服务,这远胜于以往管理单个应用的方式。通过分析服务间的交互,SOA可以帮助企业了解何时以及为什么业务逻辑被切实执行了,这使管理员或分析师能够有针对性的优化业务流程。
SOA的基本特征SOA的实施具有几个鲜明的基本特征。实施SOA的关键目标是实现企业IT资产的最大化重用。要实现这一目标,就要在实施SOA的过程中牢记以下特征:
1 可从企业外部访问通常被称为业务伙伴的外部用户也能像企业内部用户一样访问相同的服务。业务伙伴采用先进的B2B协议(ebXML或RosettaNet)相互合作。当业务伙伴基于业务目的交换业务信息时,他们就参与了一次会话。会话是业务伙伴间一系列的一条或多条业务信息的交换。会话类型(会话复杂或简单、长或短等)取决于业务目的。
除了B2B协议外,外部用户还可以访问以Web服务方式提供的企业服务。
2 随时可用当有服务使用者请求服务时,SOA要求必须有服务提供者能够响应。大多数SOA都能够为门户应用之类的同步应用和B2B之类的异步应用提供服务。同步应用对于其所使用的服务具有很强的依赖性。
许多同步应用通常部署在前台,其最终用户很容易受到服务提供者短缺的影响。很多情况下,同步应用利用分布式服务提供者,这样可以响应更多的用户请求。但是,随着提供特定服务功能的服务器数量的增长,出现短缺的可能性也呈指数级上升。
相比之下,异步应用要更为稳健,因为其采用队列请求设计,因此可以容许出现服务提供者短缺或迟滞的情况。异步应用大多数情况下部署在后台,用户通常不会觉察到短暂的短缺。大部分情况下异步应用能够稳健应对短时间短缺,但是长时间短缺则会引发严重问题。在服务短缺解决、队列引擎将罕见的大量工作推到共享的应用资源中时,可能会出现队列溢出甚至服务死锁。
服务使用者要求提供同步服务时,通常是基于其自身理解或使用习惯。在多数情况下,采用异步模型可以达到同样的效果,但更能够体现SOA的最佳特性。
当然,并不是所有情况下都应当采用异步设计模式。但大多数情况下,异步消息可以确保系统在不同负荷下的伸缩性,在接口响应时间不是很短时尤其如此。
3 粗粒度服务接口粗粒度服务提供一项特定的业务功能,而细粒度服务代表了技术组件方法。举个例说明最为清楚??向计费系统中添加一个客户是典型的粗粒度服务,而你可以使用几个细粒度服务实现同一功能,如:将客户名加入到计费系统中,添加详细的客户联系方式、添加计费信息等等。
采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够。Internet环境中有保障的TCP/IP会话已不再占据主导、建立连接的成本也过高,因此在该环境中进行应用开发时粗粒度服务接口的优点更为明显。
除去基本的往复效率,事务稳定性问题也很重要。在一个单独事务中包含的多段细粒度请求可能使事务处理时间过长、导致后台服务超时,从而中止。与此相反,从事务的角度来看,向后台服务请求大块数据可能是获取反馈的唯一途径。
4 分级一个关于粗粒度服务的争论是此类服务比细粒度服务的重用性差,因为粗粒度服务倾向于解决专门的业务问题,因此通用性差、重用性设计困难。解决该争论的方法之一就是允许采用不同的粗粒度等级来创建服务。这种服务分级包含了粒度较细、重用性较高的服务,也包含粒度较粗、重用性较差的服务。
在服务分级方面,须注意服务层的公开服务通常由后台系统(BES's)或SOA平台中现有的本地服务组成。因此允许在服务层创建私有服务是非常重要的。正确的文档、配置管理和私有服务的重用对于IT部门在SOA服务层快速开发新的公开服务的能力具有重要影响。
5 松散耦合SOA具有“松散耦合”组件服务,这一点区别于大多数其他的组件架构。该方法旨在将服务使用者和服务提供者在服务实现和客户如何使用服务方面隔离开来。
服务提供者和服务使用者间松散耦合背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响服务使用者的情况下进行修改。
大多数松散耦合方法都依靠基于服务接口的消息。基于消息的接口能够兼容多种传输方式(如HTTP、JMS、TCP/IP、MOM等)。基于消息的接口可以采用同步和异步协议实现,Web服务对于SOA服务接口来讲是一个重要的标准。
当使用者调用一个Web服务时,被调用的对象可以是CICS事务、DCOM或CORBA对象、J2EE EJB或TUXEDO服务等,但这与服务使用者无关。底层实现并不重要。
消息类Web服务通常是松散耦合和文档驱动的,这要优于与服务特定接口的连接。当客户调用消息类Web服务时,客户通常会发送的是一个完整的文档(如采购订单),而非一组离散的参数。Web服务接收整个文档、进行处理、而后可能或者不会返回结果信息。由于客户和Web服务间不存在紧密耦合请求响应,消息类Web服务在客户和服务器间提供了更为松散的耦合。如果完全按照可重用的原则设计服务,SOA将可以使应用变得更为灵活。可重用服务采用通用格式提供重要的业务功能,为开发人员节约了大量时间。设计可重用服务是与数据库设计或通用数据建模类似的最有价值的工作。由于服务设计是成功的关键因此,因此SOA实施者应当寻找一种适当的方法进行服务设计过程管理。
服务设计管理根本上讲是服务设计问题,服务设计需要在两点间折衷??走捷径的项目战术与企业构建可重用通用服务的长期目标。
超越项目短期目标进行服务接口的开发和评估是迈向精确定义服务接口的重要一步,同时还需要为接口文档、服务实现文档及所有重要的非功能性特征设立标准。
在大型组织中实现重用的一个先决条件是建立通用(设计阶段)服务库和开发流程,以保证重用的正确性和通用性。此外,对记述服务设计和开发的服务文档进行评估也是成功利用服务库的关键。
简言之,不按规则编写服务将无法保证可提供重用性的SOA的成功实施。在执行规则的过程中会产生财务费用,需要在制定SOA实施计划时加以考虑。
7 标准化的接口近年来出现的两个重要标准XML和Web服务增加了全新的重要功能,将SOA推向更高的层面,并大大提升了SOA的价值。尽管以往的SOA产品都是专有的、并且要求IT部门在其特定环境中开发所有应用,但XML和Web服务标准化的开放性使企业能够在所部署的所有技术和应用中采用SOA。这具有巨大的意义!
Web服务使应用功能得以通过标准化接口(WSDL)提供,并可基于标准化传输方式(HTTP和JMS)、采用标准化协议(SOAP)进行调用。例如,开发人员可以采用最适于门户开发的工具轻松创建一个新的门户应用,并可以重用ERP系统和定制化J2EE应用中的现有服务,而完全无须了解这些应用的内部工作原理。采用XML,门户开发人员无须了解特定的数据表示格式,便能够在这些应用间轻松地交换数据。
你也可以不采用Web服务或XML来创建SOA应用,但是这两种标准的重要性日益增加、应用日趋普遍。尽管目前只有几种服务使用者支持该标准,但未来大多数的服务使用者都会将其作为企业的服务访问方法。
8 支持各种消息模式SOA中可能存在以下消息模式。在一个SOA实现中,常会出现混合采用不同消息模式的服务。
q 无状态的消息。使用者向提供者发送的每条消息都必须包含提供者处理该消息所需的全部信息。这一限定使服务提供者无须存储使用者的状态信息,从而更易扩展。
q 有状态的消息。使用者与提供者共享使用者的特定环境信息,此信息包含在提供者和使用者交换的消息中。这一限定使提供者与使用者间的通信更加灵活,但由于服务提供者必须存储每个使用者的共享环境信息,因此其整体可扩展性明显减弱。该限定增强了服务提供者和使用者的耦合关系,提高了交换服务提供者的服务难度。
q 等幂消息。向软件代理发送多次重复消息的效果和发送单条消息相同。这一限定使提供者和消费者能够在出现故障时简单的复制消息,从而改进服务可靠性。
9 精确定义的服务接口服务是由提供者和使用者间的契约定义的。契约规定了服务使用方法及使用者期望的最终结果。此外,还可以在其中规定服务质量。此处需要注意的关键点是,服务契约必须进行精确定义。
META将SOA定义为:“一种以通用为目的、可扩展、具有联合协作性的架构,所有流程都被定义为服务,服务通过基于类封装的服务接口委托给服务提供者,服务接口根据可扩展标识符、格式和协议单独描述。”该定义的最后部分表明在服务接口和其实现之间有明确的分界。
SOA的优点了解了SOA的定义和基本特征,最后我们再来看看SOA潜在的优点:
编码灵活性
可基于模块化的低层服务、采用不同组合方式创建高层服务,从而实现重用,这些都体现了编码的灵活性。此外,由于服务使用者不直接访问服务提供者,这种服务实现方式本身也可以灵活使用。
明确开发人员角色
例如,熟悉BES的开发人员可以集中精力在重用访问层,协调层开发人员则无须特别了解BES的实现,而将精力放在解决高价值的业务问题上。
支持多种客户类型
借助精确定义的服务接口和对XML、Web服务标准的支持,可以支持多种客户类型,包括PDA、手机等新型访问渠道。
更易维护
服务提供者和服务使用者的松散耦合关系及对开放标准的采用确保了该特性的实现。
更好的伸缩性依靠服务设计、开发和部署所采用的架构模型实现伸缩性。服务提供者可以彼此独立调整,以满足服务需求。
更高的可用性
该特性在服务提供者和服务使用者的松散耦合关系上得以体现。使用者无须了解提供者的实现细节,这样服务提供者就可以在WebLogic集群环境中灵活部署,使用者可以被转接到可用的例程上。
SOA可以看作是B/S模型、XML/Web Service技术之后的自然延伸。SOA将能够帮助我们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。
-
SOA的意义
2006-06-03
SOA作为一种技术概念已经火热了一段时间了,但是就如同ERP和CRM概念刚刚开始一样,在这种火热的技术宣传背后存在这相当大的隐忧。作为企业应用部署和整合方式的SOA,必然要在真正的企业部署和整合之中才能真正体现其价值,而不是简单的技术讨论和宣传。但SOA本身又有多少能吸引企业管理者的东西呢?
作为企业的管理者,他们从来不关心,什么松耦合、什么ESB、什么服务整合,他们只关心这样做是否可以带给企业更大的效益、是否可以使企业增值最大化、是否可以改进现有生产或管理方式使其更加有效。如果SOA的部署、维护成本相当地大,相信是没有企业愿意真正使用他们,现在所谓的SOA宣传都是企图把这个概念神秘化,仿佛越神秘越好,但就像CMM一样,软件业通过CMM认证就一定是优质的软件企业吗?中国这种爆炒技术和概念的风气早已形成,浮躁的行为难以看到任何东西的本质。
SOA的简化及降低成本才是其普及的前提和基础,但这种简化不是指核心思想上的而是应该结合企业实际提出恰当复杂度的解决方案。SOA归根结底是需要使企业价值增值最大化和生产、管理、维护成本最小化的,所以我们应该从企业价值的角度审视SOA而不仅仅是技术的角度,只有这样才有真正的指导实践的意义,也只有这样才能使SOA更加迅速的普及,成为企业手中的“利斧”而不是“口哨”

-
SOA会议记录--6月3日
2006-06-03
SOA会议记录
--6月3日
1.会议时间
6月3日,上午9:30~12:30
2.会议地点
实验室会议室
3.参加者
wordinsand,nkbxq,麦卡,SeraphZhang,flyingdonkeycn
4.会议主要内容
大家对nkbxq在5月28号发在blog上的“从CRM看SOA”进行了讨论,认为nkbxq较为深刻的揭示了在企业信息化中企业最为关注的几个问题。以及企业对SOA的一些期望。
借对nkbxq文章的分析,大家又重新的审视了比赛题目。尤其是对题目中涉及的企业中的业务流程着重进行了分析。
题目中对企业进行SOA的范围有限定:暂时限定在“销售部门”和“财务部门”。
业务流程可以简单描述为:业务机会->Closed-Won->销售订单->审查订单->ERP创建销售订单。
-
从CRM看SOA
2006-05-28
总部设在美国加利福尼亚州圣何塞的高科技市场研究公司加特纳(Gartner)统计表明,1999年至2000年期间,CRM销售额上升了28%,之后CRM开始一路下跌,2001年跌了5%,2002年跌了25%,2003年跌了17%,令人意想不到的是,2004年CRM开始回升,据加特纳预测,到2005年底,CRM系统的总销售额将会再增长10%,具备一定理论触觉的人很自然会想到——这中间到底发生了什么?这对未来的SOA市场将会有什么启示?
一些专家在研究了最近实施CRM系统获得成功的公司发现了一些共同的线索,最重要的一点就是——它们都采取了有节制的务实方法对待CRM系统,启动那些非常有针对性的项目,其范围相对来说比较狭窄,目标也定得比较适中。换句话说,这些公司实施CRM系统,并不是要改造整个业务活动,而是要解决企业中从最初细分市场和设定目标顾客一直到赢得流失的顾客等一系列活动中可能存在的问题。
由此可见,在学习与实施SOA时,所有的企业都应当问一问下面这4个问题:
它具有战略意义么?
哪里是我们的痛处?
我们需要完美的数据么?
我们能把SOA延伸到何处?
想象中的SOA应该能给出这样的答案——
1.SOA显然并非万能良药,它应该只致力于那些对企业核心竞争力至关重要的流程,如果不能为关键顾客带来关键价值,企业就难以获得预期的回报,自然称不上具有战略意义。
2.重新审视企业的内部流程,通常会发现一些深切影响整体绩效的致命问题,这些痛点正是实施SOA的重点,一如医生一般会区分常规疼痛和危险疼痛,成功的SOA实践者也能从中发现常规痛点与战略痛点。
3.要想获得完美的信息,就必须付出高昂的代价,即使SOA也难以确保信息的完美,况且现实中很少有企业必需十足完美的信息。SOA更倾向于帮助企业区分各种业务活动,哪些真正需要完美的数据,而哪些只需要“足够好”的信息即可。
4.个人认为,SOA比之与CRM,最大的差异在于建立这一系统跨出的每一步都代表了战略思想在精心规划、明确界定的道路上前进了一步。聪明的SOAer决不会满足于既有成就,他们会一丝不苟地分析系统所产生地数据,寻求新的价值缺口和业务机会,建立起有价值的互动关系。
最后不得不说的是,在设计于推行SOA时,应是业务需求驱动型,而非技术能力驱动型,换句话说,我们更应着力于SOA“应该”为企业和顾客做什么,而非“能”做什么。51START,let's go!!!







