WSDL的粒度

时间:2009-02-05 15:26:50

标签: wsdl

我正在寻找一些优点和缺点,即每个wdsl创建一个操作来对抗单个wdsl中的捆绑操作

下面的小例子:

  <operation name="Divide">
     <input message="y:DivideMessage"/>
     <output message="y:DivideResponseMessage"/>
  </operation>

而不是分裂,这是更复杂的操作,每次操作一个wsdl的优点/缺点是什么

3 个答案:

答案 0 :(得分:0)

我不确定我是否理解这个问题......但是如果你要求将所有操作放在一个WSDL中或者将每个操作放在一个WSDL中......

我认为如果操作在同一个端点上,那么将所有内容保存在一个单一的WSDL中会更好,因为许多工具将允许您从WSDL生成Web服务客户端:使用单个WSDL然后您可以生成客户端这将能够调用所有操作。如果操作是在单独的WSDL中,则必须生成多个客户端,每个操作一个,这将使用起来不舒服......

答案 1 :(得分:0)

我的建议是将一个WSDL用于一个对象(例如:customerManagement)或 aspect ,然后包含多个操作(例如:CRUD = * C * reate,* R * ead,* U * pdate和* D * elete)。

在考虑WSDL设计时,不仅仅是关于wsdl-operations。 您还应该考虑在WSDL中选择正确的porttype-和targetNamespaces-value。

编译/生成后WSDL与代码结果之间的关系如下:

 - WSDL:targetNamespace -> Package 
 - WSDL:Porttype        -> Class
 - WSDL:Operation       -> Method

答案 2 :(得分:0)

保持一致
优点:一个文件要同步,没有依赖关系
缺点:一个BIG文件,可能更难以清楚地显示出哪些内容

单独的文件
优点:较小的文件,更易于维护和扩展 缺点:可能更难调试交叉引用依赖项,或查找重复项

<强>建议
WSDL文件被认为与合同类似。因此,您应该将“常见”感觉内容列表放在一起,并且仅专注于您当前应用程序中所需的内容。我建议将'对象'保存在单个'lexicon'文件中,并将第二层文件中的一些基本(常见)操作保留(包含指向第一个文件的指针)。然后,在任何专业化中,我将创建第3层文件,该文件仅指定当前应用程序所需的操作,甚至将操作拆分为多个文件。