SOA与其说是一种技术,倒不如说其是一种架构理念,作为一种新的软件开发范型,通过松耦合方式更好的实现了软件资产的复用,因而可以很方便地构建业务敏捷的应用系统,以应对不断变化的市场环境和用户需求。如今,很多企业都感受到了SOA的浪潮,大部分企业也都在考虑构建他们的SOA方案。那么如何才能构建一个成功的SOA呢? 在笔者看来,企业在成功地构建SOA之前需要注意以下这些问题:
选择有“份量”的SOA项目负责人
SOA的部署是一个漫长而复杂的过程。因此在项目启动之前,首先我们需要确定一个项目的整体负责人。该负责人在企业中的“分量”要足够重,至少要能调动其他业务部门的主管或者经理来配合或协助SOA项目的实施。除此之外,在企业SOA实施的过程中,还需要根据不同服务的界定,有相应明确且又合适的人选,以保障该项目的顺利进行与实施。就如同:如果出了什么问题,你甚至可以在凌晨3点也知道应该给谁打个电话询问原因。
业务部门经理需全程参与SOA部署
SOA作为企业基础架构,涉及企业的全部业务流程以及所有业务部门,因此企业SOA的实施需要所有业务部门的配合与协助。在此过程中,企业各业务经理对 SOA本身及其价值的理解至关重要。除此之外,SOA的部署还需要各个部门业务经理员的全程参与,以避免忽略或偏离整体战略的目标计划。
因为每一个案例研究都为业务部门提供了巨大的价值。在一些案例中,几年里的投资回报多达数十亿美元。因此,让业务经理了解SOA所具有的价值至关重要。业务部门必须了解自己部门的关键业务、了解自己部门的业务需求,了解IT技术帮助实现关键业务的“新方法”。业务部门不一定需要知道IT将如何去做,只需要懂得SOA能帮助他们解决哪些问题和需要业务部门用什么方式来帮助和配合IT部门工作的顺利开展。
确定SOA实施当中不可缺少的技术
SOA部署不是简单的一项技术应用,也不是简单的一个系统整合。它所涉及的技术和系统会因为企业所在行业与领域的不同而有所差异。但无论怎样,我们都要在SOA创建之前,为SOA的创建确定一些标准的做法和模式。
SOA的实施必然具有一定的可变性而不仅仅只是单纯的技术方面的一种依赖,由此而来对于其实施的差异性在所难免。但是,如果我们至少能够确定下来某些类型的SOA应用必定会在SOA的实施方面减少混乱。例如,在SOA应用中会要求依赖Web服务,尽管又会有各种各样的声音说道:“SOA并不是仅仅只是一堆服务的累积”,但在通常情况下,Web服务确实就是一个具体的SOA应用所不可缺少的关键组成部分。同样,ESB可以在SOA应用中广泛的作为消息方面的服务总线而工作着,当然,这还可以有别的其他选择。
有针对性的选择治理策略
治理,能够让你清楚的看到实现最终目标还有多少的距离。正是因为治理的存在,才能给予你业务的效率以及敏捷性以最有效的支持,保证在复杂的技术环境中提高质量。
制定太多的政策就如同完全不制定政策一样糟。太多的政策只会让治理变得复杂且无法运作,所以,选择有针对性的政策是必须的。如果缺少了某项政策导致了治理过程中出现了不可避免的惨痛代价那这个政策的存在则是有必要的。换句话来说则是,如果你能够确定取消某项政策对于整个治理过程而言其实并不会带来什么严重的影响,那这项政策则是可有可无的。
充分考虑软件重用性的代价
软件的重用性早在二十世纪六十年代就已经是作为第一次出现在课本上的“面向对象”的目标了。但是,重用的代价是非常昂贵的。
具有可重用性所需要的成本大概是2.5倍于普通的软件。如果你想根据你的客户的需求处理可重用性问题的话你必须得事先考虑到这一点,而这一部分成本还不包括之后对客户给予的支持成本。
SOA架构要以实效为主
企业架构师需要知晓很多内容,但是,尽善尽美不应该是最终的目标。
尽善尽美的架构体系是不可能出现的,即便你费了足够的心血,花了足够多的时间,因为业务的变化可能正出现在你工作的同时,而你又无法避免。这就像是试图去达到彩虹的尽头一样无法实现。
一个好的架构体系和好的流程能够给你带来的是敏捷性的提升,而对于业务需求而言这样的好处也远远高于一个看似完美的架构体系。完美是不可能达到的,而正是如此才凸显了治理的重要性,因为这正是达到完美的一个过程。
总结
随着SOA理论的发展,各种关于SOA的规范和标准将不断出现,如SOAP、WSDL、ESB、 BEPL等,它们的出现象征着SOA将逐步走向成熟,对于企业构建一个成功的SOA将不再是难题。