【IT168 专稿】
什么是企业继续进行面向服务架构(SOA)的非常好的实践?SOA可以将服务与特定业务紧密联系在一起。而这需要系统有良好的松耦合性和粒度。这使得治理似乎成为管理SOA系统的关键,特别是在开始阶段。
近日,在旧金山举行的企业架构实践者大会(Enterprise Architecture Practitioners Conference)上的一个专家小组基于实践对SOA治理的相关问题进行了讨论。小组成员个个都是专家。他们包括:
- Andre Hately:IBM软件标准部门(software standards group)高级技术人员,精通服务发现、网络发现和服务管理标准在产业与业务方面的应用。
- Kyle Gabhart:Web Age Solutions公司SOA技术部门主管,负责基于Java、.NET和XML的面向服务技术的开发。
- Stephen Bennett:BEA公司美国SOA实践领导人,主要研究SOA企业与治理。
- Michael Nassar:企业集成架构师,专门研究IBM的SOA与Web服务技术,特别是提供Web服务连通性的IBM WebSphere企业服务总线方面的研究。
- Mats Gejnvall: Capgemini公司的认证企业架构师,专门研究企业架构和大型组织(比如电信、供应链和国防工业)的SOA架构。
SOA治理的成功案例?
人们希望专家能提供关于SOA治理的成功案例。得到的回答却是“还不到时候”。
Gejnvall说,在瑞典SOA治理还处于开始阶段。他说:“这就是我们开发这些框架的原因。”
Bennett的观点与此一致,他说“这是一个尚需多年才能完成的工程”,客户还有抵制心理,除非遇到解决不了的问题,否则他们不会认真地考虑SOA治理。
Bennett说:“这需要大规模地宣传,并有成熟的激励模式,否则就会失败。”他还强调了信息库的重要性,“为避免陷入困境,必须有可供随时查阅的资料。”
Nassar举了一个例子说明治理的重要性。他描述了一个正在开发Web服务的保险公司。当他们需要重用时,却发现他们开发的服务没有可重用性。开发人员为特定需求修正服务时没有考虑公司的整体需求。他们陷入了版本更替的困窘,比如用16个不同的版本实现同一个服务。直到Nassar的团队加入后才解决了这个版本更替的问题。
Gabhart谈到了华盛顿区域的国防部门。他说,“他们着手建立整个架构,然后把最后一步称之为‘治理完成’。他们以为整个架构完成后治理就会自然发生。” Gabhart的团队不得不建立关键控制点(key gate),让他们明白治理是全局性质的,是发生在整个开发过程中的。
企业架构(EA)与SOA治理
当问及SOA治理与企业架构治理的不同时,Gabhart指出,各企业将企业架构、SOA或业务流程管理(BPM)作为“巨大的保护伞”。他看到三种趋势正在形成:
- 需要IT与业务目标和流程相结合;
- 需要业务单位之间的一致性;
- 需要为精准的企业策略建立标准。
Gabhart说,“IT技术并不是只能用在服务器上,还可以用来提升可视性,用来实现业务目标。”
Bennet谈了一些企业架构治理失败的公司,总结道,“以组合或交互的方式进行可能更有效些。”这也有助于从一开始就实行治理。Bennett说,“通常SOA会放大存在的问题。如果过去在企业治理上存在问题,SOA更会使之恶化。因此必须从一开始就把问题解决掉。”
Nassar认为SOA是IT的扩展。他说,“我们采用SOA主要是为了实现服务的重用。你必须有可以保证服务重用性的方针:控制应用与重用的规则和策略。”
Gejnvall说如果公司原先没有企业架构治理,那么SOA治理将承担企业架构治理的责任。他认为“它们(SOA&EA)有很好的适应性。”
万灵油架构?
Sun公司的Dave Estrom提出了不同的观点,他说,“我认为SOA是万灵油结构的代表……但客户要的是细节,而不是敷衍。”
Bennett回复说,并没有完美的SOA治理标准。他解释道,Web服务互操作性组织(WS-I)提供了一些产业标准,但SOA治理更多的是关于“建立内部的IT标准并依从。
对于Nassar来说,SOA即是建立为公司接受输入信息的核心实体。这意味着要保证所开发的服务满足企业的需求,而不能偏重于某个部门的需求。然后便是服务注册,“比如可以使用IBM公司的WebSphere Service Registry和Repository。如果没有这样的工具,便不能实现高层次的治理和可靠性。” 他还说,“由于迫切需要使用工具进行分析,需求分析之类的工具也就变得更为重要。”
Gabhart提到了国防部的案例,他说他们做的大都是关于元框架的东西,这是“SOA中还不太成熟的一个领域”。因此他应用了相对比较成熟的设置对产品进行管理,采取了相对稳妥的措施。
Gejnvall说“治理标准是我们一直在争论的一个问题”。对于他来说,治理就是“公司管理下的所有东西都要有一个标准。这是一个实施的过程。” 他还提到,信息系统与技术控制目标(COBIT)与开放组体系结构框架(TOGAF)是两种推荐标准。
然而,Bennett说他们的团队尝试使用COBIT标准时却“几乎没有从COBIT组织得到任何反馈信息。差不多六个月或九个月以前我们曾尝试着联系他们,但没有成功。”
从企业架构治理开始实现SOA
当问及能否提供一个治理方案时,Gejnvall认为,从理想的角度来说,应该从企业架构治理开始,然后才是SOA。之后,在SOA开发过程中建立治理,确保企业架构管理的正确性。
Bennett认为要提前准备好策略以节省成本。 他说,“SOA涉及许多需要治理的资产。因此要保证策略的实用性。”
对于Nassar来说,SOA则是“一场自然进化”。应该采用能保证服务可靠性的治理方法。并且“我们遵从的其它标准仍然可用” 。
Gabhart还指出“最终结果取决于业务需求。”接着,他又抛出不同于其它专家的观点:“我并不认为重用性就是我们的目的。我们已经为此奋斗了三十年,却没有太大的进展。或许应该是敏捷性,或者一致性。不管动机是什么,治理都是实现公司价值目标的风险投资策略(risk mitigation strategy)。”
如何实现SOA治理
专家小组还被问及关于如何实现SOA治理的问题。Bennett说这是心理学的问题:要了解公司现在是如何运作的。比如重用性,“我们总是可以达到部分目标,但决不会取得完美的结果。”他还说,“我花费了许多精力进行IT重组并尝试在业务线中进行应用。”
Nassar对重用性有不同的观点,他认为这是可以完美实现的。他表示将来通过某些应用构建可重用的服务时需要“一流的工具,这样才能进行更紧凑的、系统的软件开发。”比如需要需求分析工具、业务建模工具,以及系统工具和资产注册工具。
Gabhart开玩笑地说,“我所知的最有效的治理工具是Excel和Visio”。他说,应该进行一些讨论,比如关于如何采用/改变/建模SOA以统筹政策框架、人力和资源、使用wiki等。他还说,许多有价值的东西并不需要有重用性,比如一次性纸盘、纸杯和尿布。
SOA治理能减少开发成本吗?
专家小组被问到这样一个问题:如果某首席技术官(CTO)要求通过SOA治理减少开发成本,你认为可行吗?Gejnvall说不行,Bennett也同意他的观点,还说,虽然治理可以做到这一点,但需要大量的学习与宣传。
Nassar说,治理最终是可以节省成本的,但不是短期内可以实现的。SOA治理“能提供很好的灵活性和敏捷性,这样我们可以更快速地反应或改变组合应用,达到一次成功的目的。”
如何让治理深入人心?
当问及采用何种政策让治理的观念深入人心时,Bennett说最有效的方式是强制执行模式。但这不太符合道德标准,并且大多数人缺少强制执行到底的威信。因此一般都采用激励模式,包括增加奖励和改变职业机制。 他说,“现有的雇员很难完成这项任务。因此我们从外面聘用了一批新的高级雇员。”
Gejnvall不同意这种激励模式。 “如果你有一个项目让他们开发一个服务,他们将得到更多的钱,包括时间。如果其他人重用服务,这些人会得到还要多的钱。”
Gabhart说,并不是他反对重用,他只是“怀疑”。“我也知道有很多决策人持有怀疑的态度。”他提到要将重用作为前提并要求开发人员重视这个前提。或为每一个重用性的成功实现提供1000美元的即时奖金,“虽然这样你又得需要质量保证部门来防止作假。”对于Gabhart来说,虽然“治理尚不完美,但你需要用它来避免或减少错误。”
最好的治理方法是什么?
有没有相对较好的SOA治理方法呢?Bennett认为以前的瀑布模式不错。他说,“如果有个精英团队,你就能使用灵活的方法。”
Nassar喜欢极限编程的方法(XP),因为这种方法能“更快地找出问题所在”。
Gabhart认为这更多的是一个时间问题。如果治理实行得太晚,“就会产生一种不好的趋势。即使感觉毫无用处,也应该在最开始的时候将治理模式建立起来。然后你可以随SOA的发展逐渐完善治理。”
治理优先级?
在被问及服务、解决方案、资料及服务架构的治理优先级时,Gejnvall提供了一种选择。他说,“首先要确定所用的解决方案是否可重用。”
但Bennett提出“如果你毫无头绪,那就从资料整理开始,或者如果可以的话,从服务开始。完成度和SOA应用将会告诉你优先级顺序。”
Gabhart则认为,你得保证服务是“不可动摇的,100%可靠的。如果服务不可靠,那一切都是空谈。然后才能进行下一步。”