none
WCF Streaming with DataPower RRS feed

  • Question

  • Hi There,

    We are currently looking at the delivery of imaged content within the data contracts of our operations via a WCF .NET 4.0 service that could be up to 30 MB in size.  This has naturally led us to investigate the benifits of using transferMode="Streamed".  Our service is setup within an enterprise system that has a DataPower gateway appliance in-between our service, and it's consumers.  The DataPower acts as an enterprise service bus, providing digital certificate authentication, and transformation capabilities.  While researching WCF Streaming, we have come across the following caveat:

    https://msdn.microsoft.com/en-us/library/ms733742(v=vs.110).aspx

    "The decision to use either buffered or streamed transfers is a local decision of the endpoint. For HTTP transports, the transfer mode does not propagate across a connection or to proxy servers and other intermediaries. Setting the transfer mode is not reflected in the description of the service interface. After generating a WCF client to a service, you must edit the configuration file for services intended to be used with streamed transfers to set the mode. For TCP and named pipe transports, the transfer mode is propagated as a policy assertion."

    If our consumer's are not directly communicating with our service, but rather through our DataPower 'proxy', does this mean that we are unable to provide the capability of "Streaming" for large message content?

    Thanks and regards,

    Dave



    • Edited by Dave D1 Thursday, June 18, 2015 7:32 PM
    Thursday, June 18, 2015 7:31 PM

Answers

All replies

  • Researching some more, this post leads me to beleive to some opposing conclusions:

    • WCF Streaming is not interoperable.  You have to have a .NET WCF consumer client and service with their configs set to 'Streamed' for streaming to work.
    • However, if the consumer's proprietery SOAP stack (i.e. Java, DataPower, Perl, etc.) has the ability to 'HTTP-chunked' at the lower TCP/IP level, then you should be set.

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/30557078-6499-42d5-8847-cad584ceb4dc/streaming-wcf?forum=wcf

    DataPower is IBM based, and I'm *assuming* J2EE under the hood, though I do not work with it directly.  It does require our WSDL for it's capabilities, performs schema validation any the other capabilities I mentioned like digital certificate authentication, and transformation of data.  So, I guess it's possible it could perform some low level http streaming?

    The document content we have in our WSDL is the typical base 64 encoded string, within the SOAP body

    Request message SOAP body sample:

       <soapenv:Body>
          <ns:updateDocumentPropertiesStreamBodyRequest>
             <ns:documentContent>cid:954586111484</ns:documentContent>
          </ns:updateDocumentPropertiesStreamBodyRequest>
       </soapenv:Body>

    From the .xsd referenced in the WSDL:

    <xs:element name="storeDocumentStreamBodyRequest" type="StoreDocumentStreamBody201511Req_Type" nillable="true">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:complexType name="StoreDocumentStreamBody201511Req_Type">
        <xs:annotation>
          <xs:appinfo>
          </xs:appinfo>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="documentContent" type="xs:base64Binary" minOccurs="1">
            <xs:annotation>
              <xs:documentation></xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>



    • Edited by Dave D1 Thursday, June 18, 2015 10:11 PM
    Thursday, June 18, 2015 10:09 PM
  • hi Dave ,
       As per this case, I found that the issue fully based on IBM datapower with WCF.
    So I suggest you to refer the pdf article from the following link which may give you better explanations about DataPower with WCF Integration :

    http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.wdatapower/wdatapower/1.0/xa35/380DataPowerWCFIntegration.pdf

    Friday, June 19, 2015 8:06 AM