XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Generic vs Specific WSDL

Your architecture is similar to WS-Transfer: It seems to me you're  
implementing REST on top of the WSDL/SOAP architecture which sits on  
top of (and ignores most of) the HTTP/REST architecture. Which begs  
the question: why aren't you using plain HTTP in the first place?

Stefan
--
Stefan Tilkov, http://www.innoq.com/blog/st/



On Feb 27, 2007, at 9:28 PM, David Carver wrote:

> A question has come up in our organization about implementing SOAP  
> Web Services using a generic WSDL (i.e. common endpoint for all  
> services with a generic payload), or Specific Services with a  
> specific payload schema defined.     The question comes down to can  
> these two type of services inter operate with each other.   I know  
> you can make the SOAP message that surrounds the payload compatible  
> between the two.   So the question comes down to which is  
> fundamentally better to implement, or is this really an  
> architecture preference and design?
>
> Included below is a copy of the template WSDL in question that  
> implements the generic implementation.  Advantages, disadvantages,  
> security problems to this approach???  What additional benefits if  
> any does a specific implementation provide, disadvantages.:
>
> <?xml version="1.0"?>
> <definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>            xmlns:tns="http://www.starstandards.org/webservices/ 
> 2005/10/transport/bindings"
>            xmlns:starws="http://www.starstandards.org/webservices/ 
> 2005/10/transport"
>            targetNamespace="http://www.starstandards.org/ 
> webservices/2005/10/transport/bindings"
>             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";  
> xmlns="http://schemas.xmlsoap.org/wsdl/";>
>
>    <!-- Types -->
>
>    <types>
>        <xsd:schema targetNamespace="http://www.starstandards.org/ 
> webservices/2005/10/transport" elementFormDefault="qualified">
>
>            <!-- Payload -->
>
>            <xsd:complexType name="Payload">
>                <xsd:sequence>
>                    <xsd:element name="content"  
> type="starws:Content" minOccurs="0" maxOccurs="unbounded" />
>                </xsd:sequence>
>                <xsd:anyAttribute/>
>            </xsd:complexType>
>
>            <xsd:complexType name="Content">
>                <xsd:sequence>
>                    <xsd:any namespace="##any" minOccurs="1"  
> maxOccurs="1" />
>                </xsd:sequence>
>                <xsd:attribute name="id" type="xsd:ID"  
> use="required" />
>                <xsd:anyAttribute/>
>            </xsd:complexType>
>
>
>            <!-- Attachment -->
>
>            <xsd:element name="attachment" type="starws:Attachment" />
>
>            <xsd:complexType name="Attachment">
>                <xsd:choice minOccurs="1" maxOccurs="1">
>                    <xsd:element name="binary"  
> type="starws:BinaryData" />
>                    <xsd:element name="text" type="starws:TextData" />
>                    <xsd:element name="uriReference"  
> type="starws:UriReference" />                    <!-- points to a  
> resource at a URI (not embedded nor attached) -->
>                    <xsd:element name="attachmentReference"  
> type="starws:AttachmentReference" />    <!-- points to a MIME or  
> DIME attachment -->
>                </xsd:choice>
>                <xsd:attributeGroup  
> ref="starws:AttachmentAttributes" />
>            </xsd:complexType>
>
>            <xsd:attributeGroup name="AttachmentAttributes">
>                <xsd:attribute name="id" type="xsd:ID"  
> use="optional" />
>                <xsd:attribute name="mimeCode" type="xsd:token"  
> use="optional" />
>                <xsd:attribute name="fileName" type="xsd:token"  
> use="optional" />
>                <xsd:attribute name="dateTime" type="xsd:dateTime"  
> use="optional" />
>                <xsd:attribute name="size" type="xsd:long"  
> use="optional" />
>                <xsd:attribute name="from" type="xsd:string"  
> use="optional" />
>                <xsd:attribute name="to" type="xsd:string"  
> use="optional" />
>                <xsd:attribute name="action" type="xsd:anyURI"  
> use="optional" />
>            </xsd:attributeGroup>
>
>            <xsd:simpleType name="BinaryData">
>                    <xsd:restriction base="xsd:base64Binary"/>
>            </xsd:simpleType>
>
>            <xsd:simpleType name="TextData">
>                    <xsd:restriction base="xsd:string"/>
>            </xsd:simpleType>
>
>            <xsd:complexType name="UriReference">
>                <xsd:attribute name="href" type="xsd:anyURI"  
> use="required" />
>            </xsd:complexType>
>
>            <xsd:complexType name="AttachmentReference">
>                <xsd:attribute name="href" type="xsd:anyURI"  
> use="required" />
>            </xsd:complexType>
>
>
>            <!-- Manifest -->
>
>            <xsd:element name="payloadManifest"  
> type="starws:PayloadManifest" />
>
>            <xsd:complexType name="PayloadManifest">
>                <xsd:sequence>
>                    <xsd:element name="manifest"  
> type="starws:Manifest" minOccurs="0" maxOccurs="unbounded" />
>                </xsd:sequence>
>            </xsd:complexType>
>
>            <xsd:complexType name="Manifest">
>                <xsd:attribute name="contentID" type="xsd:IDREF"  
> use="required" />
>                <xsd:attribute name="namespaceURI" type="xsd:anyURI"  
> use="required" />
>                <xsd:attribute name="element" type="xsd:string"  
> use="required" />
>                <xsd:attribute name="relatedID" type="xsd:string"  
> use="optional" />
>                <xsd:attribute name="version" type="xsd:string"  
> use="optional" />
>            </xsd:complexType>
>
>
>            <!-- Methods -->
>
>            <xsd:element name="ProcessMessage">
>                <xsd:complexType>
>                    <xsd:sequence>
>                        <xsd:element name="payload"  
> type="starws:Payload" minOccurs="0" maxOccurs="1" form="qualified" />
>                    </xsd:sequence>
>                </xsd:complexType>
>            </xsd:element>
>
>            <xsd:element name="ProcessMessageResponse">
>                <xsd:complexType>
>                    <xsd:sequence>
>                        <xsd:element name="payload"  
> type="starws:Payload" minOccurs="0" maxOccurs="1" form="qualified" />
>                    </xsd:sequence>
>                </xsd:complexType>
>            </xsd:element>
>
>            <xsd:element name="PutMessage">
>                <xsd:complexType>
>                    <xsd:sequence>
>                        <xsd:element name="payload"  
> type="starws:Payload" minOccurs="0" maxOccurs="1" form="qualified" />
>                    </xsd:sequence>
>                </xsd:complexType>
>            </xsd:element>
>
>            <xsd:element name="PutMessageResponse">
>                <xsd:complexType />
>            </xsd:element>
>
>            <xsd:element name="PullMessage">
>                <xsd:complexType/>
>            </xsd:element>
>
>            <xsd:element name="PullMessageResponse">
>                <xsd:complexType>
>                    <xsd:sequence>
>                        <xsd:element name="payload"  
> type="starws:Payload" minOccurs="0" maxOccurs="1" form="qualified" />
>                    </xsd:sequence>
>                </xsd:complexType>
>            </xsd:element>
>
>        </xsd:schema>
>    </types>
>
>
>    <!-- Messages -->
>
>    <message name="ProcessMessageIn">
>        <part name="parameters" element="starws:ProcessMessage" />
>    </message>
>
>    <message name="ProcessMessageOut">
>        <part name="parameters"  
> element="starws:ProcessMessageResponse" />
>    </message>
>
>    <message name="PutMessageIn">
>        <part name="parameters" element="starws:PutMessage" />
>    </message>
>
>    <message name="PutMessageOut">
>        <part name="parameters" element="starws:PutMessageResponse" />
>    </message>
>
>    <message name="PullMessageIn">
>        <part name="parameters" element="starws:PullMessage" />
>    </message>
>
>    <message name="PullMessageOut">
>        <part name="parameters" element="starws:PullMessageResponse" />
>    </message>
>
>    <message name="ManifestHeader">
>        <part name="header" element="starws:payloadManifest" />
>    </message>
>
>
>    <!-- PortTypes -->
>
>    <portType name="starTransportPortTypes">
>        <operation name="ProcessMessage">
>            <input message="tns:ProcessMessageIn" />
>            <output message="tns:ProcessMessageOut" />
>        </operation>
>
>        <operation name="PutMessage">
>            <input message="tns:PutMessageIn" />
>            <output message="tns:PutMessageOut" />
>        </operation>
>
>        <operation name="PullMessage">
>            <input message="tns:PullMessageIn" />
>            <output message="tns:PullMessageOut" />
>        </operation>
>    </portType>
>
>    <!-- Bindings -->
>
>    <binding name="starTransport" type="tns:starTransportPortTypes">
>        <soap:binding transport="http://schemas.xmlsoap.org/soap/ 
> http" style="document" />
>        <operation name="ProcessMessage">
>            <soap:operation soapAction="http://www.starstandards.org/ 
> webservices/2005/10/transport/operations/ProcessMessage"  
> style="document" />
>            <input>
>                <soap:header message="tns:ManifestHeader"  
> part="header" use="literal" />
>                <soap:body use="literal" />
>            </input>
>            <output>
>                <soap:header message="tns:ManifestHeader"  
> part="header" use="literal" />
>                <soap:body use="literal" />
>            </output>
>        </operation>
>              <operation name="PutMessage">
>            <soap:operation soapAction="http://www.starstandards.org/ 
> webservices/2005/10/transport/operations/PutMessage"  
> style="document" />
>            <input>
>                <soap:header message="tns:ManifestHeader"  
> part="header" use="literal" />
>                <soap:body use="literal" />
>            </input>
>            <output>
>                <soap:body use="literal" />
>            </output>
>        </operation>
>              <operation name="PullMessage">
>            <soap:operation soapAction="http://www.starstandards.org/ 
> webservices/2005/10/transport/operations/PullMessage"  
> style="document" />
>            <input>
>                <soap:body use="literal" />
>            </input>
>            <output>
>                <soap:header message="tns:ManifestHeader"  
> part="header" use="literal" />
>                <soap:body use="literal" />
>            </output>
>        </operation>
>          </binding>
> </definitions>
>
>
> Any information would be helpful, particularly articles that  
> discuss this topic.
>
> Thanks.
>
> Dave
>
>
> ______________________________________________________________________ 
> _
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS