Web服务知识课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
服务访问协议: SOAP 服务的描述: WSDL 服务查找与发现: UDDI
高级软件工程
Web 服务 4/66
高级软件工程
基本结构:
服务信息注册库
Web 服务 5/66
查找
注册
请求/应答
客户/服务请求者
服务提供者
高级软件工程
Web 服务 6/66
提供了软件模块之间一种松耦合的交互方式
根据需求通过网络对松散耦合的粗粒度应用组件 进行分布式部署、组合和使用
为网络环境下软件之间结构化、类型化信息的交换 提供了一种基于XML的机制
它可以广泛地用于基于消息的系统和基于RPC的系统
SOAP被设计为可以与各种其它协议结合使用 但目前SOAP主要和HTTP及HTTP扩展框架相结合
高级软件工程
Web 服务 18/66
简单地讲,SOAP= HTTP+RPC+ XML 即: SOAP 以HTTP作为底层通讯协议
期望此协议能够通过使用因特网标准(HTTP 以及 XML)把图形用户界面桌面应用程序连接到因特网 服务器
首个关于 SOAP 的公共工作草案由 W3C 在 2001 年 12 月发布
SOAP 1.2 于 2003 年 6 月 被发布为 W3C 推荐标准
高级软件工程
Web 服务 17/66
简单对象访问协议(SOAP) 是网络环境中交换信息的简单协议
相对脆弱
– 仅仅是调用
Document
– 耦合松散些
对应用修改适应性好 没有序列化/反序列化问题
– 需要额外的设计工作
需要解释客户消息内容,然后进行相应操作
高级软件工程
Web 服务 8/66
考虑 Web Services的几个理由
业务上
– 需要与外部客户通信
技术上
– 应用需要与 其它语言编写的 客户程序通信 – 客户在防火墙之外
以往的互操作协议都将调用语句编排为 二进制的字节流的形式
SOAP采用XML作为自己的数据表示方法 XML是与HTML类似的基于文本的标记语言
SOAP将调用语句编排为文本式的字符流的形式
高级软件工程
3、消息格式
SOAP消息是一个XML文档 包括: 一个必需的SOAP封装
一个可选的SOAP头
一个必需的SOAP体
高级软件工程
Web 服务 1/66
第五讲
Web 服务
高级软件工程
内容
Web 服务 2/66
一、Web 服务简介 二、SOAP 三、WSDL 四、支持Web 服务的J2EE应用
高级软件工程
Web 服务 3/66
一、Web 服务简介
2000年 Microsoft 等提出“Web Services”
Web服务(Web Services) 是基于 XML 和 HTTP 的一种服务
以RPC作为一致性的调用途径 以XML作为数据传送的格式 SOAP的设计原则是: 简单、易于扩展 SOAP的设计忽略了如下几方面的功能: (1)分布式垃圾回收 (2)消息的批处理 (3)对象引用 (4)对象激活
高级软件工程
Web 服务 19/66
2、数据表示
SOAP的数据表示完全不同于以往互操作协议的表示方法
服务层是SOA的基础,可以直接被应用调用,从 而 有效控制系统中与软件代理的人为依赖性
SOA的几个关键特性:一种粗粒度、松耦合服务 架构,服务之间通过简单、精确定义适配器进行 通讯,不涉及 底层编程适配器和通讯模型
高级软件工程
Web 服务 7/66
RPC vs. Document
RPC
– 耦合密切些
Web 服务 20/66
高级软件工程
(1)SOAP封装
Web 服务 21/66
SOAP封装定义了描述信息和如何处理信息的框架 用于指定用XMLSchema来描述XML数据的编码规则
封装可以包含名域声明和附加属性 如果包含附加属性,这些属性必须限定名字域 类似的,“Envelope”可以包含附加子元素 这些也必须限定名字域且跟在SOAP体元素之后
管理上
– 管理托管 web service 应用
高级软件工程
Web 服务 9/66
什么时候不要使用Web Services
客户程序与应用使用相同语言编写 通信开销大
– 序列化或者远程访问开销大 – Web Services/XML 处理开销大 – “Don’t Use XML to Communicate Unless You
是Apache WebService项目中的子项目 最初起源于IBM的"SOAP4J“ 最早的一批用于构造基于SOAP应用的Framework
JBoss, WAS等重要的应用服务器都集成它
高级软件工程
wk.baidu.com
Web 服务 11/66
服务器端AXIS 句柄链处理架构
用户配置一系列的 handler,构成 handler chain AXIS 依次调用 handler 处理消息(含 context) 类似于 interceptor(截取器)
高级软件工程
Web 服务 12/66
客户端AXIS 句柄链处理架构
高级软件工程
AXIS的子系统
Web 服务 13/66
高级软件工程
二、SOAP
1、SOAP概述 2、数据表示 3、消息格式 4、协议映射
Web 服务 14/66
高级软件工程
1、SOAP概述
Web 服务 15/66
许多程序通过使用远程过程调用(RPC) 在诸如 DCOM 与 CORBA 等对象之间进行通信
Really, Really Have To” – Floyd Marinescu, The Middleware Company
永远记住:Web Services/XML 是用于集成的
高级软件工程
Web 服务 10/66
典型的 Web 服务支持平台
Apache Axis (Apache eXtensible Interaction System)
但RPC 会产生兼容性以及安全问题; 防火墙和代理服务器通常会阻止此类流量
通过 HTTP 在应用程序间通信是更好的方法 因为 HTTP 得到了所有的因特网浏览器及服务器的支 持 SOAP 就是被创造出来完成这个任务的
高级软件工程
Web 服务 16/66
2000年5月,UserLand、Ariba、Commerce One、 Compaq、Developmentor、HP、IBM、IONA、 Lotus、Microsoft 以及 SAP 向 W3C 提交了 SOAP 因特网协议
高级软件工程
Web 服务 4/66
高级软件工程
基本结构:
服务信息注册库
Web 服务 5/66
查找
注册
请求/应答
客户/服务请求者
服务提供者
高级软件工程
Web 服务 6/66
提供了软件模块之间一种松耦合的交互方式
根据需求通过网络对松散耦合的粗粒度应用组件 进行分布式部署、组合和使用
为网络环境下软件之间结构化、类型化信息的交换 提供了一种基于XML的机制
它可以广泛地用于基于消息的系统和基于RPC的系统
SOAP被设计为可以与各种其它协议结合使用 但目前SOAP主要和HTTP及HTTP扩展框架相结合
高级软件工程
Web 服务 18/66
简单地讲,SOAP= HTTP+RPC+ XML 即: SOAP 以HTTP作为底层通讯协议
期望此协议能够通过使用因特网标准(HTTP 以及 XML)把图形用户界面桌面应用程序连接到因特网 服务器
首个关于 SOAP 的公共工作草案由 W3C 在 2001 年 12 月发布
SOAP 1.2 于 2003 年 6 月 被发布为 W3C 推荐标准
高级软件工程
Web 服务 17/66
简单对象访问协议(SOAP) 是网络环境中交换信息的简单协议
相对脆弱
– 仅仅是调用
Document
– 耦合松散些
对应用修改适应性好 没有序列化/反序列化问题
– 需要额外的设计工作
需要解释客户消息内容,然后进行相应操作
高级软件工程
Web 服务 8/66
考虑 Web Services的几个理由
业务上
– 需要与外部客户通信
技术上
– 应用需要与 其它语言编写的 客户程序通信 – 客户在防火墙之外
以往的互操作协议都将调用语句编排为 二进制的字节流的形式
SOAP采用XML作为自己的数据表示方法 XML是与HTML类似的基于文本的标记语言
SOAP将调用语句编排为文本式的字符流的形式
高级软件工程
3、消息格式
SOAP消息是一个XML文档 包括: 一个必需的SOAP封装
一个可选的SOAP头
一个必需的SOAP体
高级软件工程
Web 服务 1/66
第五讲
Web 服务
高级软件工程
内容
Web 服务 2/66
一、Web 服务简介 二、SOAP 三、WSDL 四、支持Web 服务的J2EE应用
高级软件工程
Web 服务 3/66
一、Web 服务简介
2000年 Microsoft 等提出“Web Services”
Web服务(Web Services) 是基于 XML 和 HTTP 的一种服务
以RPC作为一致性的调用途径 以XML作为数据传送的格式 SOAP的设计原则是: 简单、易于扩展 SOAP的设计忽略了如下几方面的功能: (1)分布式垃圾回收 (2)消息的批处理 (3)对象引用 (4)对象激活
高级软件工程
Web 服务 19/66
2、数据表示
SOAP的数据表示完全不同于以往互操作协议的表示方法
服务层是SOA的基础,可以直接被应用调用,从 而 有效控制系统中与软件代理的人为依赖性
SOA的几个关键特性:一种粗粒度、松耦合服务 架构,服务之间通过简单、精确定义适配器进行 通讯,不涉及 底层编程适配器和通讯模型
高级软件工程
Web 服务 7/66
RPC vs. Document
RPC
– 耦合密切些
Web 服务 20/66
高级软件工程
(1)SOAP封装
Web 服务 21/66
SOAP封装定义了描述信息和如何处理信息的框架 用于指定用XMLSchema来描述XML数据的编码规则
封装可以包含名域声明和附加属性 如果包含附加属性,这些属性必须限定名字域 类似的,“Envelope”可以包含附加子元素 这些也必须限定名字域且跟在SOAP体元素之后
管理上
– 管理托管 web service 应用
高级软件工程
Web 服务 9/66
什么时候不要使用Web Services
客户程序与应用使用相同语言编写 通信开销大
– 序列化或者远程访问开销大 – Web Services/XML 处理开销大 – “Don’t Use XML to Communicate Unless You
是Apache WebService项目中的子项目 最初起源于IBM的"SOAP4J“ 最早的一批用于构造基于SOAP应用的Framework
JBoss, WAS等重要的应用服务器都集成它
高级软件工程
wk.baidu.com
Web 服务 11/66
服务器端AXIS 句柄链处理架构
用户配置一系列的 handler,构成 handler chain AXIS 依次调用 handler 处理消息(含 context) 类似于 interceptor(截取器)
高级软件工程
Web 服务 12/66
客户端AXIS 句柄链处理架构
高级软件工程
AXIS的子系统
Web 服务 13/66
高级软件工程
二、SOAP
1、SOAP概述 2、数据表示 3、消息格式 4、协议映射
Web 服务 14/66
高级软件工程
1、SOAP概述
Web 服务 15/66
许多程序通过使用远程过程调用(RPC) 在诸如 DCOM 与 CORBA 等对象之间进行通信
Really, Really Have To” – Floyd Marinescu, The Middleware Company
永远记住:Web Services/XML 是用于集成的
高级软件工程
Web 服务 10/66
典型的 Web 服务支持平台
Apache Axis (Apache eXtensible Interaction System)
但RPC 会产生兼容性以及安全问题; 防火墙和代理服务器通常会阻止此类流量
通过 HTTP 在应用程序间通信是更好的方法 因为 HTTP 得到了所有的因特网浏览器及服务器的支 持 SOAP 就是被创造出来完成这个任务的
高级软件工程
Web 服务 16/66
2000年5月,UserLand、Ariba、Commerce One、 Compaq、Developmentor、HP、IBM、IONA、 Lotus、Microsoft 以及 SAP 向 W3C 提交了 SOAP 因特网协议