WSIF 和 WSDL
在基于元数据的 Web Services Invocation Framework (WSIF) 与 Web Service 描述语言 (WSDL) 的演进语义之间存在密切关系。
在 WSDL 的三个不同部分中定义服务:
- portType。本部分定义服务提供的抽象接口。portType 定义一组操作。每个操作可以是“进-出”(“请求-响应”)、“仅输入”、“仅输出”和“出-进”(“恳求-响应”)。每个操作定义输入和/或输出消息。消息定义为一组部件,并且每个部件具有模式定义的类型。
- 绑定。此部分定义如何在抽象 portType 和实际的服务格式以及协议之间进行映射。例如,SOAP 绑定定义编码样式、SOAPAction 头、主体的名称空间 (targetURI) 等。
- 端口。此部分定义可用服务的位置(端点)。例如,可用 SOAP 服务的 HTTP Web 地址。
当前在 WSDL 中,每个端口有且只有一个绑定,并且每个绑定有一个单个 portType。但是(更为重要)每个服务 (portType) 可以有多个端口,它们中的每个都代表一个访问该服务的可选择的位置和绑定。
Web Services Invocation Framework (WSIF) 尽可能地按照 WSDL 的语义学:
- WSIF 动态调用 API 直接显示 WSDL 中模型的运行时当量。例如,调用操作涉及执行带有输入消息的操作。
- WSDL 具有支持添加新端口和绑定的扩展点。这使 WSDL 能描述新系统。WSIF 中的等价概念是提供程序,它将 WSIF 服务链接到服务的底层实现。这使得 WSIF 能够理解扩展的类,因此可以支持新的服务实现类型。
作为基于元数据的调用框架,WSIF 按照元数据的设计。在扩展 WSDL 后,将更新 WSIF 以遵循。
WSIF 的主要类型系统是 XML 模式。WSIF 支持使用动态代理的调用,这些代理又支持 Java™ 类型系统,但是当您通过 WSIF API 使用 WSIFMessage 接口来调用 Web Service 时,必须使用基于 XML 模式类型的数据,按照 WSDL 文档中的定义来填充 WSIFMessage 对象。 您应该根据从模式类型到运行时环境的规范和固定映射来定义对象类型。