欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

web服务(电子服务系统设计)知识点汇总

程序员文章站 2022-07-15 12:11:05
...

web服务(电子服务系统设计)知识点汇总

前言
第一章 WS基础
第二章 分布式计算基础架构
第三章 XML概览
第四章 SOAP简单对象访问协议
第五章 描述WEB服务
第六章 WEB服务的注册和发现
第七章 WEB服务的寻址和通知(未完成)

前言

本文档原意为考试复习所用,基于 《web服务:原理与技术》 课本。但是,自学的同学也可以以此文档为参考文档。博主是西工大软院学生,此文档为自己总结,对工大的学子肯定更有用一些。
另,工大的学弟学妹们,陈勇老师的考试真的不难,xml的格式和概念是重中之重。希望大家合理利用时间,后面的网络与分布式才是令人怀疑人生,博主本年大题只有一个SOA结构图解释和Schema手写代码。祝大家学习顺利,考试通过。

第一章

什么是WS:

当服务使用因特网作为通信手段以及使用基于因特网的标准时,即为Web服务

Web服务是一个可通过因特网使用的自描述、自包含软件模块,这些软件模块
可完成任务、解决问题或代表用户、应用程序处理事务

既可以是进行简单的请求,也可以是需要访问和综合多个数据源信息的完整的
业务应用程序

WS完整定义:

Web服务是一个平*立的、松耦合的、自包含的、基于可编程的Web应用程序,
可使用开放的 XML标准描述、发布、发现、协调和配置这些应用程序,并用于开
发分布式的互操作应用程序。
  • Web服务的特性
    • Web服务的类型
      • 简单服务(信息型服务,无状态web服务),通过请求/响应序列交互
      • 复合型服务(功能是粗粒度的,有状态),在进入操作和离开操作间协调
    • 服务描述
      • 功能性描述,非功能性描述
    • 状态属性
    • 松耦合
      • 服务请求者无须了解服务提供者实现的具体技术细节。服务请求者通常使用消息来调用服务,服务提供者也通过消息进行响应
    • 服务粒度
    • 同步特性
      • 同步或RPC方式
      • 异步或消息(文档)方式 文档类型服务或消息驱动类型服务
    • 良定义
      • 服务间的交互是良定义的
    • 服务使用环境
      • 可替代的服务
      • 关键任务服务

服务接口和实现

对接口和实现具有明显的区分
服务实现可包含服务接口规范以及具体组件的实现
服务之间进行交互的唯一方式是通过它们的接口

SOA面向服务的体系结构

可通过接口向终端用户应用或网络上的其他服务提供服务
使得已有的技术间具有通用的互操作性,并使得未来的应用和体系结构具有可扩展性

SOA是一种体系结构类型,使用面向服务的方式进行计算,从而增强了互操作性

SOA模型:

三个角色:服务提供者,服务注册中心,服务请求者

web服务(电子服务系统设计)知识点汇总

三个操作:
	发布:服务描述、注册
	查找,绑定

SOA层次

三类不同的SOA入口点:
	实现企业服务编配、
	提供给整个企业的服务、
	实现端到端协作型业务流程
六个层次:
	业务领域 
	业务流程 
	业务服务 
	基础架构服务 
	服务实现 
	运营系统

Web服务的技术架构
(最好把书上技术架构的图背过,后面的章节都是对这个图的拓展)

信息交换:SOAP,简单对象访问协议
服务描述:WSDL
服务发布:UDDI

Web服务的优点

既能支持常见的业务问题,又能根据市场需要的变化做到随需应变。
不断发展,从而能够包容电子商务、企业应用集成、传统的中间件以及web技术。

Web服务的不足

事务标准还很不成熟
缺乏表达业务语义的手段
不同标准之间相互重叠或相互冲突

第二章

异步通信:
消息存储转发:
web服务(电子服务系统设计)知识点汇总

发送程序可将消息发送到一个消息队列,接收程序可根据需要从消息队列中接收消息

唯一做的就是以某种方式注册到或连接到消息队列子系统

存储与转发排队机制是多对一消息传送

消息的发布和订阅
web服务(电子服务系统设计)知识点汇总

可伸缩性稍大一点
	消息服务器负责向订阅了主题的订阅应用发送被发布的消息。
	
	所有订阅者都有一个消息事件侦听程序
	
	消息的发布者不期望回复

事件驱动的处理机制

客户端:兴趣对象,通知的生成者;
当事方,通知的使用者

事件通知服务通过“选择”处理来确定发布的消息与哪些客户端的兴趣相一致,
并且仅路由和发送那些符合客户端兴趣的通知

点到点排队

客户端通过队列发送和接收消息

请求/应答的消息传送方式

同步,Web服务客户端会因同步响应堵塞或等待
异步,请求者认为应答会稍后到达,并会继续它的其他工作

集成代理

