首页 百科知识 面向服务的架构

面向服务的架构

时间:2022-10-09 百科知识 版权反馈
【摘要】:面向服务的架构正是在这样的大背景之下应运而生的。SOA最重要的特点是把服务的实现和接口分离。SOA凭借其松耦合的特性,可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,选择不同的渠道提供服务,并可以把现有的或已有的应用作为服务,方便地实现异构的空间数据共享。SOA作为新一代的软件架构,将以其协同、高效、易于部署和维护等优点,快速取代传统的软件架构,成为空间数据共享的主流架构模式。

6.1 面向服务的架构

纵观软件工程的发展,经历了面向过程、面向对象、面向组件、面向集成几个时代。随着软件技术和方法的革新,服务和资源导向的架构的兴起,软件行业开始进入全新的发展阶段。面向服务的架构(SOA)正是在这样的大背景之下应运而生的。

面向服务的架构(Service Oriented Architecture,SOA)是一种软件体系架构概念。SOA是一个组件模型,它将应用程序的不同功能单元——服务(service)和资源(Resourse),通过服务间定义良好的接口和契约(contract)联系起来。接口采用中立的定义方式,独立于具体实现服务的硬件平台、操作系统和编程语言,使得这些系统中的服务可以使用统一和标准的方式进行通信。这种具有中立性的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。

SOA不是一种语言,也不是具体的技术,更不是产品,而是一种软件系统架构,它尝试给出在特定环境下推荐采用的一种架构,从这个角度上来说,它是一种架构模式(Pattern),是一种架构思想,是面向应用服务的解决方案框架。

SOA是一种IT战略,它把包含在各种应用中的分散的功能组织分为可互操作的、基于标准的服务和资源,而这些服务和资源可以被迅速组合和重用以满足业务需求。一个服务就是一个代码模块,它由可通过基于标准的接口访问的服务水平协议管理。每个服务表示一部分功能,它明确地映射到业务流程中的一个步骤。服务可以从头编写或通过公开原有应用程序中系统功能模块挖掘出来。

从技术角度而言,SOA可以简单地理解为“抽象、松散耦合和粗粒度”的架构,它根据服务请求通过分布式网络对松散耦合的应用群件进行部署、组合和使用。SOA最重要的特点是把服务的实现和接口分离。在服务消费者眼中,服务是一个支持特定请求格式和契约的端点,消费者不用关心服务如何执行。服务(service)和资源是SOA架构的基本元素和实现的核心。服务是可互操作的、独立的、模块化的、位置明确的、松耦合的并且可以通过网络查找其地址。SOA指定一组实体(服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约),这些实体详细说明了如何提供和消费服务。SOA凭借其松耦合的特性,可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,选择不同的渠道提供服务,并可以把现有的或已有的应用作为服务,方便地实现异构的空间数据共享。下面,我们将分别介绍SOA中的实体及其关系。

首先,我们可以把SOA体系中的实体归纳、划分为以下三种角色:

1.服务使用者:这里,服务使用者可以是一个应用程序、一个软件模块或者是需要一个服务的另一个服务。它通过对注册中心发起服务的查询,通过传输绑定服务,并且执行服务功能。服务使用者是通过接口契约来执行服务的。

2.服务提供者:服务提供者是一个可以通过网络来查找到的实体,它接受和执行来自服务使用者的请求。它将自己的服务和接口契约发布到服务注册中心,这样,服务使用者就可通过注册中心来发现和访问该服务。

3.服务注册中心:它是对服务发现的支持者,包含了一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口,以此来联系服务提供者及服务使用者。

SOA体系结构中的每个实体都扮演着服务提供者、使用者和注册中心这三种角色中的某一种(或多种)。这三种角色都有着各自的“行为方式”,我们称之为操作,这些操作包括:

1.发布:为了使服务可访问,需要通过发布对于该服务的描述,以此来使得服务使用者可以发现和调用该项服务。

2.发现:服务请求者去查找服务,方法是查询服务注册中心来找到满足其标准的服务。

3.绑定和调用:在检索完服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。

在SOA的体系结构中,还包括以下这两种构件:

1.服务:可以通过已发布接口使用的服务,并且允许服务使用者调用该项服务。

2.服务描述:服务描述指定服务使用者与服务提供者交互的方式。它指定来自服务的请求和响应的格式。服务描述可以指定一组前提条件、后置条件和/或服务质量(QoS)级别。

服务使用者执行动态服务定位,方法是以查询服务注册中心来查找与其标准匹配的服务。如果服务存在,注册中心就给服务使用者提供接口契约和服务的端点地址。下图6-1展示了SOA体系结构中各实体的关系。

img50

图6-1 SOA实体关系

SOA不同于现有的分布式技术,它是由大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为现有资产或投资带来了更好的重用性。SOA能够把运行在互联网环境的分布式应用程序整合在一起,将新的应用模块与现有模块进行匹配及混合使用,并在最新的和现有的应用模块之上创建应用,使整合更加方便和安全;SOA能够使客户或服务消费者免于服务实现的改变所带来的影响;SOA能够升级单个服务或改变服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供更好的灵活性来构建应用程序和业务流程。

如图6-2所示,SOA通过一组现有的应用和新建的应用集成来创建一个地理信息复合应用,这些现有的应用通过标准接口来提供数据和功能。

img51

图6-2 SOA地理信息复合应用

SOA是目前最重要的,也是未来最有前景的软件方法论之一。服务层是SOA的基础,可以实现互联网上不同服务器接口之间应用程序的相互调用,使开发人员可以集中精力构建服务,挖掘潜在的价值,有效控制系统中与软件代理交互的人为依赖性。SOA作为新一代的软件架构,将以其协同、高效、易于部署和维护等优点,快速取代传统的软件架构,成为空间数据共享的主流架构模式。

在SOA架构中,使用者调用一个服务时,被调用的对象可以是CICS事务、DCOM或CORBA对象、J2EE 、EJB或TUXEDO服务等,但这与服务使用者无关。好的底层实现的技术决定SOA架构的易于部署实施和应用,因此,我们选用最新的SOA基础技术来架构我们的空间数据共享,其本质上是依赖于Web服务,在下节中,我们将对Web Service和REST风格的空间数据共享机制进行分析和研究。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