论面向服务的架构及其应用
论面向服务的架构及其应用
摘要:传统的架构在一个完整的软件包中将许多应用程序功能混合在一起,这种方式称为“单一应用程序”,这样加大了系统的复杂性,增加了维护系统的成本,并且不能重用,SOA将应用程序的不同功能单元进行拆分,服务创建后能用于多个应用和业务流程,并通过这些服务之间定义良好的接口和契约联系起来,将单个应用程序功能分开,以便这些功能可以单独用作单个的应用程序功能或“组件”。这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。 SOA 允许一个企业高效地平衡现有的资源和财产,这种体系能够使得IT 部门效率更高、开发周期更短、项目分发更快,在帮助IT技术和业务整合方面有着深远的意义。
关键词:面向服务 技术标准
1.软件开发项目简介及主要工作
SOA旨在将单个应用程序功能彼此分开,以便这些功能可以单独用作单个的应用程序功能或“组件”。这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。它有助于实现更多的信息资产重用、更轻松地管理和更快地应用开发与部署。
在SOA架构中有着三种角色,分别使服务提供者、服务注册中心和服务请求者。服务提供者向服务注册中心发布自己的服务,并且对服务请求进行响应,服务请求者利用服务中心请求满足其标准的服务,然后使用该服务并返回服务提供者的信息,在检索到服务描述之后,服务请求者继续根据服务描述中的信息来调用服务。
服务是一个自包含的、无状态的实体,可以由多个组件组成。它通过事先定义的界面响应服务请求。它也可以执行诸如编辑和处理事务等离散性任务。服务本身并不依赖于其他函数和过程的状态。用什么技术实现服务,并不在其定义中加以限制。 服务提供者提供符合契约的服务,并将它们发布到服务代理。 服务请求者也叫服务使用者,它发现并调用其他的软件服务来提供商业解决方案。从概念上来说,SOA 本质上是将网络、传输协议和安全细节留给特定的实现来处理。服务请求者通常称为客户端,但是,也可以是终端用户应用程序或别的服务。 服务代理者作为储存库、电话黄页或票据交换所,产生由服务提供者发布的软件接口。
对于一个SOA系统必不可少的就是基础设施、已有资源、企业服务、流程模型、服务展现和系统工具。在基础设施和已有资源都已具备的基础上,开发和构建一个SOA系统还需要我们设计开发出符合标准的服务,这是整个SOA系统最核心的要素。基于标准服务,借助流程编排工具和建模工具,组织构造流程,生成流程模型,更好地满足业务需求。实际构建和开发SOA系统,具体包括服务和应用程序的开发,数据的访问、处理和管理,及对服务各种形式的展现等。
在一个SOA系统中,必不可少的一项工作就是发布自己的服务,并且对服务请求进行响应。SOA的业务流程是由一系列业务服务组成的,为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。利用现有的资产包装成提供企业功能的服务,在现有的资源中继续获得价值,通过利用现有的构件和服务,减少完成软件开发生命周期所需的时间,能够快速开发新的业务服务。
2.面向服务架构的主要技术和标准
面向服务架构主要应用在企业应用集成领域,它能够以服务的方式共享和复用企业现有应用资产对组织中的业务流程进行灵活的重构和优化,增强业务的敏捷性,主要技术和标准分为以下几方面:
连接服务又称连通服务,是面向服务架构的骨干,在完成服务的接入,服务间的通信和交互基础上,还提供安全性、可靠性、高性能的服务能力保障。连接服务的一个典型实现就是企业服务总线。
协作服务通常由通信代理和Web服务代理两部分组成。通信代理与连通服务中的通信代理实现内部有效的数据通信,Web服务代理与外部的公共注册中心交互,注册本平台对外开放的Web服务以及查找所需要访问的外部’Web服务。协作服务既可以实现组织之间(如供应链的合作伙伴之间)的交互通信,也可以实现组织内部之间的交互通信。
业务服务指为新建服务提供的特定运行支持环境。新建服务包括单个服务以及合成服务,不包括流程化的服务。合成服务由应用编码实现,它可以调用其他的服务。业务服务与连通服务相联接,其中的新建服务与其他服务的通信和交互通过连通服务来实现。业务服务的运行信息由运行管理服务保存,业务服务也接受并执行运行管理服务的管理和控制命令。
流程服务是业务流程的运行环境,提供流程驱动、服务调用、事务管理等功能。流程服务是为业务流程的运行提供的一组标准服务。业务流程是一组服务的集合,可以按照特定的顺序并使用一组特定的规则进行调用。业务流程可以由不同粒度的服务组成,其本身也可视为服务。
交互服务实现人与服务之间的交互功能。人可以是服务的消费者,也可以是服务的提供者。人不能直接消费服务,也不能直接提供服务,需要通过相应的程序实现代理操作。交互服务就是需要提供一组完整的功能,以实现人与服务的交互,并能够方便地进行交互。人员需要请求服务时,向连通服务发送消息请求,由连通服务查找服务,并将请求消息传递给服务提供者。
信息服务特指为上层应用系统、同层的其他服务等提供数据访问及资源访问服务。其目标是使应用系统能够统一、透明、高效地访问和操纵位于网络环境中的各种分布、异构的数据资源,为实现全局数据访问、加快应用开发、增强网络应用和方便系统管理提供支持。
SOA从面向对象、软件架构等方面逐步完善,相互依托、相互补充,它依赖于XML和Web服务实现以软件的形式存在的更加具体的观念和技术,它也需要考虑到安全性,可靠消息传递等方面的问题,从而有效的进行工作。
3.构建SOA架构遇到的问题以及解决方法
在构建SOA架构时成本预算有限,我们需要在有限的成本中更好的完成SOA架构。我们可以对原有系统架构中的集成需求进行细致的分析和整理,面向服务的体系结构是当前及未来应用程序系统开发的重点,面向服务的体系结构本质上来说是一种具有特殊性质的体系结构,它由具有互操作性和位置透明的组件集成构建并互连而成,我们并不需要彻底重新开发子系统,我们可以考虑重用已有的资源,这样就节约了大量的成本。当我们遇到了一个十分复杂的企业系统,我们首先需要考虑的是如何重用已有的投资,因为如果把整个系统进行替换,这样的成本是十分昂贵的。
当SOA架构师分析原有系统中的集成需求的时候,不应该只限定为基于组件构建的已有应用程序的集成,真正的集成比这要宽泛得多。在分析原有系统集成需求时,我们要更加全面的考虑集成的类型,可以从以下几个方面进行考虑:应用程序集成的需求,终端用户界面集成的需求,流程集成的需求以及已有系统信息集成的需求。在分析和评估现有系统中的集成需求时,会发现实际上所有集成方式在任何种类的企业都有一定程度的体现。针对不同的企业类型,这些集成方式可能是简化的,或者没有明确地进行定义的。因而,SOA架构师在着手设计新的体系结构框架时,必须要全面的考虑所有可能的集成需求。
4.结语
SOA最适合应用于系统集成,系统集成的关键就是提取公共的有价值的服务。各个系统通过暴露服务,经过ESB这条总线连接后,将系统集成起来,能够让软件开发的效率更高,开发周期更短,成本更低,这在未来的软件开发中前景十分广泛,
参考文献
[1]李占卫.SOA架构师注意的问题.
https://www.cnblogs.com/tommyli/archive/2008/07/16/1244456.html:博客园,2008年
[2]百度文库.面向服务的架构标准 领先技术不意味厂商锁定.
https://wenku.baidu.com/view/6a3bbd0f6c85ec3a87c2c509.htmll百度文库,2011年