集成代理完成内容和格式转换,将收到的消息转换为目的系统能够理解和利用的形式。
集成代理是一个应用之间的中间件服务,可进行一对多、多对一及多对多的消息分发

第三章

Xml(可扩展标记语言),用于网络上电子标记文本的描述和发送
XML被设计为传输和存储数据,其焦点是数据的内容。XML旨在传输信息
Xml特点:

Xml是不作为的  
Xml仅仅是纯文本 
可以发明自己的标签 
Xml是独立于软硬件的信息传输工具

XML文档 = 命名容器+命名容器所包含的数据值
XML 文档必须包含根元素。该元素是所有其他元素的父元素
XML 文档中的元素形成了一棵文档树。
在起始标签中添加属性,属性不可以嵌套
尽量使用元素来描述数据。而使用属性来提供与数据无关的信息
在WWW中,统一资源标识符(URI)是标识资源的基础
XML命名空间使得不同的元素可以具有相同的本地名
XML Schema的作用是定义XML文档的合法构建模块

XSD(重中之重):
<schema> 元素是每一个 XML Schema 的根元素
一个元素假如包含子元素和/或子属性,则该元素为复合类型

简易元素:仅包含文本的元素
复合元素`<xs:complexType>`:(我们考了两题)

	空元素
	包含其他元素的元素,
	仅包含文本的元素<simpleContent>,
	包含元素和文本的元素`<xs:complexType mixed=”true”>`

元素组,用group声明、引用

<xs:group name=”xx”>
	<xs:group ref=”xx”>

属性组,用attributeGroup声明,引用

<xs: attributeGroup name=”xx”>
<xs: attributeGroup ref=”xx”>
<xs:any/>未定义元素扩展
<xs:anyAttribute/>未定义属性扩展

第四章

一条SOAP消息就是一个普通的XML文档,包含可选的Fault元素,提供有关在处理消息所发生错误的信息
SOAP的Envelope元素是SOAP消息的根元素。
SOAP信息可以规定编码规则集,该规则集将所定义应用的XML数据串行化

SOAP<Header>元素

<Header>元素包含一些信息块,主要关于如何处理消息

`<Header>`元素包含了与端点或中间传输点相关的所有处理线索

`<Header>`的目的是对扩展的消息格式封装,且无须与有效载荷发生关联,
也不需要修改SOAP的基本结构

直接子元素称作“头块”,并表示为一个数据逻辑分组

每一个头块都应当有自己的命名空间,帮助SOAP应用标识头部以及分别处理这些头块

actor属性可被用于将Header元素寻址到一个特定的端点 soap:actor=”URI”

mustUnderstand属性可用于标识标题项对于接收者来说是强制的还是可选的(0/1)

许多头部涉及其他SOAP处理节点(称作SOAP中介)的参与,中介既可以接收也可以
转发SOAP消息

SOAP消息传送的模块性使得处理SOAP消息的代码页可以模块化

SOAP<Body>
具体应用的XML数据(有效载荷)存放在SOAP体中
<Body>元素的直接子元素都必须有合适的命名空间
<Body>元素包含具体应用的数据或一个出错消息,不能同时携带这两类信息
<Body>元素和根元素的一个区别是它既是请求对象又是响应对象

SOAP优点:

简单性 
可移植性 
与防火墙的相容性 
使用开放标准 
互操作性 
被广泛接受 
适应变化

SOAP缺点:

采用了并不适合所有情况的请求/应答体系结构

SOAP是无状态的

SOAP为基于值的串行化,而不支持基于引用的串行化

第五章

为何需要服务描述:

为了开发基于服务的应用和业务

实现SOA松耦合,将服务提供者和服务请求者的应用集成在一起,减少定制程序
的开发以及更好地理解相关知识

WSDL描述的三个基本属性:

服务做些什么,
如何访问服务,
服务位于何处

WSDL本质:

告诉服务的使用者如何将请求消息格式化,通过何种通信协议在何处访问web service

<portType>描述一个web service、可被执行的操作,以及相关的消息
<message> 元素定义一个操作的数据元素
<types>元素定义web service使用的数据类型,WSDL使用XML Schema语法来定义数据类型
<binding>元素为每个端口定义通信协议细节
<service>元素,此元素可把若干个web services的定义组合在一个单一的WSDL文档中

服务请求者能够描述Web请求的基本格式或者编码
WSDL规范事实上分成两部分:

服务接口定义(抽象接口)
服务实现定义(具体端点)

服务客户端通过调用操作与Web服务进行交互,在Web服务接口中,可以将相关的操作进行分组

WSDL指定了描述Web服务的语法和句法,可将Web服务描述为通信端点的集合

Web服务接口定义描述了消息、操作和端口类型,并且具体的描述保持了平*立性和语言独立性

WSDL中,<types>、<message>、<part>、<portType>、<operation>元素描述了Web服务的抽象接口

WSDL的目的就是首先抽象地定义Web服务,然后规定WSDL开发者如何实现这些服务

WSDL的服务实现部分包含元素<binding><port><service>,并描述了服务提供者如何实现一个特定的服务接口

服务实现描述了服务位于哪里

通过<import>元素,服务实现文档可以包含对多个服务接口文档的引用(考了)

WSDL消息交换模式
两类基本的消息接收和发送版本

单个的消息接收传送操作和对应的发送操作
同步双向消息交换

web服务(电子服务系统设计)知识点汇总

第六章

在服务注册库中发布一个Web服务,需要两个同样重要的操作:Web服务的描述和注册
电子商务注册通常有两类:

基于文档的服务注册,基于元数据的服务注册

UDDI:统一描述、发现和集成
UDDI是一个跨行业的注册标准草案
UDDI的目的是供开发工具以及使用Web服务标准的应用使用
UDDI是一个包含轻量级数据的注册库
目的是提供它所描述的资源的网络地址
核心概念是UDDI业务注册库,用来描述业务实体和它的Web服务的XML文档
UDDI业务注册提供的信息包含三个相关的组成部分:

白页:包括地址、联系方式以及其他的一些联系信息
黄页:基于行业分类法对信息进行分类
绿页:关于服务的业务能力和相关信息,包括对于Web 服务规范的引用和指向各种基于
	文件和基于URL的发现机制的指针

UDDI是按标准化方式设计的,并不受限于任何技术
UDDI提供了按照分类法对业务和服务进行分类的一种机制
UDDI用例模型:
web服务(电子服务系统设计)知识点汇总
角色:产业联盟、标准化组织/UDDI注册库/服务提供者/服务客户端
行为:

服务客户端(基于不同的标准发现服务类型定义和服务)UDDI注册库
服务客户端(获取服务类型定义细节)产业联盟、标准化组织、服务提供者
服务客户端(调用所发现的服务)服务提供者

UDDI注册库都供了对Web服务分类、编目和管理的机制,从而可以发现和使用那些Web服务
UDDI的主要目的是Web服务的数据和元数据表示(目的到底是啥?)
四类核心信息类型:

业务实体
业务服务
绑定模板
服务规范(tModel)

web服务(电子服务系统设计)知识点汇总
在UDDI数据结构中有一个层次关系 (考了)

业务将发布包含一个或多个业务服务的业务实体 `<businessEntity >`

服务都有一些描述性的信息 `<businessService>`,并且这些服务都能有一个或多个
绑定模板`< businessTemplate >`

tModel指向服务的规范或者接口定义

tModel和bindingTemplate之间的关系通常是多对多的

businessEntity包含了特定业务单元(服务提供者)白页信息,支持业务信息的发布和发现
businessEntity包含businessKey属性,具有唯一性的业务标识符
categoryBag元素对服务的分类标识
businessService结构对这些Web服务进行分组
包含在businessService元素中的信息映射到有关公司的黄页信息
每个bindingTemplate表示了一个不同的Web服务port或binding
绿页数据是Web 服务的技术描述,它驻留在bindingTemplate元素中
bindingTemplate元素必须包含下列两者之一:

一个特定服务的接入点
通向接入点的间接途径

定义bindingTemplate 结构时, 可声明<accessPoint>或<hostRedirector>,但不能同时声明这两者
tModel提供了描述服务的技术细节的绿页信息
当描述Web服务如何与它的客户端进行交互时,tModel的主要作用就是提供一个技术规范

WSDL到UDDI的映射模型
web服务(电子服务系统设计)知识点汇总
WSDL到UDDI的映射模型可帮助用户发现那些实现了标准定义的服务
当发布服务时,第一步就是创建服务接口定义

UDDI API
UDDI API是一个接口,可以接受封装在SOAP信封中的XML消息
所有的UDDI交互都使用请求/响应模式
查询API

浏览 	比较宽泛的查询标准的进入点、服务或者技术特性
下钻 	获取更具体的功能部件

发布API

授权		客户端可以获得相应的访问权限、获取授权令牌、终止会话和授权令牌
保存 	客户端可以在UDDI中添加或更新信息
获取 	可以获取所发布的数据结构的概要数据
删除 	客户端可以在UDDI中删除信息

随着所开发的应用的类别不同,可以在设计/构建或者运行时查询
查找业务实体

通过名字来查找业务实体
通过类别来查找业务实体

查找tModel

所有的WSDL服务接口都作为tModel发布
使用UDDI find_tModel可以检索到已分类的tModel,返回一个键的列表
使用下钻get_tModelDetail,能检索到一个具体的服务接口描述

UDDI用例模型与部署的多样性
UDDI用例模型假设了一些不同的业务信息提供者角色

注册库运行者,
标准组织和行业协会,
服务提供者

部署方式:

电子交易市场UDDI
业务合作伙伴UDDI注册库
门户UDDI
内部UDDI
相关标签: web服务