没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
29页
Web及服务技术的发展促使大量标准和协议的制定,用于松耦合软件组件之间的交互,无论是Web应用、整合应用(mashup,聚合)、app、移动设备应用,还是企业级服务都是如此。云计算是服务的工业化,是Web与企业服务在技术层面的会聚。本文从语言、协议、架构诸方面入手,就交互技术的发展历程、及其对现今标准和云服务的驱动作用进行了回顾总结,并就技术现状及云计算发展趋向进行了讨论。
资源推荐
资源详情
资源评论
1
Web 与云服务交互技术综述
译者注:内容摘译自"Technologies for Web and Cloud Service Interaction : A Survey",
作者 Harald Lampesberger,Service Oriented Computing and Applications February
2015. DOI 10.1007/s11761-015-0174-1。需要提醒的是,文章引用资料截止到 2014 年底,
文中部分内容可能已经在两年中发生了变化,例如文中提到的 dotCloud 已于 2016 年 2 月
关闭服务,而其孵化的 Docker 成了云服务的网红。
摘要: Web 及服务技术的发展促使大量标准和协议的制定,用于松耦合软件组件之间的交
互,无论是 Web 应用、整合应用(mashup,聚合)、app、移动设备应用,还是企业级服务
都是如此。云计算是服务的工业化,是 Web 与企业服务在技术层面的会聚。本文从语言、协
议、架构诸方面入手,就交互技术的发展历程、及其对现今标准和云服务的驱动作用进行了
回顾总结,并就技术现状及云计算发展趋向进行了讨论。多路复用(multiplexing)、多宿
主(multi-homing)和加密传输技术将是未来的发展方向,客户端-客户端 Web 通信的出现将
为今后的 Web 消息传递架构奠定基础。
1 前言
上世纪 70 年代,网络资源共享及远程功能模块调用需求引发了相关服务的讨论,最终
Birrell 和 Nelson 于 1984 年提出了远程过程调用框架(RPC),使 RPC 成为企业应用系统
的驱动器。90 年代,面向对象原理及 RPC 共同推动了分布式对象(DO)的提出。RPC、DO
的紧耦合与交互复杂性影响了企业系统的可伸缩性,于是 90 年代末出现了基于服务之间消
息传递的松耦合、易伸缩架构,也就是在大规模分布式企业系统中占主导的面向服务架构
(SOA)。
与此同时,Berners-Lee 于 1989 年提出了万维网的设想,第一个 Web 浏览器于 1990 年
底发布,万维网联盟(W3C)于 1994 年成立,1997 年 W3C 发布了超文本标记语言(HTML)。
此后,Web 经历了简单超文本交换、用户接口交互、富客户端应用、用户提交内容、聚合
(mashup)、社交平台、大范围移动设备支持的一系列发展过程,Web 技术不再局限于超文
本应用。Web 服务的成功应归功于一系列共同遵循的标准。
云计算可以视作互联网上 Web 服务技术和企业服务技术的工业化应用。云计算目的在于
提供跨设备、跨系统、跨平台的服务,服务播发的关键在于服务消费方与服务提供方之间的
交互技术。云服务模型的成型,例如平台即服务(PaaS)或软件即服务 (SaaS),得益于
众所周知的 Web 相关标准及标准的广泛认同。
2 语言
语言是信息交互中必不可少的信息元素,Web 和云服务的信息交换可分为基于消息
(message)的交换和基于流(stream)的交换,流实际上是分块传输的消息。内容或媒体
的编码语言也称为数据序列化格式或简称格式(format),对于传输内容解析方,语言的格
式即语法(syntax),语言的含义即语义(semantics)。传输内容可分为基于二进制编码
的内容、以及基于文本(字符编码)的内容。ASCII 码是最基本的字符编码,但局限于英文
2
字母,Unicode 试图对所有自然语言中的人类可读符号进行编码,与 ASCII 码兼容的 UTF-8
是一种面向字节的编码,能有效表示数百万个符号。
2.1 内容类型
内容类型(content type)是一个标识,用于指定字母表、字符编码、语法、以及语言
的语义,根据内容类型标识,软件可在运行过程中选择相应的解析器。现今,多用途互联网
邮件扩展类型(MIME)已成为内容类型的互联网标准,被称为 MIME 内容类型、Internet 媒
体类型、或简称为 MIME 类型。例如 ASCII 码文本的 MIME 类型为 text/plain,MIME 类型也
可以明确表明文本内容的字符编码,例如 text/plain;charset=utf-8。
2.2 基于文本的内容
与二进制格式相比,文本格式的信息密度比较低,因需要对人类可读字符进行数字化编
码。例如一个大于零的整数,UTF-8编码需要log
10
n字节,而相应的二进制表述只需要log
2
n
位(注:一个字节等于8位二进制)。尽管如此,人类可读字符编码的世界范围约定为超文
本的成功作出了贡献。
2.2.1 半结构化语言
三种最具影响力的 Web 信息交换语言为:HTML、XML 和 JSON。
HTML(超文本标记语言)是用于网页定义的标准,其 MIME 类型为 text/html。早期的
HTML(版本至 4.01)是 SGML(标准通用标记语言)的一个应用,需要复杂的 SGML 解析框架
支持;而目前的 HTML5 有独自的解析器,HTML5 不是 SGML 基础上的产物。Web 浏览器中的
SGML 或 HTML5 解析器将文档转换为文档对象模型(DOM),DOM 是一种通用的树状数据结构
模型,可通过用户界面呈现。层叠样式表(CSS)是 HTML 的格式化语言,CSS 用于定义页面
外观及 DOM 的可视表达方式。
XML(可扩展标记语言)起源于 SGML,但主要用于电子数据交换。XML 是一个语言家族,
XML 文档内的结构元素(即标签)及其属性不受任何约束,只要遵循语法规则即可。XML 的
底层逻辑结构为树状结构,因此开、关标签必须正确嵌套。为了结构限制和校验,XML 提供
了 schema 语言,例如文档类型定义(DTD),XML Schema(XSD)和 Relax NG。遵 循 XML schema
定义的 XML 文档称为合法的 XML 文档。XML 的 MIME 类型为 application/xml。XHTML 是 HTML
的重定义,MIME 类型为 application/xhtml+xml,表明其起源于 XML。XML 还是许多 Web 格
式的超类,例如可缩放矢量图形(SVG)、数学标记语言(MathML)。
JSON(JavaScript 对象表示法)是一种简单的文本格式,键值对结构,用于信息的序
列化,JSON 的 MIME 类型为 application/json。JSON 的语法来源于 JavaScript 语言,JSON
指定的六种基本数据类型包括:空值(null)、数字(Number)、字符串(String)、布尔
值(Boolean)、数组(Array)和对象(Object),合格的 JSON 文档总是包含单一的根对
象 。与 XML 相似,JSON Schema 用于文档结构校验,JSON Schema 是用 JSON 格式表达的 schema
语言。
2.2.2 二进制到文本编码
Base16、Base32、Base64、百分号编码、Quoted Printable(使用可打印字符的编码)
均属二进制到文本的编码,即将任意二进制值映射到 ASCII 码可打印字符对应的文本。
3
Base64 是较为流行的编码方式,可将任意二进制内容以文本方式嵌入到 XML 或 JSON 中,但
因信息密度降低,将增加三分之一的额外开销。
2.2.3 其它基于文本的格式
例如:用于关系数据的逗号分割数值(CSV),标记语言 Candle 和 YAML,用于图形结
构数据的有序图形数据语言(OGDL),用于结构化信息的开放数据说明语言(OpenDDL)。
2.3 二进制内容
二进制格式紧凑但人类不可读,例如音频、视频格式。抽象语法标记(ASN.1)是应用
颇广的标准,用于结构化信息交换。ASN.1 将信息结构抽象定义规则与编码规则,例如 BER
(Basic Encoding Rules)、DER(Distinguished Encoding Rules),分离,数字证书标
准 X.509 便是利用 DER 的 ASN.1 应用实例。
基于文本的语言信息密度低、开销大,因此提出了相应的二进制格式,XML 的二进制格
式有:EXI(Efficient XML Interchange)、.NET Binary XML、Fast Infoset(ASN.1 的一
个应用)、BiM(Binary MPEG Format for XML)。JSON 的二进制格式有:Binary JSON、
MessagePack、CBOR(Concise Binary Object Representation)。
RPC 架构特定的数据序列化格式有:XDR(External Data Representation)、Apache Avro、
Apache Etch、Apache Thrift、Protocol Buffers、Hessian。其它值得一提的二进制语言
还有:用于层次结构的 SDXF(Structured Data Exchange Format)、以及苹果系统的数据
序列化格式 Property List。
2.4 容器格式
容器(container)是可封装任意内容的编码,容器的 MIME 内容类型为 multipart。在
multipart 中,一个名为 boundary 的文本字符串用于不同部分的分隔,每一部分包含一个
头标,说明该部分的内容类型(Content-Type)及元数据。multipart 定义了数个子类,例
如 multipart/alternative、multipart/byteranges、multipart/digest、
multipart/form-data 等。
XOP(XML-binary Optimized Packaging)是 multipart 的一个应用。XOP 是 XML 的特
定容器格式,MIME 类型 multipart/related package,用于二进制内容直接嵌入,以避免二
进制到文本的编码。
S/MIME 是 MIME 的安全目的扩展,其定义了加密(multipart/encrypted)和数字签名
(multipart/signed)类型,保障公钥加密数据的机密性、完整性和不可抵赖性。
用于分隔的 boundary 字符串是 MIME multipart 的一个缺陷,微软提出的标准 DIME
(Direct Internet Message Encapsulation)在遵循 MIME multipart 基础上,对 boundary
机制作了改进。
2.5 JavaScript
JavaScript(官方名 ECMAScript)是动态编程语言,当前所有主流 Web 浏览器均支持
JavaScript。JavaScript 可认为是基于文本的语法与 JavaScript 运行环境的集成,运行环
境一般在 Web 浏览器中呈现,但也可在服务中应用,例如 Node.js。
4
JavaScript 代码既可以直接嵌入 HTML 或 XHTML 标记语言中(使用 script 标签),也
可以作为基于文本的内容进行交换,作为交换资源时,JavaScript 的 MIME 类型为
application/javascript。
3 服务交互模式
客户端与服务的信息交换通过交互实现,根据分布式网络中的交互参与方数量、一次交
互的消息传输数量、双向交互是经由第三方还是往返传递等特征,将服务交互模式分为四种
组合类型:单点双向传输模式、单点多向传输模式、多重传输模式和路由模式。
3.1 单点双向传输模式
发送:A 方发送一个消息给 B 方。相关关键词:单播(unicast),点对点发送。
接收:A 方等候一个传入消息。相关关键词:监听,事件处理器。
发送-接收:A 方发送一个消息给 B 方,B 方返回一个响应;也可以是接收-发送,即 A 方等
候一个传入消息,接收消息后返回一个响应。相关关键词:请求-响应,请求-应答,RPC。
3.2 单点多向传输模式
竞速传入消息:A 方等候一个传入消息,消息可能来自多个发送方。A 接收第一个传入消息,
之后根据传入消息类型或消息发送方决定后续操作,后续到达的消息可能被丢弃也可能保留。
相关关键词:竞速消息,延迟选择。
一对多发送:A 方发送 n 个消息给 B1...Bn 方,所有消息类型相同,但内容不要求相同。相
关关键词:多播(multicast),广播,事件通知,散发(scatter),发 布 -订阅,扇出(fan-out)。
一从多接收:A 方等候 B1...Bn 方发送的消息,消息必须在一定时间段内到达,因此可以相
互链接。相关关键词:事件聚合,聚集,扇入(fan-in)。
5
一对多发送-接收:A 方发送 n 个请求给 B1...Bn 方,在一定时间段内等候接收方的应答; 也
可以是一从多接收-发送,即 A 方在一定时间段内等候 B1...Bn 方的消息,消息接收并处理
后返回响应。相关关键词:散发-聚集。
3.3 多重传输模式
多重响应:A 方发送请求给 B 方,B 方不断返回响应,直到满足终止条件。终止条件可能是
来自 A 方的通知、A 方设定的期限、间隙期、或来自 B 方的消息流终止通知。相关关键词:
流式响应,消息流。
分遣请求:A 方发送请求给 B1 方,如果一定时间段内未获应答,A 方即将请求发送给 B2 方,
如果再一次超时,仍继续循环发送,直至 Bi 返回响应。相关关键词:发送失败切换(failover)。
原子型多播通知:A 方发送通知给 B1...Bn 方,接收方数量要求最小值 i、最大值 j,如果
限定 i=j=n,则要求所有接收方必须接收。相关关键词:事务性通知。
3.4 路由模式
推荐型请求:A 方发送请求给 B 方,B 方对消息进行评估后,依条件(例如消息内容)将响
应转发给一方或 C1...Cn 多方。相关关键词:回复。
中继请求:A 方发送请求给 B 方,B 方传递给 C1...Cn 方,C1...Cn 方与 A 方作进一步交互,
B 方保留(retain)A 方与 C1...Cn 方之间的后续交互视图。相关关键词:委托(delegation)。
动态路由:A 方发送消息的路由条件可以是动态的,例如依据内容转发。根据条件,A 方发
送的请求可转发给一方或 B1...Bn 多方,接收方处理后转发给 C1...Cn 方,如此,转发可依
路由条件继续。相关关键词:路由滑移(routing slip),基于内容的路由。
4 协议
开放式系统互联(OSI)参考模型给出了协议分层体系,该体系降低了计算机网络通信
的复杂性,并将关注点导向各层通信协议的设计。下图给出了互联网分层模型及云计算涉及
的各层通信协议。
剩余28页未读,继续阅读
资源评论
- chayedanwc2017-10-12可以用,就是积分太贵了
QDQfd
- 粉丝: 3
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功