Your SlideShare is downloading. ×
Improving Soap Message Serialization
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Improving Soap Message Serialization


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Transcript

    • 1. Supervisor : Dr. Sanjiva Weerawarana Presented by : Prabath Siriwardena
    • 2.
      • Web service calls are considerably slow compared to JAVA RMI and .NET Remoting
      • SOAP is based on XML and XML encoding contributes in a large amount for the slowness of web service API calls.
      • SOAP requires it’s wire format to be in text and there is a cost of conversion from binary form to text before being transmitted.
    • 3.
      • SOAP message template generation for a given WSDL
      • Templating & Caching SOAP message requests to overcome performance bottlenecks due to serialization.
    • 4.  
    • 5.
      • SOAP message template generation
      WSDL WSDL2JAVA SOAP Message Template SOAP Message Template SOAP Message Template Modified XSL files
    • 6.
      • SOAP message template generation [contd..]
      <s:element name=&quot; TestWithComplexType5 &quot;> <s:complexType> <s:sequence>   <s:element minOccurs=&quot; 0 &quot; maxOccurs=&quot; 1 &quot; name=&quot; address &quot; type=&quot; tns:Address &quot; />   </s:sequence>   </s:complexType>   </s:element> <s:complexType name=&quot; Address &quot;> <s:sequence>   <s:element minOccurs=&quot; 0 &quot; maxOccurs=&quot; 1 &quot; name=&quot; Address1 &quot; type=&quot; s:string &quot; />   <s:element minOccurs=&quot; 0 &quot; maxOccurs=&quot; 1 &quot; name=&quot; Address2 &quot; type=&quot; s:string &quot; />   <s:element minOccurs=&quot; 0 &quot; maxOccurs=&quot; 1 &quot; name=&quot; City &quot; type=&quot; s:string &quot; />   <s:element minOccurs=&quot; 0 &quot; maxOccurs=&quot; 1 &quot; name=&quot; State &quot; type=&quot; s:string &quot; />   <s:element minOccurs=&quot; 0 &quot; maxOccurs=&quot; 1 &quot; name=&quot; Country &quot; type=&quot; s:string &quot; />   <s:element minOccurs=&quot; 0 &quot; maxOccurs=&quot; 1 &quot; name=&quot; PostalCode &quot; type=&quot; s:string &quot; />   </s:sequence>   </s:complexType>
    • 7.
      • SOAP message template generation [contd..]
      String[] template = new String[11]; template[0]= &quot;<TestWithComplexType5 xmlns=&quot;http://axis2.benchmarking/&quot;> <address><Address1>&quot;; template[2]=&quot;</Address1><Address2>&quot;; template[4]=&quot;</Address2><City>&quot;; template[6]=&quot;</City><State>&quot;; template[8]=&quot;</State><PostalCode>&quot;; template[10]=&quot;</PostalCode></address></TestWithComplexType5>&quot;; public static final int ADDRESS_1 = 1; public static final int ADDRESS_2 = 3; public static final int CITY = 5; public static final int STATE = 7; public static final int POSTAL_CODE = 9;
    • 8.
      • Caching & Templating
      Envelope Cache Search(‘Axis’) Template Repository Not in Cache SOAP Envelope Builder Add to Cache SOAP Envelope 1 2 3 4 5 SOAP Template Builder SOAP Envelope
    • 9.
      • Caching & Templating
      Template Repository SOAP Envelope SOAP Header
    • 10. .NET Web Service AXIS2 Engine Client One : Templating + Caching Client Three : Templating Only Client Two : Default Client useTemplating=true useTemplating=false useTemplating=true Modified Stubs Default Stubs Modified Stubs
    • 11.
      • Performance gain due to templating & caching increases as the object complexity increases.
    • 12.
      • Templating contributes in a larger percentage to the performance gain than the caching as the object complexity increases
    • 13.
      • Differential Serialization & Differential De-serialization
      • Client Side Caching
      • SOAP message compression : CPU time spent on compression and decompression outweighs the benefits.
      • Compact the XML tags and to reduce the length of XML tags.
    • 14.
      • Implementation of SOAP message template generation : 5%
    • 15.
        • SOAP Spec 1.2
        • The Axis2 Transport Framework
        • Writing an Axis2 Service from Scratch
        • Introducing Axiom
        • AXIOM - Fast and Lightweight Object Model for XML
        • JSR 173 - Streaming API for XML
        • J2EE Web Services' - RMH
        • Java Web Service Architecture - James McGovern
        • Differential Serialization for Optimized SOAP Performance - Nayef Abu-Ghazaleh, Michael J. Lewis, Madhusudhan Govindaraju
        • SOAP Optimization via Client-side Caching - Kiran Devaram and Daniel Andresen
    • 16.
      • Thank You…!