技术开发 频道

全面实施SOA

【IT168 技术文章】

    众所周知,面向服务的架构不是什么新架构。SOA的几个先行者如通用对象请求代理体系结构(CORBA)和分布式组件对象模型(DCOM)使用松散耦合、面向服务的方法,已经成功地为不同应用架起了桥梁。SOA这股潮流新就新在SOA不仅仅涉及服务。日益兴起的互联网和XML为数据交互敞开了大门。软件行业以前所未有的力度支持通用的数据交换格式(XML)和互联网传输协议。因而出现了一大批得到公认、开放的标准,它们能够实现SOA的承诺:支持业务流程的灵活配置、减少操作成本、能够动态发现服务,并且在诸多应用、部门和交易合作伙伴之间提供无缝集成。

    但很遗憾,让企业和技术人员大失所望的是,SOA的这些美好承诺并没有得到兑现。这倒不是因为承诺本身有什么不对,而是因为如今实施的SOA大多数其本质都是试验性的。好消息是,我们可以从SOA试验项目中汲取宝贵经验,而这些经验有助于SOA试验项目变成能够充分发挥SOA潜力的企业级实施项目。

    SOA的目标

    我们在探讨通向SOA的道路面临的挑战之前,不妨先退后一步思考,重新分析一下启动SOA实施项目的组织通常有哪些目标。

    一、获得流程的可见性和灵活性

    席卷全球的SOA潮流无疑是合情合理的潮流。SOA已经逐渐融合了分布式计算领域的几个重大变化。许多组织总是大力投资技术,以便领先竞争对手,而SOA正是提供了这种突破性机会。与此同时,许多组织还一直在改善业务流程,以充分发掘竞争优势。新出现的业务流程管理(BPM)有望不断改进流程、促进业务部门和IT部门之间实现前所未有的协作。SOA是集大成者,在它的统领之下,多家组织齐心协力,获得全面了解数据和流程的可见性、不断进行改进,并且以一种有效、透明的方式实施细粒度控制。

    二、消除孤岛

    SOA的第二个目标就是消除应用、部门、交易合作伙伴当中的孤岛(silo)。这些孤岛是由于多年的软件开发工作形成的,SOA有望消除这些孤岛,让组织获得更清楚地了解数据及流程的可见性。

    三、管理更准确的数据

    一家组织不但需要更有效地管理数据,还需要管理更准确的数据。确保这一点很重要:跨组织及交易合作伙伴生成及使用的数据是干净的、可靠的、安全的、妥善管理的、易于获取的。SOA的目标之一就是,为组合式数据服务平台提供一套统一的组件,这些组件用于数据存取、质量、转换、管理、缓存及其他许多以数据为中心的服务。

    四、重复使用服务

    SOA的一个相关目标就是有效地管理及重复使用企业的服务和数据。如果由组织内某一部门开发的服务在易于访问的注册中心里面采用标准格式发布并加以描述,它们就可以供该组织内外的其他任何部门使用。如果数据和服务属于所有者,使用者需要时,又可以共享它们,就能减少与维护及管理数据和服务有关的操作成本。重复使用是SOA最主要的优点之一。

    五、统一组织目标

    SOA的另一个目标就是协调业务部门和IT部门,共同实现组织的目标:有助于更好地开发灵活、可配置的业务流程。在过去,业务部门和IT部门几乎采用独立的方式来提高组织的经济效益。而作为SOA的一个方面,BPM可以消除业务和IT之间的分歧,因为它采用了业务部门和IT部门之间通用并且都能理解的一套术语,通过建模、模拟、执行和监控等手段,能够不断改进流程。

    SOA实施现状

    我们已经知道了SOA的目标,现在看一下几个迫切需要实施SOA的行业实例。几个行业如今正面临法规驱动的监管压力,譬如金融服务业的《萨班斯-奥克斯利法案》和可扩展商业报告语言(XBRL),或者是制药业供应链中的药品“谱系”。这些法规遵从措施要求各组织从散布于诸多IT系统的孤岛收集数据,有时还要求与第三方的Web服务进行集成。这些数据往往必须进行清理,转换成标准格式,以便能够交换数据。

    另一个例子出现在供应链上下游需要应对无线射频识别(RFID)技术的各个IT部门。RFID能够实时监控供应链,从而提高效率、改善运作。不过,大多数供应链和IT应用并不牢靠,因而没法使用RFID提供的实时、细化的数据。正如我们所知,SOA大大减小了集成的复杂性,并且让解决方案的完善能够适应未来需要,又不会给生产环境带来很大影响。

    非SOA或者半心半意的SOA方案会导致需要定制集成,这需要大笔费用,还会使系统更加呈现紧密耦合的特性,从而使问题更为严重。

    如今,大多数IT部门只是在尝试SOA而已。有些IT部门在小规模部署服务,供内部使用。许多部门正在遗留应用上面构建服务封装器(service wrapper),以便获得重用性、降低运作成本。不管怎样,SOA实施的重心似乎放在了服务层上。

    概念有待澄清

    SOA这一术语其实用词不当。SOA与其说是一种架构,还不如说是一套方法,如今,SOA的每一层都有好多种实施方法。AMR研究公司近期的一份调查表明,Web服务是许多组织构建服务的最主要方法,但集成框架、平台、应用服务器和业务流程管理服务器也得到了积极使用。构建服务层的选择非常广泛,这也许是桩好事;不过对考虑实施SOA的许多组织而言,这也是导致概念混淆的根源之一。许多组织为了弄明白外人难以理解的技术行话,并且确认合适的服务实施方案,已耗费了太多的时间和精力,结果它们无力顾及行之有效的SOA的其他同样重要的部分,于是决定仅仅构建服务层,迫不及待地想感受投资带来的好处。结果,实施的这些SOA到头来成了概念证明而已。它们并没有经过精心考虑,也无法解决重要的问题,譬如可扩展性、安全和治理。

    成功实施企业级SOA面临许多挑战。许多组织把大部分精力用在了服务层上,但构架的核心部分:SOA注册中心和存储库却设计得不够好,无法进行有效扩展。

    SOA原型证明了潜在的好处,但通向真正的企业级SOA这条道路显得困难重重,大多数组织都不敢上路。企业必须认识到:要发挥SOA的潜力,单单服务层是不够的。组织制订的目标与实现这些目标的SOA各部分之间要有切实的对应关系。

0
相关文章