optimization of soap presentation(jg9e10)
DESCRIPTION
About the technology that improve the serialise and deserialise SOAP message between web servicesTRANSCRIPT
SOAP based web service messaging Optimization
Web technologyPresented by Jie GaoEngineering and Computer Science
Academic Year 2010 /11
Papers
• Abu-Ghazaleh, N.; Lewis, M.J.; , "Differential Deserialization for Optimized SOAP Performance," Supercomputing, 2005. Proceedings of the ACM/IEEE SC 2005 Conference , pp. 21- 21, 12-18 Nov. 2005
• K. Chiu, M. Govindaraju, and R. Bramley.Investigating the Limits of SOAP Performance forScientific Computing. In Proceedings of 11th IEEEInternational Symposium on High PerformanceDistributed Computing, pages 246–254, Edinburgh,Scotland, July 23-26, 2002.
AGENDA
• Motivation & Background• Optimization technique Solutions– DS– DDS
• DS vs. DDS• Conclusion
Motivation & Background
Why SOAP?
–WSDL and SOAP
Why SOAP?
On one hand,– Soap is a xml-based message description language– Soap specifies a means for invoking web services over some
underlying protocol, usually HTTP– Soap is simple, expressive, extensible and language independent
Enable interoperability between clients and servers across heterogeneous platforms and languages
SOAPOn the other hand,
SOAP is an ASCII and XML based format
Converting between SOAP and in-memory application data representations can be expensive
Bottleneck in Data Serialization and Deserialization
Previous Approach Differential serialization (DS) -Client side solution
Avoid serializing entire messages on the sender side
– Buffering copies of outgoing message– Track and only the changes are reconverted and rewritten
– Improve the performance significantly in the scenario
when clients send sequences of similar messages with similar structure and content
Differential deserialization(DDS)– DS’ analogue on the server side
Two sample SOAP messages ----- Google Web ServicesPOST / HTTP/1.1Host: api.google.comUser-Agent: gSOAP/2.7Content-Type: text/xml; charset=utf-8Content-Length: 664Connection: closeSOAPAction: "urn:GoogleSearchAction"<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:api="urn:GoogleSearch"><SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><api:doGoogleSearch><key>XXXXX</key><q>Binghamton Grid Computing</q><start>0</start><maxResults>10</maxResults><filter>true</filter><restrict></restrict><safeSearch>false</safeSearch><lr></lr><ie>latin1</ie><oe>latin1</oe></api:doGoogleSearch></SOAP-ENV:Body></SOAP-ENV:Envelope>
(a) A search for “Binghamton Grid Computing”
POST / HTTP/1.1Host: api.google.comUser-Agent: gSOAP/2.7Content-Type: text/xml; charset=utf-8Content-Length: 667Connection: closeSOAPAction: "urn:GoogleSearchAction"<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:api="urn:GoogleSearch"><SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><api:doGoogleSearch><key>XXXXX</key><q>Differential Deserialization</q><start>0</start><maxResults>10</maxResults><filter>true</filter><restrict></restrict><safeSearch>false</safeSearch><lr></lr><ie>latin1</ie><oe>latin1</oe></api:doGoogleSearch></SOAP-ENV:Body></SOAP-ENV:Envelope>
(b) A search for “Differential Deserialization”
Figure 1: Two similar gSOAP-generated SOAP messages to the Google doGoogleSearch Web Service.
How DDS works?
An idea to avoid fully deserializing each message in an incoming stream of similar messages
How DDS works?
DDS-enabled Deserialiser
– Regular mode – Read and process all SOAP tags and message contents– Create checkpoints and corresponding message portion
checksums– fast mode
– Consider the sequence of checksums corresponding to disjoint portions of the message
– Compares them against the sequence of checksums associated with the most recently received message for the same service
How DDS works?
– Periodically checkpoint the state of the SOAP deserialiser– Switch back and forth between fast and regular deserialization
modes
– Compute checksums of SOAP message portions– Through matching corresponding portions, expensive step of
completely parsing and deserializing the incoming message can be avoided
DS VS. DDS
– Completely separate– Independent ideas and implements– Represents very different realization of the
same high level ideas– DS for sending SOAP data; DDS for receiving it
Conclusion
– DDS is more promising than DS– More applicable – DS only works if the same client sends a
stream of similar messages– DDS can avoid Deserialization of similar
messages sent by multiple different clients– It is a client server mode
Speed of server is more often the determining factor of performance
Reference
– T. Suzumura, T. Takase, and M. Tatsubori. Optimizing Web Services Performance by Differential Deserialization. IEEE/ACM International Conference on Web Services, pages 185–192, Orlando, FL, July on Web Services, pages 185–192, Orlando, FL, July
– K. Devaram and D. Andresen. SOAP Optimization via Parameterized Client-Side Caching. In Proceedings of PDCS 2003, pages 785–790, November 3-5, 2003.
– E. Christensen et. al. Web Services Description Language (WSDL) 1.1, March 2001. http://www.w3.org/TR/wsdl.
18
Thanks!