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

1,619

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,619
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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    http://www.developer.com/services/article.php/3606466
        • Writing an Axis2 Service from Scratch    http://www.developer.com/java/ent/article.php/10933_3613896_1
        • Introducing Axiom    http://www.theserverside.com/tt/articles/article.tss?l=Axiom
        • AXIOM - Fast and Lightweight Object Model for XML    http://wso2.org/library/291
        • 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…!

    ×