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

<channel>
	<title>Dimuthu's Blog &#187; WS-*</title>
	<atom:link href="http://www.dimuthu.org/tag/ws/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dimuthu.org</link>
	<description>Waiting for your comments</description>
	<lastBuildDate>Wed, 21 Dec 2011 05:39:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
  <link>http://www.dimuthu.org</link>
  <url>http://www.dimuthu.org/favicon.ico</url>
  <title>Dimuthu's Blog</title>
</image>
		<item>
		<title>WSO2 Releases Web Service Framework For C++</title>
		<link>http://www.dimuthu.org/blog/2009/07/29/wso2-releases-web-service-framework-for-cpp/</link>
		<comments>http://www.dimuthu.org/blog/2009/07/29/wso2-releases-web-service-framework-for-cpp/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 02:15:53 +0000</pubDate>
		<dc:creator>dimuthu</dc:creator>
				<category><![CDATA[REST]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[WSDL]]></category>
		<category><![CDATA[wsf/c++]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[WS-*]]></category>

		<guid isPermaLink="false">http://www.dimuthu.org/?p=1013</guid>
		<description><![CDATA[WSO2 announced the release of the Web Services Framework for C++ (WSF/C++) version 2.0.0. Similar to WSF/PHP which is really popular among the PHP community, WSF/CPP is the C++ language binding for the Apache Axis2/C and the other supporting web services projects like Apache Sandesha/C, Apache Rampart/C. With this release C++ developers will be able [...]]]></description>
			<content:encoded><![CDATA[<p>WSO2 announced the release of the <a href="http://wso2.org/projects/wsf/cpp">Web Services Framework for C++ (WSF/C++)</a> version 2.0.0. Similar to <a href="http://wso2.org/projects/wsf/php">WSF/PHP</a> which is really popular among the PHP community, WSF/CPP is the C++ language binding for the Apache Axis2/C and the other supporting web services projects like Apache Sandesha/C, Apache Rampart/C.</p>
<p>With this release C++ developers will be able to write web services and web service clients to inter-op with .NET/Java/PHP or any other platform built-on web service standards. The release is shiped with a code generation tool that will be used to generate the code for skeletons and stubs from a WSDL, so developers only need to concentrate on their business logic as the generated code will take care of building or parsing xmls and running them on top of the framework.<br />
Here are the key features of the new release.</p>
<ol>
<li>Support core web service standards like SOAP 1.1, SOAP 1.2, WSDL 1.1, WSDL 2.0, REST</li>
<li>Support for web services QoS specifications.
<ul>
<li>WS-Addressing</li>
<li>WS-Security</li>
<li>WS-Policy</li>
<li>WS-Security-Policy</li>
<li>WS-Reliable-Messaging</li>
</ul>
</li>
<li>Support binary attachment with MTOM and SWA (With the Support for large binaries)</li>
<li>Code generation tool.</li>
<li>Proven interoperability with .NET.</li>
</ol>
<p>As a side note, you will be able to participate to a free summer school training session on the WSF/CPP conducted by<a href="http://nandikajayawardana.blogspot.com/"> Nandika Jayawardane</a> who is the project lead of both WSF/CPP and WSF/PHP on 30th July. You can register to it (for free) from <a href="http://wso2.org/training/cpp_in_soa">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dimuthu.org/blog/2009/07/29/wso2-releases-web-service-framework-for-cpp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Article Introducing PHP Data Services</title>
		<link>http://www.dimuthu.org/blog/2009/01/05/article-introducing-php-data-services/</link>
		<comments>http://www.dimuthu.org/blog/2009/01/05/article-introducing-php-data-services/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 13:06:55 +0000</pubDate>
		<dc:creator>dimuthu</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[DataServices]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tutorial/Guide]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[WSDL]]></category>
		<category><![CDATA[wsf/php]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[introduction]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[WS-*]]></category>
		<category><![CDATA[ws-security]]></category>

		<guid isPermaLink="false">http://www.dimuthu.org/?p=900</guid>
		<description><![CDATA[Now you can view the article I wrote titling &#8220;Introduction to PHP Data Services&#8220;. There I explain how you can design and implement Data Services in PHP using WSF/PHP Data Services Library. This article covers, Designing your Data Service API. Writing the Data Service. Deploying and Testing Data Service. Make the Data Service available in [...]]]></description>
			<content:encoded><![CDATA[<p>Now you can view the article I wrote titling &#8220;<a href="http://wso2.org/library/articles/introduction-php-data-services">Introduction to PHP Data Services</a>&#8220;. There I explain how you can design and implement Data Services in PHP using <a href="http://wso2.org/projects/wsf/php">WSF/PHP</a> Data Services Library.</p>
<p>This article covers,</p>
<ol>
<li>Designing your Data Service API.</li>
<li>Writing the Data Service.</li>
<li>Deploying and Testing Data Service.</li>
<li>Make the Data Service available in both SOAP and RESTful form.</li>
<li>Use of WS-* features in your Data Service.</li>
</ol>
<p>If you are thinking of adapting SOA in to your database backed PHP applications, this article will be a good starting point.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dimuthu.org/blog/2009/01/05/article-introducing-php-data-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOA Way of Writing PHP</title>
		<link>http://www.dimuthu.org/blog/2008/09/20/soa-way-of-writing-php/</link>
		<comments>http://www.dimuthu.org/blog/2008/09/20/soa-way-of-writing-php/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 20:08:41 +0000</pubDate>
		<dc:creator>dimuthu</dc:creator>
				<category><![CDATA[DataServices]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Tutorial/Guide]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[wsf/php]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[Figures]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Traditionl]]></category>
		<category><![CDATA[WS-*]]></category>

		<guid isPermaLink="false">http://www.dimuthu.org/?p=331</guid>
		<description><![CDATA[Traditional way of Writing PHP Let me draw a component diagram of a typical traditional(conventional) PHP web application. With this design you get the advantages of the client-server architecture and the MVC design pattern. Advantages of the Traditional Approach You can connect to the server from anywhere that has the connectivity to the centralized server. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Traditional way of Writing PHP</strong><br />
Let me draw a component diagram of a typical traditional(conventional) PHP web application.<a href="http://www.dimuthu.org/wp-content/uploads/2008/09/mvc.jpg"><img class=" wp-image-335" style="border: 0px;" title="MVC Architecture Model" src="http://www.dimuthu.org/wp-content/uploads/2008/09/mvc.jpg" alt="MVC Architecture Model" width="630" height="280" /></a></p>
<p>With this design you get the advantages of the client-server architecture and the MVC design pattern.</p>
<p><strong>Advantages of the Traditional Approach</strong></p>
<ul>
<li>You can connect to the server from anywhere that has the connectivity to the centralized server. Say you process purchase orders in your application. Sails agents, customers around the world can connect to the application from their computers and do purchase orders. (Because of the Client-Server Architecture)<a href="http://www.dimuthu.org/wp-content/uploads/2008/09/star_network1.jpg"><img class=" wp-image-336" style="border: 0px;" title="client-server architecture" src="http://www.dimuthu.org/wp-content/uploads/2008/09/star_network1.jpg" alt="client-server architecture" width="630" height="420" /></a></li>
<li>Doing Changes to the inside of the components (Model, View and Controller) are relatively easy , because of the separation of the logics. But if changes affect to inter-communication of each component then it become harder because of the low granularity. (check disadvantages)</li>
</ul>
<p>Are their any disadvantages of this approach?<br />
Yes. There are plenty of them. Actually it is lot more than the advantages list.</p>
<p><strong>Disadvantages of the Traditional Approach</strong></p>
<ul>
<li><strong>More Server load:</strong> The only server is responsible for maintenance of all the components. And there is no straight forward way to distribute these components in a network.</li>
<li><strong>No Interoperability:</strong> Can I replace the PHP Presentation layer with a .NET, C, Java Desktop Application with this design? No. PHP components (Model, View, Controller) are communicated in PHP code level through php function calls or may be through PHP object interactions, If you want to integrate .NET/Java to replace one component, you have to change all these function calls, object passings with each components.<br />
<a href="http://www.dimuthu.org/wp-content/uploads/2008/09/nointeroperable.jpg"><img class="size-full wp-image-337" style="border: 0px;" title="non-interoperability" src="http://www.dimuthu.org/wp-content/uploads/2008/09/nointeroperable.jpg" alt="non-interoperability" /></a></li>
<li><strong>Fine Grained Interfaces</strong>: Even when I want to replace some component with another PHP implementation, it is still very difficult to integrate to the running system because of the fine-grained interfaces (Lot of small operations) used in the inter-component communication.<br />
Mostly this issue comes when integrating new business component to existing business logic within the controller logic. The below is just a figure to demonstrate what is meant by fine-grained interface.<br />
<a href="http://www.dimuthu.org/wp-content/uploads/2008/09/finegrained.jpg"><img class="size-full wp-image-339" style="border: 0px;" title="fine-grained-services" src="http://www.dimuthu.org/wp-content/uploads/2008/09/finegrained.jpg" alt="fine-grained-services" /></a><br />
This causes the application to be slow (more message exchange =&gt; more time on the wire =&amp;t; lesser speed), more traffic to the server and most importantly very hard to make interfaces consistent. (There can be many additions and removals of small operations over the time). Check <a href="http://www.ibm.com/developerworks/library/ws-soa-granularity/index.html">this</a> to learn more about granularity.</li>
<li><strong>Business Process Automation (BPA) is impossible:</strong> Your partner companies can not purchase your products through their systems. Because they are only given a browser interface, which need human interaction. You should provide some remote interface to allow their computers to talk to your systems.<br />
<a href="http://www.dimuthu.org/wp-content/uploads/2008/09/manualsystem.jpg"><img class="size-full wp-image-340" style="border: 0px;" title="bpa-impossibility" src="http://www.dimuthu.org/wp-content/uploads/2008/09/manualsystem.jpg" alt="bpa-impossibility" /></a><br />
For BPA, interoperability is really important. Because your partner company may run on completely different platform and use completely different languages. I already proved traditional design will not suit to situation where interoperability is need.</li>
<li><strong>Lack of security:</strong> With the above approach you have to depend on the transport level security, which is handled by your OS. There can be applications (malicious codes) run top of your OS which have back doors to these information. So for business critical messages you need to have message level security (application to application security) which secure the messages by application itself .</li>
<li><strong>Lack of reliability:</strong> In any case if the connection is lost, will my messages completely lost?. Here too you depend on the transport level reliability which you don&#8217;t have much control of.</li>
</ul>
<p>So now lets turn to our main topic.</p>
<p><strong>SOA Way of Writing PHP</strong></p>
<p><a href="http://www.dimuthu.org/wp-content/uploads/2008/09/soa_model.jpg"><img class=" wp-image-341" style="border: 0px;" title="SOA Model" src="http://www.dimuthu.org/wp-content/uploads/2008/09/soa_model.jpg" alt="SOA Model" width="630" height="420" /></a></p>
<p>With SOA, you application is no longer presenting the &#8216;View&#8217; component directly. Instead it provides your business operations as a Web Service. You may implement a View with PHP using this web service. This approach allows you to implement View not only in PHP but also in other languages like .NET, Java or C as web application or desktop applications.</p>
<p>The business logic access the Data Layer through a Data Service. Simmilarly It can use third party Data services, Web Services to extract out the Data needed in the business process.</p>
<p>Let&#8217;s see how it helps you to solve the problems arouse in the traditional approach.</p>
<ul>
<li><strong>Less Server load</strong>: The SOA components are natively distributed. You don&#8217;t need to process the View and the Data in the same server you process the Buisness Logic.</li>
<li><strong>High Interoperability:</strong> SOA communication happens through Web Services which is a standard protocol. There are implementations for web services in many languages and for many platforms. You can replace any components with any implementation you prefer. For an example you may first write your business logic in PHP, And as the server load goes high, you can write the buisness module in native language (&#8216;C&#8217;) and easily intergreate to the system, without being bother of changing other components.</li>
<li><strong>Coarse grained Interfaces:</strong> The latest web services standards (e.g. WSDL 2.0) enforce the use of documents for messaging rather than invoking remote procedures. This causes the system to be consistent, maintainable and more responsive.</li>
<li><strong>Business Process Automation:</strong> Web service provide a platform to machine to machine communication. With the availability of interoperability two companies who use different implementations can communicate easily</li>
<li><strong>Security:</strong> With a WS-Security implementation you can get message level security in your application. For PHP developers there were no implementation or library that can provide  WS-Security sometime ago. But as <a href="http://wso2.org/projects/wsf/php">WSF/PHP</a> is launched with many implementations for WS-* stack, that gap was closed.</li>
<li><strong>Reliability</strong>: With the WS-Reliable Messaging you can make sure a reliable communication at the application layer. You can use WSF/PHP to do reliable messaging in PHP</li>
</ul>
<p>As your business get more complicated you can divide the logic too in to several service components as you do with data and view components. This allows you to extend your application very easily. Here is a rough design of an enterprise SOA application that you may have seen in Java and .NET paradigms. And it is time to see more of these in PHP space as well.</p>
<p><a href="http://www.dimuthu.org/wp-content/uploads/2008/09/soa_design.jpg"><img class=" wp-image-345" style="border: 0px;" title="SOA design" src="http://www.dimuthu.org/wp-content/uploads/2008/09/soa_design.jpg" alt="SOA design" width="630" height="280" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dimuthu.org/blog/2008/09/20/soa-way-of-writing-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WSO2 WSF/PHP 2.0.0 Just Released!</title>
		<link>http://www.dimuthu.org/blog/2008/09/12/wso2-wsfphp-200-just-released/</link>
		<comments>http://www.dimuthu.org/blog/2008/09/12/wso2-wsfphp-200-just-released/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 10:29:52 +0000</pubDate>
		<dc:creator>dimuthu</dc:creator>
				<category><![CDATA[wsf/php]]></category>
		<category><![CDATA[wso2]]></category>
		<category><![CDATA[2.0.0]]></category>
		<category><![CDATA[data services]]></category>
		<category><![CDATA[DataService]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[WS-*]]></category>

		<guid isPermaLink="false">http://www.dimuthu.org/?p=253</guid>
		<description><![CDATA[We have been waiting for a while to do the WSF/PHP 2.0.0 release with a bundle of new features. We took time to test all the features and to make sure they are working smoothly. And it is heavily tested for the interoperability specially with .NET for WS-Security and WS-Reliable Messaging scenarios. And the newly [...]]]></description>
			<content:encoded><![CDATA[<p>We have been waiting for a while to do the <a href="http://wso2.org/projects/wsf/php">WSF/PHP 2.0.0</a> release with a bundle of new features. We took time to test all the features and to make sure they are working smoothly. And it is heavily tested for the interoperability specially with .NET for WS-Security and WS-Reliable Messaging scenarios. And the newly added Data Services library will be a great tool for the PHP community to bring their LAMP/WAMP applications to the SOA platform. WSF/PHP 2.0.0 is not just a SOAP library. It is ready for the RESTful applications as well with the improved support for HTTP verbs.</p>
<p>Here is the list of new features introduced in this release</p>
<ul>
<li>Added PKCS12 Keystore Support</li>
<li>Added Secure Conversation Support</li>
<li>Added Replay Detection Support</li>
<li>Contract First Web Services support for MTOM</li>
<li>SWA ( Soap With Attachments ) Support added</li>
<li>MTOM Attachment caching support added</li>
<li>HTTP Chunking support added</li>
<li>REST API Improved to support HTTP verbs GET,DELETE,PUT and POST</li>
<li>New PHP Data Services Solution</li>
<li>WS-RM 1.1 added</li>
</ul>
<p>Have look at the <a href="http://wso2.org/project/wsf/php/2.0.0/release-note.html">WSF/PHP 2.0.0 Official Release Note</a> for the complete feature list</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dimuthu.org/blog/2008/09/12/wso2-wsfphp-200-just-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

