SOA面向服务架构(经典)

更新时间:2023-09-01 11:10:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

面向服务的架构(SOA)

目录 什么是SOA 为什么要使用SOA SOA工作原理 构建SOA SOA的应用

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

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

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

为什么要使用SOA传统的架构,软件包是被编写为独立的(self-contained) 软件,即在一个完整的软件包中将许多应用程序功能整合在 一起。实现整合应用程序功能的代码通常与功能本身的代码 混合在一起。我们将这种方式称作软件设计“单一应用程序 “。与此密切相关的是,更改一部分代码将对使用该代码的代 码具有重大影响,这会造成系统的复杂性,并增加维护系统 的成本。而且还使重新使用应用程序功能变得较困难,因为 这些功能不是为了重新使用而打的包。 缺点:代码冗余 不能重用 紧耦合 成本高

为什么要使用SOASOA旨在将单个应用程序功能彼此分开,以便这些 功能可以单独用作单个的应用程序功能或“组件”。这 些组件可以用于在企业内部创建各种其他的应用程序, 或者如有需要,对外向合作伙伴公开,以便用于合作伙 伴的应用程序。 SOA优点:代码重用 松耦合 平台独立 语言无关

商品消费——软件服务

SOA工作流程

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

SOA操作SOA的三种操作: 发布操作:为了使服务可访问,需要发布服务描述以使 服务使用者可以发现它。 查找操作:服务请求者定位服务,方法是查询服务注册 中心来找到满足其标准的服务。

绑定操作:在检索到服务描述之后,服务使用者继续根 据服务描述中的信息来调用服务。

SOA的相关标准——WSDL、UUDI、SOAPSOAP: 简单对象访问协议 (Simple Object Access Protocol) WSDL: Web服务描述语言 WSDL (Web Services Description Language) UUDI: 统一描述、发现和集成 (Universal Description, Discovery and Integration) WSDL用来描述服务;UDDI用来注册和查找服务;而 SOAP,作为传输层,用来在消费者和服务提供者之间传送 消息。一个消费者可以在UDDI注册表(registry)查找服 务,取得服务的WSDL描述,然后通过SOAP来调用服务。

如何构建SOA一个SOA系统要具有以下六大关键要素——基础设 施、已有资源、企业服务、流程模型、服务展现和系统 工具(包括开发、测试和管理工具等)。因此,在基础 设施和已有资源都已具备的基础上,开发和构建一个 SOA系统要包括以下几方面的工作: 首先需要设计开发出符合标准的服务,这是整个SOA系 统最核心的要素。 基于标准服务,借助流程编排工具和建模工具,组织构 造流程,生成流程模型,更好地满足业务需求。 实际构建和开发SOA系统,具体包括服务和应用程序的 开发,数据的访问、处理和管理,及对服务各种形式的 展现等。

使用SOA进行服务组合实例假设股票行业存在以下6个服务:

Country() 输入参数:国家编码。输出项:国家名称和其他信息。 YellowPages() 输入参数:公司名称;输出项:企业代码,所在国家等其他信息。 NewYorkStock() 输入参数:公司代码,时间;输出项:该公司在纽约的股票价格 (美元)。 LondonStock() 输入参数:公司代码,时间;输出项:该公司在伦敦的股票价格。 USToRMB() 输入参数:美元价格,时间;输出项:对应的人民币价格。 UKToRMB() 输入参数:英镑价格,时间;输出项:对应的人民币价格。

使用SOA进行服务组合实例 用户想通过“跨国公司名称”和“时间”找出该 跨国公司在纽约的股票折合成人民币的价格以 及该公司所在国家的信息。 分析: 输入参数:跨国公司的名称、时间 如何实现对给定服务的组合,找出满足用户的信 息?

使用SOA进行服务组合实例

查询过程流程图

SOA应用——统一认证在石油企业内部,有许多不同的网站,进入每个网 站,都需要身份验证,不仅浪费时间而且容易遗忘代 码 ,另外,网站维护人员对各种服务需要建立相应的用 户认证与信息管理系统,分布于个服务器中的用户数据 不仅浪费维护人员的时间,而且过于分散的用户数据不 利于统计和管理。用户的需求和管理要求促使用户趋于 统一,产生了统一者认证。 统一

认证的实现是基于SOA的架构。

SOA应用——统一认证

从中可以看出使用SOA的优点:将身份验证这一功能模 块发布成一种服务,其他的软件可以通过UUDI查找该服 务,然后将该服务与服务的实现进行绑定。

SOA应用——HOTI架构图

2 1JSP ActionISrvMsg

服务接入

3ISrvMsg

Soap Request

Soap ProxySoap Response

Soap EngineISrvMsg

MVC Framework

7

6Service Gateway Framework

OMS业务数 据库

数据流向

页面展示 MVC组件

服务调用 组件

业务服务 组件

数据访问 组件

JDBC

8

业务服务 组件 (BLH)

4POJO

数据访问 组件DAO

5

本文来源:https://www.bwwdw.com/article/p4wi.html

Top