电子服务系统设计复习总结
前言
本文档原意为考试复习所用,基于 《web服务:原理与技术》 课本。文档末尾有复习题,做完90+稳了,本人考了93。
第一章
1.什么是WS (Web Service)
①当服务使用因特网作为通信手段以及使用基于因特网的标准时,即为Web服务。
②Web服务是一个可通过因特网使用的自描述、自包含软件模块,这些软件模块可完成任务、解决问题或代表用户、应用程序处理事 务。
③Web服务建立了一个分布式计算的基础架构。(虚拟的逻辑系统)
④既可以是进行简单的请求,也可以是需要访问和综合多个数据源信息的完整的业务应用程序。
2.Web服务与Web网页
Web网页:提供跨因特网和组织界限访问应用的方式。(人)
Web服务:访问者既可以是人,也可以是自动化的应用程序。(人+应用程序)
3.Web服务和基于Web的应用程序
①Web服务可以调用其他的Web服务。
②Web服务是模块化、自感知和自描述的应用程序,具有功能性和非功能性属性。
③Web服务比基于Web的应用程序更容易被监控和管理。
④可对Web服务进行评估和选择。
★4.Web服务的完整定义
Web服务是一个平台独立的、松耦合的、自包含的、基于可编程的Web应用程序,可使用开放的XML标准描述、发布、发现、协调和 配置这些应用程序,并用于开发分布式的互操作应用程序。
★5.Web服务的特性
5.1Web服务的类型
①简单服务(信息型服务,细粒度的,无状态web服务),用户通过请求/响应序列与服务内容进行交互。
②复合型服务(功能是粗粒度的,有状态),Web服务在进入操作和离开操作之间进行一定形式的协调。
5.2功能属性和非功能属性
功能性描述:
①详述了操作特性,操作特性定义了服务的整个行为,例如定义 了如何调用服务、在何处调用服务等细节。
②功能性描述主要关于消息的语法规则,以及如何配置发送消息的网络协议。
非功能性描述:
①主要关于服务质量属性,如服务代价、性能度量(响应时间或 精度)、安全性属性、授权、认证、完整性、可靠性等。
②主要关于服务请求者的运行环境。
③非功能性需求影响服务请求者选择哪一个服务提供者。
★5.3状态属性
无状态的Web服务:服务可以被重复调用,且无须维持上下文或状态和不同操作调用之间的状态。
有状态的Web服务:需要维持上下文或状态和不同操作调用之间的状态。
5.4松耦合
耦合:系统之间彼此相互依赖的程度
松耦合:服务请求者无须了解服务提供者实现的具体技术细节。
5.5服务粒度
简单请求是细粒度的,通常不可再分。
复合服务通常是粗粒度的,服务流程涉及在一个或多个会话中和其他服务或最终用户进行交互。
5.6同步特性
同步或进程过程调用(RPC)方式:
同步的客户端将请求表示为带变量的方法调用,方法返回一个包含返回值的响应。
当应用程序具有下列特性时,通常将用到RPC类型的Web服务:
①调用服务的客户端需要一个立即的响应。
②客户端和服务以反复对话的方式进行协作。
异步或消息(文档)方式:
是文档类型的服务或消息驱动类型的服务。
当应用程序具有下列特性时,通常需要使用文档类型的Web服务:
①客户端不需要立即的响应。
②服务是面向文档的。
5.7良定义
服务间的交互是良定义的
5.8服务的使用环境
从Web服务请求者的角度,可将信息服务划分为可代替服务与关键任务服务这两类:
①可替代的服务:多个服务提供者都可提供的服务。
②关键任务服务:很可能只被一个特定的服务提供者提供的服务。
★6.服务接口和实现
①对接口和实现具有明显的区分
②服务接口:定义了外部世界可以看到的服务功能,并提供了访问这些功能的方式。
③服务实现:实现了具体的服务接口,对于用户来说,服务的实现细节是隐藏的。
④组件:是系统中的一个独立封装的模块,具有明确定义的功能和作用范围。
服务之间进行交互的唯一方式是通过它们的接口
⑤服务编配接口:明确地描述组合服务客户端所期望的全部接口, 以及组合服务中由环境所提供的接口。
⑥服务的部署和服务的实现:
a.由企业内部设计和实现服务
b.购买/租凭/支付服务
c.外包服务的设计与实现
★7.面向服务的体系结构(SOA)
①SOA是一种设计软件的逻辑方法,可通过发布或发现的接口向终端用户应用或网络上的其他服务提供服务。
②SOA的目的:
a.使得已有的技术间具有通用的互操作性,并使得未来的应用和体系结构具有可扩展性。
b.SOA是一种体系结构类型,使用面向服务的方式进行计算,从而增强了互操作性。
c.SOA是一种设计理念,独立于任何具体的技术。(并不一定要使用Web服务才能实现SOA)
★③SOA中三个主要的交互角色
a.服务提供者 :提供服务的软件代理 ,负责发布服务的描述,将服务描述提供给服务注册机构。
b.Web服务注册机构:是一个可供搜索的目录,可在该目录中发布和搜索服务描述。
c.服务请求者(客户端):请求执行服务的软件代理,可在注册机构中发现服务描述, 并能获取服务的绑定信息。
★④SOA中的操作(模型)
a.发布操作:
一个操作是对Web服务本身的描述(业务信息、服务信息、技术信息);
一个操作是对Web服务的注册(需要将Web服务描述信息至少发布到一个服务注册机构中)。
b.查找操作:在发现机构的注册中心中搜索服务。(静态指定、动态指定)
c.绑定操作:服务请求者使用绑定信息定位并联系服务,从而调用或者初始化服务的功能。
⑤SOA中的层次
三类不同的SOA入口点:实现企业服务编配、 提供给整个企业的服务、 实现端到端协作型业务流程。
SOA包含六个不同的层次:
a.业务领域:是功能域,包含若干业务流程,使这些流程之间能够相互协作,从而完成高层次的业务目标。
b.业务流程:业务领域可划分为几个核心业务流程,这些业务流程非常标准化,可在整个企业中使用,是良定义的粗粒度流程。
c.业务服务:将流程不断细分为更小的子流程, 直到无法再分,可成为业务服务。
d.基础架构服务:可划分为技术公共服务、访问服务、 管理和监控服务、交互服务。
e.服务实现:实现运营系统中已有的应用和系统的服务。
f.运营系统:组件使用运营系统实现业务服务和流程。
★8.Web服务的技术架构
目的:就是确保在任何平台上使用任何技术和编程语言都可以实现和访问 Web 服务
①使能技术标准:
a.传输层:如Web Service在传输层利用了HTTP协议。
b.其他任何层:利用XML交换数据。
②核心服务标准:
信息交换:SOAP,简单对象访问协议。
服务描述:WSDL,Web Service描述语言。
服务发布:UDDI,通用描述、发现与集成。
9. 服务质量(QoS)
①服务质量(QoS):基于SOA的应用程序必须可靠地运行,并需要能够提供多种级别的一致服务。
②QoS的度量:
a.可用性
b.可访问性
c.符合标准
d.完整性
e.吞吐量和等待时间
f.可靠性
g.可伸缩性
h.安全性
i.事务性:
★10.Web服务的优与劣
10.1Web服务的优点:
①它既能支持常见的业务问题,又能根据市场需要的变化做到随需应变。
②其不断发展,从而能够包容电子商务、企业应用集成、传统的中间件以及web技术。
10.2Web服务的不足:
①事务标准还很不成熟。
②缺乏表达业务语义的手段。
③不同标准之间相互重叠或相互冲突。
★11.Web服务体系结构与SOA体系结构
Web服务体系结构:
SOA体系结构:
1.分布式系统与互联网协议
1.1分布式系统
分布式系统是网络化的计算机集合,这些计算机能相互通信,并能通过传递消息来协调运行。
1.2分布式系统的特征
①多个进程不仅在一个处理器上执行,而且能够在多个处理器上执行。
②分布式系统可能会有许多不同类型的故障。
③分布式计算在多个方面都取得了很大的进展。
1.3互联网协议
互联网协议中最重要的是传输控制协议和互联网协议(TCP/IP)
①IP协议用于不同主机之间的报文的不可靠传送。
②TCP协议增加了连接和可靠性。
0SI参考模型(七层层次结构):应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
TCP/IP模型(五层):应用层、传输层、网络层、数据链路层、物理层。
1.4中间件
是一种连接软件,在不同系统间建立桥接,以便在这些系统之间能够相互通信和传输数据,从而有助于管理分布式系统所固有的复杂性和异构性。
中间件层位于应用程序与互联网传输协议之间。
2.客户/服务器模型
①在分布式处理中,数据控制的集中化和数据访问的分布性之间是有冲突的,为此,客户/服务器模式成为一个最通用的解决方案。
②在客户/服务器体系结构中,客户端有两大任务, 向服务器进行请求,同时也是用户接口。
③基于web应用中的客户端与传统的客户/服务器体系结构中的客户端的区别。
“胖客户端”:应用程序的大部分都存储在客户端。
“瘦客户端”:不需要将应用程序的代码下载到客端计算机运行,而是在功能强大的服务器上运行程序,服务器提供了执行代码及客户端 所需的数据。 浏览器是一个用户接口。(Web网页)
3.进程间通信的特性
3.1依时性的同步方式
在两个通信应用系统之间必须要进行同步,两个系统必须都在正常运行,并且会中断客户端的执行流, 转而执行调用。
3.2与时间无关的异步方式
调用者在发送消息以后可以不再等待响应,可以接着处理其他任务,发送程序和接收程序无须同时运行处理通信任务。
4.中间件的同步方式
4.1远程过程调用(RPC)
RPC是一种中间件机制,用于调用远程系统中的过程,远程系统中的过程返回相应的结果。
4.2远程方法调用(RMI)
RMI调用由两个不同的程序组成:服务器端和客户端.
客户端通过调用远程对象引用提供的方法,来完成自身所需的功能。
5.中间件的异步方式
5.1消息存储与转发
①通过存储与转发排队机制,发送程序可将消息发送到一个称为消息队列的虚拟信道中,接收程序可根据需要从消息队列中接收消息。
②存储与转发排队机制是多对一消息传送
a.多个应用可向同一个应用发送消息。
b.一个应用既可以是发送者,又可以是接收者。
c.消息排队提供了更高的可靠性。
d.多个消息服务器通过网络链接在一起。
5.2消息的发布与订阅(可伸缩性强)
发布/订阅消息传送的流程
①发布者应用发布了一个具体主题的消息,多个订阅应用都可以订阅该主题, 并收发布应用所发布的消息。
②发布者将消息发布到特定主题。
③消息服务器记录所有的消息,以及当前处于活动状态的长期订阅者。
④一旦有消息发布到某一个具体的主题,这些消息就将分发到它们的订阅者。
特点:
消息服务器负责向订阅了主题的订阅应用发送被发布的消息。
所有订阅者都有一个消息事件侦听程序。
消息的发布者不期望回复,只要确认合作伙伴已经收到信息即可。
5.3事件驱动的处理机制
客户端:兴趣对象,通知的生成者;
当事方:通知的使用者。
事件通知服务通过**“选择”处理**来确定发布的消息与哪些客户端的兴趣相一致,并且仅路由和发送那些符合客户端兴趣的通知。
5.4点到点排队
客户端通过队列发送和接收消息,并且既可以采用同步方式,也可以采用异步方式。(拉式、轮训式、推式)
6.请求/应答的消息传送方式
同步,Web服务客户端会因同步响应堵塞或等待。
异步,请求者(发送者)认为应答在稍后的某个时刻将会到达, 并且会继续它的其他工作。
7.面向消息的中间件(MOM)
面向消息的中间件(MOM)是一个基础架构,它使用普通的通信信道在应用之间传送数据。
MOM位于客户端和服务器之间,并处理客户端和服务器之间的异步调用。
8.集成代理
①集成代理完成内容和格式转换,将收到的消息转换为目的系统能够理解和利用的形式。
②集成代理是一个应用之间的中间件服务,可进行一对多、多对一及多对多的消息分发
第三章
★1.什么是XML(可扩展标记语言)
1.1XML定义
①是一种标记语言,很类似HTML;
②XML的设计宗旨是传输数据,而非显示数据;
③XML标签没有被预定义,需要自行定义标签,具有自描述性;
★1.2XML与HTML的主要差异
①XML不是 HTML的替代。
②XML和HTML为不同的目的而设计。
③XML被设计为传输和存储数据,其焦点是数据的内容。
④HTML被设计用来显示数据,其焦点是数据的外观。
⑤XML比HTML的语法规则更严格。
★1.3XML的特点
①XML是不作为的,XML不会做任何事情,XML 被设计用来结构化、存储以及传输数据。
②XML仅仅是纯文本。
③通过XML可以发明自己的标签,具有自描述性。
④XML是独立于软件和硬件的信息传输工具。
1.4XML的作用
①XML把数据从HTML分离出来
②XML简化数据共享
③XML简化数据传输
④XML简化平台的变更
⑤XML使数据更有用
⑥XML用于创建新的 Internet 语言
2.XML文档结构
XML是一种可扩展标记语言,用于网络上电子标记文本的描述和发送。
2.1XML文档组成(根元素、子元素、属性、注释、内容)
XML文档 = 命名容器+命名容器所包含的数据值
命名容器
声明,确定XML的版本
元素,表示一个文本单元,可视为一个结构化组件
属性,元素的特征
2.2XML树结构
XML 文档必须包含根元素。该元素是所有其他元素的父元素
2.3XML声明
<?xml version="1.0" encoding="UTF-8" ?>
2.4XML语法规则
①所有XML元素都须有关闭标签。
②XML 标签对大小写敏感
③XML 必须正确地嵌套
④XML 文档必须有根元素
⑤XML 的属性值须加引号
⑥实体引用(预定义实体)
★⑦两种类型的实体:预定义实体、自定义实体。
★2.5XML元素
①根元素,XML文档最顶端的一个元素
②元素的内容可以是字符数据、其他的嵌套元素,或者是这两者的组合
③包含在其他元素中的元素称为嵌套元素
④包含在文档中的数据值称为文档的内容
⑤不同类型的元素具有不同的名字,对于特定类型元素, XML并不提供表示这些类型元素的具体含义的方法, 而是表示这些元素类型之间的关系
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
2.6XML属性
①在起始标签中添加属性。
②使用属性可以向元素中添加信息,从而更好地表示元素的内容。
③属性不可以嵌套,必须在元素的起始标签中进行声明。
2.7XML 元素 vs 属性
①尽量避免使用属性。
②属性无法包含多重的值(元素可以)。
③属性无法描述树结构(元素可以)。
④属性不易扩展。
⑤属性难以阅读和维护。
3.URI和XML命名空间
3.1统一资源标识符(URI)
①统一资源标识符是一串可以唯一标识因特网资源的字符。
3.2URI与URL
①URI比URL更新、含义更广。
②URI既包括使用传统寻址模式(如HTTP和FTP) 的URL,也包括统一资源命名URN。
★3.3XML命名空间
问题:在不同的上下文中可能会使用相同的标签名→命名冲突。
解决:XML命名空间使得不同的元素可以具有相同的本地名,从而避免了名字的冲突。
①命名空间中的标签名必须是唯一的。
②所有的命名空间声明都有作用域。
③命名空间中的名字与元素的本地名一起构成了全局唯一名,该名字也称为限定名。
xmlns:namespace-prefix = "namespaceURI“
用于标示命名空间的地址不会被解析器用于查找信息。 其惟一的作用是赋予命名空间一个惟一的名称。
4.定义XML文档中的结构
4.1Schema
XML中,模式通常指的是一种特定的文档,该文档用于定义某一类别的XML文档的内容和结构
目的:定义XML文档的类别。
★4.1XML模式定义语言(XML Schema Definition Language,XSD)
①XSD提供了一种粒度化的方式,可用于描述XML文档的内容。
②XSD可用来声明元素和属性,复用其他模式的元素, 定义复合元素,定义约束。
XML Schema的作用是定义XML文档的合法构建模块。
4.2XML Schema优势
①XML Schema支持数据类型,定义数据模型(或称数据格式)。
②XML Schema使用XML语法,不必学习新的语言。
③XML Schema可保护数据通信。
④XML Schema可扩展,通过可扩展的Schema 定义,可以在其他Schema中重复使用Schema。
4.3XML模式组件
XML模式由模式组件构成,模式组件是一些构建模块,可用于构建模式的抽象数据类型。
★4.4XML模式文档
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2003/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
★4.5XSD类型定义、元素和属性声明
①通过定义可以创建新的类型。
②通过声明,具有特定名字和类型(简单类型或复合类型)的元素和属性可以出现在文档实例中。
★4.6XSD元素声明
①元素是模式的主要组成部分,使用XSD中的<xs:element>
声明。
②元素所定义的位置确定了元素在模式中的可用性。
若元素声明是元素<xs:schema>
的直接后代,则称为全局元素声明。
③<schema>
元素是每一个 XML Schema 的根元素,可包含属性。
④XSD 简易元素,仅包含文本的元素,不会包含任何其他的元素或属性。
<xs:element name="xxx" type="yyy"/>
内建的数据类型:
xs:string
`xs:decima`
`xs:integer`
` xs:boolean`
xs:date
xs:time
简易元素可拥有指定的默认值或固定值
★4.7属性声明
①XML属性不能嵌套,不能重复,也不能具有基数。
②可以使用XSD的元素表示复合元素的属性
③属性的类型必须是简单类型之一:
boolean、byte、date、dateTime、decimal、double、 duration、float、integer、language、long、short、string、 time、token
简易元素无法拥有属性
④定义属性
<xs:attribute name="xxx" type="yyy"/>
属性可拥有指定的默认值或固定值
可选的和必需的属性
★4.8XSD 限定
用于为 XML 元素或者属性定义可接受的值
限定
xs:restriction base=“xs:XXX”
限定类型
xs:enumeration
限定枚举约束
xs:pattern
限定一系列值
xs:whiteSpace
限定空白符
xs:length/maxLength/minLength
限定长度
4.9简单类型
通过创建<simpleType>
来自定义数据类型,基于一个所支持的数据类型,然后向这个数据类型中添加约束来创建新的数据类型。
★4.10复合类型
①一个元素假如包含子元素和/或子属性,则该元素为复合类型。
②可以使用**<complexType>
**元素来定义结构化类型
③复合类型定义通常包含一组元素声明、元素引用和属性声明
④有四种类型的复合元素
空元素
包含其他元素的元素
仅包含文本的元素
包含元素和文本的元素
定义复合元素
有两种方式来定义复合元素 : 通过命名此元素 使用type属性,引用要使用的复合类型的名称
XSD复合类型指示器
通过指示器,可以控制在文档中使用元素的方式。
有七种指示器:
Order 指示器,用于定义元素的顺序
All:子元素可以按照任意顺序出现,且每个子元素必须只出现一次。
Choice:定可出现某个子元素或者可出现另外一个子元素(非此即彼)。(多选1)
Sequence:元素必须按照特定的顺序出现。
Occurrence 指示器,用于定义某个元素出现的频率
maxOccurs(某个元素可出现的最大次数)、minOccurs (某个元素能够出现的最小次数)
Group 指示器,用于定义相关的数批元素
Group name:元素组,通过group声明进行定义
<xs:group name=”xx”>
声明
</xs:group>
<xs:group ref=”xx”/>
引用
attributeGroup name:属性组,通过attributeGroup声明来进行定义
<xs: attributeGroup name=”xx”>
<xs: attributeGroup ref=”xx”/>
XSD <any>
元素:
<xs:any/>
可以通过未被schema规定的元素来拓展
XSD <anyAttribute>
元素
<xs:anyAttribute/>
可以通过未被schema规定的属性来扩展
元素替换:substitutionGroup
4.11派生的复合类型
①扩展:可以扩展复合类型,不能修改或删除已有的属性
<xs:extension base="PO:已有属性名">
</xs:extension>
②约束:通过删除属性、对属性进行约束以及设置内容模型的子集,可以对复合类型进行约束。
<xs:restriction base="PO:已有属性名">
</xs:restriction>
★4.12导入模式与包含模式
在XSD中,使用include元素和import元素实现模式的组合,称为包含模式和导入模式。
可以有效地“继承”被引用的模式中的属性和元素
import和include有两点主要的不同:
①include元素仅在相同的命名空间中使用,import可以跨不同的命名空间使用。
②include元素具体地引入其他的模式文档,import元素依赖另一个命名空间,但不需要另一个模式文档。
第四章
1.应用程序间的通信与连接协议
★1.1SOAP
①定义:SOAP(简单对象访问协议)是一个基于XML的轻量级通信协议,它允许两个计算机之间交换消息,而无须考虑两个计算机的操作系统、编程环境或对象模型框架。
②SOAP是Web服务消息传输协议的事实上的标准。
③SOAP的主要应用是应用程序间的通信。
④SOAP方法是一个用XML作为编码模式,遵循SOAP编码规则的http请求和响应。
1.2连线协议与传输协议
①连线协议:指定在不同的应用系统之间交换的数据的形式或状态。
②传输协议:是一种在系统之间传输数据的方法。
1.3SOAP满足的具体标准
简洁性:是指当传送相同的信息时,网络数据包是否比较简洁。程度适度的简明性通常是最佳的
协议效率:直接与简洁性相关。根据发送有效载荷的开销,可疑判定效率的高低。
藕合性:是指客户端应用对于变化的适配程度,松藕合和紧藕合。
可伸缩性:是指协议可以支持大量的用户。
互操作性:是指协议可以与大量不同的计算平台进行协作。
通常基于这些特征来综合评价包括XML和SOAP在内的协议
SOAP:耦合、互操作性、可伸缩性↑;简洁性、协议效率↓
2.SOAP作为消息传送协议
2.1SOAP的目标
不同的分布式计算平台具有异构性,SOAP的目标就是试图消除这一异构性所产生的各种障碍。
2.2Web服务通信和消息传送网络
①SOAP是一个无状态的单向消息交换协议。
②SOAP没有定义诸如编程模型等任何应用语义,也没有定义任何具体语义的实现。
③SOA不关心SOAP消息的路由、可靠的消息传送、防火墙的穿越等问题。
④在基于XML的消息传送分布式计算中,充当请求者或提供者的互联网节点的基本需求是 :
a.能够构造或解析SOAP消息
b.能够在网络上通过发送或接收消息进行通信
⑤最适合SOAP的传输协议是HTTP。
2.3使用SOAP的分布式消息传送
单向传送、请求/响应传送交换模式
Web Service可以使用单向消息传送或者请求/响应消息传送
★3.SOAP消息的结构
3.1SOAP消息的结构
①当前的SOAP规范描述了如何将关联的XML模式中定义的数据类型进行HTTP上的串行化。
②每一个SOAP消息本质上是一个XML文档。
★3.2SOAP构建模块
①一条SOAP消息就是一个普通的XML文档,包含下列元素
a.必需的Envelope元素,可把XML文档标识为一条SOAP消息
b.可选的Header元素,包含头部信息
c.必需的Body元素,包含所有的调用和响应信息
d.可选的Fault元素,提供有关在处理消息时所发生错误的信息
②语法规则
a.必须用XML来编码
b.必须使用SOAP Envelope命名空间
c.必须使用SOAP Encoding命名空间
d.不能包含XML处理指令
★3.3SOAP消息的基本结构
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/5/soap-envelope" soap:encodingStyle="http://www.w3.org/2003/5/soap-encoding">
<soap:Header>
... ...
</soap:Header>
<soap:Body>
... ...
<soap:Fault>
... ...
</soap:Fault>
</soap:Body>
</soap:Envelope>
①SOAP的Envelope元素是SOAP消息单一的根元素。
②SOAP<Envelope>
的编码规则集,该规则集将所定义的XML数据串行化。
③ SOAP<Header>
元素:
a.<Envelope>
最多包含一个<Header>
子元素,必须是第一个子元素。
b.<Header>
元素包含了与端点或中间传输点相关的所有处理线索。
c.<Header>
的目的是对扩展的消息格式封装,且无须与有效载荷发生关联, 也不需要修改SOAP的基本结构
d.直接子元素称作“头块”,并表示为一个数据逻辑分组。
e.每一个头块都应当有自己的命名空间,帮助SOAP应用标识头部以及分别处理这些头块。
f.SOAP的actor属性可被用于将Header元素寻址到一个特定的端点。
g.mustUnderstand属性可用于标识标题项对于接收者来说是强制的还是可选的(0/1)。
h.许多头部涉及其他SOAP处理节点(称作SOAP中介)的参与,中介既可以接收也可以转发SOAP消息。
SOAP消息传送的模块性使得处理SOAP消息的代码页可以模块化
④SOAP消息体<Body>
元素
a.SOAP消息必须包含元素,并且该元素必须是的直接后代,位于消息中所定义的任何头部之后。(任意数目,也可为空)
b.默认定义了Body元素内部的一个Fault元素,用于指示错误消息。
c.<Body>
元素包含具体应用的XML数据或一个出错消息Fault,不能同时携带这两类信息。
d.<Body>
元素和<Envelope>
根元素的一个区别是它既是请求对象又是响应对象。
请求消息
</soap:Envelope>
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/5/soap-envelope"
soap:encodingStyle="http://www.w3.org/2003/5/soap-encoding">
<soap:Body>
<m:GetPrice xmlns:m="http://www.w3school.com.cn/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>
</soap:Envelope>
响应消息
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/5/soap-envelope"
soap:encodingStyle="http://www.w3.org/2003/5/soap-encoding">
<soap:Body>
<m:GetPriceResponse xmlns:m="http://www.w3school.com.cn/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse>
</soap:Body>
4.SOAP通信模型
4.1SOAP支持两类通信方式
①RPC:SOAP消息能够发出带参数的方法调用,并获得返回值。
②文档:可以使用SOAP来交换文档,这些文档可以包含任何类型的XML数据。
4.1通信方式与消息交换的模式
①SOAP通信方式可以是文档或RPC两者之一。
②SOAP消息的有效载荷通常是一个XML文档片段,或者是与RPC相关的参数、返回值的XML表示。
③单向消息交换模式、请求/响应消息交换模式指的是消息的流向,与具体内容无关。
(单向消息传送仅有一个方向,请求/响应有两个方向)
④文档和RPC方式的消息传递既可以采用单向传送的模式,也可以采用请求/响应消息传送的模式。
5.SOAP中的出错处理
SOAP出错模型中,使用专门的元素Fault来报告所有的SOAP错误和应用错误。
6.基于HTTP的SOAP
SOAP使用XML作为请求和响应参数的编码模式,并且使用HTTP作为传输协议来抵达互联网上的任何目的地,而无须任何额外的包裹或编码。
①HTTP + XML = SOAP
②SOAP请求可能是 HTTP POST
或 HTTP GET
请求。
③HTTP POST 请求规定至少两个 HTTP 头:ContentType 和 Content-Length。
★7.SOAP的优缺点
①SOAP的主要优点:
a.简单性:基于XML具有高度的结构化,容易解析。
b.可移植性:无须依赖底层平台,不需考虑字节顺序或计算机字长等问题。
c.与防火墙的相容性:POST机制具有广泛的可用性,可以穿过防火墙。
d.使用开放标准:使用XML开放标准来格式化数据。
e.互操作性:建立在开放技术至上,而且是基于特定厂商的技术。
f.被广泛接受:在消息通信领域,SOAP是最被接受的标准。
g.适应变化:SOAP基础架构的变化通常不会影响到使用协议的应用。
②SOAP的缺点:
a.SOAP最初仅限于HTTP,采用了并不适合所有情况的请求/应答体系结构。
b.SOAP是无状态的。
c.SOAP为基于值的串行化,而不支持基于引用的串行化。
第五章
1.为何需要服务描述WSDL
①为了开发基于服务的应用和业务处理,需要以一致的方式来描述Web服务。
②实现SOA松耦合,将服务提供者和服务请求者的应用集成在一起,减少定制程序的开发以及更好地理解相关知识。
★1.1服务描述语言WSDL
WSDL是一种使用 XML 编写的文档。这种文档可描述某个 Web 服务,可规定服务的位置, 以及此服务提供的操作。
★1.2WSDL描述web服务的三个基本属性(作用)
作用:WSDL是一种用来描述Web Service 的功能特征的语言,其规定了一套基于XML的语法,能够提供关于web Service的以下三方面的重要信息:
①服务做些什么:描述服务功能的信息,通过Web服务接口,可以使用服务提供的操作。
②如何访问服务:请求/响应数据格式以及访问服务操作的必要协议。
③服务位于何处:访问服务地址,如URL。(
1.3WSDL的本质
告诉服务的使用者如何将请求消息格式化,通过何种通信协议在何处访问web服务。
2.WSDL:Web服务描述语言
2.1WSDL文档
WSDL文档仅仅是一个简单的XML文档。它包含一系列描述某个web service的定义。
★2.2WSDL文档结构
<portType>
描述一个web service可被执行的操作,以及相关的消息
<message>
定义一个操作的数据元素
<types>
定义web service使用的数据类型,WSDL使用XML Schema语法来定义数据类型
<binding>
为每个端口定义通信协议细节
<service>
此元素可把若干个web services的定义组合在一个单一的WSDL文档中
★2.3WSDL服务描述
①WSDL规范事实上分成两部分:
a.服务接口定义(抽象接口)
b.服务实现定义(具体端点)
c.服务接口定义和服务实现定义这两部分合起来构成了服务的WSDL规范
过程:这些信息描述了服务请求者如何在服务提供者的节点上调用web Service,以及服务请求者如何与 Web服务交互。
②WSDL的接口定义
a.服务客户端通过调用操作与Web服务进行交互, 在Web服务接口中,可以将相关的操作进行分组。
b.WSDL指定了描述Web服务的语法和句法,可将 Web服务描述为通信端点的集合。
c.Web服务接口定义描述了消息、操作和端口类型, 并且具体的描述保持了平台独立性和语言独立性。
d.WSDL中,<types>、<message>、<part>、<portType>、<operation>
元素描述了Web服务的抽象接口。
③WSDL的实现定义
a.WSDL的目的就是首先抽象地定义Web服务,然 后规定WSDL开发者如何实现这些服务。
b.WSDL的服务实现部分包含元素<binding>
、<port>
和<service>
,并描述了服务提供者如何实现一个特定的服务接口,以及服务实现描述了服务位于哪里。(如何实现特定接口和定位服务)
★c.通过<import>
元素,服务实现文档可以包含对多个服务接口文档的引用(考了)。
2.4WSDL的消息交换模式(接口支持四类操作)
①两类基本的消息接收和发送版本
一类是单个的消息接收操作和对应的发送操作(单向和通知操作)。
另一类是同步双向消息交换(请求/响应和要求/响应)。
★2.5WSDL消息交换模式概要(对接收者而言)
①单向操作
<operation>
元素声明为具有一个<input>
元素,并且没有<output>
元素
②请求/响应操作
<operation>
元素首先声明含有一个<input>
元素,紧接着声明含有一个<output>
元素,则它定义了一个请求/响应操作。
③通知操作
在<portType>
元素中包含一个<output>
标签,但没有<input>
消息的定义。
④要求/响应操作
<portType>
元素首先声明一个<output>
标签,然后声明一个<input>
消息定义,正好与请求/响应操作完全相反。
3.使用WSDL生成客户端stub
第六章
1.服务注册
①通过在服务注册库中发布一个Web服务,其他的应用将能发现该服务,这需要两个同样重要的操作:Web服务的描述和注册。
a.服务发布需要从业务、服务和技术方面对Web服务进行合适的描述。
b.注册则涉及在Web服务注册库中持久化存储在Web服务的描述。
1.1电子商务的注册
①基于文档的服务注册:通过在注册库中存储基于XML的服务文档,服务提供者也必须以服务元数据的形式提供每一文档的描述信息。
②基于元数据的服务注册:服务提供者提交包含服务信息的文档,注册库不会原样存储这些文档,而是获取服务文档中所包含的信息,然后创建元数据。
不同之处:它们处理服务描述信息的方式不同
2.服务发现
2.1服务发现
服务发现的实质是确定Web服务提供者的位置, 并获取已经发布的Web服务的描述。
①静态服务发现:
a.通常发生在设计阶段;
b.确定了服务实现细节,并从服务注册库中检索服务;
②动态服务发现:
a.发生在运行时,设计时并不确定具体的服务实现细节;
b.Web服务请求者必须指定首选顷。
2.2服务查询
服务查询:在注册库中查询满足服务请求者需求的Web服务。
3.UDDI:统一描述、发现和集成
UDDI是一种用于描述、发现、集成Web Service的技术,它是Web Service协议栈的一个重要部分。通过UDDI,服务提供者可以将自己的web服务描述信息发布到UDDI注册中心,服务请求者可以通过UDDI查找并使用自己的需要Web服务
3.1UDDI规范
①UDDI是一个跨行业的注册标准草案。
②UDDI利用了W3C和IETF的一些标准,如XML、 HTTP和DNS协议。
③UDDI的目的是供开发工具以及使用Web服务标准的应用使用。
④UDDI提供一个全球的、平台独立的、开放的框架。
⑤UDDI是一个包含轻量级数据的注册库。
★⑥UDDI业务注册提供的信息包含三个相关的组成部分:
a.白页数据:包括地址、联系方式以及其他的一些联系信息;
b.黄页数据:基于行业分类法对信息进行分类;
c.绿页数据:关于服务的业务能力和相关信息,包括对于Web服务规范的引用和指向各种基于文件和基于URL的发现机制的指针。
⑦UDDI是按标准化方式设计的,并不受限于任何技术。
⑧UDDI注册库与目录或其他注册库的主要的不同点在于:
UDDI提供了按照分类法对业务和服务进行分类的一种机制。
★3.2UDDI用例模型
①角色:产业联盟、标准化组织/UDDI注册库/服务提供者/服务客户端。
②行为:
服务客户端(基于不同的标准发现服务类型定义和服务描述)–> UDDI注册库
服务客户端(获取服务类型定义细节)–> 产业联盟、标准化组织、服务提供者
服务客户端(调用所发现的服务)–> 服务提供者
★3.3UDDI数据结构
①无论是在公共域还是在防火墙后使用,UDDI注册库都提供了对Web服务分类、编目和管理的机制,从而可以发现和使用那些Web服务。
②UDDI的主要目的是Web服务的数据和元数据表示
③UDDI XML模式定义了提供白页、黄页、绿页功能的四类核心信息类型
业务实体 业务服务 绑定模板 服务规范(技术或tModel)
★④UDDI的层次关系(如上图)
业务将发布包含一个或多个业务服务的业务实体 <businessEntity>
服务都有一些描述性的信息 <businessService>
,并且这些服务都能有一个或多个绑定模板<businessTemplate>
<tModel>
指向服务的规范或者接口定义
<tModel>
和<bindingTemplate>
之间的关系通常是多对多的
<businessEntity>
> <businessService>
> <businessTemplate>
—对应—<tModel>
3.4服务提供者信息
①businessEntity包含了特定业务单元(服务提供者)白页信息,支持业务信息的发布和发现。
②businessEntity包含businessKey属性,具有唯一性的业务标识符。
③discoveryURL元素:可选元素,包含一些URL,指向其他的可Web寻址的发现文档。
④name元素:业务实体表示的组织的通用名称。
⑤description元素:对业务的简短的叙述性说明。
⑥contacts元素:可选元素,组织的联系信息。
⑦businessServices元素:描述业务实体所提供的业务服务。
⑧identifierBag元素:名-值对列表,可充当公司的替代标识符。
⑨categoryBag元素:对服务的分类标识。
3.5Web服务描述信息
①businessService 是一个描述性的容器。
②businessService 对这些Web服务进行分组。
③businessService 中的信息映射到有关公司的黄页信息。
3.6Web服务访问与技术信息
①每个bindingTemplate表示了一个不同的Web服务 port 或 binding 。
② bindingTemplate元素必须包含下列两者之一 :
一个特定服务的接入点 通向接入点的间接途径
③绿页数据是 Web 服务的技术描述 , 它驻留在bindingTemplate元素中。
④定义 bindingTemplate 结构时 , 可声明 <accessPoint>
或<hostRedirector>
,但不能同时声明这两者.(二选一)
⑤tModel提供了描述服务的技术细节的绿页信息。
⑥当描述Web服务如何与它的客户端进行交互时, tModel的主要作用就是提供一个技术规范。
★4.WSDL到UDDI的映射模型
特点:
①UDDI和WSDL都清晰地、系统地刻画了接口和实现, 它们可以相互补充、相互协作。
②对于UDDI业务和服务条目中的信息,WSDL文档中定义的服务信息是对其的一个补充。UDDI的目标是提供多种类型的服务描述,不直接支持WSDL。
4.1WSDL到UDDI的映射模型
①WSDL portType元素和binding元素规范如何变成tModel。
②WSDL port如何变成UDDI bindingTemplate
③每个WSDL服务如何注册为businessService
4.2 发布服务接口与服务绑定
①当发布服务时,第一步就是创建服务接口定义:包括服务接口和协议绑定,需要能够公开访问它们。
使用UDDI注册的任何Web服务都必须与<tModel>
关联。
②UDDI businessService元素表示了一个WSDL服务, 并且WSDL port实体映射到bindingTemplate。
4.3WSDL到UDDI的映射模型小结
①从wsdl:portType到uddi:tModel的映射
②从wsdl:binding到uddi:tModel的映射
③从wsdl:service到uddi:businessService的映射
④从wsdl:port到uddi:bindingTemplate的映射
★5.UDDI API
①UDDI API是一个接口,可以接受封装在SOAP信封中的XML消息。
②UDDI交互都使用请求/响应模式。
5.1查询API(两种方式)
①浏览:开发者可以使用浏览模式来获取满足比较宽泛的查询标准的进入点、服务或者技术特性。
②下钻:获取更具体的功能部件。
5.2发布API(四类操作)
特点:通过发布接口,企业可以存储和更新包含在UDDI注册库中的信息。
①授权:客户端可以获得相应的访问权限、获取授权令牌、终止会话和授权令牌。
②保存:客户端可以在UDDI中添加或更新信息。
③获取:可以获取所发布的数据结构的概要数据。
④删除:客户端可以在UDDI中删除信息。
5.3 UDDI模型的查询
随着所开发的应用的类别不同,可以在设计/构建或运行时查询
①在设计/构建时通常选择 **portType **查询
②在运行时,可搜索portType的实现,并且假如有 **binding **也可以搜索
③查找业务实体(BE):
a.通过名字来查找业务实体。
b.通过类别来查找业务实体。
④查找tModel:
a.在UDDI注册库中,所有的WSDL服务接口都作为tModel发布。
b.使用UDDI find_tModel
可以检索到已分类的tModel,返回一个键的列表。
c.使用下钻get_tModelDetail
,能检索到一个具体的服务接口描述。
5.4UDDI用例模型与部署的多样性
UDDI用例模型假设了一些不同的业务信息提供者角色
①注册库运行者:驻留和处理注册库的企业,提供了UDDI注册库的Web接口。
②产业联盟/标准化组织:发布服务类型定义的描述信息,含有一个URL。
③服务提供者:在UDDI中发布有关服务的描述信息。
部署方式:
电子交易市场UDDI
业务合作伙伴UDDI
注册库门户UDDI
内部UDDI
第七章
★1.Web服务与有状态的资源
①一般而言,易失性存储的计算可以描述为一系列的快照,称为状态。
②程序的状态指的是在相继的计算之间“记忆”信息的能力
③交互涉及两类模式:有状态的和无状态的 :
有状态的交互记录方法调用之间的客户端状态, 无状态的交互则不需要记录**
1.1有状态的资源
①构成状态的信息通常捆绑在一起,并称作有状态的资源。
②有状态的资源具有3个主要特性:
a.是一个具体的状态数据集。(XML文档)
b.良定义的标识和生命周期。
c.一个或多个Web服务都知道该资源,并能操纵该资源。
③定义:有状态的资源是一些能够被建模的元素,它们既可以是一些物理实体,也可以是一些逻辑构成。
1.2Web服务与有状态的资源
①对于有状态的资源,Web服务应用主要关心:
a.Web服务消息交换
b.如何创建和销毁有状态的资源
c.如何修改有状态的资源的元素
e.如何将有状态的资源的类型定义关联到Web服务的接口描述
f.其他组件如何识别和引用有状态的资源
2.Web服务资源框架
2.1Web服务资源框架简介
①WS-RF是一个规范集,基于该规范集可使用Web 服务建模有状态的资源。
②WS-RF的核心就是Web服务与有状态的资源之间的关系
③WS-RF定义了Web服务如何保持有状态的信息
2.2WS-RF
①WS-RF涉及6个Web服务规范,定义表示和管理状态的WS-Resource方法
2.3WS-RF和其他Web服务标准之间的关系
2.4有状态的资源与Web服务关联
①静态关联:当部署Web服务时,将有状态的资源与Web服务进行关联。
②动态关联:在交换消息时进行关联。
③端点引用是一个与隐含的资源标识符进行消息交换的模式,端点引用可以唯一地标识与之通信的资源。
④端点引用提供了目标的地址,而不是目标的标识,并且端点引用是作为XML类型来定义的、
2.5Web服务寻址
通过WSDL提供的服务端点信息调用Web服务(静态);还有有更多的动态信息, 这需要客户端或运行时系统在运行时统一标识服务。
2.6WS-Addressing
①WS-Addressing定义了如何通过消息头信息将消息传送到服务。
②使用<EndpointReference>
可以进行消息交换,其中<ReferenceProperties>
元素标识了和所有消息交换相关联的资源。
2.7Web服务资源
①WS-Rsource被定义为Web服务和有状态的资源的组合.
②在Web服务环境中,WS-Resource通过一组组件来表示状态,这组组件称作资源特性元素。
③资源生命周期:从创建WS-Resource(有状态的实体)到销毁WS-Resource,这段时间称为WS一Resource的生命周期。(静态、动态)
④WS-RF涉及了实体生命周期的三个方面:创建、 指派标识和销毁。
2.8服务组
①服务组指的是一种创建异构传参的Web服务集合的方式。
3.Web服务通知
3.1WS-BaseNotification实体
补充点:
1. Xpath:XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
2. 各类代码(XML Schema、SOAP、WSDL、UDDI)文本。
3.UDDI是一种用于描述、发现、集成Web Service的技术,它是Web Service协议栈的一个重要部分。通过UDDI,服务提供者可以将自己的web 服务描述信息发布到UDDI注册中心,服务请求者可以通过UDDI查找并使用自己的需要Web服务。
4.WS操作:发布、查找、绑定、服务、服务描述。
5.WS开发生命周期:构建、部署、运行、管理。
参考习题:https://wenku.baidu.com/view/7f61e91227284b73f24250b2.html?fr=search-1-income5
考试看这个习题,90+没问题。