1.SOAP(简单对象访问协议的简称)定义了一个标准,该标准为通过网络在应用程序间传输XML数据封装格式.(1.1)
2.WSDL(Web
Services Description Language,
Web服务描述语言)是一个标准,用于描述使用SOAP在两个系统间交换的XML数据的结构.(1.1)
3.UDDI
虽然WSDL对描述由Web服务使用的SOAP消息的类型提供了很好的格式,但它没有提供如何存储WSDL文档以及如何查找WSDL文档方面的信息.UDDI(Universal
Description,Discovery,and
Integeration,通用描述,发现和集成)定义了一套标准的Web服务操作(方法),用于存储,查找有关其他Web服务应用程序方面的信息.(2.0)
Web
Services API
1.JAX-RPC 可以将JAX-RPC看成是位于SOAP之上的Java
RMI(Java远程方法调用).JAX-RPC分两个部分,即一套客户端API和一套服务器端API,它们均称为端点.(1.1)
2.SAAJ(SOAP
with Attachments API for Java, 由于Java的带附件API的SOAP)是一个低级SOAP
API,它要于SOAP1.1和带附件规范的SOAP消息一起编译.
3.JAXR(Java API for XML
Registries,用于XML注册的Java API)提供了用于访问UDDI注册表的API.
3.JAXP(Java API for XML
Processing,用于XML处理的Java API)为使用DOM2和SAX2以及为用于读,写和修改XML文档的标准Java
API提供了架构.(1.2)
SOAP的主要应用是应用程序与应用程序之间的通信(即A2A),且主要应用于商务对商务(即B2B)的通信以及企业应用集成(EAI).
SOAP消息传递模式:
1.Document/Literal消息传递模式:
<?xml
version="1.0" encoding="UTF-8"?>
<soap-Envelope
xmlns:soap="
http://schemas.xmlsoap.org/soap/envelop/" ;
xmlns:mi="
http://www.Monson-Haefel.com/jwsbook/message-id" ;
xmlns:proc="
http://http://www.Monson-Haefel.com/jwsbook/processed- ; by">
<soap:Header>
<!--Header
blocks go
here-->
</soap:Header>
<soap:Body>
<po:purchaseOrder
orderDate="2003-09-22"
xmlns:po="
http://www.Monson-Haefel.com/jwsbook/PO" ;>
<po:accountName>Amazon.com</po:accountName>
<po:accountNumber>923</po:accountNumber>
<po:book>
<po:title>J2EE
Web
Services</po:title>
<po:quantity>300</po:quantity>
<po:wholesale-price>24.99</po:wholesale-price>
</po:book>
</po:purchaseOrder>
</soap:Body>
</soap-Envelope>
2.RPC/Literal消息传递模式
用一个这样的方法调用:
package
com.jwsbook.soap;
import java.rmi.RemoteException;
public interface
BookQuote extends java.rmi.Remote {
public float getBookPrice(String ISBN)
throws
RemoteException,
InvalidISBNException;
}
RPC/LiteralSOAP请求消息:
<?xml
version="1.0" encoding="UTF-8"?>
<soap-Envelope
xmlns:soap="
http://schemas.xmlsoap.org/soap/envelop/" ;
xmlns:mh="
http://www.Monson-Haefel.com/jwsbook/BookQuote" ;>
<soap:Body>
<mh:getBookPrice>
<isbn>0321146182</isbn>
</mh:getBookPrice>
</soap:Body>
</soap-Envelope>
RPC/Literal
SOAP响应消息:
<?xml version="1.0"
encoding="UTF-8"?>
<soap-Envelope
xmlns:soap="
http://schemas.xmlsoap.org/soap/envelop/" ;
xmlns:mh="
http://www.Monson-Haefel.com/jwsbook/BookQuote" ;>
<soap:Body>
<mh:getBookPriceResponse>
<result>24.99</result>
</mh:getBookPriceResponse>
</soap:Body>
</soap-Envelope>