SOA

SOA  service-Oriented Architecture

表示一种分离系统关注面的方法,实质是将一个比较大的问题分解为一系列较小,相互关联的子问题,从而降低问题的复杂度
面向服务的架构是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用

从面向对象到面向服务

面向对象:使用现实中"对象"的概念对软件进行抽象,对应用领域的概念和关系的分析可以借鉴到软件设计中,并实现了对象级别上的代码复用

面向组件:将业务功能以组件进行封装,实现业务组件级别的复用

面向服务:将现实世界中"服务"的概念借鉴到软件领域,将业务级应用抽象为服务,各个业务功能被封装为定义良好的接口,供使用者调用,实现了业务级别的复用

服务的基本特征

1.用法与实现的分离
2.涉及多个角色
3.有时间属性(运转过程和时效性)
4.整体上无明确形态
5.可寻址和可组合

新环境服务的新特性

1.开放性:让用户实现共享和复用
2.自治性:用户发出请求后服务的执行不受其控制
3.自描述性:让用户通过描述了解服务
4.无关性:用户无需知道服务的具体实现

服务计算

服务计算是面向动态、多变、复杂的互联网环境而提出的一门以web服务、面向服务的体系架构为基础支撑技术,以服务组合为主要软件开发方法,以面向服务的软件分析和设计原则为基本理念的新的计算学科,在服务计算的技术体系中,服务是最重要的核心概念

互联网服务的常见表现形式

1.网页(通过超链接访问的网页又称表层网)
2.深层网(存储在后台数据库中的信息资源)
3.互联网开放API
4.企业应用系统服务:
Web服务:部署在web上的软件构件,包括REST服务和SOAP服务
JCA:提供应用服务器和企业信息系统连接的标准java解决方案
JMS:访问企业消息系统的标准API

SOAP

简单对象访问协议,是一种通信协议,用于应用程序之间的通信,是一种用于发送消息的格式,被设计用来通过因特网进行通信,独立于平台,独立于语言,基于XML,很简单并可扩展,允许绕过防火墙
应用程序通过使用远程过程调用(RPC)会产生兼容性以及安全问题,防火墙和代理服务器会阻止此类流量,SOAP就是来解决这个问题的,SOAP提供了一种标准的方法,使运行在不同操作系统并且使用不同技术和编程语言的应用程序可以互相通信

RESTful

Representational State Transfer "表现层状态转化”
REST最大的几个特点为:资源、统一接口、URI和无状态。

特点1 资源

所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息,总之就是一个具体的实在。资源总要通过某种载体反应其内容,JSON是现在最常用的资源表示格式。
资源是以json(或其他Representation)为载体的、面向用户的一组数据集,资源对信息的表达倾向于概念模型中的数据:
资源总是以某种Representation为载体显示的,即序列化的信息
常用的Representation是json(推荐)或者xml(不推荐)等
Represntation 是REST架构的表现层
相对而言,数据(尤其是数据库)是一种更加抽象的、对计算机更高效和友好的数据表现形式,更多的存在于逻辑模型中

特点2 统一接口

RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方法,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供完整资源数据)。
PATCH(UPDATE):在服务器更新资源(客户端提供需要修改的资源数据)。
DELETE(DELETE):从服务器删除资源。

特点3 URI

可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。一般的,每个资源至少有一个URI与之对应,最典型的URI即URL。
URI:统一资源标识符 URL:统一资源定位器 URN:统一资源命名
URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。

特点4 无状态

所谓无状态的,即所有的资源,都可以通过URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。
有状态:每一步操作都依赖于前一步操作,只要前置操作不成功,后续操作就无法执行
无状态:输入一个url即可访问资源,不依赖于其他资源或状态

ROA、SOA、REST与RPC

ROA即Resource Oriented Architecture,RESTful 架构风格的服务是围绕资源展开的,是典型的ROA架构,虽然ROA与SOA并不冲突,但由于RPC也是SOA,因此,RESTful 架构风格的服务通常被称之为ROA架构,很少提及SOA架构,以便更加显式的与RPC区分。
RPC风格的服务很难在移动终端使用,而RESTful风格的服务,由于可以直接以json或xml为载体承载数据,以HTTP方法为统一接口完成数据操作,客户端的开发不依赖于服务实现的技术,移动终端也可以轻松使用服务,这也加剧了REST取代RPC成为web service的主导。

本真REST与hybrid风格

本真REST即上文阐述的RESTful架构风格
hybrid风格的最主流的用法是,使用GET方法获取资源,用POST方法实现资源的创建、修改和删除

认证机制

由于RESTful风格的服务是无状态的,认证机制尤为重要,常用的认证机制包括 session auth(即通过用户名密码登录),basic auth,token auth和Oauth,服务开发中常用的认证机制为后三者。
Basic Auth:配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用Basic Auth
Token Auth:向服务器发送一个事先在服务器端生成的token来做认证
OAuth(开放授权):允许用户提供一个令牌,每一个令牌授权一个特定的第三方在特定的时段内访问特定的资源。正是由于OAUTH的严谨性和安全性,现在OAUTH已成为RESTful架构风格中最常用的认证机制,和RESTful架构风格一起,成为企业级服务的标配。

RESTful总结

本真REST + OAuth是RESTful 是微服务的标配
Basic Auth只在开发环境中使用
设计合理的资源
用正确的HTTP方法对数据发正确的请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值