技术开发 频道

SOA的关键:集成业务逻辑和应用开发

【IT168 分析评论】

    为了合理化Web服务的部署,SBS决定创建一个统一的架构,这个架构提供识别,开发和管理服务。一个坚实的SOA基础将让SBS把服务分解成可重用的组件,这样将减少整个开发的工作量,尽管这样也需要对业务需求和服务需求有清晰的认识。

    早在四年前,Sprint的IT员工已经朝着面向服务的架构前进了。只是他们还不知道而已。

    当开发人员最初把Sprint的后端系统暴露为可重用的组件的时候,Web服务的概念仍然还没有被很大程度的验证。以前,他们通过一系列的独立站点和B2B的接口来连接公司的部门,客户和合作伙伴到他们的主机系统。作为一个有着超过10,000个公司的客户群体的全美最大电信提供商之一,这样一次性的方法无论如何是不能支撑很长时间的。

    四年前,一个本地的电话服务业务部门开始开发一些Java应用,这些应用包括一些基本功能,如登陆和密码重置,以及一些客户任务,如服务订单和账号更新。在认识到模块方法的好处后,其他业务部门迅速参照着做。不幸的是,这样导致了多重的,并行的Web服务开发工作。Sprint的开发人员重复的创建了同样的模块,浪费了开发的时间和费用。

    “我们有大量不同的平台和技术,因为为了满足业务和客户的需求,每一个设计都得到了发展,”Sprint业务服务(SBS)部门企业中心的Web服务程序经理Edmund Vazquez回想道。“我们常常会规划核心功能。而不鼓励重用核心底层架构的组件。”

    为了合理化Web服务的部署,SBS决定创建一个统一的架构,这个架构提供识别,开发和管理服务。一个坚实的SOA基础将让SBS把服务分解成可重用的组件,这样将减少整个开发的工作量,尽管这样也需要对业务需求和服务需求有清晰的认识。

    为了管理SOA和上面开发的服务,SBS创立了两个独立的IT部门。一个关注整个架构和策略,另一个着重服务自身的开发和集成。这样保证架构维护和应用的一致性,而开发团队只是关心他们自己的具体业务逻辑。

    当然,转变不是一夜完成的。按照Vazquez的说法,这不用这么做。“采用SOA最好的方法是采用,实现和部署,也可以这样增量迭代进行,只要你做好前期规划,”他说。

    可管理性的建立

    架构上,SBS定义了三种服务:原子,聚合和组合服务。原子服务可以暴露一个单一的API,而且通常是一个自然事务。聚合服务可以包含有调用顺序的原子服务,就像一个Java类调用其他类一样。另外,组合服务则需要编制和编排。

    一个组合Web服务实现了一个工作流程,可以包括多个原子或聚合Web服务,其中包含管理数据流程。在一些情况下,SBS用Vitria EAI(企业应用集成)平台在Web服务层次上来实现组合服务流程,Vazquez说。B2B部署中,SBS也用BPEL(业务流程执行语言)编制服务。

    现在回顾起来,Vazuez说实行原子路线是非常好的的选择,即使因为时间都花费在把功能分解成基本的组件上,而导致初始开发时间变得更长。这样做可以让开发人员创建更多的可重用组件,当清楚整个顺序的服务是可重用的时候,能够轻松的构造聚合和组合组件。

    相比较而言,Vazquez回想起早期的一些Web服务由于太过于特定,导致没有其他人能够使用它们。“它们在技术上叫Web服务,实际上只是一些应用而已,”他说。

    对于服务之间的消息传递,SBS依靠基于Infravio公司的X-broker平台的WSM(Web服务管理器)来实现,它可以处理原子和聚合服务,还可以提供Web服务注册。

    SBS用EJB封装器把主机应用封装成“虚拟服务”,使用SOAP,WSDL和XML Schema暴露应用的功能。这样表示满足两点需求:当提供给贸易伙伴一个基于标准的方法来使用服务时,它可以保障EJB内部业务逻辑的私密性,Vazquez说。

    因为SBS服务供应商和客户使用了更广泛的技术,系统支持几种数据交换标准。扁平文本文件和基本的XML是最常用的选择。

    “我们对特殊类型的领域使用特殊的XML标准,例如TML,eTom,ngOSS以及其他被电信行业协会开发的标准,”Vazquez说。“在所有标准中,这儿最大的挑战是在贸易伙伴之间标准的采用率。”

    Vazquez解释,在电信行业中,对XML特殊扩展是普遍的,因为客户数据和语音沟通经常会横跨多个网络和服务提供商。“但是我们不能在定义标准企业XML Schema方面做的太多,”他补充说,功能的多样性和客户的差异性使得开发这样的XML Schema标准变得太笨重。

0
相关文章