SOA面向服务体系架构

SOA概念

1、什么是SOA

面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型。

  • 它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来;
  • 接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言;
  • 构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。

Web service

  • Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service,只要我们可以通过Web service标准对这些服务进行查询和访问。
  • Web service是技术规范,SOA是设计原则。从本质上讲,SOA是一种架构模式,而web service是利用一组标准实现的服务。Web service是实现SOA的方式之一。用web service实SOA的好处是:可以实现一个中立平台,来获取服务,获取更好的通用性。
  • Web Services的目标是即时装配、松散耦合以及自动集成。

2、为什么要使用SOA

  • 传统的架构,软件包是被编写为独立的(self-contained)软件,即在一个完整的软件包中将许多应用程序功能整合在一起。实现整合应用程序功能的代码通常与功能本身的代码混合在一起。
  • 我们将这种方式称作软件设计“单一应用程序“。与此密切相关的是,更改一部分代码将对使用该代码的代码具有重大影响,这会造成系统的复杂性,并增加维护系统的成本。而且还使重新使用应用程序功能变得较困难,因为这些功能不是为了重新使用而打的包。
  • 缺点:代码冗余、不能重用、紧耦合、成本高
  • SOA旨在将单个应用程序功能彼此分开,以便这些功能可以单独用作单个的应用程序功能或“组件”。这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。
  • SOA优点:代码重用、松耦合、平台独立、语言无关

3、SOA工作原理

角色:

  • 服务提供者:发布自己的服务,并且对服务请求进行响应。
  • 服务注册中心:注册已经发布的web service,对其进行分类,并提供搜索服务。
  • 服务请求者:利用服务中心查找所需要的服务,然后使用该服务。

操作:

  • 发布操作:为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。
  • 查找操作:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。
  • 绑定操作:在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。

标准:

  • 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来调用服务。

三大核心部件:

ESB(Enterprise Service Bus)企业服务总线

ESB是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。

基本功能:

1)服务的MetaData管理:在总线范畴内对服务的注册命名及寻址管理功能。

2)传输服务: 必须确保通过企业总线互连的业务流程间的消息的正确交付,传输还包括基于内容的路由功能。

3)中介:提供位置透明性的服务路由和定位服务;多种消息传递形式;支持广泛使用的传输协议。

4)多种服务集成方式: 如JCA,Web服务,Messaging ,Adaptor等。

5)服务和事件管理支持: 如服务调用的记录、测量和监控数据;提供事件检测、触发和分布功能;

BPM(Business Process Management)业务流程管理:

所谓业务流程管理是指根据业务环境的变化,推进人与人之间、人与系统之间的整合及调整经营方法与解决方案的IT工具。BPM可以使系统更为强壮,通过BPM组件,SOA能够更好地监控它连接的系统。

Portal 门户:  

门户是一个基于WEB的应用程序,它提供个性化、单点登录、不同来源内容整合及存放信息系统的表示层。 Portal是低成本的集成技术。如果企业已经有了很多信息系统,Portal可以很容易的将这些系统集成到一起,并以统一界面方式提供给用户。

架构模型:

六要素:

  • 基础设施
  • 已有资源
  • 企业服务
  • 流程模型
  • 服务展现
  • 系统工具

工作:

  • 首先需要设计开发出符合标准的服务,这是整个SOA系统最核心的要素。
  • 基于标准服务,借助流程编排工具和建模工具,组织构造流程,生成流程模型,更好地满足业务需求。
  • 实际构建和开发SOA系统,具体包括服务和应用程序的开发,数据的访问、处理和管理,及对服务各种形式的展现等。

SOA案例分析

某银行拟将以分行为主体的银行信息系统,全面整合为由总行统一管理维护的银行信息系统,实现统一的用户账户管理、转账汇款、自助缴费、理财投资、贷款管理、网上支付、财务报表分析等业务功能。但是,由于原有以分行为主体的银行信息系统中,多个业务系统采用异构平台、数据库和中间件,使用的报文交换标准和通信协议也不尽相同,使用传统的 EAI 解决方案根本无法实现新的业务模式下异构系统间灵活的交互和集成。因此,为了以最小的系统改进整合现有的基于不同技术实现的银行业务系统,该银行拟采用基于 ESB 的面向服务架构(SOA)集成方案实现业务整合。

架构图:

传统架构问题:

传统的 EAI 解决方案根本无法实现新的业务模式下异构系统间灵活的交互和集成。

为什么用SOA:

SOA是一个组件模型,使用接口将服务之间联系起来。接口独立于实现服务的平台、操作系统和编程语言。这使得服务可以统一的交互。

将用户账户管理、转账汇款、自助缴费、理财投资、贷款管理、网上支付、财务报表分析等业务功能发布成一种服务,其他部分可以通过UUDI查找该服务,然后将该服务与服务的实现进行绑定。

原有以分行为主体的银行信息系统中,多个业务系统采用异构平台、数据库和中间件,使用的报文交换标准和通信协议不尽相同,但基于SOA的系统架构可以构建、部署和整合服务,无需依赖应用程序及其运行平台,从而提高业务流程的灵活性,帮助企业加快发展速度,降低企业开发成本,改善企业业务流程的组织和资产重用。

posted @ 2019-05-30 23:22  什么名都不好  阅读(2087)  评论(0编辑  收藏  举报