面向服务是在面向对象、构件开发、分布式计算的基础上,提出的一种新的软件开发、部署和集成模式,能够较好的解决日益复杂的软件开发问题[2]。面向服务的构架(Service Oriented Architecture,SOA)最重要的特点是把服务的实现与接口分离,服务消费者只需知道服务是一个支持特定格式和规则的端点,而不需知道其是如何执行的,只要发布和获取服务,则可获取共享数据。
SOA的通用模型(见图6-1)由相对独立的服务提供者、服务中介和服务消费者三方协同工作所构成的。服务消费者向服务中介请求服务,服务中介接受、注册并发布服务。服务消费者把已发布的服务复用、组装,执行消费者请求的任务。服务,可以在开放的环境中,动态地发布、复用、组装和绑定,不依赖任何特定的平台。SOA实现了松散耦合的设计方法,使不同计算平台的异构系统可以协作发展,而不需对核心体系结构做很大修改,并且为实现便捷的空间数据共享奠定了基础。
图6-1 SOA通用模型
从概念上来说,SOA主要有三个抽象级别:操作、服务和业务流程。操作位于抽象层的最底层,代表了单个逻辑工作单元(LUW)的事务。服务位于第二层,代表了操作的逻辑分组。业务流程位于最高层,其是为了特定业务目标而运行的动作或活动[3]。
从建模的观点来看,服务架构所面临的挑战是如何描述和构造设计精准的操作、服务和业务流程。目前现有的开发流程和表示方法(OODA、EA和BPM)还不能满足SOA范式所需的部分要求。SOA方法在加强原有通用软件体系结构原则的同时,增添了服务编排、服务库和服务总线中间模式的主题。因此,在建模时应整合目前的方法,取其精华,并融入新的方法。这种方法把所有这些规则中的原理与许多独特的新原理组合起来。这样得到的交叉学科OODA方法使进行SOA开发更加容易,我们称之为面向服务的分析与设计(SOAD)。这种方法以最佳的方式组合了OODA、EA和BPM中的原理,并且融入了一些具有创新性的原理,总体来说,OODA、EA和BPM分别从基础设计层、应用结构层、和业务组织层三个层次上为SOAD提供了理论的支撑。(www.xing528.com)
SOAD的第一层是基础设计层,采用面向对象的分析与设计(OODA)思想,其主要目的是能够快速、有效的设计、开发及执行灵活且可扩展的底层服务组件。对于设计已定义的服务中的底层类和组件结构,OO是一种很有价值的方法。但目前与SOAD有关的OO设计也存在着一些问题:OO的粒度级别集中在类级,对于业务服务建模来说,这样的抽象级别太低。
SOAD的第二层是架构层,采用企业体系结构(EA)的理论框架。企业应用程序和IT基础架构发展成SOA是一个庞大的工程,其中涉及到众多的业务线和组织单元。因此,需要应用EA框架和参考体系结构来实现单独的解决方案之间体系结构的一致性问题。在SOA中,架构层必须以业务服务的逻辑构件为中心,集中定义服务之间的接口和服务级协定(Service Level Agreements,SLA)。
SOAD的第三层是业务层,采用业务流程建模(BPM)规则。而BPM是一个不完整的规则,其中包含许多不同的形式、表示法和资源。现今应用较广泛的是统一建模语言(UML)。SOA中必须利用所有现有的BPM方法作为SOAD的起点。同时需要服务流程编排模型中用于驱动候选服务和它们的操作的附加技术来对其加以补充。此外,SOAD中的流程建模必须与设计层用例建模保持同步。
SOAD以OODA、EA和BPM为基础,在SOA架构业务和IT实现之间搭建了一个桥梁,并且为SOA项目的分析和设计提供了一套理论方法。随着实践的深入,SOAD还有待于在理论和实践上得以完善。
综上所述,相比传统的软件构造方法,使用SOA以及改进的SOAD方法来构建复杂软件具有很大的优势。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。