个简单的SOAP请求响应 public interface Hello { public String sayHelloTo(String name); 假设有上述接口定义的服务存在 客户端在远程调用 sayHelloTo方法时,提供一个名字, 期望返回一个字符串 假设 Java rmi、 CORBA、DcoM都不存在,开发者必 须负责将方法调用串行化,并把消息发给远程服务器。 个简单的方式是使用XML
一个简单的SOAP请求/响应 ◼ 假设有上述接口定义的服务存在 ◼ 客户端在远程调用sayHelloTo方法时,提供一个名字, 期望返回一个字符串 ◼ 假设Java RMI、CORBA、DCOM都不存在,开发者必 须负责将方法调用串行化,并把消息发给远程服务器。 ◼ 一个简单的方式是使用XML public interface Hello { public String sayHelloTo(String name); }
个简单的SOAP请求响应 <?xml version=1.0?> <Hello> <sayHelloTo> <name>John</name> </sayHelloTo> </Hello> 用XML打包请求 n将接口名作为根结点 n方法和参数作为结点 将请求发送给服务器 ■不创建自己的TcPP消息,利用HTTP 将请求封装成 Http Post请求格式发出
一个简单的SOAP请求/响应 ◼ 用XML打包请求 ◼ 将接口名作为根结点 ◼ 方法和参数作为结点 ◼ 将请求发送给服务器 ◼ 不创建自己的TCP/IP消息,利用HTTP ◼ 将请求封装成HTTP POST请求格式发出 <?xml version="1.0"?> <Hello> <sayHelloTo> <name>John</name> </sayHelloTo> </Hello>
个简单的SOAP请求响应 <?xml version=1.02> <Hello> <sayHelloToResponse> <message>Hello John, How are you?</message> </sayHelloToResponse> </Hello> 服务器接收到请求,解码XML,处理请求,然后以 XML格式向客户发送响应 与请求比较,方法的结点名字变为请求的方法名后缀 Response ■客户程序知道自己调用了哪个方法,根据方法名后缀 Response寻找调用方法的返回值
一个简单的SOAP请求/响应 ◼ 服务器接收到请求,解码XML,处理请求,然后以 XML格式向客户发送响应 ◼ 与请求比较,方法的结点名字变为请求的方法名后缀 Response ◼ 客户程序知道自己调用了哪个方法,根据方法名后缀 Response寻找调用方法的返回值 <?xml version="1.0"?> <Hello> <sayHelloToResponse> <message>Hello John, How are you?</message> </sayHelloToResponse> </Hello>
SOAP协议 SOAP由4部分组成: SOAP封装( SOAP Envelope) 构造定义了一个整体的表示框架,可用于表示 在消息中的是什么 谁应当处理它 是“可选的”还是“强制的” SOAP编码规则( SOAP Encoding Rules) 定义了一套编码机制用于交换应用程序定义的数据类型的 实例 SOAP RPC表示( SOAP RPC Presentation) 定义了一个用于表示远程过程调用和响应的约定 SOAP绑定( SoAP Binding) 定义了一种使用底层传输协议来完成在节点间交换SoAP 封装的约定
SOAP协议 ◼ SOAP由4部分组成: ◼ SOAP封装(SOAP Envelope) ◼ 构造定义了一个整体的表示框架,可用于表示 ◼ 在消息中的是什么 ◼ 谁应当处理它 ◼ 是“可选的”还是“强制的” ◼ SOAP编码规则(SOAP Encoding Rules) ◼ 定义了一套编码机制用于交换应用程序定义的数据类型的 实例 ◼ SOAP RPC表示(SOAP RPC Presentation) ◼ 定义了一个用于表示远程过程调用和响应的约定 ◼ SOAP绑定(SOAP Binding) ◼ 定义了一种使用底层传输协议来完成在节点间交换SOAP 封装的约定
sOAP术语 协议概念 SOAP 关于SOAP消息的格式和处理规则、为沿着SOAP消息路径 交换信息而需要的不同应用程序之间生成和接收SOAP消息 的交互过程的简单控制机制等的一套规范和约定 SOAP绑定 为传输的需要而将SOAP消息在另一个底层协议之上或之内 传输的一套规范或规则 典型的SOAP绑定包括在HTTP消息中传送SOAP消息或 在TcP之上传送SOAP消息等 SOAP节点 ■SOAP节点根据SOAP定义的整套规范来处理SOAP消息。 SOAP节点有责任遵守SOAP消息交换的规则以及提供 通过依赖底层协议的SOAP绑定来访问的服务。 任何不符合SOAP约定的情况都将导致SOAP节点产生 个SOAP错误
SOAP术语 ◼ 协议概念 ◼ SOAP ◼ 关于SOAP消息的格式和处理规则、为沿着SOAP消息路径 交换信息而需要的不同应用程序之间生成和接收SOAP消息 的交互过程的简单控制机制等的一套规范和约定 ◼ SOAP绑定 ◼ 为传输的需要而将SOAP消息在另一个底层协议之上或之内 传输的一套规范或规则。 ◼ 典型的SOAP绑定包括在HTTP消息中传送SOAP消息或 在TCP之上传送SOAP消息等。 ◼ SOAP节点 ◼ SOAP节点根据SOAP定义的整套规范来处理SOAP消息。 ◼ SOAP节点有责任遵守SOAP消息交换的规则以及提供 通过依赖底层协议的SOAP绑定来访问的服务。 ◼ 任何不符合SOAP约定的情况都将导致SOAP节点产生 一个SOAP错误