<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4315194664429455135</id><updated>2012-01-19T05:39:39.301-08:00</updated><category term='1.3.0'/><category term='case study'/><category term='postgresql'/><category term='tools'/><category term='RM'/><category term='Article'/><category term='usernameToken'/><category term='dbs2php'/><category term='Zend Core'/><category term='Samples'/><category term='SQLite'/><category term='Feedback'/><category term='WSF/Perl'/><category term='RIA'/><category term='WSF/Ruby'/><category term='pgsql'/><category term='SOAP 1.1'/><category term='Code Generation'/><category term='WSF/PHP 1.2.2'/><category term='XML in-out'/><category term='Fault Reason'/><category term='union'/><category term='OSCON'/><category term='action'/><category term='xpath'/><category term='video'/><category term='Debugging'/><category term='mashup'/><category term='x509'/><category term='WSHeader'/><category term='Data Services'/><category term='Calculator'/><category term='WSFault'/><category term='PHP 5.3'/><category term='Plugin'/><category term='WampServer'/><category term='authentication'/><category term='SOAP Fault'/><category term='serviceName'/><category term='webservices'/><category term='WSMessage'/><category term='Adoption'/><category term='1.3.2'/><category term='policy'/><category term='faq'/><category term='BAM'/><category term='WSDL Generation'/><category term='Zend'/><category term='IIS'/><category term='TechEd'/><category term='wordpress'/><category term='SWA'/><category term='online'/><category term='anyType'/><category term='Doc-lit bare'/><category term='echo'/><category term='Array'/><category term='URL Mapping'/><category term='Mashups'/><category term='signing'/><category term='Demo Site'/><category term='transport security'/><category term='WSService'/><category term='message level security'/><category term='ubuntu'/><category term='perfomance test'/><category term='WAMP'/><category term='SOAP 1.2'/><category term='.NET'/><category term='compexType'/><category term='axis2.xml'/><category term='portName'/><category term='list'/><category term='Photos'/><category term='Consulting'/><category term='simpleContent'/><category term='response time'/><category term='Encryption'/><category term='solutions'/><category term='Tutorial'/><category term='WOA'/><category term='Interoperable'/><category term='Integration'/><category term='The Uniform Server'/><category term='scratch'/><category term='SOA'/><category term='wsf-security policy'/><category term='mashup server'/><category term='Support'/><category term='XML Signature'/><category term='php.ini'/><category term='Http'/><category term='test-cases'/><category term='proxyHost'/><category term='WSClient'/><category term='schema types'/><category term='polymorphism'/><category term='Public Web Servies'/><category term='traversing'/><category term='WSDL mode'/><category term='WS-*'/><category term='dataservices'/><category term='coupling'/><category term='WS-Policy'/><category term='relative dir'/><category term='class based API'/><category term='Contract first'/><category term='howto'/><category term='Webinar'/><category term='Class Map'/><category term='WS-Security'/><category term='wsdl1.1'/><category term='replay attack'/><category term='Extension'/><category term='modules'/><category term='WSAS'/><category term='deb'/><category term='opParams'/><category term='simplexml'/><category term='libraries'/><category term='Hello World'/><category term='Open Source'/><category term='WSO2 WSAS'/><category term='databases'/><category term='PHP'/><category term='Example'/><category term='fault'/><category term='Features'/><category term='Database'/><category term='Flickr'/><category term='install'/><category term='Proxy Authentication'/><category term='WSO2 WSF/PHP'/><category term='installation'/><category term='wsf.home'/><category term='RPC Encoded'/><category term='Amazon'/><category term='third party hosting'/><category term='Zend Framework'/><category term='annotations'/><category term='caching wsdl'/><category term='pecl'/><category term='class names'/><category term='Client'/><category term='XAMPP'/><category term='Payload'/><category term='library'/><category term='$_SERVER[&quot;REMOTE_ADDR&quot;]'/><category term='troubleshooting'/><category term='base64'/><category term='phpt'/><category term='granularity'/><category term='RPC-Enc'/><category term='sql query'/><category term='proxyPort'/><category term='xsi:type'/><category term='clasmap'/><category term='wsdl2.0'/><category term='attributes'/><category term='WSO WSF/PHP'/><category term='article.'/><category term='Axis2/C'/><category term='Databse'/><category term='Messages'/><category term='facets'/><category term='News'/><category term='MSSQL'/><category term='WS-Addressing'/><category term='Release 1.3.0'/><category term='business'/><category term='SOAP Action'/><category term='SoapVar'/><category term='$_SERVER[&quot;REMOTE_HOST&quot;]'/><category term='Web Services'/><category term='schema'/><category term='array based API'/><category term='openssl'/><category term='XML'/><category term='CRUD'/><category term='Best Practices'/><category term='custom headers'/><category term='cacheWSDL'/><category term='WSF/Spring'/><category term='RESTful'/><category term='WSMessasge'/><category term='WSF/PHP'/><category term='certificate'/><category term='operations'/><category term='Demo'/><category term='Serialization'/><category term='screencast'/><category term='Interoperability'/><category term='WSO2 Oxygen Tank'/><category term='Calendar'/><category term='restrictinon'/><category term='best practises'/><category term='short note'/><category term='Security'/><category term='simple types'/><category term='rpm'/><category term='WSO2'/><category term='Amazon Web Services'/><category term='wsdl2php'/><category term='WSDL'/><category term='Code first'/><category term='release 1.3.1'/><category term='Http Basic Authentication'/><category term='enterprise'/><category term='debian'/><category term='advanced types'/><category term='windows'/><category term='simpleType'/><category term='php2wsdl'/><category term='timestamp'/><category term='Documents'/><category term='Web Service Framework for PHP'/><category term='Yahoo'/><category term='Sample'/><category term='linux'/><category term='apache'/><category term='NuSOAP'/><category term='CACert'/><category term='WSA-Action'/><category term='WSF/Python'/><category term='test-suit'/><category term='Doc-lit'/><category term='LAMP'/><category term='MTOM'/><category term='guide'/><category term='REST'/><category term='steps'/><category term='1.3.*'/><category term='How to'/><category term='soap headers'/><category term='Caching'/><category term='Java'/><category term='API'/><category term='complexContent'/><category term='Attachments'/><category term='Binary'/><category term='SOAP'/><category term='Stock Trader'/><category term='MIXED'/><category term='Data'/><category term='Dispatching'/><category term='SoapParam'/><category term='xml schema'/><category term='FREE'/><category term='drupal'/><category term='https'/><category term='Release 1.2.1'/><category term='dreamhost'/><category term='wsf/php 2.0.0'/><category term='Training'/><title type='text'>PHP Web Services</title><subtitle type='html'>PHP Web services: SOAP, REST, WS-*, SOA and WOA with PHP.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default?start-index=101&amp;max-results=100'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>227</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-627167072925613313</id><published>2011-09-03T22:53:00.001-07:00</published><updated>2011-09-03T22:56:21.472-07:00</updated><title type='text'>WSO2 Con for all.</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-pzqbU5vN8cs/TmMS-hucH9I/AAAAAAAAAdE/BXMLUMPlCp8/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-R3BlwuHDWAc/TmMS_57BXAI/AAAAAAAAAdI/o6gYM9C8_Fw/image_thumb%25255B5%25255D.png?imgmax=800" width="719" height="165" /&gt;&lt;/a&gt; WSO2 con is probably the biggest open source IT event happening in Sri Lanka. Apart from the other open source events that took place in the past like FOSSSL and Apache Con Asia, WSO2 Con is the only IT conference that brings together industry leaders from around the world to share their knowledge and experiences in Sri Lanka.&amp;#160; &lt;/p&gt;  &lt;p&gt;Modeled after Apache Con, WSO2 Con has added tutorial tracks to the conference this year in addition to speaker sessions and key notes. Just like it was in last year, some greats in the industry will be delivering keynotes. Also some fantastic sessions have been lined up to share experiences in building open source middleware and solving integration problems using those software. &lt;/p&gt;  &lt;p&gt;If you want to dive deep and learn stuff hands on , don’t miss the tutorial tracks. There is nothing like learning from someone who has actually been there and done it. &lt;/p&gt;  &lt;p&gt;Add to that the great food that will be served, you are in for an event you will remember. &lt;/p&gt;  &lt;p&gt;Find out more about WSo2 Con at &lt;a href="http://wso2.com/events/wso2con-2011-colombo/"&gt;http://wso2.com/events/wso2con-2011-colombo/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-dpEGFEpKvJg/TmMTAmT0sNI/AAAAAAAAAdM/1DPOiCdGqns/s1600-h/image%25255B5%25255D.png"&gt;&amp;#160;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-627167072925613313?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/627167072925613313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=627167072925613313' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/627167072925613313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/627167072925613313'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2011/09/wso2-con-for-all.html' title='WSO2 Con for all.'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-R3BlwuHDWAc/TmMS_57BXAI/AAAAAAAAAdI/o6gYM9C8_Fw/s72-c/image_thumb%25255B5%25255D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2254182223878946339</id><published>2010-12-31T00:22:00.001-08:00</published><updated>2010-12-31T00:23:11.759-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSDL mode'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><title type='text'>?xsd option added to WSF/PHP</title><content type='html'>&lt;p&gt; ?xsd is an standard option to serve an xsd file imported within a wsdl. This was a missing feature in WSF/PHP. In WSF/PHP automatic wsdl generation, it does not generate additional xsds which are imported by the wsdl and hence this option would not be required. However, with wsdl mode, you could have additional xsds imported in the wsdl. Now you can obtain these xsds with the option ?xsd=xsdfilename.xsd.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_honSoB4kSVs/TR2Sq3n9LwI/AAAAAAAAAZ0/Hiunkxw5tgg/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_honSoB4kSVs/TR2St2e7RlI/AAAAAAAAAZ4/h0suAYA88Ig/image_thumb%5B1%5D.png?imgmax=800" width="700" height="275" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2254182223878946339?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2254182223878946339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2254182223878946339' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2254182223878946339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2254182223878946339'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2010/12/xsd-option-added-to-wsfphp.html' title='?xsd option added to WSF/PHP'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_honSoB4kSVs/TR2St2e7RlI/AAAAAAAAAZ4/h0suAYA88Ig/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7509269872016868196</id><published>2010-12-30T23:15:00.001-08:00</published><updated>2010-12-30T23:15:07.398-08:00</updated><title type='text'>How to statically serve a wsdl with WSF/PHP.</title><content type='html'>&lt;p&gt;WSF/PHP has two modes of operations. When using wsdl mode, you will always start with a wsdl and hence, that wsdl will be served for ?wsdl request. On the other hand, you can write a service with annotations and the corresponding wsdl will be generated for you. However, when using the xml-in-out mode with WSMessage object as the input and output parameter for the operation, its better to be able to serve a wsdl that is saved in the server since auto generated wsdl’s schema might not match the operation accepted xml.&lt;/p&gt;  &lt;p&gt;Getting this done is quite simple. all you need to do is to set the option “&lt;u&gt;&lt;strong&gt;omitProcesswsdl&lt;/strong&gt;&lt;/u&gt;” in &lt;strong&gt;WSService&lt;/strong&gt; operations array to true.&amp;#160; &lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="676"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="674"&gt;         &lt;p&gt;$opParams = array(&amp;quot;testFunction&amp;quot;=&amp;gt;&amp;quot;WSMESSAGE&amp;quot;); &lt;/p&gt;          &lt;p&gt;$service = new WSService(array(&amp;#160; &amp;quot;wsdl&amp;quot;=&amp;gt;&amp;quot;mystaticwsdl.wsdl&amp;quot;,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;omitProcesswsdl&amp;quot;=&amp;gt;TRUE,             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;opParams&amp;quot;=&amp;gt;$opParams,             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;operations&amp;quot; =&amp;gt; $operations,             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;actions&amp;quot;=&amp;gt;$actions );&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div&gt;By specifying omitProcesswsdl, you can prevent WSF/PHP from trying to process the operation as a WSDL Mode operation. Also note that you would need to set your function as of type WSMESSAGE by using opParams. This is a work about which is not required for current svn trunk. &lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;   &lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7509269872016868196?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7509269872016868196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7509269872016868196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7509269872016868196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7509269872016868196'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2010/12/how-to-statically-serve-wsdl-with.html' title='How to statically serve a wsdl with WSF/PHP.'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2281567513633558287</id><published>2010-07-05T02:12:00.001-07:00</published><updated>2010-07-05T02:17:49.234-07:00</updated><title type='text'>WSO2 Web Services Framework for PHP 2.1.0 Released</title><content type='html'>&lt;p&gt;We are pleased to announce the release of v2.1.0 of&amp;#160; wso2 wsf/php. This release comes after quite some time since the 2.0.0 release was back in late 2008. Since then a lot of changes have token place in the underlying code base of WSF/PHP. The WS-Security handling has been improved and updated and that functionality is now available with this release of WSF/PHP. In addition to that, this release is built and tested for PHP 5.3. Many users have been querying about a PHP 5.3 compatible release for a while and with this release, all the issues users had with installing and running on php 5.3 will be solved. &lt;/p&gt;  &lt;p&gt;You can download the release from &lt;a href="http://wso2.org/downloads/wsf/php"&gt;http://wso2.org/downloads/wsf/php&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You can find the complete release note here.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://svn.wso2.org/repos/wso2/branches/wsf/php/2.1.0/NEWS"&gt;https://svn.wso2.org/repos/wso2/branches/wsf/php/2.1.0/NEWS&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy WSO2 WSF/PHP 2.1.0.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2281567513633558287?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2281567513633558287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2281567513633558287' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2281567513633558287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2281567513633558287'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2010/07/wso2-web-services-framework-for-php-210.html' title='WSO2 Web Services Framework for PHP 2.1.0 Released'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2829425237812076657</id><published>2010-05-21T11:09:00.001-07:00</published><updated>2010-05-21T11:16:26.313-07:00</updated><title type='text'>Configure https with WS-Security</title><content type='html'>&lt;p&gt;Using WS-Security Username Token alone with Transport level security, HTTPS, is quite common. By default, Username token is used with WS-Security Signature. Lets look at how to configure WS-Security Username Token with WSF/PHP.&lt;/p&gt;  &lt;p&gt;Since, by default, WSF/PHP tries to sign the username token credentials, you would need to specify client certificate and the private key for configuring Username Token.&lt;/p&gt;  &lt;p&gt;e.g&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;$security_options = array(&amp;quot;useUsernameToken&amp;quot; =&amp;gt; TRUE ); &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;$policy = new WSPolicy(array(&amp;quot;security&amp;quot; =&amp;gt; $security_options)); &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;$security_token = new WSSecurityToken(array(&amp;quot;user&amp;quot; =&amp;gt; &amp;quot;Raigama&amp;quot;,        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;password&amp;quot; =&amp;gt; &amp;quot;RaigamaPW&amp;quot;,         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;passwordType&amp;quot; =&amp;gt; &amp;quot;Digest&amp;quot;,         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;privateKey&amp;quot; =&amp;gt; $my_key,         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;certificate&amp;quot; =&amp;gt; $my_cert));&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I have copied a code snippet from the username token sample. As you can see, we are only configuring username token by using the option &lt;strong&gt;useUsernameToken&lt;/strong&gt; in the policy configuration. However, for the WSSecurityToken configuration, I have passed both the “&lt;strong&gt;privateKey&lt;/strong&gt;” option and “&lt;strong&gt;certificate&lt;/strong&gt;” option. The private key refer to the client’s private key and certificate refer to client’s certificate which contains the public key of the client.&amp;#160; This is because, by default, UsernameToken uses signature to enhance security of username token. &lt;/p&gt;  &lt;p&gt;Often you would need to use https transport and plaintext username password instead of a signed username token.&amp;#160; You can easily enable this option by specifying a policy file and an empty &lt;strong&gt;transportBinding&lt;/strong&gt; element within it as follows.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;strong&gt;&amp;lt;wsp:Policy xmlns:wsp=&amp;quot;&lt;/strong&gt;&lt;/em&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2004/09/policy&amp;quot;"&gt;&lt;em&gt;&lt;strong&gt;http://schemas.xmlsoap.org/ws/2004/09/policy&amp;quot;&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;       &lt;br /&gt;&lt;em&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160; xmlns:sp=&amp;quot;&lt;/strong&gt;&lt;/em&gt;&lt;a href="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702&amp;quot;"&gt;&lt;em&gt;&lt;strong&gt;http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702&amp;quot;&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsp:ExactlyOne&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsp:All&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff8000"&gt;&amp;lt;sp:TransportBinding&amp;gt;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsp:Policy&amp;gt;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsp:Policy&amp;gt;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/sp:TransportBinding&amp;gt;             &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;sp:SignedSupportingTokens&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsp:Policy&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;sp:UsernameToken           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sp:IncludeToken=&amp;quot;&lt;/strong&gt;&lt;/em&gt;&lt;a href="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient&amp;quot;"&gt;&lt;em&gt;&lt;strong&gt;http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient&amp;quot;&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsp:Policy&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;sp:WssUsernameToken10 /&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsp:Policy&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/sp:UsernameToken&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsp:Policy&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/sp:SignedSupportingTokens&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsp:All&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsp:ExactlyOne&amp;gt;           &lt;br /&gt;&amp;lt;/wsp:Policy&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Now create the WSPolicy object by using the policy file.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;$policy = new WSPolicy($policy_string);&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the WSClient options change&lt;strong&gt; “to”&lt;/strong&gt; endpoint from &lt;strong&gt;“http”&lt;/strong&gt; to &lt;strong&gt;“https”&lt;/strong&gt; and specify the &lt;strong&gt;“CACert”&lt;/strong&gt; option.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2829425237812076657?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2829425237812076657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2829425237812076657' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2829425237812076657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2829425237812076657'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2010/05/configure-https-with-ws-security.html' title='Configure https with WS-Security'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4654458829958067152</id><published>2010-05-21T10:45:00.001-07:00</published><updated>2010-05-21T10:45:32.908-07:00</updated><title type='text'>How to configure https for Apache2.2 and consume PHP web services over https</title><content type='html'>&lt;p&gt;&lt;strong&gt;Step 1.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Create a Certificate Authority, &lt;strong&gt;CA&lt;/strong&gt;.&lt;/p&gt;  &lt;blockquote&gt;&lt;strong&gt;openssl genrsa -des3 -out ca.key 4096&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;openssl req -new -x509 -days 365 -key ca.key -out ca.crt&lt;/strong&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt;Now we have a certificate authority certificate to sign the certificate for the server.&lt;/em&gt;&lt;/p&gt; &lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;Step 2.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Generate a key for the server.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;openssl genrsa -des3 -out server.key 4096&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Generate a certificate signing request&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;openssl req -new -key server.key -out server.csr&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Optional step : remove the passphrase from the key&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Rename server.key to server.key.bac.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;openssl rsa -in server.key.bac -out server.key&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Step3. &lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Sign the generated key with certificate authority&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;em&gt;openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now we have the necessary keys and certificates to configure Apache2.2 server to enable &lt;strong&gt;https&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step4.&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;copy the generated keys, certificates to a directory named keys under the conf directory.&lt;/p&gt;    &lt;p&gt;Uncomment ssl module and ssl configuration file in httpd.conf.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;LoadModule ssl_module modules/mod_ssl.so&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Include conf/extra/httpd-ssl.conf&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Step 5. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;configure https in httpd-ssl.conf file located in conf/extra directory. Use the default settings and specify the following Files to match your local settings.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;SLCertificateFile &amp;quot;F:/Apache2.2/conf/keys/server.crt&amp;quot;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SSLCertificateKeyFile &amp;quot;F:/Apache2.2/conf/keys/server.key&amp;quot;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SSLCACertificateFile &amp;quot;F:/Apache2.2/conf/keys/ca.crt&amp;quot;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;#SSLVerifyClient require&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SSLVerifyDepth 1&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;SSLVerifyClient and SSLVerifyDepth options would only be required, if you want the client to authenticate to the server using a certificate and a passphrase. &lt;/p&gt;  &lt;p&gt;Now you have successfully configured https for your server. &lt;/p&gt;  &lt;p&gt;When connecting to the server, you can obtain the servers certificate by using openssl. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;openssl s_client –connect &lt;/strong&gt;&lt;a href="http://localhost"&gt;&lt;strong&gt;localhost&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:443 &amp;gt; scert.pem&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now open the scert.pem and remove the unnecessary. Only the content within the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- needed for the certificate. You certificate would look like&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-----BEGIN CERTIFICATE-----&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;-----END CRETIFICATE-----&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 6. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now we can connect to a service deployed in Apache server using https and consume it.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;$client = new WSClient(array(“to”=&amp;gt;”https://localhost/webservices/service1.php”,&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; “CACert”=&amp;gt;”cert.pem”));&lt;/p&gt;    &lt;p&gt;$response = $client-&amp;gt;request($input);&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Much more detailed discussion on implementing https alone with Axis2/C is available &lt;a href="http://wso2.org/library/articles/ssl-enabled-web-services-apache-axis2-c"&gt;here.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4654458829958067152?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4654458829958067152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4654458829958067152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4654458829958067152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4654458829958067152'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2010/05/how-to-configure-https-for-apache22-and.html' title='How to configure https for Apache2.2 and consume PHP web services over https'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2408908728676191207</id><published>2010-02-25T08:18:00.000-08:00</published><updated>2010-02-25T08:22:51.972-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BAM'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><title type='text'>BAM Tool for PHP</title><content type='html'>&lt;a href="http://wso2.org/projects/bam"&gt;Business Activity Monitoring (BAM)&lt;/a&gt;, open source tool, can be used to monitor PHP Web services as well. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can use the generic mode of the tool and monitor Web services as well as all PHP deployments in general. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is an article on &lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; line-height: 16px; "&gt;&lt;a href="http://wso2.org/library/articles/business-activity-monitoring-introduction"&gt;Business Activity Monitoring - An Introduction&lt;/a&gt; &lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-weight: normal; line-height: normal; font-size: 16px; "&gt;to learn more about BAM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2408908728676191207?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2408908728676191207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2408908728676191207' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2408908728676191207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2408908728676191207'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2010/02/bam-tool-for-php.html' title='BAM Tool for PHP'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7001251672818255549</id><published>2009-10-12T11:18:00.001-07:00</published><updated>2009-10-12T11:18:32.273-07:00</updated><title type='text'>SOA Workshop</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_honSoB4kSVs/StNy8P9bbGI/AAAAAAAAAIo/lHWMqFTeRgM/s1600-h/us-soa-workshop-banner%5B5%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="us-soa-workshop-banner" src="http://lh5.ggpht.com/_honSoB4kSVs/StNy9psbxHI/AAAAAAAAAIs/HD1ZCCzdGQo/us-soa-workshop-banner_thumb%5B3%5D.jpg?imgmax=800" width="563" height="644" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here is an opportunity to get hands on experience on implementing SOA. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can find more details here. &lt;a href="http://ww2.wso2.org/~nandika/soa-workshop.pdf"&gt;http://ww2.wso2.org/~nandika/soa-workshop.pdf&lt;/a&gt;. and of course visit &lt;a href="http://wso2.com"&gt;http://wso2.com&lt;/a&gt; to register.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7001251672818255549?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7001251672818255549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7001251672818255549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7001251672818255549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7001251672818255549'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/10/soa-workshop.html' title='SOA Workshop'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_honSoB4kSVs/StNy9psbxHI/AAAAAAAAAIs/HD1ZCCzdGQo/s72-c/us-soa-workshop-banner_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-318371409300317426</id><published>2009-09-01T10:25:00.001-07:00</published><updated>2009-09-01T10:25:55.946-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='https'/><category scheme='http://www.blogger.com/atom/ns#' term='certificate'/><title type='text'>Common Issue with Certificates created on Windows</title><content type='html'>&lt;p&gt;One of the common issues faced when dealing with certificates for doing SSL communication or WS-Security is that the certificates created on windows does not work on Linux. This is due to the addition of Windows Specific characters to the certificate. I have seen so many users struggle to get SSL/HTTPS working due to this problem. &lt;/p&gt;  &lt;p&gt;So easiest thing to do, if you want to run a client with HTTPS on Linux with a certificate created on windows, just do a dos2unix on the certificate.&amp;#160; :)&lt;/p&gt;  &lt;p&gt;This should help you save a lot of time. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-318371409300317426?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/318371409300317426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=318371409300317426' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/318371409300317426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/318371409300317426'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/09/common-issue-with-certificates-created.html' title='Common Issue with Certificates created on Windows'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5053311535078557416</id><published>2009-09-01T10:04:00.001-07:00</published><updated>2009-09-01T10:12:54.250-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP 5.3'/><title type='text'>Building WSF/PHP with PHP 5.3.0</title><content type='html'>&lt;p&gt;Since the release of PHP5.3.0 number of requests were there inquiring the compatibility of WSF/PHP with PHP 5.3.0.&amp;#160; I tried it out on windows and I only encountered minor issues. These issues are now fixed on the svn trunk. Here is how you can build WSF/PHP from the svn source to use with PHP 5.3.0.&lt;/p&gt;  &lt;p&gt;First download both PHP 5.3.0 source and binary distributions from php.net. You will also need to download the binary tools such as bison.exe which are required to build the PHP source. &lt;/p&gt;  &lt;p&gt;Next you need to run the buildconf.bat contained with the php source in order to build the windows specific headers. &lt;/p&gt;  &lt;p&gt;Now you are ready to build wsf/php for php 5.3.0. &lt;/p&gt;  &lt;p&gt;Get the svn source of wsf/php from&amp;#160; &lt;a title="https://wso2.org/repos/wso2/trunk/wsf/php" href="https://wso2.org/repos/wso2/trunk/wsf/php"&gt;https://wso2.org/repos/wso2/trunk/wsf/php&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;svn co &lt;a title="https://wso2.org/repos/wso2/trunk/wsf/php" href="http://wso2.org/repos/wso2/trunk/wsf/php"&gt;http://wso2.org/repos/wso2/trunk/wsf/php&lt;/a&gt; wsfphp&lt;/p&gt;  &lt;p&gt;Now cd to wsfphp directory and open the configure.in file and set php configurations as follows.&lt;/p&gt;  &lt;p&gt;PHP_SRC_DIR = E:\php\php-5.3.0    &lt;br /&gt;PHP_BIN_DIR = E:\php\php-5.3.0-Win32     &lt;br /&gt;BINDLIB_DIR = E:\php\bindlib-cvs-vc8&lt;/p&gt;  &lt;p&gt;Of course you need to set the other dependencies according to your machine configurations. &lt;/p&gt;  &lt;p&gt;Now run the build.bat file. This will build wsf/php binary for php 5.3.0&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5053311535078557416?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5053311535078557416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5053311535078557416' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5053311535078557416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5053311535078557416'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/09/building-wsfphp-with-php-530.html' title='Building WSF/PHP with PHP 5.3.0'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8151904942256539901</id><published>2009-08-22T10:35:00.000-07:00</published><updated>2009-08-22T10:41:49.930-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><title type='text'>Servey: Tools for PHP Web Services?</title><content type='html'>This is a servery to find out, what PHP progremmers need the most when it comes to dealing with Web services. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please feel free to comment on this blog post. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What is your wishlist when it comes to PHP Web servies? What tools are you looking for?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How about something similar to PHP MyAdmin for PHP Web services? Point to the service, and just use it?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What about hosting? Do you have trhoube consuming services from hosted PHP instances? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What about IDE integration? Would you like it to be intergated with, say, Eclipse? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Feel free to let us know. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8151904942256539901?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8151904942256539901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8151904942256539901' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8151904942256539901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8151904942256539901'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/08/servey-tools-for-php-web-services.html' title='Servey: Tools for PHP Web Services?'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5075955718025853800</id><published>2009-07-23T22:46:00.001-07:00</published><updated>2009-07-23T22:46:37.836-07:00</updated><title type='text'>WSO2 WSF/CPP 2.0.0 Released</title><content type='html'>&lt;p&gt;WSO2 WSF/CPP 1.0.0 was released sometime back with the intention of providing a C++ API for C++ developers while leveraging the capabilities of WSF/C Web Services Stack. It only had the Client API. With this new release,the product has been significantly enhanced with the addition of a Service API, Code Generation support for C++, and Many WS-Security features. WSF/C++ can be deployed on both Apache2, and IIS. Also it has the stand alone http server as well. You can download WSF/C++ from &lt;a href="http://wso2.org/downloads/wsf/cpp"&gt;http://wso2.org/downloads/wsf/cpp&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Here is the complete release note.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;WSO2 Web Services Framework for C++ (WSO2 WSF/C++) 2.0.0 Released&lt;/p&gt;  &lt;p&gt;=================================================================&lt;/p&gt;  &lt;p&gt;WSO2 WSF/C++ team is pleased to announce the release of WSO2 WSF/C++ 2.0.0.&lt;/p&gt;  &lt;p&gt;You can download this release from: &lt;a href="http://wso2.org/downloads/wsf/cpp"&gt;http://wso2.org/downloads/wsf/cpp&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;WSO2 Web Services Framework for C++ (WSO2 WSF/C++) is a standards compliant, enterprise&lt;/p&gt;  &lt;p&gt;grade, open source, C++ library for providing and consuming Web services in C++, based on the popular,&lt;/p&gt;  &lt;p&gt;WSO2 WSF/C library.&lt;/p&gt;  &lt;p&gt;Project home page:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wso2.org/projects/wsf/cpp"&gt;http://wso2.org/projects/wsf/cpp&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;-------------&lt;/p&gt;  &lt;p&gt;Key Features&lt;/p&gt;  &lt;p&gt;=============&lt;/p&gt;  &lt;p&gt;1. Client API to consume Web services&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * ServiceClient class with one-way and two-way service invocation support&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for SOAP 1.1, and SOAP 1.2.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Options class to facilitate configuring the client for both SOAP and REST options.&lt;/p&gt;  &lt;p&gt;2. Service API to provide Web Services&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * ServiceSkeleton class to extend from to implement services.&lt;/p&gt;  &lt;p&gt;2. Attachments with MTOM&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Binary optimized&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Non-optimized (Base64 binary)&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Attachment Caching Support&lt;/p&gt;  &lt;p&gt;3. WS-Addressing&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Version 1.0&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Submission&lt;/p&gt;  &lt;p&gt;4. WSPolicy &lt;/p&gt;  &lt;p&gt;5. WS-Security&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Username Token &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Timestamp Token &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *&amp;#160; Signing&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *&amp;#160; Encryption &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * WS-SecurityPolicy based configuration&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * Reply detection&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * WS-Trust&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * WS-Secure Conversation&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;6. Code generation Tool&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * By providing a wsdl and options, generate client stubs and service skeletons&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; in C++ using the code generation tool. &lt;/p&gt;  &lt;p&gt;7. SSL enabled transport layer&lt;/p&gt;  &lt;p&gt;8. WS-Reliable Messaging&lt;/p&gt;  &lt;p&gt;9. Has all the capabilities available from WSF/C library.&lt;/p&gt;  &lt;p&gt;--------------------------------&lt;/p&gt;  &lt;p&gt;Major Changes Since Last Release&lt;/p&gt;  &lt;p&gt;================================&lt;/p&gt;  &lt;p&gt;1. Service API which enable implementing services in C++.&lt;/p&gt;  &lt;p&gt;2. Code Generation tool for C++.&lt;/p&gt;  &lt;p&gt;3. Documentation Improved.&lt;/p&gt;  &lt;p&gt;4. WS-Security Additions including&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; * WS-Secure Conversation&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; * Replay Detection &lt;/p&gt;  &lt;p&gt;5. Many bug fixes.&lt;/p&gt;  &lt;p&gt;-------------------&lt;/p&gt;  &lt;p&gt;Known Issues&lt;/p&gt;  &lt;p&gt;-------------------&lt;/p&gt;  &lt;p&gt;Dual channel scenarios could cause crash issues.&lt;/p&gt;  &lt;p&gt;-------------------&lt;/p&gt;  &lt;p&gt;Reporting Problems&lt;/p&gt;  &lt;p&gt;===================&lt;/p&gt;  &lt;p&gt;Issues can be reported using the public JIRA available at:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://wso2.org/jira/browse/WSFCPP"&gt;https://wso2.org/jira/browse/WSFCPP&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;----------------------&lt;/p&gt;  &lt;p&gt;Contact Us&lt;/p&gt;  &lt;p&gt;===========&lt;/p&gt;  &lt;p&gt;Please subscribe to our user or developer mailing lists. For details on how&lt;/p&gt;  &lt;p&gt;to subscribe please visit: &lt;a href="http://wso2.org/mail"&gt;http://wso2.org/mail&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We welcome your early feedback on this implementation.&lt;/p&gt;  &lt;p&gt;Thank you for your interest in WSO2 WSF/C++.&lt;/p&gt;  &lt;p&gt;-- WSO2 WSF/C++ Team --&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5075955718025853800?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5075955718025853800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5075955718025853800' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5075955718025853800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5075955718025853800'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/07/wso2-wsfcpp-200-released.html' title='WSO2 WSF/CPP 2.0.0 Released'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7697312346746352978</id><published>2009-03-15T05:33:00.001-07:00</published><updated>2009-03-15T05:33:35.053-07:00</updated><title type='text'>Free Live Online Training</title><content type='html'>&lt;p&gt;WOS2 is offering a live online training session for WSF/PHP free of charge this week. This is a one time offer. So hurry up and register now if you are willing to participate.&lt;/p&gt;  &lt;p&gt;To register , visit w&lt;a href="http://www.wso2.com"&gt;ww.wso2.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7697312346746352978?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7697312346746352978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7697312346746352978' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7697312346746352978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7697312346746352978'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/03/free-live-online-training.html' title='Free Live Online Training'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3801447589379390757</id><published>2009-03-01T21:12:00.001-08:00</published><updated>2009-03-01T21:12:08.340-08:00</updated><title type='text'>Dealing with Log files</title><content type='html'>&lt;p&gt;WSF/PHP uses two log files to log down certain messages useful for tracing and debugging incase of an error. These logs are handled by the underlying WSF/C Framework. It supports a log rotation as well.&lt;/p&gt;  &lt;p&gt;Following are the log level supported by WSF/PHP.&lt;/p&gt;  &lt;p&gt;Log values are set to the wsf.log_level php.ini entry.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;0 -&amp;gt; CRITICAL&amp;#160; ( Only critical errors will be logged )      &lt;br /&gt;1 -&amp;gt; ERROR&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ( Errors will be logged)       &lt;br /&gt;2 -&amp;gt; WARNING&amp;#160; ( Errors and Warnings will be logged)       &lt;br /&gt;3 -&amp;gt; INFO&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ( Errors , Warnings and Information will be logged)       &lt;br /&gt;4 -&amp;gt; DEBUG&amp;#160;&amp;#160; ( All log messages including debug messages will be logged)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When you have enabled log higher log levels, a large number of log messages are done to the log file which result in the log file growing rapidly with the number of messages processed. This would not be a problem if you are running your system for testing. But if you are running it on production this could cause some problems, because we noticed that these is a issue in the log rotation scheme for WSF/PHP 2.0.0. Due to this issue, a number of users have complained that apache stopped working as well. &lt;font color="#ff0000"&gt;Therefore it is recommenced that you used the log level &lt;strong&gt;0&lt;/strong&gt; on production systems. &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3801447589379390757?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3801447589379390757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3801447589379390757' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3801447589379390757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3801447589379390757'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/03/dealing-with-log-files.html' title='Dealing with Log files'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4447742318464801207</id><published>2009-02-13T08:42:00.000-08:00</published><updated>2009-02-13T08:44:16.842-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='case study'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='mashup server'/><title type='text'>Case Study - PHP Data Services To Extract Content from Drupal Database</title><content type='html'>In this case study "&lt;a href="http://wso2.org/library/case-studies/case-study-php-data-services-extract-drupal-database"&gt; PHP Data Services Extract Content from Drupal Database&lt;/a&gt;", I intended to present how Data Service concepts can be applied to extract data with marketing value from  a CMS database and publish it as web services.  I used the drupal instance deployed at &lt;a href="http://wso2.org/"&gt;http://wso2.org&lt;/a&gt; as the CMS for the use case. And as the data service framework, I used &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt; data services library, as it requires minimum changes to the existing infrastructure (the LAMP stack).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4447742318464801207?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4447742318464801207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4447742318464801207' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4447742318464801207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4447742318464801207'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/02/case-study-php-data-services-to-extract.html' title='Case Study - PHP Data Services To Extract Content from Drupal Database'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5461687139139172249</id><published>2009-01-05T05:07:00.000-08:00</published><updated>2009-01-05T05:10:18.312-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WS-*'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='RESTful'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Databse'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><title type='text'>Article Introducing PHP Data Services</title><content type='html'>Now you can view the article "&lt;a href="http://wso2.org/library/articles/introduction-php-data-services" mce_href="http://wso2.org/library/articles/introduction-php-data-services"&gt;Introduction to PHP Data Services&lt;/a&gt;" from &lt;a href="http://wso2.org"&gt;Oxygen Tank&lt;/a&gt; library.&lt;br /&gt;&lt;p&gt;If you are thinking of adapting SOA in to your database backed PHP applications, this article will be a good starting point.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5461687139139172249?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5461687139139172249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5461687139139172249' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5461687139139172249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5461687139139172249'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2009/01/article-introducing-php-data-services.html' title='Article Introducing PHP Data Services'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1441411583874072387</id><published>2008-12-27T02:55:00.000-08:00</published><updated>2008-12-27T02:58:37.612-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='$_SERVER[&quot;REMOTE_ADDR&quot;]'/><category scheme='http://www.blogger.com/atom/ns#' term='$_SERVER[&quot;REMOTE_HOST&quot;]'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><title type='text'>PHP Web Services - Authentication Based on Client’s IP</title><content type='html'>This blog post &lt;a href="http://www.dimuthu.org/blog/2008/12/27/php-web-services-authentication-based-on-clients-ip/" title="Permanent Link to PHP Web Services - Authentication Based on Client’s IP"&gt;PHP Web Services - Authentication Based on Client’s IP&lt;/a&gt; explains with code samples how a PHP web service can be written to authenticate clients based on their IPs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1441411583874072387?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1441411583874072387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1441411583874072387' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1441411583874072387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1441411583874072387'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/12/php-web-services-authentication-based.html' title='PHP Web Services - Authentication Based on Client’s IP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2746445229622798423</id><published>2008-12-20T22:29:00.001-08:00</published><updated>2008-12-20T22:30:15.439-08:00</updated><title type='text'>REST Vs SOAP</title><content type='html'>&lt;p&gt;Both REST ( Representational states transfer) and SOAP is widely adopted techniques for building distributed systems. REST is an architectural style for implementing systems on top of HTTP infrastructure.&amp;#160; A large number of Specifications has been developed on top of SOAP and there are large number of SOAP stacks both open source and proprietary out there implementing large part of this WS* stack. &lt;/p&gt;  &lt;p&gt;Both these d techniques have their advantages and drawbacks. Here are few of the advantages and disadvantages of each paradigm.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;REST&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Advantages &lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Based on few simple principles which are already in wide adoption on the Web itself&lt;/p&gt;    &lt;p&gt;2. Can be implemented very quickly.&lt;/p&gt;    &lt;p&gt;3. Ideal for providing simple API's to the users. (Eq Whether Services, Flicker, Yahoo REST services )&lt;/p&gt;    &lt;p&gt;4. Amount of learning required to get started is minimum in comparison to SOAP&lt;/p&gt;    &lt;p&gt;5. Has a very large following amount the scripting community&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. If the system is a very large one, then designing based on REST could become a very complex task. &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Implementing Security on a REST system is one major issues. Although HTTPS, and HTTP Authentication can be used,&amp;#160; they only provide transport level security.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;SOAP&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Well designed mature technology&lt;/p&gt;    &lt;p&gt;2. Has been widely adopted in industry&lt;/p&gt;    &lt;p&gt;3. Large number of SOAP stacks available to choose from.&lt;/p&gt;    &lt;p&gt;4. Has support for Both Transport level and message level security which is a big advantage over REST.&lt;/p&gt;    &lt;p&gt;5. Supports multiple protocol bindings ( Not just HTTP)&lt;/p&gt;    &lt;p&gt;6. Ideal for implementing complex enterprise&amp;#160; systems since the SOAP Stacks cater for security, reliability, transactions ect.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Complex in comparison to REST&lt;/p&gt;    &lt;p&gt;2. Big learning curve required&lt;/p&gt;    &lt;p&gt;3. Difficult to debug a complex system&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;One great thing about using WSF/PHP is that it can support Both of these techniques simultaneously. However, if you are building a complex system which require&amp;#160; security, I would always recommend the use of SOAP.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2746445229622798423?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2746445229622798423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2746445229622798423' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2746445229622798423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2746445229622798423'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/12/rest-vs-soap.html' title='REST Vs SOAP'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8057191842943548195</id><published>2008-12-18T09:53:00.000-08:00</published><updated>2008-12-18T09:55:27.550-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='best practises'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='coupling'/><category scheme='http://www.blogger.com/atom/ns#' term='granularity'/><title type='text'>Data Services Best Practices</title><content type='html'>Is that data services are for converting database tables to web service operations?. Is that the right way to adapt SOA?.  This post titled '&lt;a href="http://www.dimuthu.org/blog/2008/12/18/data-services-best-practices/"&gt;Data Services Best Practices&lt;/a&gt;' explains how you should develop data services without violating  SOA principles&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8057191842943548195?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8057191842943548195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8057191842943548195' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8057191842943548195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8057191842943548195'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/12/data-services-best-practices.html' title='Data Services Best Practices'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7280567919473110043</id><published>2008-12-14T10:05:00.000-08:00</published><updated>2008-12-14T10:08:24.412-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MTOM'/><category scheme='http://www.blogger.com/atom/ns#' term='message level security'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='base64'/><category scheme='http://www.blogger.com/atom/ns#' term='Binary'/><title type='text'>Sending Encrypted Binary Messages With PHP Web Services</title><content type='html'>Web services has made the communication between heterogeneous environments (say PHP with .NET or Java) a reality. It has defines standards for communicate not only with texts but also with binaries. And more importantly you can keep these communication confidential using encrypted messages according to your requirement. In the post "&lt;a href="http://www.dimuthu.org/blog/2008/12/14/sending-encrypted-binary-messages-with-php-web-services/"&gt;Sending Encrypted Binary Messages With PHP Web Services&lt;/a&gt;" , we will look at how we can implement such a system with PHP in one side.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7280567919473110043?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7280567919473110043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7280567919473110043' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7280567919473110043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7280567919473110043'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/12/sending-encrypted-binary-messages-with.html' title='Sending Encrypted Binary Messages With PHP Web Services'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4685094107776210946</id><published>2008-12-07T05:06:00.000-08:00</published><updated>2008-12-07T05:11:52.540-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='pgsql'/><category scheme='http://www.blogger.com/atom/ns#' term='dataservices'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PHP Data Services with PostgreSQL</title><content type='html'>If you are using postgreSQL as your backend database and you are wondering how to write a web service exposing data on there, this post will be a good guide for you, &lt;a href="http://www.dimuthu.org/blog/2008/12/07/php-data-services-with-postgresql/"&gt;PHP Data Services with PostgreSQL&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4685094107776210946?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4685094107776210946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4685094107776210946' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4685094107776210946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4685094107776210946'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/12/php-data-services-with-postgresql.html' title='PHP Data Services with PostgreSQL'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2909931294945854560</id><published>2008-12-04T08:20:00.001-08:00</published><updated>2008-12-04T08:26:43.101-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='action'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='WSService'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><title type='text'>Using command line to debug your Web Service</title><content type='html'>&lt;p&gt;You can actually run your PHP Web Service on the command line. One may wonder what the use of doing that ?&lt;/p&gt;  &lt;p&gt;The main use case is that, you can test your service, without having to write a client. It is specially useful, if your are following the code first approach.&amp;#160; You can find the code for actually doing this in one of the WSF/PHP samples. It is in fact the simplest sample of all. The echo_service.php.&lt;/p&gt;  &lt;p&gt;Lets have a look at how this becomes possible.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;WSService-&amp;gt;reply()&lt;/strong&gt; function takes an optional string argument .&amp;#160; &lt;/p&gt;  &lt;p&gt;1. You can pass the actual XML string expected from the client to the reply function. Then, the service can be executed on the command line to see the actual executed output from an operation.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;However, this would work only in cases where you using SOAP Body dispatching or WS-Addressing.&lt;/p&gt;    &lt;p&gt;In SOAP Body dispatching case, the XML qualified name of the child element of soap body is used to identify the operation which should be invoked.&lt;/p&gt;    &lt;p&gt;In case of WS-Addressing, the addressing action header is used. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. Lets look at a code sample on implementing this.&amp;#160; This is the echo_service.php sample that comes with WSF/PHP&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;?php&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;$requestPayloadString&lt;/strong&gt; = &lt;font color="#ff0000"&gt;&amp;lt;&amp;lt;&amp;lt;XML        &lt;br /&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;/font&gt;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;&lt;font color="#ff0000"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font color="#ff0000"&gt;&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header/&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:echoString xmlns:ns1=&amp;quot;&lt;/font&gt;&lt;a href="http://wso2.org/wsfphp/samples" ?="?"&gt;&lt;font color="#ff0000"&gt;http://wso2.org/wsfphp/samples&amp;quot;&lt;/font&gt;&lt;/a&gt;&lt;font color="#ff0000"&gt;&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;text&amp;gt;Hello World!&amp;lt;/text&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns1:echoString&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/soapenv:Body&amp;gt;         &lt;br /&gt;&amp;lt;/soapenv:Envelope&amp;gt;         &lt;br /&gt;XML; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;function echoFunction($inMessage) { &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; $outMessage = new WSMessage($inMessage-&amp;gt;str); &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; return $outMessage;      &lt;br /&gt;} &lt;/p&gt;    &lt;p&gt;$operations = array(&amp;quot;echoString&amp;quot; =&amp;gt; &amp;quot;echoFunction&amp;quot;); &lt;/p&gt;    &lt;p&gt;$service = new WSService(array(&amp;quot;operations&amp;quot; =&amp;gt; $operations));      &lt;br /&gt;&lt;strong&gt;$service-&amp;gt;reply($requestPayloadString); &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;?&amp;gt;&lt;/p&gt;    &lt;p&gt;I have highlighted the important code segments. Note how the Expected soap envelope string is passed to the reply() function as an argument.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Now you can execute this service on the command line and get the result.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;php echo_service.php&lt;/p&gt;    &lt;p&gt;Now you should see the expected output soap envelope after invoking the echoString operation.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;4. You can also generate the WSDL for the service on the command line as well. Simply set the reply function argument string to &amp;quot;wsdl&amp;quot; or &amp;quot;wsdl2&amp;quot;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;$service-&amp;gt;reply(&amp;quot;wsdl&amp;quot;); &lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;5. &lt;/strong&gt;Now you can re execute the service and get the wsdl for the service on the command line.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;php echo_service.php&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is a very useful feature for debugging your hand coded services&amp;#160; :).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2909931294945854560?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2909931294945854560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2909931294945854560' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2909931294945854560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2909931294945854560'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/12/using-command-line-to-debug-your-web.html' title='Using command line to debug your Web Service'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8930929888588435882</id><published>2008-11-27T09:51:00.000-08:00</published><updated>2008-11-27T09:53:05.010-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='sql query'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Steps to Convert a SQL Query to a Data Service</title><content type='html'>With WSF/PHP Data Service library, you can convert a SQL query to a Data Service very easily in few steps. Here are the steps, described in "&lt;a href="http://www.dimuthu.org/blog/2008/11/27/steps-to-convert-sql-query-to-a-data-service/"&gt;Steps to Convert a SQL Query to a Data Service&lt;/a&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8930929888588435882?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8930929888588435882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8930929888588435882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8930929888588435882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8930929888588435882'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/steps-to-convert-sql-query-to-data.html' title='Steps to Convert a SQL Query to a Data Service'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3818513569349972462</id><published>2008-11-26T10:00:00.000-08:00</published><updated>2008-11-26T10:02:42.481-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dispatching'/><category scheme='http://www.blogger.com/atom/ns#' term='WS-Addressing'/><category scheme='http://www.blogger.com/atom/ns#' term='WSClient'/><category scheme='http://www.blogger.com/atom/ns#' term='WSService'/><category scheme='http://www.blogger.com/atom/ns#' term='WSA-Action'/><category scheme='http://www.blogger.com/atom/ns#' term='WSMessage'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>5 Facts About WS-Addressing Action in WSF/PHP</title><content type='html'>WS-Addressing Action is used by web services to dispatch the operation for an incoming request SOAP message. This blog "&lt;a href="http://www.dimuthu.org/blog/2008/11/26/5-facts-about-ws-addressing-action-in-wsfphp/"&gt;5 Facts About WS-Addressing Action&lt;/a&gt;" present you some facts about WSF/PHP API for WS-Addressing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3818513569349972462?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3818513569349972462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3818513569349972462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3818513569349972462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3818513569349972462'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/5-facts-about-ws-addressing-action-in.html' title='5 Facts About WS-Addressing Action in WSF/PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1885990449330726090</id><published>2008-11-25T07:32:00.000-08:00</published><updated>2008-11-25T07:38:25.587-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='action'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP 1.1'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP Action'/><title type='text'>The Use of SOAP Action with WSF/PHP</title><content type='html'>The SOAP action is mainly used for dispatching of web service operations. This post about "&lt;a href="http://www.dimuthu.org/blog/2008/11/25/the-use-of-soap-action-with-wsfphp/"&gt;The Use of SOAP Action with WSF/PHP&lt;/a&gt;" talks about how SOAP action is presented in a message and how it can be used to write web services and consumers with WSF/PHP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1885990449330726090?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1885990449330726090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1885990449330726090' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1885990449330726090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1885990449330726090'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/use-of-soap-action-with-wsfphp.html' title='The Use of SOAP Action with WSF/PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3098151776725584607</id><published>2008-11-23T05:38:00.000-08:00</published><updated>2008-11-23T05:40:10.285-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><title type='text'>Data Services - Databases For SOA</title><content type='html'>With the adoption of SOA, the more data services are built around existing databases allowing applications to access the data easily as either REST or SOAP with all the WS-* features.. This post about "&lt;a href="http://www.dimuthu.org/blog/2008/11/23/data-services-databases-for-soa/"&gt;Data Services - Databases For SOA&lt;/a&gt;" talks about the need of data services and tools to implement them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3098151776725584607?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3098151776725584607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3098151776725584607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3098151776725584607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3098151776725584607'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/data-services-databases-for-soa.html' title='Data Services - Databases For SOA'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7226368526218912584</id><published>2008-11-19T08:23:00.000-08:00</published><updated>2008-11-19T08:25:12.053-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message level security'/><category scheme='http://www.blogger.com/atom/ns#' term='policy'/><category scheme='http://www.blogger.com/atom/ns#' term='wsf-security policy'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>WS-SecurityPolicy With PHP</title><content type='html'>WS-SecurityPolicy specification defines standards for defining security policies for your web service. This post about "&lt;a href="http://www.dimuthu.org/blog/2008/11/19/ws-securitypolicy-with-php/"&gt;WS-SecurityPolicy With PHP&lt;/a&gt;" discusses the approaches you can take in order to associate security policies in to your PHP web service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7226368526218912584?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7226368526218912584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7226368526218912584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7226368526218912584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7226368526218912584'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/ws-securitypolicy-with-php.html' title='WS-SecurityPolicy With PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6209448263493955268</id><published>2008-11-18T08:34:00.000-08:00</published><updated>2008-11-18T08:36:35.183-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='message level security'/><category scheme='http://www.blogger.com/atom/ns#' term='XML Signature'/><category scheme='http://www.blogger.com/atom/ns#' term='signing'/><title type='text'>Signing SOAP Headers In PHP Web Services</title><content type='html'>Signing meta data of SOAP headers, can be as important as signing the SOAP body which contain the actual data in your business. This post "&lt;a href="http://www.dimuthu.org/blog/2008/11/18/signing-soap-headers-in-php-web-services/"&gt;Signing SOAP Headers In PHP Web Services&lt;/a&gt;" talk about how your PHP web service providers and consumers can sign SOAP headers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6209448263493955268?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6209448263493955268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6209448263493955268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6209448263493955268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6209448263493955268'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/signing-soap-headers-in-php-web.html' title='Signing SOAP Headers In PHP Web Services'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5290421764120357191</id><published>2008-11-17T09:54:00.000-08:00</published><updated>2008-11-17T09:57:29.754-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message level security'/><category scheme='http://www.blogger.com/atom/ns#' term='replay attack'/><category scheme='http://www.blogger.com/atom/ns#' term='WS-Security'/><title type='text'>Detect Replay Attacks In to Your PHP Web Service</title><content type='html'>Intruders can make nasty damages to your web services just by using Replay Attacks. So you have to design your services carefully to detect and avoid them. This post "&lt;a href="http://www.dimuthu.org/blog/2008/11/17/detect-replay-attacks-in-to-your-php-web-service/"&gt;Detect Replay Attacks In to Your PHP Web Service&lt;/a&gt;" discusses the possible solutions on detecting replay attacks with PHP web services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5290421764120357191?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5290421764120357191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5290421764120357191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5290421764120357191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5290421764120357191'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/detect-replay-attacks-in-to-your-php.html' title='Detect Replay Attacks In to Your PHP Web Service'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4813092878508660719</id><published>2008-11-16T22:31:00.001-08:00</published><updated>2008-11-16T22:37:18.194-08:00</updated><title type='text'>How to contribute to WSF/PHP project</title><content type='html'>&lt;p&gt;As an open source software development project, WSF/PHP always encourage users,developers to raise bugs, and post patches etc. Of course if you have any great idea related to WSF/PHP or some enhancement to WSF/PHP, you are most welcome to contribute.&lt;/p&gt;  &lt;p&gt;Lets see how you can contribute to WSF/PHP project in various ways. If you encounter a bug, you can first check on the svn to see whether it is already fixed as well.&lt;/p&gt;  &lt;p&gt;1. How do I provide a patch to WSF/PHP .&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step1.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;WSF/PHP uses svn as its version control system. You can checkout the source code of WSF/PHP from the following URL.&lt;/p&gt;  &lt;p&gt;&lt;a title="https://wso2.org/repos/wso2/trunk/wsf/php/" href="https://wso2.org/repos/wso2/trunk/wsf/php/"&gt;https://wso2.org/repos/wso2/trunk/wsf/php/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On windows you can use Tortoise SVN to checkout the source code as follows. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Create a folder to which you will checkout the source code. &lt;/p&gt;  &lt;p&gt;Step2. Check out the code&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_honSoB4kSVs/SSEPY1b0lYI/AAAAAAAAAE0/9aOvaKThb1E/s1600-h/img1%5B5%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="img1" src="http://lh6.ggpht.com/_honSoB4kSVs/SSEPZscmCII/AAAAAAAAAE4/2G2Bs8r39ZY/img1_thumb%5B1%5D.jpg?imgmax=800" width="234" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_honSoB4kSVs/SSEPX2U8W-I/AAAAAAAAAE8/ghD-XKvCOWQ/s1600-h/img2%5B18%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="320" alt="img2" src="http://lh6.ggpht.com/_honSoB4kSVs/SSEPbni6htI/AAAAAAAAAFA/0t2CqCtFY3k/img2_thumb%5B14%5D.jpg?imgmax=800" width="391" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now you can make any changes or additions, you would like to make.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 3. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Use create patch option in Tortoise svn to create a patch.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_honSoB4kSVs/SSEPcwwl5PI/AAAAAAAAAFE/3Lab5SFWaNU/s1600-h/image%5B16%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="452" alt="image" src="http://lh6.ggpht.com/_honSoB4kSVs/SSEPeNTk3sI/AAAAAAAAAFI/rn-4Kc5c2e0/image_thumb%5B12%5D.png?imgmax=800" width="357" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This should provide you with a patch file.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 4. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Go to WSO2 Jira project and select &lt;a href="https://wso2.org/jira/secure/Dashboard.jspa"&gt;WSF/PHP project&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_honSoB4kSVs/SSEPfl_br9I/AAAAAAAAAFM/DO3SJZdO1j4/s1600-h/jira1%5B18%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="495" alt="jira1" src="http://lh5.ggpht.com/_honSoB4kSVs/SSEPhZuKlTI/AAAAAAAAAFQ/IrYfd0ivFXo/jira1_thumb%5B16%5D.jpg?imgmax=800" width="762" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh4.ggpht.com/_honSoB4kSVs/SSEPi8BzKuI/AAAAAAAAAFU/ihqAzbeE4Xs/s1600-h/jira2%5B15%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="400" alt="jira2" src="http://lh3.ggpht.com/_honSoB4kSVs/SSEPkIFBTOI/AAAAAAAAAFY/a22agyPloDc/jira2_thumb%5B13%5D.jpg?imgmax=800" width="697" border="0" /&gt;&lt;/a&gt;&amp;#160; Select WSF/PHP project&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Go to create new issue options and select WSO2 WSF/PHP from projects drop down menu. Then select the issue type&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_honSoB4kSVs/SSEPlNn_F7I/AAAAAAAAAFc/1AP2eojQc9w/s1600-h/jira3%5B13%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="256" alt="jira3" src="http://lh6.ggpht.com/_honSoB4kSVs/SSEPmZ9zx-I/AAAAAAAAAFg/KWX2-BYrJos/jira3_thumb%5B11%5D.jpg?imgmax=800" width="704" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now in this issue form, you can fill out information about the issue.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_honSoB4kSVs/SSEPnWVyu1I/AAAAAAAAAFk/chYDueQwYwc/s1600-h/jira4%5B16%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="341" alt="jira4" src="http://lh5.ggpht.com/_honSoB4kSVs/SSEPoeQC6HI/AAAAAAAAAFo/1lSD-a8u8zI/jira4_thumb%5B14%5D.jpg?imgmax=800" width="469" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next fill out the issue description, your testing environment, and attach the patch.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_honSoB4kSVs/SSEPpf91JII/AAAAAAAAAFs/e6DagF-VoLk/s1600-h/jira5%5B17%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="345" alt="jira5" src="http://lh3.ggpht.com/_honSoB4kSVs/SSEPqzy2J4I/AAAAAAAAAFw/zux_o4gvi6Y/jira5_thumb%5B15%5D.jpg?imgmax=800" width="628" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now click create button to create the issue.&lt;/p&gt;  &lt;p&gt;This way you can contribute to WSF/PHP project which is used by a large number of PHP Developers worldwide. Looking forward to your contributions. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4813092878508660719?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4813092878508660719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4813092878508660719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4813092878508660719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4813092878508660719'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/how-to-contribute-to-wsfphp-project.html' title='How to contribute to WSF/PHP project'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_honSoB4kSVs/SSEPZscmCII/AAAAAAAAAE4/2G2Bs8r39ZY/s72-c/img1_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8459399013835532772</id><published>2008-11-16T09:28:00.000-08:00</published><updated>2008-11-16T09:35:17.540-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RESTful'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='URL Mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>RESTful URL Mapping in WSF/PHP</title><content type='html'>In a RESTful design, choose of URLs for web resources are really important. This post about &lt;a href="http://www.dimuthu.org/blog/2008/11/16/restful-url-mapping-in-wsfphp/"&gt;RESTful URL Mapping in WSF/PHP&lt;/a&gt;, talks about how you can choose URLs for your resources in a RESTFul manner and How it can be implemented in PHP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8459399013835532772?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8459399013835532772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8459399013835532772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8459399013835532772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8459399013835532772'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/restful-url-mapping-in-wsfphp.html' title='RESTful URL Mapping in WSF/PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7405099013720217985</id><published>2008-11-13T07:30:00.001-08:00</published><updated>2008-11-13T07:32:45.518-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xml schema'/><category scheme='http://www.blogger.com/atom/ns#' term='simple types'/><category scheme='http://www.blogger.com/atom/ns#' term='union'/><category scheme='http://www.blogger.com/atom/ns#' term='facets'/><category scheme='http://www.blogger.com/atom/ns#' term='list'/><title type='text'>XML Schema Simple Types &amp; How WSDL2PHP Convert Them To PHP</title><content type='html'>There are many categorizations of simple types in xml schema. The applications of each of these categories are different from one to other. And the representation of them in PHP are too different. This blog title "&lt;a href="http://www.dimuthu.org/blog/2008/11/13/xml-schema-simple-types-how-wsdl2php-convert-them-to-php/"&gt;XML Schema Simple Types &amp;amp; How WSDL2PHP Convert Them To PHP&lt;/a&gt;" explains all about these details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7405099013720217985?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7405099013720217985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7405099013720217985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7405099013720217985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7405099013720217985'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/xml-schema-simple-types-how-wsdl2php.html' title='XML Schema Simple Types &amp; How WSDL2PHP Convert Them To PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3614035058582945286</id><published>2008-11-11T11:32:00.000-08:00</published><updated>2008-11-11T11:34:02.880-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='test-suit'/><category scheme='http://www.blogger.com/atom/ns#' term='phpt'/><category scheme='http://www.blogger.com/atom/ns#' term='test-cases'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>WSF/PHP Test Cases Explained</title><content type='html'>WSF/PHP comes with a comprehensive set of test cases. It covers the most of the basic/concrete scenarios supported by WSF/PHP. This post titled "&lt;a href="http://www.dimuthu.org/blog/2008/11/11/wsfphp-test-cases-explained/"&gt;WSF/PHP Test Cases Explained&lt;/a&gt;" gives you an overview of this test-suite and the scenarios they are covering.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3614035058582945286?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3614035058582945286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3614035058582945286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3614035058582945286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3614035058582945286'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/wsfphp-test-cases-explained.html' title='WSF/PHP Test Cases Explained'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1576032566680317607</id><published>2008-11-10T10:00:00.001-08:00</published><updated>2008-11-10T10:01:31.032-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Client'/><category scheme='http://www.blogger.com/atom/ns#' term='wsf/php 2.0.0'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='RM'/><category scheme='http://www.blogger.com/atom/ns#' term='WSMessage'/><title type='text'>Introduction to reliable messaging part 3</title><content type='html'>&lt;p&gt;In this blog post, we will look at how you can send multiple application messages within a single sequence reliably using&lt;/p&gt;  &lt;p&gt;WSClient API.&amp;#160; For this purpose WSClient has an option named &lt;strong&gt;willContinueSequence&lt;/strong&gt;. If you intend to send only a since application message within your reliable sequence, then you do not need to touch this option. However, when sending multiple application messages, you need to use it as follows.&lt;/p&gt;  &lt;p&gt;1. When sending the first message, set &lt;strong&gt;willContinueSequence&lt;/strong&gt;=&lt;strong&gt;TRUE&lt;/strong&gt; in WSClient.&lt;/p&gt;  &lt;p&gt;2. Send your application messages by using WSMessage object. &lt;/p&gt;  &lt;p&gt;3. When you want to send the final application message to be sent within the reliable sequence, set the option &lt;strong&gt;lastMessage&lt;/strong&gt; to true. &lt;/p&gt;  &lt;p&gt;Here is a code example demonstrating this. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step&lt;/strong&gt; 1. First create an application message.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;$requestPayloadString = &amp;lt;&amp;lt;&amp;lt;XML     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:pingString xmlns:ns1=&amp;quot;&lt;a href="http://wso2.org/wsfphp/samples/reliable""&gt;http://wso2.org/wsfphp/samples/reliable&amp;quot;&lt;/a&gt;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;text&amp;gt;Hello World!&amp;lt;/text&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns1:pingString&amp;gt;      &lt;br /&gt;XML;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Step&lt;/strong&gt; 2. Create a &lt;strong&gt;WSClient&lt;/strong&gt; object with &lt;strong&gt;willContinueSequence&lt;/strong&gt; option set to &lt;strong&gt;TRUE&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;$client = new WSClient(array( &amp;quot;reliable&amp;quot; =&amp;gt; TRUE, &amp;quot;useWSA&amp;quot; =&amp;gt; TRUE, &amp;quot;willContinueSequence&amp;quot; =&amp;gt; TRUE));&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;. Create and Send WSMessage objects containing application messages. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;$message = new WSMessage($requestPayloadString,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; array( &amp;quot;to&amp;quot; =&amp;gt; &amp;quot;&lt;a href="http://localhost/samples/reliable/ping_service_rm.php""&gt;http://localhost/samples/reliable/ping_service_rm.php&amp;quot;&lt;/a&gt;,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;action&amp;quot; =&amp;gt; &lt;a href="http://wso2.org/wsfphp/samples/pingString"&gt;http://wso2.org/wsfphp/samples/pingString&lt;/a&gt;));&lt;/p&gt;    &lt;p&gt;$client-&amp;gt;send($message); &lt;/p&gt;    &lt;p&gt;$message1 = new WSMessage($requestPayloadString,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; array( &amp;quot;to&amp;quot; =&amp;gt; &amp;quot;&lt;a href="http://localhost/samples/reliable/ping_service_rm.php""&gt;http://localhost/samples/reliable/ping_service_rm.php&amp;quot;&lt;/a&gt;,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;action&amp;quot; =&amp;gt; &amp;quot;&lt;a href="http://wso2.org/wsfphp/samples/pingString"));"&gt;http://wso2.org/wsfphp/samples/pingString&amp;quot;));&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; $client-&amp;gt;send($message1);&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;. When you want to send the last application message, set the option lastMessage to true in WSMessage object.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;$message2 = new WSMessage($requestPayloadString,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; array( &amp;quot;to&amp;quot; =&amp;gt; &amp;quot;&lt;a href="http://localhost/samples/reliable/ping_service_rm.php""&gt;http://localhost/samples/reliable/ping_service_rm.php&amp;quot;&lt;/a&gt;,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;action&amp;quot; =&amp;gt; &amp;quot;&lt;a href="http://wso2.org/wsfphp/samples/pingString""&gt;http://wso2.org/wsfphp/samples/pingString&amp;quot;&lt;/a&gt;,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;lastMessage&amp;quot; =&amp;gt; TRUE)); &lt;/p&gt;    &lt;p&gt;$client-&amp;gt;send($message2);&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Note that this is a ping service and hence the use of the method send in WSClient. You can similarly use request method as well.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1576032566680317607?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1576032566680317607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1576032566680317607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1576032566680317607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1576032566680317607'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/introduction-to-reliable-messaging-part_10.html' title='Introduction to reliable messaging part 3'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6651648043627839130</id><published>2008-11-03T09:26:00.000-08:00</published><updated>2008-11-03T09:30:04.127-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSHeader'/><category scheme='http://www.blogger.com/atom/ns#' term='soap headers'/><category scheme='http://www.blogger.com/atom/ns#' term='custom headers'/><category scheme='http://www.blogger.com/atom/ns#' term='WSMessasge'/><title type='text'>Sending Custom SOAP Headers in PHP Web Services</title><content type='html'>There are 2 basic ways of building custom soap headers in your PHP Web Service Client, I.e. With and without WSDL. Check &lt;a href="http://www.dimuthu.org/blog/2008/11/03/sending-custom-soap-headers-in-php-web-services/"&gt;this blog post&lt;/a&gt; for more details on how to do follow each of these approach..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6651648043627839130?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6651648043627839130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6651648043627839130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6651648043627839130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6651648043627839130'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/sending-custom-soap-headers-in-php-web.html' title='Sending Custom SOAP Headers in PHP Web Services'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1120117727511384159</id><published>2008-11-03T08:51:00.001-08:00</published><updated>2008-11-03T08:51:33.322-08:00</updated><title type='text'>Introduction to reliable messaging part 2</title><content type='html'>&lt;p&gt;In my previous blog post, we had a look at a set of messages exchanged between a web services client and a server using WS-Reliable Messaging protocol.&amp;#160; Today, we will explore the API available in WSF/PHP to achieve reliable messaging.&lt;/p&gt;  &lt;p&gt;WS-Reliable messaging API in WSF/PHP is a simple an uncomplicated one. Lets go thorough each of the options available on WS-Client to achieve reliable messaging. &lt;/p&gt;  &lt;p&gt;To enable WS-Reliable Messaging you need to use the &amp;quot;reliable&amp;quot; option in WS-Client. However, for WS-RM to work, it is mandatory to have WS-Addressing enabled. There for you need to&amp;#160; enable WS-Addressing or at least define the &amp;quot;action&amp;quot; option in WS-Client. If the action is present, and &amp;quot;reliable&amp;quot; options is set to &amp;quot;true&amp;quot;, WSF/PHP will automatically enables WS-Addressing and enables Reliable Messaging. So following options are valid on WS-Client to enable reliable messaging.&lt;/p&gt;  &lt;p&gt;1.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;oparray[&amp;quot;action&amp;quot;] = &amp;quot;&lt;a href="http://wso2.org/wso2-wsf-php"&gt;http://wso2.org/wso2-wsf-php&lt;/a&gt;&amp;quot;;&lt;/p&gt;    &lt;p&gt;oparray[&amp;quot;reliable&amp;quot;]= TRUE;&lt;/p&gt;    &lt;p&gt;client = new WSClient(oparray);&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;oparray[&amp;quot;action&amp;quot;] =&amp;quot;http://wso2.org/wso2-wsf-php&amp;quot;&lt;/p&gt;    &lt;p&gt;oparray[&amp;quot;reliable&amp;quot;]=1.1&lt;/p&gt;    &lt;p&gt;In this option, we are telling WS-Client to use WS-RM version 1.1.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In my next blog post, we will explore other configuration options of WSClient and WS-Service&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1120117727511384159?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1120117727511384159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1120117727511384159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1120117727511384159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1120117727511384159'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/11/introduction-to-reliable-messaging-part.html' title='Introduction to reliable messaging part 2'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4084629393439399674</id><published>2008-10-30T07:34:00.000-07:00</published><updated>2008-10-30T07:35:53.001-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSFault'/><category scheme='http://www.blogger.com/atom/ns#' term='fault'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Sending And Handling Faults From PHP Web Service</title><content type='html'>Web Services use SOAP fault to send errors back to the SOAP client. This blog about &lt;a href="http://www.dimuthu.org/blog/2008/10/30/sending-and-handling-faults-from-php-web-service/"&gt;"Sending And Handling Faults From PHP Web Service"&lt;/a&gt; talks about how to send and handle soap faults in PHP language.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4084629393439399674?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4084629393439399674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4084629393439399674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4084629393439399674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4084629393439399674'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/sending-and-handling-faults-from-php.html' title='Sending And Handling Faults From PHP Web Service'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1669525443590059152</id><published>2008-10-29T10:38:00.000-07:00</published><updated>2008-10-29T10:39:59.618-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Client'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2 Oxygen Tank'/><category scheme='http://www.blogger.com/atom/ns#' term='WSClient'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='screencast'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='How to'/><title type='text'>ScreenCast - How to Consume a Web Service Using WSF/PHP</title><content type='html'>You can watch a &lt;a href="http://wso2.org/library/presentations/wso2-wsf-php-screencast-consume-service-using-wsf-php"&gt;Screencast on How to Consume a Web Service Using WSF/PHP&lt;/a&gt; from WSO2 Oxygent Tank (wso2.org) developer portal&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1669525443590059152?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1669525443590059152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1669525443590059152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1669525443590059152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1669525443590059152'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/screencast-how-to-consume-web-service.html' title='ScreenCast - How to Consume a Web Service Using WSF/PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-110685045372145643</id><published>2008-10-28T05:38:00.000-07:00</published><updated>2008-10-28T06:03:57.524-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cacheWSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='perfomance test'/><category scheme='http://www.blogger.com/atom/ns#' term='caching wsdl'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='response time'/><title type='text'>WSF/PHP Services Performance test with WSDL Caching</title><content type='html'>&lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP 2.0.0 &lt;/a&gt;introduced WSDL caching to optimize the response time of the PHP web services. This blog about "&lt;a href="http://www.dimuthu.org/blog/2008/10/28/wsfphp-services-performance-test-with-wsdl-caching/"&gt;WSF/PHP Services Performance test with WSDL Caching&lt;/a&gt;" discuss how to use this feature and shows the result of a performance test done with and without WSDL caching to demonstrate the performance improvements with the WSDL caching.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-110685045372145643?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/110685045372145643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=110685045372145643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/110685045372145643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/110685045372145643'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/wsfphp-services-performance-test-with.html' title='WSF/PHP Services Performance test with WSDL Caching'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3207730379837388597</id><published>2008-10-27T22:51:00.001-07:00</published><updated>2008-10-27T22:51:46.320-07:00</updated><title type='text'>Introduction to Reliable Messaging with WSF/PHP</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With WSF/PHP you can add reliability to your web services integrations . Due to the&amp;#160; nature of PHP, WSF/PHP supports only single channel reliable messaging. Single channel means you are using the same channel to transmit both the request and response. &lt;/p&gt;  &lt;p&gt;When reliable messaging is used, in addition to the actual message being transmitted , there will be handshake interactions between the client and the service to make sure that the sent message is actually delivered to the service. In addition the , reliable messaging middleware make sure that if the receiver endpoint down, it will keep polling till the message is delivered etc.&lt;/p&gt;  &lt;p&gt;Let see how you can implement a simple reliable messaging client using WSF/PHP.&lt;/p&gt;  &lt;p&gt;These are the requirements.&lt;/p&gt;  &lt;p&gt;1. You service endpoint should be able to handle single channel reliable messaging. &lt;/p&gt;  &lt;p&gt;2.Then you need to enable addressing.&lt;/p&gt;  &lt;p&gt;In RM, the communication happens using a sequence. The initial handshake is to build this sequence, and with a sequence , one or more application messages is transmitted. Once the messaging transmission is complete, the sequence is terminated. &lt;/p&gt;  &lt;p&gt;So the messages exchanged in a single channel scenario is as follows. I am using the actual xml messages exchanged in the echo_client_rm.php sample that comes with WSF/PHP release here. &lt;/p&gt;  &lt;p&gt;1. Client sending the CreateSequence Message to the service.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:To&amp;gt;&lt;a href="http://localhost/samples/reliable/echo_service_rm.php"&gt;http://localhost/samples/reliable/echo_service_rm.php&lt;/a&gt;&amp;lt;/wsa:To&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Action&amp;gt;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence&lt;/a&gt;&amp;lt;/wsa:Action&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:ReplyTo&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Address&amp;gt;&lt;a href="http://www.w3.org/2005/08/addressing/anonymous"&gt;http://www.w3.org/2005/08/addressing/anonymous&lt;/a&gt;&amp;lt;/wsa:Address&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsa:ReplyTo&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:MessageID&amp;gt;urn:uuid:6dbfe9a0-304f-415e-91d1-49d2993bcf56&amp;lt;/wsa:MessageID&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Header&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:CreateSequence xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:AcksTo xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Address xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;&lt;a href="http://www.w3.org/2005/08/addressing/anonymous"&gt;http://www.w3.org/2005/08/addressing/anonymous&lt;/a&gt;&amp;lt;/wsa:Address&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:AcksTo&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Offer xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Identifier&amp;gt;df2ceab0-b04f-428a-bb94-0cfdcb0a524b&amp;lt;/wsrm:Identifier&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:Offer&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:CreateSequence&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Body&amp;gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. Service responding with a CreateSequenceResponse message. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:To&amp;gt;&lt;a href="http://www.w3.org/2005/08/addressing/anonymous"&gt;http://www.w3.org/2005/08/addressing/anonymous&lt;/a&gt;&amp;lt;/wsa:To&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Action&amp;gt;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse&lt;/a&gt;&amp;lt;/wsa:Action&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:From&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Address&amp;gt;&lt;a href="http://localhost/samples/reliable/echo_service_rm.php"&gt;http://localhost/samples/reliable/echo_service_rm.php&lt;/a&gt;&amp;lt;/wsa:Address&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsa:From&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:MessageID&amp;gt;urn:uuid:48020317-4e90-4b79-97ae-2fa9b78c544b&amp;lt;/wsa:MessageID&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:RelatesTo wsa:RelationshipType=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing/reply" ?="?"&gt;http://www.w3.org/2005/08/addressing/reply&amp;quot;&lt;/a&gt; xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;urn:uuid:6dbfe9a0-304f-415e-91d1-49d2993bcf56&amp;lt;/wsa:RelatesTo&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Header&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:CreateSequenceResponse xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Identifier&amp;gt;8883a8b9-9f6a-4e40-b78a-872a2708a4b3&amp;lt;/wsrm:Identifier&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Accept xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:AcksTo xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Address xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;&lt;a href="http://localhost/samples/reliable/echo_service_rm.php"&gt;http://localhost/samples/reliable/echo_service_rm.php&lt;/a&gt;&amp;lt;/wsa:Address&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:AcksTo&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:Accept&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:CreateSequenceResponse&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Body&amp;gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Client sending the sequence Message&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Sequence soapenv:mustUnderstand=&amp;quot;1&amp;quot; xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt; xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Identifier&amp;gt;8883a8b9-9f6a-4e40-b78a-872a2708a4b3&amp;lt;/wsrm:Identifier&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:MessageNumber xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;1&amp;lt;/wsrm:MessageNumber&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:LastMessage xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;/&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:Sequence&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:To&amp;gt;&lt;a href="http://localhost/samples/reliable/echo_service_rm.php"&gt;http://localhost/samples/reliable/echo_service_rm.php&lt;/a&gt;&amp;lt;/wsa:To&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Action&amp;gt;&lt;a href="http://wso2.org/wsfphp/samples/echoString"&gt;http://wso2.org/wsfphp/samples/echoString&lt;/a&gt;&amp;lt;/wsa:Action&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:MessageID&amp;gt;urn:uuid:8e275ba1-b34b-49c1-92fa-ce86782ff803&amp;lt;/wsa:MessageID&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Header&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:echoString xmlns:ns1=&amp;quot;&lt;a href="http://wso2.org/wsfphp/samples" ?="?"&gt;http://wso2.org/wsfphp/samples&amp;quot;&lt;/a&gt;&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;text&amp;gt;Hello World!&amp;lt;/text&amp;gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns1:echoString&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Body&amp;gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;4. Service Responding with a SequenceAcknowledgement message. Since this is an echo service, in addition to sending the acknowledgement, the service also initiate a sequence here and send the application message back to the client.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Sequence soapenv:mustUnderstand=&amp;quot;1&amp;quot; xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt; xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Identifier&amp;gt;df2ceab0-b04f-428a-bb94-0cfdcb0a524b&amp;lt;/wsrm:Identifier&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:MessageNumber xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;1&amp;lt;/wsrm:MessageNumber&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:LastMessage xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;/&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:Sequence&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:SequenceAcknowledgement soapenv:mustUnderstand=&amp;quot;0&amp;quot; xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt; xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Identifier&amp;gt;8883a8b9-9f6a-4e40-b78a-872a2708a4b3&amp;lt;/wsrm:Identifier&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:AcknowledgementRange Lower=&amp;quot;1&amp;quot; Upper=&amp;quot;1&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:SequenceAcknowledgement&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Action&amp;gt;&lt;a href="http://wso2.org/wsfphp/samples/echoString"&gt;http://wso2.org/wsfphp/samples/echoString&lt;/a&gt;&amp;lt;/wsa:Action&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:ReplyTo&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Address&amp;gt;&lt;a href="http://localhost/samples/reliable/echo_service_rm.php"&gt;http://localhost/samples/reliable/echo_service_rm.php&lt;/a&gt;&amp;lt;/wsa:Address&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsa:ReplyTo&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:From&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Address&amp;gt;&lt;a href="http://localhost/samples/reliable/echo_service_rm.php"&gt;http://localhost/samples/reliable/echo_service_rm.php&lt;/a&gt;&amp;lt;/wsa:Address&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsa:From&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:MessageID&amp;gt;urn:uuid:307e881d-8ac7-4cb4-8acf-0eb04831707f&amp;lt;/wsa:MessageID&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:RelatesTo wsa:RelationshipType=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing/reply" ?="?"&gt;http://www.w3.org/2005/08/addressing/reply&amp;quot;&lt;/a&gt; xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;urn:uuid:8e275ba1-b34b-49c1-92fa-ce86782ff803&amp;lt;/wsa:RelatesTo&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Header&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:echoString xmlns:ns1=&amp;quot;&lt;a href="http://wso2.org/wsfphp/samples" ?="?"&gt;http://wso2.org/wsfphp/samples&amp;quot;&lt;/a&gt;&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;text&amp;gt;Hello World!&amp;lt;/text&amp;gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns1:echoString&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Body&amp;gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;5. Client send the SequenceAcknowledgement message to the service.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:SequenceAcknowledgement soapenv:mustUnderstand=&amp;quot;0&amp;quot; xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt; xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Identifier&amp;gt;df2ceab0-b04f-428a-bb94-0cfdcb0a524b&amp;lt;/wsrm:Identifier&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:AcknowledgementRange Lower=&amp;quot;1&amp;quot; Upper=&amp;quot;1&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:SequenceAcknowledgement&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:To&amp;gt;&lt;a href="http://localhost/samples/reliable/echo_service_rm.php"&gt;http://localhost/samples/reliable/echo_service_rm.php&lt;/a&gt;&amp;lt;/wsa:To&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Action&amp;gt;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm/SequenceAcknowledgement"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm/SequenceAcknowledgement&lt;/a&gt;&amp;lt;/wsa:Action&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:MessageID&amp;gt;urn:uuid:3b2b7a50-f962-4027-b240-5eea57142df1&amp;lt;/wsa:MessageID&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Header&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body/&amp;gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;6. Now the service sends back a TerminateSequence Message.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;http://www.w3.org/2003/05/soap-envelope&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header xmlns:wsa=&amp;quot;&lt;a href="http://www.w3.org/2005/08/addressing" ?="?"&gt;http://www.w3.org/2005/08/addressing&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:Action&amp;gt;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm/TerminateSequence"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm/TerminateSequence&lt;/a&gt;&amp;lt;/wsa:Action&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsa:MessageID&amp;gt;urn:uuid:6e8178c6-a566-4010-a77e-d05af67ad21a&amp;lt;/wsa:MessageID&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Header&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:TerminateSequence xmlns:wsrm=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/ws/2005/02/rm" ?="?"&gt;http://schemas.xmlsoap.org/ws/2005/02/rm&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;wsrm:Identifier&amp;gt;df2ceab0-b04f-428a-bb94-0cfdcb0a524b&amp;lt;/wsrm:Identifier&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/wsrm:TerminateSequence&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Body&amp;gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Similarly the client and service exchanges TermianteSequenceResponse messages as well.&lt;/p&gt;  &lt;p&gt;I am sure, now you have some understanding on what actually happens when you try to send a soap message reliably from&amp;#160; one endpoint to another. In my next blog post, we will discuss how to configure WSF/PHP to implement reliable clients and services. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3207730379837388597?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3207730379837388597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3207730379837388597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3207730379837388597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3207730379837388597'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/introduction-to-reliable-messaging-with.html' title='Introduction to Reliable Messaging with WSF/PHP'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3108372805450273616</id><published>2008-10-25T08:23:00.000-07:00</published><updated>2008-10-25T08:26:08.725-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xml schema'/><category scheme='http://www.blogger.com/atom/ns#' term='Array'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL mode'/><title type='text'>WSF/PHP WSDL Mode - Handling XML Schema Arrays</title><content type='html'>This post "&lt;a href="http://www.dimuthu.org/blog/2008/10/25/wsfphp-wsdl-mode-handling-xml-schema-arrays/"&gt;WSF/PHP WSDL Mode - Handling XML Schema Arrays&lt;/a&gt;" talks about how you deal with XML Schema arrays when you write web services in WSDL mode with &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3108372805450273616?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3108372805450273616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3108372805450273616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3108372805450273616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3108372805450273616'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/wsfphp-wsdl-mode-handling-xml-schema.html' title='WSF/PHP WSDL Mode - Handling XML Schema Arrays'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6918426369374107932</id><published>2008-10-23T23:04:00.001-07:00</published><updated>2008-10-23T23:04:08.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>How to learn the SOAP version by looking at a soap message</title><content type='html'>&lt;p&gt;I have seen number of questions on the forums on issues related to this. So here are some tips on getting to know spec versions by looking at a soap message with http headers.&lt;/p&gt;  &lt;p&gt;Here is an example SOAP1.1 one message. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;POST /samples/echo_service.php HTTP/1.1      &lt;br /&gt;User-Agent: Axis2C/1.5.0       &lt;br /&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;SOAPAction: &amp;quot;&amp;quot;&lt;/strong&gt;         &lt;br /&gt;&lt;/font&gt;Content-Length: 242       &lt;br /&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Content-Type: text/xml&lt;/font&gt;&lt;/strong&gt;;charset=UTF-8       &lt;br /&gt;Host: 127.0.0.1:8080 &lt;/p&gt;    &lt;p&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" ?="?"&gt;&lt;font color="#ff0000"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/font&gt;&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:echoString xmlns:ns1=&amp;quot;&lt;a href="http://wso2.org/wsfphp/samples" ?="?"&gt;http://wso2.org/wsfphp/samples&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;text&amp;gt;Hello World!&amp;lt;/text&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns1:echoString&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Body&amp;gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I have marked highlighted the important points. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;In SOAP1.1&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;1.&amp;#160; Content-Type will be&lt;strong&gt; &amp;quot;text/xml&amp;quot;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;2. SOAPAction is a separate HTTP Header&lt;/p&gt;  &lt;p&gt;3. SOAP envelope namespace uri is&amp;#160; &amp;quot;&lt;a href="http://schemas.xmlsoap.org/soap/envelope/" ?="?"&gt;&lt;font color="#ff0000"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/font&gt;&lt;/a&gt;&amp;quot;&lt;/p&gt;  &lt;p&gt;Here is a SOAP 1.2 message.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;POST /samples/echo_service.php HTTP/1.1      &lt;br /&gt;User-Agent: Axis2C/1.5.0       &lt;br /&gt;Content-Length: 240       &lt;br /&gt;&lt;font color="#ff0000"&gt;Content-Type: application/soap+xml;&lt;/font&gt;charset=UTF-8;&lt;strong&gt;&lt;font color="#ff0000"&gt;action=&amp;quot;urn:echoString&amp;quot;          &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;Host: 127.0.0.1:8080 &lt;/p&gt;    &lt;p&gt;&amp;lt;soapenv:Envelope xmlns:soapenv=&amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;&lt;font color="#ff0000"&gt;http://www.w3.org/2003/05/soap-envelope&lt;/font&gt;&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Header/&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;soapenv:Body&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:echoString xmlns:ns1=&amp;quot;&lt;a href="http://wso2.org/wsfphp/samples" ?="?"&gt;http://wso2.org/wsfphp/samples&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;text&amp;gt;Hello World!&amp;lt;/text&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns1:echoString&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/soapenv:Body&amp;gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;In SOAP 1.2&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1. Content-Type header is &lt;strong&gt;&amp;quot;application/soap+xml&amp;quot;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;2. SOAP envelope namespace uri is &amp;quot;&lt;a href="http://www.w3.org/2003/05/soap-envelope" ?="?"&gt;&lt;font color="#ff0000"&gt;http://www.w3.org/2003/05/soap-envelope&lt;/font&gt;&lt;/a&gt;&amp;quot;.&lt;/p&gt;  &lt;p&gt;3. soap action header will go in the Content-type header as 'action'&lt;/p&gt;  &lt;p&gt;Depending on you requirement, you can switch between between soap versions by passing the option &amp;quot;useSOAP&amp;quot;=&amp;gt;1.1 or &amp;quot;useSOAP&amp;quot;=&amp;gt;1.2.&lt;/p&gt;  &lt;p&gt;For a service in WSF/PHP, the soap version does not matter since the framework is capable of handling either type.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6918426369374107932?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6918426369374107932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6918426369374107932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6918426369374107932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6918426369374107932'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/how-to-learn-soap-version-by-looking-at.html' title='How to learn the SOAP version by looking at a soap message'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2239133142135139721</id><published>2008-10-23T07:10:00.000-07:00</published><updated>2008-10-23T07:12:12.376-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='schema'/><category scheme='http://www.blogger.com/atom/ns#' term='class names'/><category scheme='http://www.blogger.com/atom/ns#' term='operations'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='php2wsdl'/><category scheme='http://www.blogger.com/atom/ns#' term='clasmap'/><category scheme='http://www.blogger.com/atom/ns#' term='schema types'/><title type='text'>WSDL Generation From PHP - Using Different Names in WSDL and PHP Code</title><content type='html'>In Generating WSDL from PHP code, you may need to generate schema types with different names to the corresponding PHP classes. &lt;a href="http://www.dimuthu.org/blog/2008/10/23/wsdl-generation-from-php-using-different-names-in-wsdl-and-php-code/"&gt;This post&lt;/a&gt; describes how you can do that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2239133142135139721?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2239133142135139721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2239133142135139721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2239133142135139721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2239133142135139721'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/wsdl-generation-from-php-using.html' title='WSDL Generation From PHP - Using Different Names in WSDL and PHP Code'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-630743668729622654</id><published>2008-10-21T23:13:00.001-07:00</published><updated>2008-10-22T00:15:28.608-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WS-Security'/><title type='text'>How to Get WS-Security working without WS-Addressing in WSF/PHP</title><content type='html'>&lt;p&gt;Usually, most security scenarios use WS-Addressing. But there are scenarios that uses security without WS-Addressing. Due to configuration&amp;#160; file settings, WSF/PHP works with WS-Security only when WS-Addressing is also used. However, by doing some simple changes to a couple of Xml files, you can get WSF/PHP to support some security scenario's that does not use WS-Addressing.&lt;/p&gt;  &lt;p&gt;Here is what you need to do.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Step One.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Open the axis2.xml file found in was_c directory. In it,&amp;#160; change in &lt;strong&gt;inflow &lt;/strong&gt;by adding another phase named &lt;strong&gt;Security &lt;/strong&gt;as follows. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;phaseOrder type=&amp;quot;&lt;b&gt;inflow&lt;/b&gt;&amp;quot;&amp;gt; &lt;a&gt;-&lt;/a&gt; &amp;lt;!-- System pre defined phases&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;phase name=&amp;quot;&lt;b&gt;Transport&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;phase name=&amp;quot;&lt;b&gt;PreDispatch&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;phase name=&amp;quot;&lt;b&gt;Dispatch&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;phase name=&amp;quot;&lt;b&gt;PostDispatch&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p&gt; &amp;lt;!-- End system pre defined phases&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;gt;&lt;/p&gt;    &lt;p&gt; &amp;lt;!-- After PostDispatch phase, module or service author can add any phase as required&amp;#160; --&amp;gt;&lt;/p&gt;    &lt;p&gt; &amp;lt;!-- User defined phases could be added here --&amp;gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;lt;phase name=&amp;quot;Security&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;phase name=&amp;quot;&lt;b&gt;Rahas&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;phase name=&amp;quot;&lt;b&gt;RMPhase&lt;/b&gt;&amp;quot; /&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/phaseOrder&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I have highlighted the line added in red. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Step two&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Open the module.xml file found in wsf_c/modules/rampart/ directory and change the inflow elements phase name attribute from &amp;quot;PreDispatch&amp;quot; to &amp;quot;Security&amp;quot; as follows.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;inflow&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;handler name=&amp;quot;RampartInHandler&amp;quot; class=&amp;quot;mod_rampart&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;order phase=&amp;quot;&lt;strong&gt;&lt;font color="#ff0000"&gt;Security&lt;/font&gt;&lt;/strong&gt;&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/handler&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/inflow&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Again, I have highlighted the change.&lt;/p&gt;  &lt;p&gt;That's all you need to do to get WS-Security to work without using WS-Addressing. &lt;/p&gt;  &lt;p&gt;Note that,for this to work, you will have to have either SOAPAction or an element that matches the operation name in Soap Body. Of course there are some WS-Security scenarios that cannot work without WS-Addressing.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-630743668729622654?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/630743668729622654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=630743668729622654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/630743668729622654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/630743668729622654'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/how-to-get-ws-security-working-without.html' title='How to Get WS-Security working without WS-Addressing in WSF/PHP'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8693343548535045971</id><published>2008-10-21T09:26:00.001-07:00</published><updated>2008-10-21T21:52:44.265-07:00</updated><title type='text'>Tips on avoiding common WSF/PHP installation issues.</title><content type='html'>&lt;p&gt;Here are some useful tips avoid common fit falls in installing WSF/PHP.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Often users complain that When the run the sample clients, they see the response &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;quot;ERROR, WS Client not Found'.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This is often due not setting the wsf.home entry correctly. Make sure to set wsf.home directory to point to wsf_c&amp;#160; directory if your are on windows or using pecl installation with WSF/C library installed separately. &lt;/p&gt;  &lt;p&gt;Another reason for this is not adding the wsf_c/lib directory to PATH environment variable if you are on a windows system. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2.&amp;#160; WSDL Generation and WSDL mode does not work.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This is often due to you not having added the scripts folder found inside the wsfphp distribution to the php.ini's include path entry. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Compile WSF/PHP using source gives errors.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This could be due to two issues. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. First you need to have installed the dev-libraries of PHP, Libxml2 and OpenSSL.&lt;/p&gt;    &lt;p&gt;2. Incorrect configure options provided to the configure script. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Often you do not need to provide any options to the configure script since it is written to work as&lt;/p&gt;    &lt;p&gt;./configure, make , make install sequence. &lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8693343548535045971?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8693343548535045971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8693343548535045971' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8693343548535045971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8693343548535045971'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/tips-on-avoiding-common-wsfphp.html' title='Tips on avoiding common WSF/PHP installation issues.'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5444985192559192908</id><published>2008-10-21T07:00:00.001-07:00</published><updated>2008-10-21T07:00:49.217-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zend Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2 WSF/PHP'/><title type='text'>RESTful PHP Web Services - Book</title><content type='html'>&lt;p&gt;My &lt;a href="http://www.packtpub.com/restful-php-web-services/book"&gt;book on RESTful PHP Web Services&lt;/a&gt; is now available for download from Packt Publishing. &lt;/p&gt;  &lt;p&gt;What you will learn from this book&lt;/p&gt;  &lt;blockquote&gt;   &lt;ul&gt;     &lt;li&gt;Basic concepts of REST architecture &lt;/li&gt;      &lt;li&gt;Consuming public REST-style services from your PHP applications &lt;/li&gt;      &lt;li&gt;Consuming RESTful web services, such as those from leading APIs such as Flickr, and Yahoo Web Search &lt;/li&gt;      &lt;li&gt;Making your own PHP applications accessible to other applications through a RESTful API &lt;/li&gt;      &lt;li&gt;REST support in the popular Zend framework &lt;/li&gt;      &lt;li&gt;Debugging RESTful services and clients &lt;/li&gt;      &lt;li&gt;A case study of designing a RESTful PHP service from the ground up, and designing clients to consume the service &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;It is also note worthy that there is a dedicated appendix chapter in this book on using &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSO2 WSF/PHP&lt;/a&gt;. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5444985192559192908?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5444985192559192908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5444985192559192908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5444985192559192908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5444985192559192908'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/restful-php-web-services-book.html' title='RESTful PHP Web Services - Book'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6541327337452377532</id><published>2008-10-21T06:23:00.000-07:00</published><updated>2008-10-21T06:26:21.226-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simpleType'/><category scheme='http://www.blogger.com/atom/ns#' term='complexContent'/><category scheme='http://www.blogger.com/atom/ns#' term='Extension'/><category scheme='http://www.blogger.com/atom/ns#' term='wsdl2php'/><category scheme='http://www.blogger.com/atom/ns#' term='restrictinon'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='compexType'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='simpleContent'/><title type='text'>Coding Schema Inheritance in PHP</title><content type='html'>This post "&lt;a href="http://www.dimuthu.org/blog/2008/10/21/coding-schema-inheritance-in-php/"&gt;Coding Schema Inheritance in PHP&lt;/a&gt;" describes How inheritance is used in XML Schema and how it is mapped to PHP code from &lt;a href="http://labs.wso2.org/wsf/php/wsdl2phptool.php"&gt;wsdl2php tool&lt;/a&gt; in &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6541327337452377532?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6541327337452377532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6541327337452377532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6541327337452377532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6541327337452377532'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/coding-schema-inheritance-in-php.html' title='Coding Schema Inheritance in PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8451812401448017229</id><published>2008-10-20T18:51:00.001-07:00</published><updated>2008-10-20T19:00:18.839-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='installation'/><category scheme='http://www.blogger.com/atom/ns#' term='scratch'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>How to install WSF/PHP in Debian/Ubuntuu Systems from scratch</title><content type='html'>In the post &lt;a href="http://nethu.org/2008/01/22/wsfphp-from-the-scratch/"&gt;WSF/PHP from the scratch&lt;/a&gt; Dinesh explains how to install &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt; in a Debian or Ubuntu System from the scratch. He starts the post with a how to on installing and configuring Apache and PHP in a fresh debian machine and then install WSF/PHP on top of them. If you are finding help to install WSF/PHP on a debian machine, this post will be really useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8451812401448017229?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8451812401448017229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8451812401448017229' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8451812401448017229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8451812401448017229'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/how-to-install-wsfphp-in-debianubuntuu.html' title='How to install WSF/PHP in Debian/Ubuntuu Systems from scratch'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4325416458361958900</id><published>2008-10-20T12:14:00.001-07:00</published><updated>2008-10-20T12:15:55.631-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MTOM'/><category scheme='http://www.blogger.com/atom/ns#' term='Attachments'/><category scheme='http://www.blogger.com/atom/ns#' term='Caching'/><title type='text'>How to use Attachment Caching with WSF/PHP</title><content type='html'>&lt;p&gt;WSF/PHP 2.0.0 has the support for caching attachments ( writing to a file ). This effectively reduces the amount of memory used when sending and receiving attachments and its specially useful, if your application requires to send or receiving a very large file in the scale of megabytes.&lt;/p&gt;  &lt;p&gt;WSF/PHP adds two php.ini entries in order to allow attachment caching.&lt;/p&gt;  &lt;p&gt;1. wsf.attachment_cache_dir &lt;/p&gt;  &lt;p&gt;2.wsf.enable_attachment_caching&lt;/p&gt;  &lt;p&gt;wsf.attachment_cache dir is the location where the received attachments will be saved.&lt;/p&gt;  &lt;p&gt;wsf.enable_attachment_caching option enables attachment caching. &lt;/p&gt;  &lt;p&gt;By default, attachment caching can be done only for attachments larger than 1 MB.&lt;/p&gt;  &lt;p&gt;Lets see a code sample on how to use this. This is a simple php service, which reads a binary file and send it to the client as an&amp;#160; MTOM attachment.&lt;/p&gt;  &lt;p&gt;&amp;lt;?php&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;ini_set(&amp;quot;wsf.enable_attachment_caching&amp;quot;, 1);     &lt;br /&gt;ini_set(&amp;quot;wsf.attachment_cache_dir&amp;quot;,&amp;quot;E:\\&amp;quot;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;function sendAttachment($msg)   &lt;br /&gt;{    &lt;br /&gt;$responsePayloadString = &amp;lt;&amp;lt;&amp;lt;XML    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:download xmlns:ns1=&amp;quot;&lt;a href="http://php.axis2.org/samples/mtom""&gt;http://php.axis2.org/samples/mtom&amp;quot;&lt;/a&gt;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:fileName&amp;gt;test.jpg&amp;lt;/ns1:fileName&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ns1:image xmlmime:contentType=&amp;quot;image/jpeg&amp;quot; xmlns:xmlmime=&amp;quot;&lt;a href="http://www.w3.org/2004/06/xmlmime""&gt;http://www.w3.org/2004/06/xmlmime&amp;quot;&lt;/a&gt;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;xop:Include xmlns:xop=&amp;quot;&lt;a href="http://www.w3.org/2004/08/xop/include""&gt;http://www.w3.org/2004/08/xop/include&amp;quot;&lt;/a&gt; &lt;font color="#800000"&gt;href=&amp;quot;cid:myid1&amp;quot;&lt;/font&gt;&amp;gt;&amp;lt;/xop:Include&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns1:image&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ns1:download&amp;gt;    &lt;br /&gt;XML;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; $responseMessage = new WSMessage($responsePayloadString,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; array( &amp;quot;attachments&amp;quot; =&amp;gt; array(&lt;strong&gt;&lt;font color="#800000"&gt;&amp;quot;myid1&amp;quot; =&amp;gt; &amp;quot;../resources/large_image.jpg&amp;quot;&lt;/font&gt;&lt;/strong&gt;)));&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return $responseMessage;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;$operations = array(&amp;quot;download&amp;quot; =&amp;gt; &amp;quot;sendAttachment&amp;quot;); &lt;/p&gt;  &lt;p&gt;$service = new WSService(array(&amp;quot;operations&amp;quot; =&amp;gt; $operations, &lt;font color="#800000"&gt;&amp;quot;useMTOM&amp;quot; =&amp;gt; TRUE&lt;/font&gt;)); &lt;/p&gt;  &lt;p&gt;$service-&amp;gt;reply();&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;?&amp;gt; &lt;/p&gt;  &lt;p&gt;Now in above code, I have highlighted the important code pieces.&lt;/p&gt;  &lt;p&gt;1. The php ini settings at the top of the code where the attachment_cache_dir is set and attachment caching is enabled.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#800000"&gt;ini_set(&amp;quot;wsf.enable_attachment_caching&amp;quot;, 1);       &lt;br /&gt;ini_set(&amp;quot;wsf.attachment_cache_dir&amp;quot;,&amp;quot;E:\\&amp;quot;); &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. Setting of a fake content id to which the actual attachment is assigned. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#800000"&gt;href=&amp;quot;cid:myid1&amp;quot;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Instead of setting binary attachment as an string in the attachment array, we should set the actual path to the file.&lt;/p&gt;  &lt;p&gt;array(&lt;strong&gt;&lt;font color="#800000"&gt;&amp;quot;myid1&amp;quot; =&amp;gt; &amp;quot;../resources/large_image.jpg&amp;quot;&lt;/font&gt;&lt;/strong&gt;)&lt;/p&gt;  &lt;p&gt;Thats all you need to do to get attachment caching working. The same technique can be used for the client as well. It will be consuming lot less amount of memory.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4325416458361958900?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4325416458361958900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4325416458361958900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4325416458361958900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4325416458361958900'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/how-to-use-attachment-caching-with.html' title='How to use Attachment Caching with WSF/PHP'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3556710954169755677</id><published>2008-10-19T03:42:00.000-07:00</published><updated>2008-10-19T03:45:24.814-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Public Web Servies'/><category scheme='http://www.blogger.com/atom/ns#' term='Flickr'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='mashup'/><title type='text'>Demo on Consuming Flickr, Yahoo and Amazon Search Web Services</title><content type='html'>&lt;a href="http://labs.wso2.org/wsf/php/resource_view.php?url=SearchMashup"&gt;The Mashup Search Demo&lt;/a&gt;, demonstrates the use of  publicly available web services (flickr, yahoo, amazon) to create a search mashup in your web site. &lt;a href="http://www.dimuthu.org/blog/2008/10/19/demo-on-consuming-flickr-yahoo-and-amazon-search-web-services/"&gt;This blog&lt;/a&gt; is a guide to follow the implementation of this demo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3556710954169755677?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3556710954169755677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3556710954169755677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3556710954169755677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3556710954169755677'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/demo-on-consuming-flickr-yahoo-and.html' title='Demo on Consuming Flickr, Yahoo and Amazon Search Web Services'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3848844314140569986</id><published>2008-10-17T09:58:00.000-07:00</published><updated>2008-10-17T09:59:41.797-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='WSClient'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><title type='text'>DEMO on a SOAP and REST Client with PHP</title><content type='html'>Amazon ECommerce service is available in both SOAP and REST forms. &lt;a href="http://www.dimuthu.org/blog/2008/10/17/demo-on-a-soap-and-rest-client-with-php/"&gt;This guide&lt;/a&gt; shows you how to consume the service using either form with the help of a demo application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3848844314140569986?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3848844314140569986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3848844314140569986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3848844314140569986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3848844314140569986'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/demo-on-soap-and-rest-client-with-php.html' title='DEMO on a SOAP and REST Client with PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8345890947315976041</id><published>2008-10-17T00:08:00.001-07:00</published><updated>2008-10-17T00:08:02.846-07:00</updated><title type='text'>Using Open SSL to manage Your Keys</title><content type='html'>&lt;p&gt;When it comes to WS-Security, for most of the operations, you will need to have either a certificate, or a key or both. Or you will need to provide a key store. WSF/PHP uses Open SSL library underneath to build WS-Security. Therefore knowing how to work with Open SSL can be really useful.&lt;/p&gt;  &lt;p&gt;Lets go through some of the important commands you need to know to effectively get work done using Open SSL.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Generating a Certificate using Open SSL.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When generating a certificate, you have to decide whether you want an encrypted key or not. If you select the encrypted key option, your key will be protected by a passphrase.&amp;#160; This adds more security to your key since it will be difficult for some one stealing your key to use it. How ever you will need to provide this passphrase, every time you use the key. A self signed certificate is used to sign other certificates. &lt;/p&gt;  &lt;p&gt;Use the command &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;These options tells openssl to generate key length 1024&amp;#160; bits which is valid for 365 days and put both private key and certificate to a file named mycert.pem.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/jayawark/SPg5zR4GyWI/AAAAAAAAADg/vNDxgvSeQEs/s1600-h/image%5B19%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="233" alt="image" src="http://lh5.ggpht.com/jayawark/SPg50W8D4WI/AAAAAAAAADk/TGlVW9Quh6M/image_thumb%5B13%5D.png?imgmax=800" width="688" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now you will be prompt to answer a number of questions and then OpenSSL will generate you a self signed certificate.&amp;#160; Now if you open the mycert.pem you will see both the private key and the certificate stored there. If you remove the &lt;strong&gt;-nodes &lt;/strong&gt;option, you will be asked to provide a passphrase. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Generating a private key and a matching public key using RSA algorithm.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;It is sometimes necessary to generate the private key and public keys separately.&lt;/p&gt;  &lt;p&gt;You can generate an RSA public key using the option &lt;strong&gt;genrsa&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;openssl genrsa -out mykey.pem 2048&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This generates a rsa private key with 2048 bits.&lt;/p&gt;  &lt;p&gt;Using rsa option, you can get the corresponding public key.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;openssl rsa -in mykey.pem -pubout&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Creating a PKCS12 Keystore and adding keys to it.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;openssl pkcs12 -export&amp;#160; -out mycert.pfx -in mycert.pem&amp;#160; -name &amp;quot;My Keystore&amp;quot;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This command generates a PKCS12&amp;#160; key store by exporting the above generated certificate. Here you will be asked for a passphrase as well.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8345890947315976041?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8345890947315976041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8345890947315976041' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8345890947315976041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8345890947315976041'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/using-open-ssl-to-manage-your-keys.html' title='Using Open SSL to manage Your Keys'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/jayawark/SPg50W8D4WI/AAAAAAAAADk/TGlVW9Quh6M/s72-c/image_thumb%5B13%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-9024726911954561908</id><published>2008-10-16T23:02:00.001-07:00</published><updated>2008-10-16T23:04:06.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML Signature'/><category scheme='http://www.blogger.com/atom/ns#' term='WS-Security'/><title type='text'>XML Signature</title><content type='html'>&lt;p&gt;XML signature is used in WS-Security to sign SOAP messages. Here is a blog post describing &lt;a href="http://supunkamburugamuva.blogspot.com/2008/10/xml-signature-explained.html"&gt;XML Signature&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-9024726911954561908?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/9024726911954561908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=9024726911954561908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/9024726911954561908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/9024726911954561908'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/xml-signature.html' title='XML Signature'/><author><name>Supun Kamburugamuva</name><uri>http://www.blogger.com/profile/14361364937700874215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_UVlnyapwF90/TJt8MW5cmpI/AAAAAAAAAKI/pmlsTS6co8o/S220/45695_439733319920_594774920_4769125_1165489_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1236412169791867258</id><published>2008-10-16T19:22:00.000-07:00</published><updated>2008-10-16T19:26:40.577-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WAMP'/><category scheme='http://www.blogger.com/atom/ns#' term='WampServer'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Installing WSF / PHP with Wampserver Article in French</title><content type='html'>You can find a really nice article on installing &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt; with WAMP in French Language from &lt;a href="http://blog.developpez.com/index.php?blog=167&amp;amp;title=wsf_php_installation_avec_wamp#more6564"&gt;here&lt;/a&gt;. If you want the English translation using Google translater access from &lt;a href="http://translate.google.com/translate?u=http%3A%2F%2Fblog.developpez.com%2Findex.php%3Fblog%3D167%26title%3Dwsf_php_installation_avec_wamp%23more6564&amp;amp;hl=en&amp;amp;ie=UTF-8&amp;amp;sl=fr&amp;amp;tl=en"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1236412169791867258?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1236412169791867258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1236412169791867258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1236412169791867258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1236412169791867258'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/installing-wsf-php-with-wampserver.html' title='Installing WSF / PHP with Wampserver Article in French'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2024329164448021327</id><published>2008-10-16T10:55:00.000-07:00</published><updated>2008-10-16T11:01:59.555-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='policy'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='usernameToken'/><title type='text'>Demo on Providing PHP Web Service with Username Token</title><content type='html'>I wrote &lt;a href="http://www.dimuthu.org/blog/2008/10/16/demo-on-providing-php-web-service-with-username-token/"&gt;a blog&lt;/a&gt; on &lt;a href="http://labs.wso2.org/wsf/php/resource_view.php?url=Calendar"&gt;Calender DEMO&lt;/a&gt; which shows a real world use of the user name token in web service authentication. It describes how you declare different policies per operation in a WSDL and provide authentication information from a callback function.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2024329164448021327?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2024329164448021327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2024329164448021327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2024329164448021327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2024329164448021327'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/demo-on-providing-php-web-service-with.html' title='Demo on Providing PHP Web Service with Username Token'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5072049420002952716</id><published>2008-10-16T09:39:00.000-07:00</published><updated>2008-10-16T09:44:47.937-07:00</updated><title type='text'>Fetching song lyrics</title><content type='html'>&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://lyricwiki.org/"&gt;LyricWiki&lt;/a&gt; is an excellent free service providing song lyrics. A la wikipedia for song lyrics. &lt;a href="http://engwar.com/post/58"&gt;Find out how easy it is to access this service using WSF/PHP&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5072049420002952716?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5072049420002952716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5072049420002952716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5072049420002952716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5072049420002952716'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/fetching-song-lyrics.html' title='Fetching song lyrics'/><author><name>Chintana Wilamuna</name><uri>http://www.blogger.com/profile/17966797312909886083</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_FD3eW_xRtJo/S2hCdxi3XsI/AAAAAAAAAMc/6aI3BIKDNt0/S220/site-profile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6282667020578260607</id><published>2008-10-15T23:03:00.001-07:00</published><updated>2008-10-16T22:19:55.403-07:00</updated><title type='text'>How to build PHP from source</title><content type='html'>&lt;p&gt;It is an interesting thing to build PHP source on a Windows Platform. It is extremely useful to build PHP source with various options specially if you wish to write a PHP extension. Here are some interesting tips on how you can build PHP source on a windows platform. &lt;/p&gt;  &lt;p&gt;First you need to download the following dependencies. &lt;/p&gt;  &lt;p&gt;1. You need to have visual studio or windows platform SDK install on you machine in order to have the required compiler and build tools.&lt;/p&gt;  &lt;p&gt;2. You need to download the PHP build dependencies. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;These include &lt;/p&gt;    &lt;p&gt;1. &lt;a href="http://pecl2.php.net/downloads/php-windows-builds/php-libs/binary-tools.zip"&gt;Binary tools&lt;/a&gt; - Essential&lt;/p&gt;    &lt;p&gt;2. Libxml2&amp;#160;&amp;#160; - Optional&lt;/p&gt;    &lt;p&gt;3. Iconv Optional &lt;/p&gt;    &lt;p&gt;4. Zlib&amp;#160;&amp;#160; - Optional &lt;/p&gt;    &lt;p&gt;5. Apache or other web server that you intend to build modules.&lt;/p&gt;    &lt;p&gt;6. &lt;a href="http://www.php.net/downloads.php"&gt;PHP Source&lt;/a&gt;&amp;#160; - Essential &lt;/p&gt;    &lt;p&gt;7. &lt;a href="http://pecl2.php.net/downloads/php-windows-builds/php-libs/VC8/x86/bindlib-cvs-vc8.zip"&gt;bindlib-cvs-vc8&lt;/a&gt;&amp;#160; - Essential &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Most of these tools can be downloaded from &lt;a href="http://pecl2.php.net/downloads/php-windows-builds/php-libs/"&gt;here.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you have downloaded these tools, you are ready to build PHP from source. &lt;/p&gt;  &lt;p&gt;First unzip all these tools to a directory.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/jayawark/SPbZKgd6VfI/AAAAAAAAACw/K_wQ127vSHo/s1600-h/img1%5B3%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="278" alt="img1" src="http://lh5.ggpht.com/jayawark/SPbZL3DHBQI/AAAAAAAAADE/9UNyTKE8cHo/img1_thumb%5B1%5D.jpg?imgmax=800" width="331" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next, open visual studio command prompt and add binary-tools\bin directory to the path.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/jayawark/SPbZMiEPJQI/AAAAAAAAADI/ynmHxuE67_4/s1600-h/img2%5B3%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="109" alt="img2" src="http://lh4.ggpht.com/jayawark/SPbZNUtgWZI/AAAAAAAAADM/4TErQ-Fvi6g/img2_thumb%5B1%5D.jpg?imgmax=800" width="418" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now, go to the PHP source extract directory and type,&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;buildconf.bat&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Then run &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;cscript /nologo configure.js --help&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/jayawark/SPbZPHSHc3I/AAAAAAAAADQ/k98580mPv9E/s1600-h/img3%5B4%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="478" alt="img3" src="http://lh5.ggpht.com/jayawark/SPbZQecxpMI/AAAAAAAAADU/SgdqUrx5iZ0/img3_thumb%5B2%5D.jpg?imgmax=800" width="483" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You will see a large number of options as shown above. &lt;/p&gt;  &lt;p&gt;Next open the config.nice.bat file located in the php source directory and add necessary configure options for your build&lt;/p&gt;  &lt;p&gt;Here are my configuration options&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;cscript&lt;/strong&gt; /nologo configure.js&amp;#160; &amp;quot;&lt;strong&gt;--with-extra-includes&lt;/strong&gt;=E:\phpbuild\bindlib-cvs-vc8\include;E:\Apache22\include;E:\phpbuild\iconv-1.9.2.win32\include;E:\phpbuild\libxml2-2.6.30.win32\include;E:\phpbuild\zlib-1.2.3.win32\include&amp;quot; &lt;/p&gt;  &lt;p&gt;&amp;quot;&lt;strong&gt;--with-extra-libs&lt;/strong&gt;=E:\phpbuild\iconv-1.9.2.win32\lib;E:\phpbuild\libxml2-2.6.30.win32\lib;E:\phpbuild\zlib-1.2.3.win32\lib;E:\Apache22\lib;E:\phpbuild\bindlib-cvs-vc8\lib&amp;quot; &lt;/p&gt;  &lt;p&gt;&amp;quot;&lt;strong&gt;--enable-debug&lt;/strong&gt;&amp;quot;&amp;#160; &amp;quot;&lt;strong&gt;--enable-apache2-2handler&lt;/strong&gt;&amp;quot; %*&lt;/p&gt;  &lt;p&gt;Here I am using the option &lt;strong&gt;--with-extra-includes&lt;/strong&gt; to specify the include paths of the dependency libraries.&amp;#160; Similarly &lt;strong&gt;--with-extra-libs&lt;/strong&gt; is used to specify the library path. &lt;/p&gt;  &lt;p&gt;I use the options --enable-debug to make it a debug build.&lt;/p&gt;  &lt;p&gt;Now run config.nice.bat file.&lt;/p&gt;  &lt;p&gt;Next you can try nmake on the command line&amp;#160; and it will build the PHP Source.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6282667020578260607?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6282667020578260607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6282667020578260607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6282667020578260607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6282667020578260607'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/how-to-build-php-from-source.html' title='How to build PHP from source'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/jayawark/SPbZL3DHBQI/AAAAAAAAADE/9UNyTKE8cHo/s72-c/img1_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5837355708062124982</id><published>2008-10-15T22:23:00.001-07:00</published><updated>2008-10-15T22:23:26.693-07:00</updated><title type='text'>Bridging the Gap Between Enterprise and Web Applications</title><content type='html'>&lt;p&gt;WSF/PHP allows web applications to integrate with enterprise applications using the Web Services. Here is a blog post talks about &lt;a href="http://supunkamburugamuva.blogspot.com/2008/09/bridging-web-applications-and.html"&gt;Bridging the Gap Between Enterprise and Web Applications&lt;/a&gt; using WSF/PHP.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5837355708062124982?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5837355708062124982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5837355708062124982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5837355708062124982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5837355708062124982'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/bridging-gap-between-enterprise-and-web.html' title='Bridging the Gap Between Enterprise and Web Applications'/><author><name>Supun Kamburugamuva</name><uri>http://www.blogger.com/profile/14361364937700874215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_UVlnyapwF90/TJt8MW5cmpI/AAAAAAAAAKI/pmlsTS6co8o/S220/45695_439733319920_594774920_4769125_1165489_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6800278545486717405</id><published>2008-10-10T08:03:00.000-07:00</published><updated>2008-10-10T08:05:53.537-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='RESTful'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Writing a Simple REST and SOAP Service With PHP</title><content type='html'>WSF/PHP enables you to write a web service in a single script and expose it as both SOAP and REST services. Here is a simple &lt;a href="http://www.dzone.com/links/r/writing_a_simple_rest_and_soap_service_with_php.html"&gt;HowTo on creating a Web Service which handle both REST and SOAP requests&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6800278545486717405?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6800278545486717405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6800278545486717405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6800278545486717405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6800278545486717405'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/writing-simple-rest-and-soap-service.html' title='Writing a Simple REST and SOAP Service With PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5072473300096316222</id><published>2008-10-08T07:57:00.000-07:00</published><updated>2008-10-08T07:59:48.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='array based API'/><category scheme='http://www.blogger.com/atom/ns#' term='class based API'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL mode'/><category scheme='http://www.blogger.com/atom/ns#' term='wsdl2php'/><title type='text'>WSClient WSDL Mode With Array Based API</title><content type='html'>In WSDL mode you have two APIs. One is Class based API which is more common and the other is Array Based API. Sometime it is easy to use Array Based API over the class based API. I'm explaining this with an example in &lt;a href="http://www.dimuthu.org/blog/2008/10/08/wsclient-wsdl-mode-with-array-based-api/"&gt;this blog entry&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5072473300096316222?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5072473300096316222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5072473300096316222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5072473300096316222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5072473300096316222'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/wsclient-wsdl-mode-with-array-based-api.html' title='WSClient WSDL Mode With Array Based API'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6061574905431873005</id><published>2008-10-07T10:50:00.000-07:00</published><updated>2008-10-13T21:43:58.896-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSClient'/><category scheme='http://www.blogger.com/atom/ns#' term='CACert'/><category scheme='http://www.blogger.com/atom/ns#' term='https'/><title type='text'>Test your SSL SOAP Client with an Online Service</title><content type='html'>Do you know &lt;a href="http://labs.wso2.org/wsf/php"&gt;WSF/PHP Demo Site&lt;/a&gt; services are deployed as HTTPS Services as well. You can use these services to test WSClient. &lt;a href="http://www.dimuthu.org/blog/2008/10/07/test-your-ssl-soap-client-with-an-online-service/"&gt;This post&lt;/a&gt; give you a little overview of this and a sample client code to call the service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6061574905431873005?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6061574905431873005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6061574905431873005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6061574905431873005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6061574905431873005'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/test-your-ssl-soap-client-with-online.html' title='Test your SSL SOAP Client with an Online Service'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6588437136515123400</id><published>2008-10-06T09:36:00.000-07:00</published><updated>2008-10-06T09:40:35.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proxyHost'/><category scheme='http://www.blogger.com/atom/ns#' term='Proxy Authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='axis2.xml'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='proxyPort'/><title type='text'>Invoking WSF/PHP Web Services Through Proxy</title><content type='html'>If you want to invoke an external web service through PHP and you are behind a proxy server, you have to configure the proxy in your client. This blog &lt;a href="http://www.dimuthu.org/blog/2008/10/06/invoking-wsfphp-web-services-through-proxy/"&gt;Invoking WSF/PHP Web Services Through Proxy&lt;/a&gt; describes how you do it with &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6588437136515123400?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6588437136515123400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6588437136515123400' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6588437136515123400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6588437136515123400'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/invoking-wsfphp-web-services-through.html' title='Invoking WSF/PHP Web Services Through Proxy'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8106829404873740806</id><published>2008-10-05T03:23:00.000-07:00</published><updated>2008-10-07T02:59:49.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Data Services with SQLite in PHP</title><content type='html'>If you want to expose you SQLite Database as a Web service, Here is a blog "&lt;a href="http://www.dimuthu.org/blog/2008/10/05/data-services-with-sqlite-in-php/"&gt;Data Services with SQLite in PHP&lt;/a&gt;" on how to do it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8106829404873740806?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8106829404873740806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8106829404873740806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8106829404873740806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8106829404873740806'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/data-services-with-sqlite-in-php.html' title='Data Services with SQLite in PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3761268707582181994</id><published>2008-10-04T19:40:00.000-07:00</published><updated>2008-10-04T19:44:38.187-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL'/><title type='text'>MSSQL(Microsoft SQL) Data Services In PHP</title><content type='html'>If you are using MSSQL as the back-end database for you PHP program &lt;a href="http://www.dimuthu.org/blog/2008/10/04/mssqlmicrosoft-sql-data-services-in-php/"&gt;this blog about Providing MSSQL Data Services in PHP&lt;/a&gt; will be a nice read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3761268707582181994?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3761268707582181994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3761268707582181994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3761268707582181994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3761268707582181994'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/mssqlmicrosoft-sql-data-services-in-php.html' title='MSSQL(Microsoft SQL) Data Services In PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6516084199575747291</id><published>2008-10-01T08:35:00.000-07:00</published><updated>2008-10-01T08:41:45.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xpath'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='traversing'/><category scheme='http://www.blogger.com/atom/ns#' term='simplexml'/><title type='text'>XPath in SimpleXML</title><content type='html'>This is a blog about &lt;a href="http://www.dimuthu.org/blog/2008/09/30/xpath-in-simplexml/"&gt;XPath in SimpleXML&lt;/a&gt; which explain How you going to use XPath in the SimpleXML environment. This is not directly related to Web Services . But there is no doubt XML traversing is a big part in a web services code. So I hope PHP Web Services developers find &lt;a href="http://www.dimuthu.org/blog/2008/09/30/xpath-in-simplexml/"&gt;this post&lt;/a&gt; really useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6516084199575747291?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6516084199575747291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6516084199575747291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6516084199575747291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6516084199575747291'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/10/xpath-in-simplexml.html' title='XPath in SimpleXML'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7787303599863171074</id><published>2008-09-28T03:24:00.000-07:00</published><updated>2008-09-28T03:27:43.278-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><category scheme='http://www.blogger.com/atom/ns#' term='Demo Site'/><title type='text'>Online Tools for PHP Web Services Developers</title><content type='html'>You can find an overview of the tools hosted in the PHP Demo Site&lt;a href="http://www.dimuthu.org/blog/2008/09/28/online-tools-for-php-web-services-developers/"&gt; in this post&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7787303599863171074?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7787303599863171074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7787303599863171074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7787303599863171074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7787303599863171074'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/online-tools-for-php-web-services.html' title='Online Tools for PHP Web Services Developers'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4484456655810671822</id><published>2008-09-27T10:03:00.001-07:00</published><updated>2008-09-27T10:03:12.056-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>REST Framework for PHP</title><content type='html'>&lt;p&gt;I have been blogging about WSF/PHP 2.0 being a comprehensive REST framework. Now it is available for you to &lt;a href="http://dist.wso2.org/products/wsf/php/2.0.0/wso2-wsf-php-bin-2.0.0-win32.zip"&gt;download&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;If you want to design services from scratch, WSF/PHP would be a very good choice, because it provides a natural mapping form design to implementation. &lt;/p&gt;  &lt;p&gt;Also, given the fact that this is an extension written in C, it would also provide you with better performance, compared to other REST frameworks purely written in PHP. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4484456655810671822?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4484456655810671822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4484456655810671822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4484456655810671822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4484456655810671822'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/rest-framework-for-php.html' title='REST Framework for PHP'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1031423086158672260</id><published>2008-09-27T02:40:00.000-07:00</published><updated>2008-09-27T02:44:32.907-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RESTful'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='CRUD'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>RESTful CRUD Data Services Demo</title><content type='html'>Here is a live demo on &lt;a href="http://labs.wso2.org/wsf/php/resource_view.php?url=RESTFulCRUD"&gt;RESTful Data Services&lt;/a&gt; implemented with &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt;. I wrote a &lt;a href="http://www.dimuthu.org/blog/2008/09/27/restful-crud-data-services-demo/"&gt;blog about this Demo&lt;/a&gt; explaining how you give semantic to the Http Verbs to manipulate (Do CRUD operations on) Resources in RESTful way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1031423086158672260?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1031423086158672260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1031423086158672260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1031423086158672260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1031423086158672260'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/restful-crud-data-services-demo.html' title='RESTful CRUD Data Services Demo'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6949672789660608099</id><published>2008-09-25T09:48:00.000-07:00</published><updated>2008-09-25T10:05:25.244-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Http Basic Authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='usernameToken'/><title type='text'>Http Authentication for SOPA Messages in PHP - 2 Minutes Introduction</title><content type='html'>Yesterday I wrote about authenticating users using Username token which is a more SOA friendly way of doing authentication. Because it is handled in Message level and clearly defined in WS-Security Specification.&lt;br /&gt;&lt;br /&gt;But if you want to do Http Basic Authentication you can still use WSF/PHP as your client. Here is a blog &lt;a href="http://www.dzone.com/links/r/http_authentication_for_sopa_messages_in_php_2_mi.html"&gt;How you send Basic Authentication information with your SOAP message in PHP&lt;/a&gt;. Note that here authentication is handled in trasport layer. So this approach is only valid if you are using HTTP transport which is the most common transport to use in web services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6949672789660608099?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6949672789660608099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6949672789660608099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6949672789660608099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6949672789660608099'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/0-http-authentication-for-sopa-messages.html' title='Http Authentication for SOPA Messages in PHP - 2 Minutes Introduction'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7694611701315803213</id><published>2008-09-23T08:11:00.000-07:00</published><updated>2008-09-23T08:21:04.126-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Http Basic Authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WS-Security'/><category scheme='http://www.blogger.com/atom/ns#' term='usernameToken'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Authenticate using Username Token from PHP - 2 Minutes Introduction</title><content type='html'>Username token is the most simple scenario described in WS-Security specification. It is used to authenticate users from their SOAP request messages.&lt;br /&gt;&lt;br /&gt;The blog "&lt;a href="http://www.dimuthu.org/blog/2008/09/23/authenticate-using-username-token-from-php-2-minutes-introduction/"&gt;Authenticate using Username Token from PHP - 2 Minutes Introduction&lt;/a&gt;" give you quick tutorial how you can implement this in PHP using &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7694611701315803213?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7694611701315803213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7694611701315803213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7694611701315803213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7694611701315803213'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/authenticate-using-username-token-from.html' title='Authenticate using Username Token from PHP - 2 Minutes Introduction'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-143772594065829357</id><published>2008-09-22T18:45:00.000-07:00</published><updated>2008-09-22T18:53:12.600-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webinar'/><category scheme='http://www.blogger.com/atom/ns#' term='FREE'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Webinar -    Introducing Enterprise Web services with WSO2 WSF/PHP 2.0.0</title><content type='html'>WSO2 WSF/C product stack lead Selvaratnam Uthaiyashankar is doing a *FREE* Webinar on “Introducing Enterprise Web services with WSO2 WSF/PHP 2.0.0” at 11.00 AM (US Mountain Time) on 23rd September 2008.&lt;br /&gt;&lt;br /&gt;You can register from this &lt;a href="https://wso2.on.intercall.com/confmgr/event_description.jsp?title=Introducing+enterprise+Web+services+with+WSO2+WSF%2FPHP+2.0&amp;amp;type=regrequired&amp;amp;eventid=74012"&gt;link&lt;/a&gt;. Note that you don't need any registration fees.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-143772594065829357?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/143772594065829357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=143772594065829357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/143772594065829357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/143772594065829357'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/webinar-introducing-enterprise-web.html' title='Webinar -    Introducing Enterprise Web services with WSO2 WSF/PHP 2.0.0'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3517451014866606029</id><published>2008-09-22T10:39:00.001-07:00</published><updated>2008-09-22T10:42:24.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MTOM'/><category scheme='http://www.blogger.com/atom/ns#' term='base64'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL mode'/><category scheme='http://www.blogger.com/atom/ns#' term='SWA'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Binary'/><title type='text'>Send Binary With Web Services in PHP - 2 Minutes Introduction</title><content type='html'>If you want to send binary in web services, you have several options. You can use either base64 encoded strings or MTOM, SWA binary optimized protocols. &lt;a href="http://www.dimuthu.org/blog/2008/09/22/send-binary-with-web-services-in-php-2-minutes-introduction/"&gt;Here is a very quick introduction&lt;/a&gt; on how you can implement it in your application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3517451014866606029?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3517451014866606029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3517451014866606029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3517451014866606029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3517451014866606029'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/send-binary-with-web-services-in-php-2.html' title='Send Binary With Web Services in PHP - 2 Minutes Introduction'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-31181957408844192</id><published>2008-09-22T10:33:00.000-07:00</published><updated>2008-09-22T10:39:06.610-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wsdl2php'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>WSDL2PHP 2 Minutes Introduction</title><content type='html'>In .Net, Java or C before you developing a web service consumer or a provider you have tools to generate a skeleton code from the WSDL. So you only to concentrate on your business logic as all the WSDL related work is handled by this generated code.&lt;br /&gt;&lt;br /&gt;WSDL2PHP is the tool to do the same in PHP. Have a look at &lt;a href="http://www.dimuthu.org/blog/2008/09/21/wsdl2php-2-minutes-introduction/"&gt;this tutorial&lt;/a&gt; to learn how to use it in your application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-31181957408844192?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/31181957408844192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=31181957408844192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/31181957408844192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/31181957408844192'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/wsdl2php-2-minutes-introduction.html' title='WSDL2PHP 2 Minutes Introduction'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2664841585008737943</id><published>2008-09-22T10:23:00.000-07:00</published><updated>2008-09-22T10:32:58.632-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>SOA Way of Writing PHP</title><content type='html'>Thousands of web developers around the world use PHP to develop their web applications. As SOA emerges, the enterprise world is moving towards web services more than just web applications. But PHP is slow to used in implementing SOA. This blog titled '&lt;a href="http://www.dimuthu.org/blog/2008/09/20/soa-way-of-writing-php/"&gt;SOA Way of Writing PHP&lt;/a&gt;' is study of why you should use SOA in your enterprise application and how to implement it in real world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2664841585008737943?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2664841585008737943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2664841585008737943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2664841585008737943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2664841585008737943'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/soa-way-of-writing-php.html' title='SOA Way of Writing PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3061004504145316159</id><published>2008-09-19T03:25:00.001-07:00</published><updated>2008-09-19T19:20:36.053-07:00</updated><title type='text'>Integrating PHP CMS systems with other applications</title><content type='html'>&lt;p&gt;Here are some &lt;a href="http://nandikajayawardana.blogspot.com/2008/09/integrating-php-cms-systems-with-web.html"&gt;interesting thoughts&lt;/a&gt; on how to integrate PHP CMS system with other enterprise applications.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3061004504145316159?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3061004504145316159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3061004504145316159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3061004504145316159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3061004504145316159'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/integrating-php-cms-systems-with-other.html' title='Integrating PHP CMS systems with other applications'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4402113626918321579</id><published>2008-09-18T12:19:00.000-07:00</published><updated>2008-09-18T12:25:21.690-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprise'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Video - WSF/PHP in Enterprise Applications</title><content type='html'>Shankar who is the manager of the WSF Framework projects including WSF/PHP, explaining the Real world use of the WSF/PHP specially in the enterprise space.&lt;br /&gt;&lt;p style="text-align: center;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/L5qKyitKic8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/L5qKyitKic8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4402113626918321579?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4402113626918321579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4402113626918321579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4402113626918321579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4402113626918321579'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/video-wsfphp-in-enterprise-applications.html' title='Video - WSF/PHP in Enterprise Applications'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4808283050293546503</id><published>2008-09-18T11:07:00.000-07:00</published><updated>2008-09-18T11:12:57.932-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demo'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='Http'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Do REST in PHP - PHP RESTful Data Services</title><content type='html'>Can you do PHP Data Serivces in REST style with &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP 2.0.0&lt;/a&gt;. Yes certainly you can do it.&lt;br /&gt;&lt;br /&gt;Check out this demo about '&lt;a href="http://labs.wso2.org/wsf/php/demo.php?name=RESTfulSchool&amp;amp;demo=RESTFulSchool/demo_client.php&amp;amp;src=RESTFulSchool"&gt;RESTful School&lt;/a&gt;' and see how can map unique urls to each piece of data you have.&lt;br /&gt;&lt;br /&gt;Check "Do REST in PHP - PHP RESTful Data Services" for a &lt;a href="http://labs.wso2.org/wsf/php/demo.php?name=RESTfulSchool&amp;amp;demo=RESTFulSchool/demo_client.php&amp;amp;src=RESTFulSchool"&gt;guideline of the demo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4808283050293546503?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4808283050293546503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4808283050293546503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4808283050293546503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4808283050293546503'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/do-rest-in-php-php-restful-data.html' title='Do REST in PHP - PHP RESTful Data Services'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-9191010897670098230</id><published>2008-09-18T01:30:00.001-07:00</published><updated>2008-09-18T01:30:40.218-07:00</updated><title type='text'>Simplest Approach to Enterprise Grade Web Services</title><content type='html'>&lt;p&gt;Are you bored with spending lots of time and money writing web services? Are you bored dealing with complex API's provided by Java and .Net based web services platforms? These are the things that we worry every day when we want to bring our software solutions to the outside world as standard services. &lt;/p&gt;  &lt;p&gt;Now we are moving to a new era of Web Services with &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt; as a platform for developing enterprise grade web services with the minimal effort from the programmer. Now lets look at what are tools required to build a enterprise solution using Web Services. &lt;/p&gt;  &lt;p&gt;Obviously the first requirement is the ability to create and consume web services. WSF/PHP has this capability in the simplest form possible. You can read more about how to create and consume web services in the &lt;a href="http://wso2.org/project/wsf/php/2.0.0/docs/manual.html"&gt;online documentation&lt;/a&gt; of WSF/PHP. This includes the creating services from WSDL and creating services manually. Also for the client side you have the option of building the client manually as well as using the WSDL.&lt;/p&gt;  &lt;p&gt;But creating and consuming web services is only a small part of your overall solution. At the beginning you may think that &amp;quot;who cares about security&amp;quot;. But when your application grows I can guarantee you will feel the need for security. But there is nothing to worry as WSF/PHP can cater for all your &lt;a href="http://wso2.org/project/wsf/php/2.0.0/docs/security_manual.html"&gt;web services security&lt;/a&gt; requirements. As the service writer you don't have to worry about the details of complex WS-Security mechanisms underneath. That is the best part of the story.&lt;/p&gt;  &lt;p&gt;If you want more than the delivery guarantees of TCP protocol and want the message level reliability, &lt;a href="http://wso2.org/project/wsf/php/2.0.0/docs/rm_manual.html"&gt;WSF/PHP can use the WS-ReliableMessaging&lt;/a&gt; delivery guarantees.&lt;/p&gt;  &lt;p&gt;Also WSF/PHP comes with a nice way to convert all your data to web services very easily. Now you don't have to write services manually to expose your existing data to the world. &lt;a href="http://wso2.org/project/wsf/php/2.0.0/docs/data_services_manual.html"&gt;WSF/PHP Data services&lt;/a&gt; can do this for you in very few easy steps.&lt;/p&gt;  &lt;p&gt;WSF/PHP comes with two very distinctive features that you won't find in any other web services platform. Enterprise readiness and ease of use are these two distinctive features. So if you want to develop enterprise grade web services with the minimal effort try WSF/PHP and feel the difference.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-9191010897670098230?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/9191010897670098230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=9191010897670098230' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/9191010897670098230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/9191010897670098230'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/simplest-approach-to-enterprise-grade.html' title='Simplest Approach to Enterprise Grade Web Services'/><author><name>Supun Kamburugamuva</name><uri>http://www.blogger.com/profile/14361364937700874215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_UVlnyapwF90/TJt8MW5cmpI/AAAAAAAAAKI/pmlsTS6co8o/S220/45695_439733319920_594774920_4769125_1165489_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5425413997814942019</id><published>2008-09-18T01:04:00.001-07:00</published><updated>2008-09-18T01:04:49.929-07:00</updated><title type='text'>Debugging PHP Web Services</title><content type='html'>&lt;p&gt;I wrote a blog on some of the tips of how to &lt;a href="http://nandikajayawardana.blogspot.com/2008/09/debugging-web-services.html"&gt;debug web service client and services&lt;/a&gt;. It would be useful to you if you are getting started with WSF/PHP.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5425413997814942019?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5425413997814942019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5425413997814942019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5425413997814942019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5425413997814942019'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/debugging-php-web-services.html' title='Debugging PHP Web Services'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4862139791235686132</id><published>2008-09-16T22:17:00.001-07:00</published><updated>2008-09-16T22:19:54.790-07:00</updated><title type='text'>Installing WSF/PHP in windows</title><content type='html'>&lt;p&gt;WSF/PHP is a new era for web services with its ease of use and all the cool features. To unveil this new world of web services you need to get started in some way. I have chosen the hard way and decided to build it from the scratch. I have blogged about &lt;a href="http://supunkamburugamuva.blogspot.com/2008/09/my-first-experience-with-wsfphp.html"&gt;my first experience with WSF/PHP&lt;/a&gt;. In this I have explained how to build and configure WSF/PHP under windows. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4862139791235686132?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4862139791235686132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4862139791235686132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4862139791235686132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4862139791235686132'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/installing-wsfphp-on-windows.html' title='Installing WSF/PHP in windows'/><author><name>Supun Kamburugamuva</name><uri>http://www.blogger.com/profile/14361364937700874215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_UVlnyapwF90/TJt8MW5cmpI/AAAAAAAAAKI/pmlsTS6co8o/S220/45695_439733319920_594774920_4769125_1165489_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8918550199333520384</id><published>2008-09-16T09:34:00.000-07:00</published><updated>2008-09-16T09:42:39.886-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demo'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WS-Security'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>PHP Data Services With WS-Security</title><content type='html'>When it come to a PHP application with WS-Security, you should be using &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP&lt;/a&gt; somewhere. Similarly with the new Data Services library WSF/PHP become the only option to host Data Services with WS-Security.&lt;br /&gt;&lt;br /&gt;Read my &lt;a href="http://www.dimuthu.org/blog/2008/09/16/php-data-services-with-ws-security/"&gt;blog post on Data Services with  WS-Security&lt;/a&gt; where I used an online DEMO application to demonstrate the use of WS-Security in Data Services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8918550199333520384?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8918550199333520384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8918550199333520384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8918550199333520384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8918550199333520384'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/php-data-services-with-ws-security.html' title='PHP Data Services With WS-Security'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-8082005537142294964</id><published>2008-09-15T22:54:00.001-07:00</published><updated>2008-09-15T22:54:37.484-07:00</updated><title type='text'>Implementing REST Client and Services Using WSF/PHP</title><content type='html'>&lt;p&gt;WSF/PHP 2.0.0 supports implementing REST Services and clients using HTTP Methods POST,GET,DELET, and PUT. It addition, it allows custom URL mappings for service operations. &lt;/p&gt; &lt;p&gt;You can find more details on implementing REST client and Services using WSF/PHP &lt;a href="http://nandikajayawardana.blogspot.com/2008/09/implementing-rest-service-and-client.html"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-8082005537142294964?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/8082005537142294964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=8082005537142294964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8082005537142294964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/8082005537142294964'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/implementing-rest-client-and-services.html' title='Implementing REST Client and Services Using WSF/PHP'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4591296031521294591</id><published>2008-09-15T11:11:00.000-07:00</published><updated>2008-09-15T11:17:35.380-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code first'/><category scheme='http://www.blogger.com/atom/ns#' term='wsf/php 2.0.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Features'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL Generation'/><title type='text'>Code First Approach of Developing Services with WSF/PHP 2.0</title><content type='html'>WSF/PHP comes with many new features + feature enhancements including improvments for WSDL Generation. WSDL Generation is a core module of the WSF/PHP which allows developers to use 'Code First Approach' to develop web services.&lt;br /&gt;&lt;br /&gt;I have blogged about &lt;a href="http://www.dimuthu.org/blog/2008/09/15/code-first-approach-of-developing-services-with-wsfphp-20/"&gt;existing features + new features avaialble in the WSF/PHP supporting the code first approach&lt;/a&gt; of developing services. If you prefer this approach you will find this post really helpful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4591296031521294591?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4591296031521294591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4591296031521294591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4591296031521294591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4591296031521294591'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/code-first-approach-of-developing.html' title='Code First Approach of Developing Services with WSF/PHP 2.0'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2674023707224118202</id><published>2008-09-15T09:50:00.001-07:00</published><updated>2008-09-15T09:50:15.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='WOA'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2 WSF/PHP'/><title type='text'>Only PHP Library for Creating Both SOAP and REST Services</title><content type='html'>&lt;p&gt;&lt;a href="http://wso2.com"&gt;WSO2, the open source SOA company&lt;/a&gt;, today announced the availability of the &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSO2 Web Services Framework for PHP&lt;/a&gt; (WSF/PHP) 2.0. WSF/PHP is the industry's only PHP scripting language library that enables developers to create and consume both SOAP and REST Web services -- with the security and reliability required for an enterprise service-oriented architecture (SOA).&lt;/p&gt;  &lt;p&gt;WSF/PHP 2.0 adds significantly expanded REST functionality, new Data Services, greater interoperability, and extended security. With WSF/PHP 2.0, developers now have a comprehensive framework for deploying PHP services that meet the strict enterprise SOA standards implemented by corporations and governments worldwide.&lt;/p&gt;  &lt;p&gt;WSF/PHP 2.0 is part of the WSO2 family of Web Services Framework (WSF) products designed to support enterprises' heterogeneous SOAs. Other WSO2 WSF products include WSF/Ruby, WSF/Perl, WSF/Java, WSF/JavaScript, and WSF/Spring. With the WSF family, enterprises' diverse developer communities have the functionality they need to create Web services in their language of choice.&lt;/p&gt;  &lt;p&gt;&amp;quot;WSO2 exists to enable heterogeneous SOAs, and WSF/PHP 2.0 is an important part of that mission. Through WSF/PHP 2.0, enterprises can tap an expansive community of PHP developers by giving them the first comprehensive framework for easily creating both SOAP and REST services,&amp;quot; said Dr. Sanjiva Weerawarana, CEO of WSO2. &amp;quot;With our new Data Services and expanded interoperability, WSF/PHP 2.0 also provides a critical bridge between tens of thousands of PHP Web applications and the many enterprise data sources, applications and services driving today's enterprises.&amp;quot;&lt;/p&gt;  &lt;p&gt;WSF/PHP 2.0 Development, Interoperability and Security Enhancements&lt;/p&gt;  &lt;p&gt;With full support for REST, SOAP, and WS-* specifications, WSF/PHP lets a single service be exposed both as a SOAP-style and as a REST-style service using a simple PHP-friendly programming model. WSF/PHP 1.0 provided a REST API along with support for SOAP 1.1 and 1.2, WSDL 1.1 and 2.0, and SOAP Message Transmission Optimization Mechanism (MTOM). WSF/PHP 2.0 adds a comprehensive REST framework featuring custom Uniform Resource Identifier (URI) mapping -- making it easy and intuitive to map a REST API into PHP when creating a Web service.&lt;/p&gt;  &lt;p&gt;WSF/PHP 2.0 facilitates Web service creation for the large majority of PHP Web applications that rely on databases. The new WSF/PHP Data Services solution lets developers take data in LAMP(1), WAMP(2), and other PHP-based systems and expose it as a Web service with full WS-* support. Key features include a dbs2php converter tool, and support for multiple database engines, nested queries, and WSDL generation.&lt;/p&gt;  &lt;p&gt;Extended interoperability in WSF/PHP 2.0 makes it easier for developers to seamlessly integrate PHP applications with those based on other enterprise platforms. WSF/PHP 2.0 offers much stronger support for the latest WS-* standards, as well as increased testing against Microsoft .NET, the WSO2 WSAS, Axis2/Java, and other J2EE implementations.&lt;/p&gt;  &lt;pre&gt;    WSF/PHP enterprise security and reliability includes the support&lt;br /&gt;for WS-Security, WS-SecurityPolicy, and WS-ReliableMessaging available&lt;br /&gt;with WSF/PHP 1.0. Version 2.0 of WSF/PHP adds capabilities in four&lt;br /&gt;areas.&lt;br /&gt;&lt;br /&gt;    --  Replay detection tracks whether a message is fresh or has been&lt;br /&gt;        previously sent, preventing replay attacks that can lead to&lt;br /&gt;        denial of service.&lt;br /&gt;&lt;br /&gt;    --  WS-Trust for issuing, renewing, and validating security tokens&lt;br /&gt;        ensures trusted relationships.&lt;br /&gt;&lt;br /&gt;    --  WS-SecureConversation support allows a series of messages (a&lt;br /&gt;        conversation) to be protected by a single session key,&lt;br /&gt;        improving efficiency of the operation.&lt;br /&gt;&lt;br /&gt;    --  Support for the Public Key Cryptography Standards (PKCS) makes&lt;br /&gt;        it possible for services written in WSF/PHP to handle multiple&lt;br /&gt;        client x509 certificates simultaneously, further improving&lt;br /&gt;        efficiency.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Other development and performance enhancements in WSF/PHP 2.0 include:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;    --  Increased WSDL support includes tools, such as wsdl2php for&lt;br /&gt;        contract-first development of services and clients; the&lt;br /&gt;        ability to generate WSDLs for WSF/PHP Web services scripts;&lt;br /&gt;        and proven support for a range of WSDL styles, including&lt;br /&gt;        support for advanced schemas such as extensions and&lt;br /&gt;        restrictions.&lt;br /&gt;&lt;br /&gt;    --  Policy-driven design provides users with a maximum level of&lt;br /&gt;        control by allowing developers to configure the behavior of&lt;br /&gt;        services using policies.&lt;br /&gt;&lt;br /&gt;    --  Binary data capability gives users a choice between sending&lt;br /&gt;        and receiving binary data as attachments using either MTOM or&lt;br /&gt;        a SOAP message with attachment (SwA). MTOM in version 2.0 has&lt;br /&gt;        been optimized through caching, enhancing performance.&lt;br /&gt;&lt;br /&gt;    --  Expanded deployment models for WSF/PHP 2.0 include several&lt;br /&gt;        platforms -- notably Linux, Windows, and Solaris -- as well as&lt;br /&gt;        seamless integration with Apache and Microsoft Internet&lt;br /&gt;        Information Services (IIS) Web servers.&lt;br /&gt;&lt;br /&gt;    --  Enhanced stability to ensure high availability and&lt;br /&gt;        reliability.&lt;br /&gt;&lt;br /&gt;    Zend Core Support Featured at ZendCon&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;With version 2.0, WSF/PHP has been tested and proven to run with Zend Core, Zend's tested, certified and supported version of PHP, which has been widely adopted by enterprises for their production PHP environments. WSF/PHP 2.0 is being launched in conjunction with ZendCon 2008; the Zend/PHP conference runs September 15-18, at the Santa Clara Convention Center in Santa Clara, CA. WSO2 will demonstrate WSF/PHP 2.0 at the Microsoft ZendCon booth.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;quot;Zend and WSO2 are mutually dedicated to serving the diverse needs of PHP developers with world-class open-source software for implementing Web services,&amp;quot; said Andi Gutmans, CTO and co-founder at Zend Technologies. &amp;quot;By bringing support for both enterprise-oriented WS-* and REST Web services to our managed PHP production environment, WSO2 joins us in empowering the developers supporting more than 20 million PHP websites with unprecedented flexibility for delivering enterprise-class Web services.&amp;quot;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;WSF/PHP 2.0 Webinar&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;WSO2 will present a free webinar, &amp;quot;&lt;a href="http://wso2.com/about/news/wsf-php-sep-08-webinar/"&gt;Introducing Enterprise Web Services with WSO2 WSF/PHP 2.0&lt;/a&gt;,&amp;quot; which will review how to take advantage of the new REST functionality and WSF/PHP Data Services support. The webinar will run from 9:00-10:00 a.m. Pacific on Tuesday, September 23, 2008. Presenting the webinar will be Selvaratnam Uthaiyashankar, a WSO2 software architect and lead developer of the WSO2 Web Services Frameworks. For more information, visit: &lt;a href="http://wso2.com/about/news/wsf-php-sep-08-webinar/"&gt;http://wso2.com/about/news/wsf-php-sep-08-webinar/&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Availability and Support&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The WSO2 Web Services Framework for PHP 2.0 is available for download today. As a fully open source solution released under the Apache License 2.0, it does not carry any software licensing or subscription fees. WSO2 offers a range of service and support options for WSF/PHP 2.0. These include support subscriptions, training, consulting, custom development and development support. For information on service and support packages, visit &lt;a href="http://wso2.com"&gt;http://wso2.com&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;About WSO2&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;WSO2 is the open source SOA company founded by pioneers in Web services and the Apache Software Foundation Web services community. The company delivers the only tightly integrated, entirely open source middleware stack that is optimized for SOA. The WSO2 products address the core components of SOAs: service creation, connection, composition and governance. The company is backed by Intel Capital and maintains operations in the United States, United Kingdom and Sri Lanka. For more information, visit &lt;a href="http://wso2.com"&gt;http://wso2.com&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;(1)LAMP: open source Web platform consisting of Linux, Apache, MySQL, and PHP&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;(2)WAMP: Web server package containing Windows, Apache, MySQL, and PHP&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Trademarks and registered trademarks are the properties of their respective owners.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Source: WSO2&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2674023707224118202?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2674023707224118202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2674023707224118202' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2674023707224118202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2674023707224118202'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/only-php-library-for-creating-both-soap.html' title='Only PHP Library for Creating Both SOAP and REST Services'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4582955606066353331</id><published>2008-09-12T03:19:00.001-07:00</published><updated>2008-09-12T03:19:26.500-07:00</updated><title type='text'>WSO2 Web Services Framework for PHP v2.0.0 Released</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;WSO2 WSF/PHP version 2.0.0 was released today. It comes with a lot of new features. In addition to the that many bug fixes have been done since the previous release.&lt;/p&gt; &lt;p&gt;Following are some of the key features and changes for this release extracted from the release&amp;nbsp; note.&lt;/p&gt; &lt;p&gt;Key Features&lt;br&gt;============  &lt;p&gt;1. Client API to consume Web services&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WSMessage class to handle message level options&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WSClient class with both one way and two way service invocation support&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Option of using functions in place of object oriented API with ws_request  &lt;p&gt;2. Service API to provide Web services&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WSMessage class to handle message level options&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WSService class with support for both one way and two way operations&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Option of using functions in place of object oriented API with ws_reply  &lt;p&gt;3. Attachments with MTOM&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Binary optimized&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Non-optimized (Base64 binary)  &lt;p&gt;4. WS-Addressing&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Version 1.0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Submission  &lt;p&gt;5. WS-Security &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * UsernameToken and Timestamp &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Encryption&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Signing&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WS-SecurityPolicy based configuration&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WS-Secure Conversation  &lt;p&gt;6. WS-Reliable Messaging&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Single channel one way and two way reliable messaging  &lt;p&gt;7. WSDL Generation for Server Side&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WSDL generation based on annotations and function signatures, and &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; serving on ?wsdl or ?wsdl2 requests  &lt;p&gt;8. WSDL mode support for both client and server side&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Write services and client based on a given WSDL&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * WS-Addressing and WS-SecurityPolicy is supported in WSDL mode&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * MTOM is now supported with WSDL mode&lt;br&gt;9. REST Support&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Expose a single service script both as SOAP and REST service  &lt;p&gt;10. Provide easy to use classes for common services&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Consume some well known services such as Yahoo search and Flickr &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and Amazon services using predefined classes  &lt;p&gt;11. wsdl2php.php script. This script can generate PHP classes for services &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and clients for a given WSDL to be used with WSDL Mode .  &lt;p&gt;12. Data Services API&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PHP Data Services API that enables exposing database queries as web services. &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Major Changes Since Last Release&lt;br&gt;================================&lt;br&gt;* Added PKCS12 Keystore Support&lt;br&gt;* Added Secure Conversation Support&lt;br&gt;* Added Replay Detection Support&lt;br&gt;* Contract First Web Services support for MTOM&lt;br&gt;* SWA ( Soap With Attachments ) Support added&lt;br&gt;* MTOM Attachment caching support added&lt;br&gt;* HTTP Chunking support added&lt;br&gt;* REST API Improved to support HTTP verbs GET,DELETE,PUT and POST&lt;br&gt;* New PHP Data Services Solution&lt;br&gt;* WS-RM 1.1 added&lt;br&gt;* Many Bug Fixes&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As you can see, A lot of new features have been added since that last release. It is a feature complete and therefore we are calling it version 2.0.0.&lt;/p&gt; &lt;p&gt;We welcome you to try out this latest release of &lt;a href="http://wso2.org/downloads/wsf/php"&gt;WSF/PHP&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4582955606066353331?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4582955606066353331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4582955606066353331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4582955606066353331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4582955606066353331'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/wso2-web-services-framework-for-php.html' title='WSO2 Web Services Framework for PHP v2.0.0 Released'/><author><name>nandika</name><uri>http://www.blogger.com/profile/11920576746810295004</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_honSoB4kSVs/SRkk5-AKbxI/AAAAAAAAAEY/81Hp9560gz4/S220/nandika.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-4307409532325417626</id><published>2008-09-08T10:26:00.000-07:00</published><updated>2008-09-08T10:28:58.361-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simple types'/><category scheme='http://www.blogger.com/atom/ns#' term='Contract first'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='advanced types'/><title type='text'>Developing WSF/PHP Webservices With Contract First Approach - 2 Minutes Introduction</title><content type='html'>Are you finding a quick guide to develop a web service starting from a WSDL (contract first approach).  Have a look at my blog on &lt;a href="http://www.dimuthu.org/blog/2008/09/08/developing-wsfphp-webservices-with-contract-first-approach-2-minutes-introduction/"&gt;Developing WSF/PHP Webservices With Contract First Approach - 2 Minutes Introduction&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-4307409532325417626?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/4307409532325417626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=4307409532325417626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4307409532325417626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/4307409532325417626'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/developing-wsfphp-webservices-with.html' title='Developing WSF/PHP Webservices With Contract First Approach - 2 Minutes Introduction'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1806137030473296783</id><published>2008-09-06T09:56:00.000-07:00</published><updated>2008-09-06T10:03:52.661-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='wsf/php 2.0.0'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Services'/><title type='text'>PHP DataServices 2 Minutes Introduction</title><content type='html'>Here is a very quick introduction to the DataServices and the PHP DataSerivces API, &lt;a href="http://www.dimuthu.org/blog/2008/09/06/php-dataservices-2-minutes-introduction/"&gt;PHP DataServices 2 Minutes Introduction&lt;/a&gt;. PHP DataServices library will be released with the WSF/PHP 2.0 version within next couple of  week. If you are really hurry to test this library, go and get it from the &lt;a href="http://labs.wso2.org/wsf/php/resource_view.php?url=DataServices"&gt;DataService demonstration page&lt;/a&gt; from PHP Web Services DEMO site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1806137030473296783?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1806137030473296783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1806137030473296783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1806137030473296783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1806137030473296783'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/php-dataservices-2-minutes-introduction.html' title='PHP DataServices 2 Minutes Introduction'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3562142362111185734</id><published>2008-09-05T05:39:00.000-07:00</published><updated>2008-09-05T05:41:17.730-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='schema'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL Generation'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='annotations'/><title type='text'>WSF/PHP WSDL Generation 2 Minutes Introduction</title><content type='html'>If you want a quick look at how to generate a WSDL from a PHP Script Read my blog on &lt;a href="http://www.dimuthu.org/blog/2008/09/05/wsfphp-wsdl-generation-2-minutes-introduction/"&gt;WSF/PHP WSDL Generation 2 Minutes Introduction&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3562142362111185734?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3562142362111185734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3562142362111185734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3562142362111185734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3562142362111185734'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/wsfphp-wsdl-generation-2-minutes.html' title='WSF/PHP WSDL Generation 2 Minutes Introduction'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5022521883701667127</id><published>2008-09-01T03:48:00.001-07:00</published><updated>2008-09-03T07:47:11.964-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Article'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>WSF/PHP Articles and Tutorials</title><content type='html'>&lt;p&gt;Here are some of the tutorials and articles written about WSF/PHP.&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/3032"&gt;PHP Web Services: Getting Started&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/3056"&gt;PHP Web Services: After Getting Started&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/3261"&gt;PHP Web Services: Messaging – SOAP and REST&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/3579"&gt;Writing Simple PHP Test Scripts For PHP Web Services&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/3125"&gt;WSO2 WSF/PHP Interoperability with Microsoft WCF&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/1060"&gt;PHP SOAP Extension&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/2570"&gt;WSO2 WSF/PHP – PHP Web Services Extension&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/3393"&gt;PHP Web Services with WSDL&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/3262"&gt;Running WSF/PHP on The Uniform Server&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/3465"&gt;Installing WSF/PHP with PHP5 on IIS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://wso2.org/library/tutorials/setup-wso2-wsf-php-build-environment-windows-xp"&gt;How to Setup WSO2 WSF/PHP Build Environment on Windows XP&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5022521883701667127?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5022521883701667127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5022521883701667127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5022521883701667127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5022521883701667127'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/09/wsfphp-articles-and-tutorials.html' title='WSF/PHP Articles and Tutorials'/><author><name>Supun Kamburugamuva</name><uri>http://www.blogger.com/profile/14361364937700874215</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://3.bp.blogspot.com/_UVlnyapwF90/TJt8MW5cmpI/AAAAAAAAAKI/pmlsTS6co8o/S220/45695_439733319920_594774920_4769125_1165489_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-7666559256303864563</id><published>2008-08-24T00:16:00.000-07:00</published><updated>2008-08-24T22:28:34.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2 WSAS'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Web Services'/><title type='text'>Blog from WSO2 WSAS Developers</title><content type='html'>If you are really interested in JAVA web services and like to know its applications in enterprise level Here a great NEWS. Developers of &lt;a href="http://wso2.org/projects/wsas/java"&gt;WSO2 Web Services Application Server&lt;/a&gt; (&lt;a href="http://wso2.org/projects/wsas/java"&gt;WSO2 WSAS&lt;/a&gt;) have started a Blog &lt;a href="http://wso2wsas.blogspot.com/"&gt;WSO2 WSAS Blog&lt;/a&gt; to keep  you update about the WSAS project and NEWS generally on SOA, Web Services, WS-* Stack. You will surely find this place really useful in addition to the resource you can find in &lt;a href="http://wso2.org/"&gt;WSO2 Projects Community Portal - Oxygen Tank&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-7666559256303864563?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/7666559256303864563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=7666559256303864563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7666559256303864563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/7666559256303864563'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/blog-from-wso2-wsas-developers.html' title='Blog from WSO2 WSAS Developers'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5506137897412305311</id><published>2008-08-21T05:19:00.000-07:00</published><updated>2008-08-21T05:23:20.795-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Axis2/C'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='soap headers'/><category scheme='http://www.blogger.com/atom/ns#' term='custom headers'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><title type='text'>Howto Build Custom SOAP Headers in WSDL Using Axis2/C and WSF/PHP</title><content type='html'>&lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP &lt;/a&gt;latest trunk has the support for sending and serving custom headers in the WSDL Mode. Read this blog about &lt;a href="http://www.dimuthu.org/blog/2008/08/21/how-to-build-custom-soap-headers-in-wsdl-using-axis2c-and-wsfphp/"&gt;Howto Build Custom SOAP Headers in WSDL Using Axis2/C and WSF/PHP&lt;/a&gt; for more details about the API and how you would declare custom headers in a WSDL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5506137897412305311?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5506137897412305311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5506137897412305311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5506137897412305311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5506137897412305311'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/howto-build-custom-soap-headers-in-wsdl.html' title='Howto Build Custom SOAP Headers in WSDL Using Axis2/C and WSF/PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3086322794501518229</id><published>2008-08-19T08:53:00.001-07:00</published><updated>2008-08-19T08:53:46.309-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSO WSF/PHP'/><title type='text'>Next WSF/PHP Release is Almost Ready</title><content type='html'>&lt;p&gt;We are almost done. Today, I had a look into the issue tracker, and there are only about four issues pending. That is covering lots of ground. &lt;/p&gt;  &lt;p&gt;We should have the next WSF/PHP pack released by mid of next month. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3086322794501518229?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3086322794501518229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3086322794501518229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3086322794501518229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3086322794501518229'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/next-wsfphp-release-is-almost-ready.html' title='Next WSF/PHP Release is Almost Ready'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-553909542911642396</id><published>2008-08-19T04:36:00.000-07:00</published><updated>2008-08-19T04:41:38.603-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MTOM'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='SWA'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='1.3.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Binary'/><title type='text'>Send Binary in SOAP with WSF/PHP 1.3.2</title><content type='html'>There are different methods you can send binaries in a SOAP message. The  blog &lt;a href="http://www.dimuthu.org/blog/2008/08/19/send-binary-in-soap-with-wsfphp-132/"&gt;"Send Binary in SOAP with WSF/PHP 1.3.2"&lt;/a&gt; describes these methods in general and how you can implement each of these approach in &lt;a href="http://wso2.org/projects/wsf/php"&gt;WSF/PHP 1.3.2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-553909542911642396?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/553909542911642396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=553909542911642396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/553909542911642396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/553909542911642396'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/send-binary-in-soap-with-wsfphp-132.html' title='Send Binary in SOAP with WSF/PHP 1.3.2'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3676500010502935680</id><published>2008-08-17T23:38:00.000-07:00</published><updated>2008-08-17T23:41:24.742-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timestamp'/><category scheme='http://www.blogger.com/atom/ns#' term='Encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='1.3.2'/><category scheme='http://www.blogger.com/atom/ns#' term='WS-Security'/><category scheme='http://www.blogger.com/atom/ns#' term='usernameToken'/><category scheme='http://www.blogger.com/atom/ns#' term='WS-Policy'/><category scheme='http://www.blogger.com/atom/ns#' term='signing'/><category scheme='http://www.blogger.com/atom/ns#' term='short note'/><title type='text'>Short note for Web Services Security API in WSF/PHP 1.3.2</title><content type='html'>I wrote a little short note on how you can use WS-Security with WSF/PHP 1.3.2 in here. &lt;a href="http://www.dimuthu.org/blog/2008/08/18/web-services-security-in-wsfphp-132/"&gt;http://www.dimuthu.org/blog/2008/08/18/web-services-security-in-wsfphp-132/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3676500010502935680?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3676500010502935680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3676500010502935680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3676500010502935680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3676500010502935680'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/short-note-for-web-services-security.html' title='Short note for Web Services Security API in WSF/PHP 1.3.2'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-2019815402088930252</id><published>2008-08-17T08:26:00.001-07:00</published><updated>2008-08-17T08:26:54.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2 WSF/PHP'/><title type='text'>REST Frameworks for PHP</title><content type='html'>&lt;p&gt;Zend Framework has client and server classes for REST. &lt;a href="http://wso2.org/library/3261"&gt;WSO2 WSF/PHP too has comprehensive support for REST&lt;/a&gt;, both client and services. &lt;/p&gt;  &lt;p&gt;If your requirements are simple and you are just starting to use REST services, Zend Framework would be a good choice to start with. But if you are going form design to implementation and your application is of enterprise grade, then you have to consider WSO2 WSF/PHP. WSF/PHP is designed in such a manner that you can map your resource design, along with HTTP verb mapping and custom URI mapping to business operations with minimal effort. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-2019815402088930252?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/2019815402088930252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=2019815402088930252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2019815402088930252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/2019815402088930252'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/rest-frameworks-for-php.html' title='REST Frameworks for PHP'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1621587790969033618</id><published>2008-08-16T08:54:00.001-07:00</published><updated>2008-08-16T08:54:27.037-07:00</updated><title type='text'>PHP Data Services - Integration to next level</title><content type='html'>&lt;p&gt;Related to my yesterday's post on &lt;a href="http://phpwebservices.blogspot.com/2008/08/right-way-to-integrate.html"&gt;integration&lt;/a&gt;, have a look at this post, to get an understanding on &lt;a href="http://samisa-abeysinghe.blogspot.com/2008/08/php-data-services-case-study.html"&gt;getting data as Web services to really work in the real world&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1621587790969033618?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1621587790969033618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1621587790969033618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1621587790969033618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1621587790969033618'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/php-data-services-integration-to-next.html' title='PHP Data Services - Integration to next level'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-3191848235692958151</id><published>2008-08-15T05:49:00.001-07:00</published><updated>2008-08-15T05:49:31.043-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Integration'/><category scheme='http://www.blogger.com/atom/ns#' term='WSO2 WSF/PHP'/><title type='text'>The right way to Integrate</title><content type='html'>&lt;p&gt;Do you integrate you PHP application with other applications out there? Is your portal running with PHP and you leverage other third party applications to make your PHP application rich? And what are the technologies you use there? &lt;/p&gt;  &lt;p&gt;Web services has been used for some time now to solve integration problems, and PHP can use the same technologies. Most application, including Software as a Service (SaS) applications provide Web services APIs, both SOAP and REST. And WSF/PHP form WSO2 provide a very strong set of APIs for this. &lt;/p&gt;  &lt;p&gt;WSO2 itself has an array of PHP based Web applications. The wso2.com corporate Web site, wso2.org developer portal web site as well as an array of other applications that are internal but are integrated to the .com and .org site used an array of PHP applications. And they leverage Web services, and WSF/PHP when it comes to integrate across the various applications. As an example we talks to Jira based support system using Web services API and integrate that to Drupal based developer sites user accounts. &lt;/p&gt;  &lt;p&gt;So, not only that WSO2 develop these great products and contribute those to the community, but WSO2 itself use them in production. You can too...&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-3191848235692958151?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/3191848235692958151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=3191848235692958151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3191848235692958151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/3191848235692958151'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/right-way-to-integrate.html' title='The right way to Integrate'/><author><name>Sami</name><uri>http://www.blogger.com/profile/00210607048713861579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Ste9AaWAyE0/Sz9WFjHwsMI/AAAAAAAAAHY/52VEdK9Hpmk/S220/Samisa.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-1722515919526013705</id><published>2008-08-14T11:04:00.000-07:00</published><updated>2008-08-14T11:08:57.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='message level security'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='https'/><category scheme='http://www.blogger.com/atom/ns#' term='transport security'/><category scheme='http://www.blogger.com/atom/ns#' term='signing'/><title type='text'>Encrypt and Sign your SOAP messages in PHP</title><content type='html'>I wrote a blog about &lt;a href="http://www.dimuthu.org/blog/2008/08/14/encrypt-your-soap-messages-in-php/"&gt;How to Encrypt and Sign your SOAP Messages in PHP&lt;/a&gt;. You can find out the two basic choices you have in securing soap messages + some links on how to develop them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-1722515919526013705?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/1722515919526013705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=1722515919526013705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1722515919526013705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/1722515919526013705'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/encrypt-and-sign-your-soap-messages-in.html' title='Encrypt and Sign your SOAP messages in PHP'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-5833625895220559773</id><published>2008-08-10T20:18:00.000-07:00</published><updated>2008-08-10T20:26:30.919-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='dataservices'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Make your Wordpress Blog a Web Service in Few Steps</title><content type='html'>I wrote a simple guide  in &lt;a href="http://www.dimuthu.org/blog/2008/08/11/make-your-wordpress-blog-a-web-service-in-few-step/"&gt;here&lt;/a&gt; about how to create a Web Service from a Wordpress blog using WSO2 PHP DataServices library&lt;a href="http://www.dimuthu.org/blog/2008/08/11/make-your-wordpress-blog-a-web-service-in-few-step/"&gt;&lt;/a&gt;.&lt;br /&gt;It doesn't matter what you have is Drupal, Wordpress or Joomla, You can still follow this guide and understand the concept and use of the DataService Library. Without doubt it will assist you to create a web serivce from your existing database strcture without much effort.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-5833625895220559773?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/5833625895220559773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=5833625895220559773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5833625895220559773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/5833625895220559773'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/make-your-wordpress-blog-web-service-in.html' title='Make your Wordpress Blog a Web Service in Few Steps'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4315194664429455135.post-6692908659250292491</id><published>2008-08-06T19:39:00.000-07:00</published><updated>2008-08-06T20:31:57.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='third party hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='installation'/><category scheme='http://www.blogger.com/atom/ns#' term='wsf.home'/><category scheme='http://www.blogger.com/atom/ns#' term='dreamhost'/><category scheme='http://www.blogger.com/atom/ns#' term='relative dir'/><category scheme='http://www.blogger.com/atom/ns#' term='php.ini'/><category scheme='http://www.blogger.com/atom/ns#' term='WSF/PHP'/><title type='text'>Installing wsf/php in a third party hosting environment</title><content type='html'>If you have a third party hosting environment and you want to use &lt;a href="http://wso2.org/projects/wsf/php"&gt;wsf/php &lt;/a&gt;extension, you have to set to deploy the PHP as cgi-based and not through traditional mod_php. That way you will be able to use custom php.ini and configure wsf/php installation. Make sure to check whether your hosting service have capability to deploy cgi-based php and any documentation for that.  For an example &lt;a href="http://dreamhost.com/"&gt;dreamhost&lt;/a&gt; provides following documentation for that. &lt;a href="http://wiki.dreamhost.com/Custom_PHP.ini"&gt;http://wiki.dreamhost.com/Custom_PHP.ini&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There may be some hosting environments (Here I mean hosting services deployed php in linux based systems) that you are not have permission to read root directories. So in such cases you have to set the extension_dir entry in the php.ini relative to the cgi-bin directory in your document root. But wsf/php 1.3.2 and lower versions having a problem of not loading wsf.home directory when you are using WSClient class. But it works well for WSService by default.&lt;br /&gt;&lt;br /&gt;You can solve this problem by putting the following code right before you use WSClient.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$script_dir&lt;/span&gt; = &lt;a href="http://www.php.net/dirname"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;dirname&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$_SERVER&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;[&lt;/span&gt;'PHP_SELF'&lt;span style="color: rgb(102, 204, 102);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$htdocs_dir&lt;/span&gt; = '.'.&lt;a href="http://www.php.net/preg_replace"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;'/&lt;span style="color: rgb(102, 204, 102);"&gt;[&lt;/span&gt;^\\/'&lt;span style="color: rgb(102, 204, 102);"&gt;]&lt;/span&gt;+/, '..', &lt;span style="color: rgb(0, 0, 255);"&gt;$script_dir&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$cgibin_dir&lt;/span&gt; = &lt;span style="color: rgb(0, 0, 255);"&gt;$htdocs_dir&lt;/span&gt;.'/cgi-bin';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.php.net/chdir"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;chdir&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$cgibin_dir&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;For an example if you put the above code to the echo client in sample directory it would be like,&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$requestPayloadString&lt;/span&gt; = &amp;lt;&amp;lt;&amp;lt;XML&lt;br /&gt;&lt;span style="font-weight: bold;color:black;" &gt;&amp;lt;ns1:echoString&lt;/span&gt; xmlns:ns1=http://php.axis2.org/samples&lt;span style="font-weight: bold;color:black;" &gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;&amp;lt;text&lt;span style="font-weight: bold;color:black;" &gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Hello World!&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;&amp;lt;/text&lt;span style="font-weight: bold;color:black;" &gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;&amp;lt;/ns1:echoString&lt;span style="font-weight: bold;color:black;" &gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;XML;&lt;br /&gt;&lt;br /&gt;try &lt;span style="color: rgb(102, 204, 102);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$script_dir&lt;/span&gt; = &lt;a href="http://www.php.net/dirname"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;dirname&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$_SERVER&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;PHP_SELF&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;&lt;span style="color: rgb(102, 204, 102);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$htdocs_dir&lt;/span&gt; = &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;.&lt;a href="http://www.php.net/preg_replace"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;/&lt;span style="color: rgb(102, 204, 102);"&gt;[&lt;/span&gt;^\\/&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;&lt;span style="color: rgb(102, 204, 102);"&gt;]&lt;/span&gt;+/, &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;..&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;, &lt;span style="color: rgb(0, 0, 255);"&gt;$script_dir&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$cgibin_dir&lt;/span&gt; = &lt;span style="color: rgb(0, 0, 255);"&gt;$htdocs_dir&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;/cgi-bin&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.php.net/chdir"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;chdir&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$cgibin_dir&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$client&lt;/span&gt; = &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; WSClient&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;a href="http://www.php.net/array"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt; to =&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;http:&lt;span style="color: rgb(128, 128, 128); font-style: italic;"&gt;//test.dimuthu.org/samples/echo_service.php&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;&lt;span style="color: rgb(128, 128, 128); font-style: italic;"&gt; ));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$responseMessage&lt;/span&gt; = &lt;span style="color: rgb(0, 0, 255);"&gt;$client&lt;/span&gt;-&amp;gt;&lt;span style="color: rgb(0, 102, 0);"&gt;request&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;$requestPayloadString&lt;/span&gt; &lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.php.net/printf"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;printf&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;Response = &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;%s &amp;lt;br&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;, &lt;a href="http://www.php.net/htmlspecialchars"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;htmlspecialchars&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$responseMessage&lt;/span&gt;-&amp;gt;&lt;span style="color: rgb(0, 102, 0);"&gt;str&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;}&lt;/span&gt; catch &lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;Exception &lt;span style="color: rgb(0, 0, 255);"&gt;$e&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(102, 204, 102);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(177, 177, 0);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;$e&lt;/span&gt; instanceof WSFault&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(102, 204, 102);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;a href="http://www.php.net/printf"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;printf&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;Soap Fault: &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;%s\\n&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;, &lt;span style="color: rgb(0, 0, 255);"&gt;$e&lt;/span&gt;-&amp;gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Reason&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(177, 177, 0);"&gt;else&lt;/span&gt; &lt;span style="color: rgb(102, 204, 102);"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;a href="http://www.php.net/printf"&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;printf&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;Message = "%s\\n&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;,&lt;span style="color: rgb(0, 0, 255);"&gt;$e&lt;/span&gt;-&amp;gt;&lt;span style="color: rgb(0, 102, 0);"&gt;getMessage&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="font-weight: bold;color:black;" &gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4315194664429455135-6692908659250292491?l=phpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpwebservices.blogspot.com/feeds/6692908659250292491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4315194664429455135&amp;postID=6692908659250292491' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6692908659250292491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4315194664429455135/posts/default/6692908659250292491'/><link rel='alternate' type='text/html' href='http://phpwebservices.blogspot.com/2008/08/installing-wsfphp-in-third-party.html' title='Installing wsf/php in a third party hosting environment'/><author><name>Dimuthu</name><uri>http://www.blogger.com/profile/14112312266389635163</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_n7NySRx9WK4/SJ2sLQrzCrI/AAAAAAAAAvQ/NNJy5GlaHY4/s1600-R/dimuthu_g.gif'/></author><thr:total>2</thr:total></entry></feed>
