• 论面向服务架构设计及其应用


    论面向服务架构设计及其应用

    赵墨涵

    (石家庄铁道大学 信息科学与技术学院,河北 石家庄,050043)

    摘要:

    关键词:

     

    On service oriented architecture design and its application
    Zhao Mohan
    (School of information science and technology, Shijiazhuang TieDao University, Shijiazhuang, Hebei, 050043)

    Abstract:

    KeyWord:

     

    面向服务的架构(Service-Oriented Architecture),简称SOA,是一种分布式的软件体系架构方法,它将一些功能单元包装为服务,过这些服务之间定义良好的接口和协议联系起来,以供其他软件组件通过网络调用。

    什么是服务?我们可以把服务理解为:我们做的一个电子商务系统中,根据订单号来查询订单就可以作为一个系统,订单号是输入参数,而订单内容则是输出。像这种需要从数据库进行一些查询操作的,我们归为查询类。像计算运费、扣减库存等,我们归为计算类。这其中的每一类中的每一项操作,我们都可以称为一个service。当我们开发一项服务后,应将服务在注册表进行登记,在服务清单便会有这项服务。服务使用者就可以去查找到服务的提供者,并得到来自服务提供者返回回来的服务描述。

    SOA中每个Service代表一项服务,一个业务中可以组合多种服务,同时一个服务也可以调用另一项服务。比如在生成一份订单时,先后需要调用查询商品价格、查询优惠、计算运费等多种服务。服务的提供者与调用者直接只通过接口联系,服务提供者不关心服务被用来干什么,服务的调用者不需要去了解服务是怎么实现的。我们向老师展示生成订单时,老师并不关心运费是怎么计算出来的,但是系统又必须能告诉我这个订单的运费是多少,因此我们又称服务的提供者与服务的调用者之间是一种松耦合关系。

    SOA是一种分布式的软件体系架构方法,独立于具体的接口技术。基于WSDL和SOAP的Web Service是实现SOA的最基本的形式,同时SOA也可以用其他技术来实现。基于消息,例如:Active MQ,JMS等;基于表现层状态转换(REST)的架构风格,亚马逊和雅虎采用的就是这种计算架构方式;而facebook采用的是Apache Thrift;微软的基于Web Service实现方案,也仍然有很多大型企业在使用。

    SOAP协议是基于XML在分散或分布式的环境中交换信息的简单的协议,用于访问网络服务。可使应用程序在 HTTP 之上进行信息交换。WSDL即网络服务描述语言,它是一门基于XML的语言,用于描述Web Services以及如何对它们进行访问。WSDL文档主要使用以下几部分组成:<portType> Web Service执行的操作;<message> Web Service使用的消息;<types> Web Service使用的数据类型;<binding> Web Service使用的通信协议。

    不管是基于哪种方式实现的SOA架构,都存在一定的优点。首先,订单可以在PC端生成,也可以在APP或者小程序等其他地方生成,生成订单的核心不依赖于你生成订单时使用的工具,因此将它定义包装成一个service,大大提高了软件的可重用性。其次,我们把系统功能的实现看成是服务的组合与相互调用,我们可能只需要重新构建一部分相关的Service,或者将原有的服务重新组合,就可以实现需要的系统功能的扩展与架构。最后,SOA架构有利于集成既有架构,我们将原有架构包装成一个Service,再与其他的service通过接口相连,这样我们就可以保留下来原有系统的一部分功能。

    我们在构建SOA架构时,也常常面临一些问题,例如基于Web Service效率低、安全性不高,因为Web Service的基础是xml,xml是一种文本的数据,xml带来了可以跨平台使用的好处,同时也带来了对文本数据进行解析处理的问题,这就要消耗一部分的计算能力。

    在电子商务系统里,SOA降低了软件之间的耦合性,但是也难以获取用户的上下文状态,即用户之前浏览了什么网页,往购物车添加了什么商品等。如果强行获取状态,便会导致SOA的优势发挥不足。

  • 相关阅读:
    Mina Core 10-执行器过滤器
    Mina Core 09-编解码过滤器
    Mina Core 08-IoBuffer
    Mina Basics 07-处理程序Handler
    Mina Basics 06-传输
    Mina Basics 05-过滤器
    Mina Basics 04- 会话
    Mina Basics 03-IoService
    Mina Basics 02-基础
    Mina Basics 01- 入门
  • 原文地址:https://www.cnblogs.com/zmh-980509/p/12914708.html
Copyright © 2020-2023  润新知