SOA
SOA
发表日期:2020.5.13
崔峻峰
石家庄铁道大学,河北省石家庄市 050000
摘要:面向服务架构(Service-Oriented Architecture, SOA) 是一种应用框架,将日常的业务应用划分为单独的业务功能服务和流程,通过采用良好定义的接口和标准协议将这些服务关联起来。通过实施甚于SOA的系统架构,用户可以构建、部署和整合服务,无需依赖应用程序及其运行平台,从而提高业务流程的灵活性,帮助企业加快发展速度,降低企业开发成本,改善企业业务流程的组织和资产重用。
关键词:面向服务架构;接口;标准协议
1什么是SOA
面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型。它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来;接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和 编程语言;构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。 Web service是技术规范,SOA是设计原则。从本质上讲,SOA是一种架构模式,而web service是利用一组标准实现的服务。Web service是实现SOA的方式之一。用web service实SOA的好处是:可以实现一个中立平台,来获取服务,获取更好的通用性。Web Services的目标是即时装配、松散耦合以及自动集成。
2为什么要使用SOA
不同种类的操作系统,应用软件,系统软件和应用基础结构(application infrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(business processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(application infrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organic business)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。
在企业中,关键任务系统(mission-critical system,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性,可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,quality of services)。与QoS相关的众多规范已经由一些标准化组织(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分将会讨论一些QoS服务和相关标准。
服务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要求被定义为策略断言(policy assertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。
传统的架构,软件包是被编写为独立的(self-contained)软件,即在一个完整的软件包中将许多应用程序功能整合在一起。实现整合应用程序功能的代码通常与功能本身的代码混合在一起。我们将这种方式称作软件设计“单一应用程序”。与此密切相关的是,更改一部分代码将对使用该代码的代码具有重大影响,这会造成系统的复杂性,并增加维护系统的成本。而且还使重新使用应用程序功能变得较困难,因为这些功能不是为了重新使用而打的包。
SOA旨在将单个应用程序功能彼此分开,以便这些功能可以单独用作单个的应用程序功能或“组件”。这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。
3 SOA工作流程
SOA架构中有三种角色:服务提供者:发布自己的服务,并且对服务请求进行响应。服务注册中心:注册已经发布的web service,对其进行分类,并提供搜索服务。服务请求者:利用服务中心查找所需要的服务,然后使用该服务。
SOA的三种操作:发布操作:为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。查找操作:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。绑定操作:在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。
SOA的相关标准SOAP: 简单对象访问协议 (Simple Object Access Protocol)WSDL: Web服务描述语言 WSDL (Web Services Description Language) UUDI: 统一描述、发现和集成 (Universal Description,Discovery and Integration) WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
4 SOA体系三大核心部件
ESB(Enterprise Service Bus)企业服务总线ESB是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
BPM(Business Process Management)业务流程管理所谓业务流程管理是指根据业务环境的变化,推进人与人之间、人与系统之间的整合及调整经营方法与解决方案的IT工具。BPM可以使系统更为强壮,通过BPM组件,SOA能够更好地监控它连接的系统。
Portal 门户 门户是一个基于WEB的应用程序,它提供个性化、单点登录、不同来源内容整合及存放信息系统的表示层。 Portal是低成本的集成技术。如果企业已经有了很多信息系统,Portal可以很容易的将这些系统集成到一起,并以统一界面方式提供给用户。
5 如何构建SOA
一个SOA系统要具有以下六大关键要素——基础设施、已有资源、企业服务、流程模型、服务展现和系统工具(包括开发、测试和管理工具等)。在基础设施和已有资源都已具备的基础上,开发和构建一个SOA系统要包括以下几方面的工作:首先需要设计开发出符合标准的服务,这是整个SOA系统最核心的要素。基于标准服务,借助流程编排工具和建模工具,组织构造流程,生成流程模型,更好地满足业务需求。实际构建和开发SOA系统,具体包括服务和应用程序的开发,数据的访问、处理和管理,及对服务各种形式的展现等。
6 SOA的主要优势
服务导向架构并不是一种全新的解决方案;相反,SOA是技术与架构的自然进化。系统架构一直在不断进步,与商业保持高度一致。系统设计师与商家很早就认识到将技术与商业流程相协调的重要性,包括充分应用并合理化技术资源,以及为商业提供更好的支持。
SOA也在一定程度上源于早已有之的企业架构理论。企业架构对技术进行评估,但是更重要的是,它关注整个企业和全部的商业流程并提供了做出技术决策的背景信息。SOA工具则融合了互联网技术,如HTTP和XML,以及综合技术,如消息总线、转译技术和连接技术。
一、SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。
二、SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。
三、 SOA具有低耦合性特点,业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。
四、 SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。
五,、SOA的实施可能并不具有成本显著性。这要分三种情况加以讨论:
(1) 当企业从零开始构建业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
(2) 当企业业务发展或发生企业重组等变化而原有系统不能满足需要,而需要重构业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
(3) 当企业业务发生缓慢变化并可预见到将来需要重构业务系统时,由于可以按模块分阶段逐步实施SOA以适应变化的需要,这样企业不需一下投入一大笔经费进行系统改造,而是根据企业业务发展情况和资金情况逐步投入,缓解了信息投入的压力。
3结语
总而言之,面向服务架构是一种应用框架,将日常的业务应用划分为单独的业务功能服务和流程,通过采用良好定义的接口和标准协议将这些服务关联起来。通过实施甚于SOA的系统架构,用户可以构建、部署和整合服务,无需依赖应用程序及其运行平台,从而提高业务流程的灵活性,帮助企业加快发展速度,降低企业开发成本,改善企业业务流程的组织和资产重用。