Unterschied zwischen RPC- und Document-Webdiensten

Es gibt viele Unterschiede zwischen RPC- und Document-Webdiensten. Die wichtigen Unterschiede zwischen RPC und Dokument sind unten aufgeführt:

RPC-Stil

1) Webdienste im RPC-Stil verwenden Methodennamen und Parameter, um eine XML-Struktur zu generieren.

2) Die generierte WSDL lässt sich nur schwer anhand des Schemas validieren .

3) Im RPC-Stil wird eine SOAP- Nachricht mit so vielen Elementen gesendet .

4) Die Nachricht im RPC-Stil ist eng gekoppelt .

5) Im RPC-Stil behält die SOAP-Nachricht den Namen der Operation bei .

6) Im RPC-Stil werden Parameter als diskrete Werte gesendet .

Sehen wir uns die im RPC-Stil generierte WSDL-Datei an.WSDL-Datei:

In der WSDL-Datei werden die Typendetails nicht angegeben.

  1. <Typen/>  

Für den Nachrichtenteil definiert es Namens- und Typattribute.

  1. <message name= “getHelloWorldAsString” >  
  2. <part name= “arg0”  type= “xsd:string” />  
  3. </Nachricht>  
  4. <message name= “getHelloWorldAsStringResponse” >  
  5. <part name= “return”  type= “xsd:string” />  
  6. </Nachricht>  

Für soap:body definiert es Verwendungs- und Namensraumattribute.

  1. <binding name= “HelloWorldImplPortBinding”  type= “tns:HelloWorld” >  
  2. <soap:binding transport= “http://schemas.xmlsoap.org/soap/http”  style= “rpc” />  
  3. <Vorgangsname= “getHelloWorldAsString” >  
  4. <soap:operation soapAction= “” />  
  5. <Eingabe>  
  6. <soap:body use= “literal”  namespace= “http://javatpoint.com/” />  
  7. </Eingabe>  
  8. <Ausgabe>  
  9. <soap:body use= “literal”  namespace= “http://javatpoint.com/” />  
  10. </Ausgabe>  
  11. </Operation>  
  12. </Bindung>  

Dokumentstil

1) Webservices im Dokumentstil können anhand eines vordefinierten Schemas validiert werden .

2) Im Dokumentstil wird die SOAP-Nachricht als einzelnes Dokument gesendet .

3) Die Nachricht im Dokumentstil ist lose gekoppelt .

4) Im Dokumentstil verliert die SOAP-Nachricht den Vorgangsnamen .

5) Im Dokumentstil werden Parameter im XML-Format gesendet .

Sehen wir uns die im Dokumentstil generierte WSDL-Datei an.WSDL-Datei:

In der WSDL-Datei werden Typendetails mit Namespace und schemaLocation angegeben.

  1. <Typen>  
  2. <xsd:schema>  
  3. <xsd: import  namespace= “http://javatpoint.com/”  schemaLocation= “http://localhost:7779/ws/hello?xsd=1” />  
  4. </xsd:schema>  
  5. </typen>  

Für den Nachrichtenteil definiert es Namens- und Elementattribute.

  1. <message name= “getHelloWorldAsString” >  
  2. <part name= “parameters”  element= “tns:getHelloWorldAsString” />  
  3. </Nachricht>  
  4. <message name= “getHelloWorldAsStringResponse” >  
  5. <part name= “parameters”  element= “tns:getHelloWorldAsStringResponse” />  
  6. </Nachricht>  

Für soap:body definiert es nur das Verwendungsattribut, nicht den Namensraum.

  1. <binding name= “HelloWorldImplPortBinding”  type= “tns:HelloWorld” >  
  2. <soap:binding transport= “http://schemas.xmlsoap.org/soap/http”  style= “document” />  
  3. <Vorgangsname= “getHelloWorldAsString” >  
  4. <soap:operation soapAction= “” />  
  5. <Eingabe>  
  6. <soap:body use= “literal” />  
  7. </Eingabe>  
  8. <Ausgabe>  
  9. <soap:body use= “literal” />  
  10. </Ausgabe>  
  11. </Operation>  
  12. </Bindung>  

osky