zoukankan      html  css  js  c++  java
  • SOA面向服务的架构

    1、关于SOA的定义,目前主要有以下三个:

    1)W3C的定义:SOA是一种应用程序架构,在这种架构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。

    2)Service-architecture.com的定义:服务是精确定义、封装完善、独立于其他服务所处环境和状态的函数。SOA本质上是服务的集合,服务之间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务之间需要某些方法进行连接。

    3)Gartner的定义:SOA是一种C/S架构的软件设计方法,应用由服务和服务使用者组成,SOA与大多数通用的C/S架构模型不同之处,在于它着重强调构件的松散耦合,并使用独立的标准接口。

    2、SOA设计原则:

    1)明确定义的接口。服务请求者依赖于服务规约来调用服务,因此,服务定义必须长时间稳定,一旦公布,不能随意更改;服务的定义应尽可能明确,减少请求者的不适当使用;不要让请求者看到服务内部的私有数据。

    2)自包含和模块化。服务封装了那些在业务上稳定、重复出现的活动和构件,实现服务的功能实体是完全独立自主的,独立进行部署、版本控制、自我管理和恢复。

    3)粗粒度。服务数量不应该太多,依靠消息交互而不是远程过程调用,通常消息量比较大,但是服务之间的交互频度较低。

    4)松耦合。服务请求者可见的是服务的接口,其位置、实现技术、当前状态和私有数据等,对服务请求者而言是不可见的。

    5)互操作性、兼容和策略声明。为了确保服务规约的全面和明确,策略成为一个越来越重要的方面。这可以试与技术相关的内容,例如,一个服务队安全性方面的要求;也可以试与业务有关的语义方面的内容,例如,需要满足的费用或者服务级别方面的要求,这些策略对于服务在交互时是非常重要的。

    3、SOA的关键技术

    1)UDDI

    统一描述、发现和集成(Universal Description Discovery and Integration ,UDDI)提供了一种服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。UDDI规范描述了服务的概念,同时也定义了一种编程接口。通过UDDI提供的标准接口,企业可以发布自己的服务供其他企业查询和调用,也可以查询特定服务的描述信息,并动态绑定到该服务上。

    2)WSDL

    Web服务描述语言(Web Service Description Language , WSDL)是对服务进行描述的语言,它有一套基于XML的语法定义。WSDL描述的重点是服务,它包含服务实现定义和服务接口定义。

    采用抽象接口定义对于提高系统的扩展性很有帮助。服务接口定义就是一种抽象的、可重用的定义,行业标准组织可以使用这种抽象的定义来规定一些标准的服务类型,服务实现者可以根据这些标准定义来实现具体的服务。

    服务实现定义描述了给定服务提供者如何实现特定的服务接口。服务实现定义中包含服务和端口描述。一个服务往往会包含多个服务访问入口,而每个访问入口都会使用一个端口元素来描述,端口描述的是一个服务访问入口的部署细节,例如,通过哪个地址来访问,应当使用怎样的消息调用模式来访问等。

    3)SOAP

    简单对象访问协议(Simple Object Access Protocol , SOAP)定义了服务请求者和服务提供者之间的消息传输规范。SOAP用XML来格式化消息,用HTTP来承载消息。通过SOAP,应用程序可以再网络中进行数据交换和远程过程调用(Remote Procedure Call , RPC)。SOAP主要包括以下4个部分:

    1.封装。

    2.编码规则。

    3.RPC表示。

    4.绑定。

    4)REST

    表述性状态转移(Representational State Thansfer , REST)是一种只使用HTTP和XML进行基于Web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。它的简单性和缺少严格配置文件的特性,使它与SOAP很好地隔离开来,REST从根本上来说只支持几个操作(POST、GET、PUT和DELETE),这些操作适用于所有的消息。REST提出了如下一些设计概念和准则:

    1.网络上的所有事物都被抽象为资源。

    2.每个资源对应一个唯一的资源标识。

    3.通过通用的连接件接口对资源进行操作。

    4.对资源的各种操作不会改变资源标识。

    5.所有的操作都是无状态的。

    4、SOA的实现方法

    SOA只是一种概念和思想,需要借助于具体的技术和方法来实现它。从本质上来看,SOA是用本地计算模型来实现一个分布式的计算应用,也有人称这种方法为“本地化设计,分布式工作”模型。CORBA、DCOM和EJB等都属于这种解决方式,也就是说,SOA最终可以基于这些标准来实现。

    从逻辑上和高层抽象来看,目前,实现SOA的方法也比较多,其中主流方式有Web Service、企业服务总线和服务注册表。

    1. Web Service

    a)服务提供者。

    b)服务请求者。

    c)服务注册中心。

    2.服务注册表

    a)服务注册。

    b)服务位置。

    c)服务绑定。

    3.企业服务总线

    与企业应用集成方面,与现存的、专有的集成解决方案相比,ESB具有以下优势:

    a)扩展的、基于标准的连接。

    b)灵活的、服务导向的应用组合。

    c)提高复用率,降低成本。

    d)减少市场反应时间,提高生产率。

  • 相关阅读:
    有一天人人都会变成程序猿
    mysql 假设存在id则设数据自添加1 ,不存在则加入。java月份计算比較
    做程序员的老婆应该注意的一些事情
    人类科技的发展为什么会是加速度的(TRIZ方法再推荐)
    Unity5.0 RPG角色扮演历险类游戏之 森林历险记
    linux目录对照命令——meld
    iOS --- [持续更新中] iOS移动开发中的优质资源
    【spring bean】spring中bean的懒加载和depends-on属性设置
    【spring bean】 spring中bean之间的引用以及内部bean
    【spring set注入 注入集合】 使用set注入的方式注入List集合和Map集合/将一个bean注入另一个Bean
  • 原文地址:https://www.cnblogs.com/guwei4037/p/6689305.html
Copyright © 2011-2022 走看看