key words: SOA
come from
here2004年5月12日据业内分析,面向服务的架构(SOA)的基本概念--重用性和互用性--已经提出了大约20年。那么SOA具有哪些新的特色呢?为什么其他技术和标准都惨遭失败,而SOA却能够成功呢?BEA的首席信息官Rhonda Hocker回答了有关SOA如何发挥IT潜力方面的问题。
问:您认为SOA的哪些方面在其成功中起到了至关重要的作用?
答:第一点就是灵活性。就长期以来在广大公司中的知名度而言,SOA可能名列IT架构第一,而内容一直在变化。一个SOA实质上就是一套松散耦合的服务。在必要的情况下,每一项服务都可以进行构造和替换,而相关的费用很低。松散耦合甚至还可以让架构适应一些改变,并不像传统的紧耦合架构表现得那么脆弱;在一个SOA中,您能够使用一种服务替换另一种服务,无需考虑下列技术:接口问题,它是否在Web服务和XML的通用标准中已经定义。这就是通过互用性所体现出来的灵活性。灵活性还表现为利用现有资产、遗留应用程序和数据库的能力,通过将他们扩展到SOA中,而非进行替换,使其成为整个企业解决方案的组成部分。最终结果就是具备快速高效发展的能力,换句话说,就是按照业务需求"有机地"进行适应。这就是真正的新特色。
第二点就是"业务相关性":SOA就是最终表现为对业务人员意义重大这一层面上的IT架构。如果您也相信IT架构的核心问题就是业务和IT专家的联盟和协作,那么这就是关键。今天的SOA服务能够完成映射为业务流程活动的各部分工作:例如,想起一个命名为"更新客户订单状态"的服务。这种服务与那些能够参与创造和使用这些服务定义新流程的业务分析人员密切相关,因而能够形成那种服务驱动型的企业。因为Web服务已将其大部分技术作了摘要,所以几乎不再需要技术说明。公司和IT业能够将关注的重点转移到业务逻辑和通讯上。他们最终共享"服务"的通用语言。也就是说,是真正的新特色,在IT架构的交付中具有深刻的蕴涵。
问:您认为什么是SOA成功的最大障碍呢?
答:SOA是新型IT架构的蓝图。由于总是伴随着大的变化发生,因此最大的障碍就是组织,而非技术。主要包括以下几个方面:
管理:共享服务是SOA方法的核心。这种快速组装应用或编排流程的能力是在一些现有的能被共享的服务的基础上实现的。共享资源需要进行管理。
开发文化:切换到SOA要求开发风格发生极大的变化。大多数开发人员仍然适应那种将每一个应用程序作为一个独立的问题解决的方式。目前可以重用的代码还非常少。在SOA中,开发人员需要编写自己的应用程序,同时还要留意要让自己编写的代码可以重用,不仅包括使用现有代码,还要包括计划在未来的应用程序中重用他们的代码。
业务流程架构技能:SOA方法让公司和IT合作伙伴能够在业务流程的创造中完成更高效率的协同工作。他们的成功将有赖于其实施业务流程架构的技能。也需要他们灵活应对业务流程并且要将自己看作是业务流程架构设计师。
这些方面的确都具有极大的挑战性,但是便于管理。最后,那些善于管理,IT和业务人员知道如何有效合作,流程和架构技能受到重视的公司将会从自身的SOA中得到更多的回报。这几乎是最好的方式,它有助于解决IT 问题。
问:现在的SOA与以前的集成/连通标准,如CORBA有哪些不同之处?
答:很好,我将会用案例说明以上我所描述的两个SOA有别于其他标准的优点。问题是为什么分布式架构中的CORBA和其他方法无法表现出这些优点呢?
高度概括性的回答就是:CORBA比SOA具有更大的技术难度,在其执行过程中需要强大的技能和知识支持。那些技能十分贫乏,如果没有真正的CORBA标准将会无济于事。而比较而言,SOA简单,基于真正通用的标准。这就确保了构造它们的这些技能是广泛可用的。
更为详细的回答请您查看他们的架构方法和原理的基本差别。
在一个SOA中,分布式资产就是"粗粒度"服务,它可以完成一些非常有用的功能,如"更新客户订单状态"。使用CORBA,分布式资产就是一些对象,每个对象都拥有自己的属性和方法。例如,订单对象具有"状态"属性和"更新"方法。这样对架构设计师而言是相当繁琐的,它需要具有很高水平的知识和技能。在这种细粒度级别之下很难保证一致性。而使用SOA,会控制少和动力少,却易于管理。这种方法在技术上并不是非常强大,但在IT成功方面的组织和人员角色上却体现出了相当的敏捷度。
问:为什么SOA会成功而CORBA会导致失败呢?
答:SOA会成功主要取决于合作伙伴的帮助。就重用效率或企业广泛一致性而言,由中心IT组织独立推动的架构都无法在长时间的运行中获得成功。我认为使用SOA,我们将会拥有第一个业务合作伙伴帮助推动企业架构的实例。这不是因为他们喜欢架构本身,而是因为他们的支持是基于SOA的业务相关性的,很快就可以从结果上看出,开发生命周期改变了它的重点,由原来较长的交付周期应用程序的交付转变成小单元代码--服务的交付和集成。持续的结果将使业务合作伙伴效忠于这种方法。
问:Java在SOA的潜在成功中起到了什么作用?
答:Java作为实现服务的最流行的编程标准,是非常重要的。Java社区的规模和技能保证大量高质量的技能可以用于构造SOA。这就是Java实现帮助SOA成功的方式。也就是说,Java只是实现服务的一种方式。没有一个大的IT组织会只运作一个单一的编程标准。有利的方面就是使用SOA您不需要一个单一的编程标准。服务范例的定义只能以Web服务和XML的接口标准识别出这种内在的多相性并设立需求。