<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Engwar &#187; webservices</title>
	<atom:link href="http://engwar.com/tags/webservices/feed" rel="self" type="application/rss+xml" />
	<link>http://engwar.com</link>
	<description>Chintana Wilamuna&#039;s weblog</description>
	<lastBuildDate>Wed, 30 Nov 2011 13:28:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WSF/Perl 1.1</title>
		<link>http://engwar.com/post/39?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wsfperl-11</link>
		<comments>http://engwar.com/post/39#comments</comments>
		<pubDate>Wed, 28 May 2008 15:45:13 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[webservices]]></category>
		<category><![CDATA[wsf/perl]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=39</guid>
		<description><![CDATA[Just uploaded WSF/Perl 1.1 to CPAN. Doesn&#8217;t show up there yet but will be available within a few hours. This has many things added since the last release (which was ages ago). You could now do WS-ReliableMessaging, WS-Security, WS-SecurityPolicy. The &#8230; <a href="http://engwar.com/post/39">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just uploaded WSF/Perl 1.1 to CPAN.  Doesn&#8217;t show up there yet but will be available within a few hours.  This has many things added since the last release (which was ages ago).  You could now do WS-ReliableMessaging, WS-Security, WS-SecurityPolicy.  The release became ridiculously late due to couple of bugs which took me REALLY LONG to debug and fix.  Ouch.  Download and give it a shot.  It&#8217;ll take couple of seconds to compile.  If you&#8217;re in a generous mood I recommend <a href="http://www.everytopicintheuniverseexceptchickens.com/">contributing to a good cause</a> in those few seconds.</p>
<p>This release again has only support only on the client side, if you&#8217;re looking forward to write/host services with WSF/Perl you still have to wait a bit more.  <a href="http://nethu.org/">Dinesh</a> and Danushka has done some excellent progress on that front and will be finishing it soon.  If you wanna know how it&#8217;s taking shape, then <a href="http://wso2.org/repos/wso2/trunk/wsf/perl/service/">by all means</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/39/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom SOAP headers using WSF/Perl</title>
		<link>http://engwar.com/post/30?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=custom-soap-headers-using-wsfperl</link>
		<comments>http://engwar.com/post/30#comments</comments>
		<pubDate>Fri, 04 Apr 2008 00:35:00 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[webservices]]></category>
		<category><![CDATA[wsf/perl]]></category>

		<guid isPermaLink="false">http://engwar.com/post/30</guid>
		<description><![CDATA[SOAP headers are used to convey additional control information that complements the information in the payload. For example WS-Security is one such thing that use SOAP headers to say how integrity and confidentiality should be achieved. Apart from the specs &#8230; <a href="http://engwar.com/post/30">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>SOAP headers are used to convey additional control information that complements the information in the payload.  For example WS-Security is one such thing that use SOAP headers to say how integrity and confidentiality should be achieved.  Apart from the specs that define standard SOAP headers you could also define your own custom headers which could then be processed as you wish from your application.  Let&#8217;s see how we can generate custom SOAP headers using WSF/Perl.  You&#8217;ll need to get the SVN head revision of <a href="http://wso2.org/projects/wsf/perl">WSF/Perl</a> in order to get this working (as of this writing).</p>
<p>First, let&#8217;s see an example from &#8220;Processing XML with Java&#8221; (<a href="http://www.amazon.com/Processing-XML-Java-TM-Guide/dp/0201771861/">Amazon page</a>) also <a href="http://www.cafeconleche.org/books/xmljava">available online here</a>.  I&#8217;m using <a href="http://www.cafeconleche.org/books/xmljava/chapters/ch02s06.html#bid_with_credit_card.xml">the SOAP header example</a> to show you how to generate the exact thing.</p>
<pre lang="xml">
<Payment xmlns="http://namespaces.cafeconleche.org/xmljava/ch2/">
    <Name>Elliotte Harold</Name>
    <Issuer>VISA</Issuer>
    <Number>5125456787651230</Number>
    <Expires>2005-12</Expires>
</Payment>
</pre>
<p>Here&#8217;s how you can generate the above headers using WSF/Perl,</p>
<pre lang="php">
my $name = new WSO2::WSF::WSHeader(
    {'name' => 'Name', 'data' => 'Elliotte Harold' } );

my $issuer = new WSO2::WSF::WSHeader(
    {'name' => 'Issuer', 'data' => 'VISA' } );

my $number = new WSO2::WSF::WSHeader(
    {'name' => 'Number', 'data' => '5125456787651230' } );

my $expires = new WSO2::WSF::WSHeader(
    {'name' => 'Expires', 'data' => '2005-12' } );

my $payment = new WSO2::WSF::WSHeader(
    {'name' => 'Payment',
      'ns' => 'http://namespaces.cafeconleche.org/xmljava/ch2/',
      'data' => [$name, $issuer, $number, $expires] } );

my $client = new WSO2::WSF::WSClient(
    {...,
     'inputHeaders' => [$payment] } );
</pre>
<p>In the <a href="http://www.cafeconleche.org/books/xmljava/chapters/ch02s06.html#signed_bid_with_payment.xml">next example</a> it shows the header with the <code>mustUnderstand</code> attribute set, this is how you set it,</p>
<pre lang="php">
my $client = new WSO2::WSF::WSClient(
    {...,
     'mustUnderstand' => 'true',
     'inputHeaders' => [$payment] } );
</pre>
<p>Next, I&#8217;ll take an example from a <a href="http://www.ibm.com/developerworks/webservices/library/ws-soapheaders/index.html?ca=drs">developerWorks article that shows you how to manipulate SOAP headers in WebSphere</a>.  Consider the following header contents (Listing 4 in the article)</p>
<pre lang="xml">
<MyPrefix:CallingApplication xmlns:MyPrefix="http://SOAPHeaderDemonstration">
    <name>ServiceRequester1</name>
    <version>1.0</version>
    <timeRequestMade>13:20:00</timeRequestMade>
</MyPrefix:CallingApplication>
</pre>
<p>The main difference in this is that it contains a custom prefix for the element <code>CallingApplication</code>.  Here&#8217;s the WSF/Perl code to generate this header,</p>
<pre lang="php">
my $name = new WSO2::WSF::WSHeader(
    {'name' => 'name', 'data' => 'ServiceRequester1' } );

my $version = new WSO2::WSF::WSHeader(
    {'name' => 'version', 'data' => '1.0' } );

my $timereq = new WSO2::WSF::WSHeader(
    {'name' => 'timeRequestMade', 'data' => '13:20:00' } );

my $capp = new WSO2::WSF::WSHeader(
    {'name' => 'CallingApplication', 'ns' => 'http://SOAPHeaderDemonstration',
     'nsprefix' => 'MyPrefix',
     'data' => [$name, $version, $timereq] } );

my $client = new WSO2::WSF::WSClient(
    {...,
     'inputHeaders' => [$capp] } );
</pre>
<p>As you saw in the examples, <code>WSHeader</code> class facilitate creating custom SOAP headers with WSF/Perl.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/30/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scripting language bindings</title>
		<link>http://engwar.com/post/20?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scripting-language-bindings</link>
		<comments>http://engwar.com/post/20#comments</comments>
		<pubDate>Thu, 03 Jan 2008 08:53:08 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[swig]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://engwar.com/post/20</guid>
		<description><![CDATA[Besides having the ability to provide a high level and a more developer friendly API, making a scripting language binding to an existing C library could make the testing of the library a less painful process. Initially I was under &#8230; <a href="http://engwar.com/post/20">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Besides having the ability to provide a high level and a more developer friendly API, making a scripting language binding to an existing C library could make the testing of the library a less painful process.  Initially I was under the impression that exposing low level C functions to the scripting language will make it flexible so that you could build a high level module in that scripting language encapsulating those low level functions.  True.  But the big downside when you have, say, 3 different language bindings for your C library all exposing low level functions is, a) you need to spend a lot of time writing the module in the respective scripting language b) too much overhead when it comes to debugging.  If you find a subtle bug which you have overlooked in the Ruby binding, now you need to change the same thing on your Python and Perl bindings as well.</p>
<p>This was a real issue that we came across developing the Ruby and Perl bindings for the <a href="http://wso2.org/projects/wsf/c">WSF/C</a> framework.  Also having the Python binding in sight.  We use <a href="http://www.swig.org/">SWIG</a> to generate language bindings.  Having learned the price you have to pay exposing the lowest level functions, I&#8217;m gonna look into refactoring the existing code limiting the stuff that&#8217;s exposed to the scripting language to a minimum.  So, code that goes into the module which need to be written in the respective scripting language is very small.</p>
<p>At the end of the day it&#8217;s about making you feel sooo comfortable when you program in your favourite scripting language, exposing your services with the doublew ess death star goodness with a few lines which will call the C library for maximum performance which will then give the result back to your favourite scripting language scripting language.  It&#8217;s a deadly game out there <img src='http://engwar.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   Yes, you can breathe now.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/20/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WS-* in Rails</title>
		<link>http://engwar.com/post/18?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ws-in-rails</link>
		<comments>http://engwar.com/post/18#comments</comments>
		<pubDate>Tue, 01 Jan 2008 19:35:02 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://engwar.com/post/18</guid>
		<description><![CDATA[Indeed, WS-* appears to be yet another ivory tower going up in a place no sane native would want to live. The village of the web is already plenty strong to withstand the distraction. Complex lights, flickering buzzwords, and long &#8230; <a href="http://engwar.com/post/18">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>Indeed, WS-* appears to be yet another ivory tower going up in a place no sane native would want to live. The village of the web is already plenty strong to withstand the distraction. Complex lights, flickering buzzwords, and long roadmaps to nowhere notwithstanding.</p></blockquote>
<p>That&#8217;s <a href="http://loudthinking.com/arc/2006_04.html">DHH himself</a> on the issue of WS-* in Rails.  More than a year ago.  Upon the release of  Rails 2.0 quoting <a href="http://www.infoworld.com/article/07/12/07/ruby-on-rails-20-released_1.html">InfoWorld article</a>,</p>
<blockquote><p>REST is favored over SOAP now because those in the agile development camp feel it has become too complex, with its many WS-* standards to follow, said Hansson. Spoken as &#8220;ws star,&#8221; Hansson instead denigrated the WS-* specifications by referring to them as &#8220;ws death star.&#8221;</p></blockquote>
<p>But what if you need doublew ess death star for your application?  What if you need WS-Addressing or WS-Security?  Start writing your application in Java??  You don&#8217;t have to.  <a href="http://wso2.org/projects/wsf/ruby">WSF/Ruby</a> is a Ruby language bindings for a C framework that provides doublew ess death star stuff.  <a href="http://wso2.org/projects/wsf/c">WSF/C</a> which gives you the death star goodness in C language now has a Ruby binding which allows your Rails apps to take full advantage of this deadly situation.  Look you don&#8217;t have to die coding in Java which gather a lot of bad karma, you can now do it with Ruby and die <img src='http://engwar.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>On a bit more serious note, WSF/Ruby, aimed at Rails apps will allow you to do WS-Addressing, WS-Security, WS-SecurityPolicy, WS-ReliableMessaging with some other goodies.  Read the <a href="http://wso2.org/project/wsf/ruby/1.0.0/features.html">whole feature set</a>.</p>
<p>While the merits of having or not having WS-* in Rails can be argued for both sides, with the current situation you&#8217;re more likely to look for another framework/language if you need it.  Now the initial efforts to make the situation better is out.  There are some samples bundled with the release that show how you could get them going on your apps.  Try out and feel free to raise your voice in the mailing list if you need help.</p>
<p>One more thing, if you need commercial support for it just <a href="http://wso2.com/support/">ask the bizdev team</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/18/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WSF/Perl is out there</title>
		<link>http://engwar.com/post/11?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wsfperl-is-out-there</link>
		<comments>http://engwar.com/post/11#comments</comments>
		<pubDate>Mon, 22 Oct 2007 02:24:40 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://engwar.com/post/11</guid>
		<description><![CDATA[Initial version of WSF/Perl was released a few weeks ago and I&#8217;ve been too lazy to write a blog post about it. You can install it via CPAN. Documentation is available in the familiar POD format. You can find more &#8230; <a href="http://engwar.com/post/11">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Initial version of WSF/Perl was released a few weeks ago and I&#8217;ve been too lazy to write a blog post about it.  You can install it via CPAN.  Documentation is available in the familiar <a href="http://search.cpan.org/~chintana/WSO2-WSF-Perl-v1.0.0/WSO2-WSF/lib/WSO2/WSF.pm">POD format</a>.  You can find more info from <a href="http://wso2.org/projects/wsf/perl">WSF/Perl project page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/11/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webservices with Perl</title>
		<link>http://engwar.com/post/10?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=webservices-with-perl</link>
		<comments>http://engwar.com/post/10#comments</comments>
		<pubDate>Tue, 18 Sep 2007 02:49:22 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://engwar.com/post/10</guid>
		<description><![CDATA[If you have been doing Web services with SOAP::Lite you&#8217;ll be thrilled to hear that there is another library that&#8217;ll provide WS-* goodness to consume and provide services. Well at least on the way of providing Still there is no &#8230; <a href="http://engwar.com/post/10">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you have been doing Web services with SOAP::Lite you&#8217;ll be thrilled to hear that there is another library that&#8217;ll provide WS-* goodness to consume and provide services.  Well at least on the way of providing <img src='http://engwar.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   Still there is no support for all the WS- specs implemented by WSF/C but it&#8217;s on the pipeline.  I&#8217;ve been doing development of the Perl binding to the <a href="http://wso2.com/">WSO2</a> <a href="http://wso2.org/projects/wsf/c">WSF/C</a> library.  It&#8217;s not officially released yet but if you&#8217;re feeling a bit adventurous you can try playing with the <a href="http://wso2.org/repos/wso2/trunk/wsf/perl/">svn</a>.  Still the installation is a bit dodgy.  Haven&#8217;t made it a CPAN module yet but it&#8217;ll be when it&#8217;s released.  Still there are loads of improvements to be done.  I have to get rid of those quick and dirty wrapper functions and use typemaps.  Also need to get a proper exception mechanism in place.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

