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

<channel>
	<title>Engwar</title>
	<atom:link href="http://engwar.com/feed" rel="self" type="application/rss+xml" />
	<link>http://engwar.com</link>
	<description>Chintana Wilamuna&#039;s weblog</description>
	<lastBuildDate>Wed, 30 Nov 2011 13:28:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Testing Cassandra write performance</title>
		<link>http://engwar.com/post/656?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=testing-cassandra-write-performance</link>
		<comments>http://engwar.com/post/656#comments</comments>
		<pubDate>Wed, 30 Nov 2011 13:28:16 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[cassandra]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=656</guid>
		<description><![CDATA[With below tests I was trying to measure Cassandra write performance. First off this is probably not a good performance comparison for a number of reasons. Main one being I was running this on my laptop. If you ran this &#8230; <a href="http://engwar.com/post/656">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With below tests I was trying to measure Cassandra write performance. First off this is probably not a good performance comparison for a number of reasons. Main one being I was running this on my laptop. If you ran this on server grade hardware with a tuned Cassandra setup you probably would get higher numbers. That being said, this was done to get a general idea about write performance in Cassandra &#8216;cos &#8220;You can&#8217;t do much without measuring&#8221;.</p>
<p>My setup was,</p>
<ul>
<li>Cassandra running in a VirtualBox VM with default parameters. Only the data directories were changed</li>
<li>VM was running Kubuntu 11.04</li>
<li>JDK 1.6.0_27</li>
<li>JVM was not warmed up before carrying out the test. I started Cassandra with an empty keyspace for each case</li>
<li>I was <a href="https://svn.wso2.org/repos/wso2/scratch/cassandraBackedRegistry">testing the code hosted here</a></li>
</ul>
<p>Here&#8217;s how the three column families look like.</p>
<p>REGData column family,</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/regdata-CF.png"><img src="http://engwar.com/wp-content/uploads/2011/11/regdata-CF.png" alt="" title="regdata-CF" width="640" height="383" class="aligncenter size-full wp-image-658" /></a></p>
<p>PropertyIndex column family,</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/propertyindex-CF.png"><img src="http://engwar.com/wp-content/uploads/2011/11/propertyindex-CF.png" alt="" title="propertyindex-CF" width="640" height="223" class="aligncenter size-full wp-image-659" /></a></p>
<p>TagIndex column family,</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/tagindex-CF.png"><img src="http://engwar.com/wp-content/uploads/2011/11/tagindex-CF.png" alt="" title="tagindex-CF" width="640" height="232" class="aligncenter size-full wp-image-660" /></a></p>
<p>Here are the results,</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/cassandra-0-8-6.png"><img src="http://engwar.com/wp-content/uploads/2011/11/cassandra-0-8-6.png" alt="" title="cassandra-0-8-6" width="559" height="359" class="aligncenter size-full wp-image-669" /></a></p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/cassandra-1.0.2.png"><img src="http://engwar.com/wp-content/uploads/2011/11/cassandra-1.0.2.png" alt="" title="cassandra-1.0.2" width="562" height="355" class="aligncenter size-full wp-image-670" /></a></p>
<p>The graphs looks very similar. However Cassandra 1.0.2 is has faster write speeds. Here are the raw data. T in the graph represent number of tags and P number of properties.</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/cassandra-0-8-6-data.png"><img src="http://engwar.com/wp-content/uploads/2011/11/cassandra-0-8-6-data.png" alt="" title="cassandra-0-8-6-data" width="561" height="390" class="aligncenter size-full wp-image-671" /></a></p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/cassandra-1-0-2-data.png"><img src="http://engwar.com/wp-content/uploads/2011/11/cassandra-1-0-2-data.png" alt="" title="cassandra-1-0-2-data" width="562" height="390" class="aligncenter size-full wp-image-672" /></a></p>
<p>Sudden spike in write speed increase is a bit scary. That can be due to I/O bottleneck in the machine. At that point my disk started grinding heavily. During the time of the tests, I didn&#8217;t do any other disk intensive tasks. On server grade hardware with a few fast disks results might be different. Radically even.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/656/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a signed message with .Net WCF</title>
		<link>http://engwar.com/post/636?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=creating-a-signed-message-with-net-wcf</link>
		<comments>http://engwar.com/post/636#comments</comments>
		<pubDate>Sun, 13 Nov 2011 02:59:13 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[wcf]]></category>
		<category><![CDATA[ws-security]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=636</guid>
		<description><![CDATA[A step by step guide to create a signed message with .Net WCF and consume a service secured service written in Java. Service can be implemented in any language as long as it support standard WS-Security standards. In order to &#8230; <a href="http://engwar.com/post/636">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A step by step guide to create a signed message with .Net WCF and consume a service secured service written in Java. Service can be implemented in any language as long as it support standard WS-Security standards. In order to have a service running in minutes and applying security I&#8217;ll be using <a href="http://wso2.com/products/enterprise-service-bus/">WSO2 ESB</a>.</p>
<ol>
<li>Certificates. We&#8217;ll be using two certificates for signing. We&#8217;ll create a private/public keypair in the client side and import the client&#8217;s public key to server. Likewise, we&#8217;ll import server&#8217;s public key to the machine running the client.</li>
<li>First let&#8217;s create a key pair to be used in the client,
<pre>
makecert -r -pe -n "CN=mycert" -sky exchange -sv mycert.pvk mycert.cer
</pre>
<p>This will create a private and public key pair. Next we need to import this into Windows certificate store. In order to do that we need to convert our key pair to PFX format which includes both the private and the public key,</p>
<pre>
pvk2pfx -pvk mycert.pvk -spc mycert.cer -pfx mycert.pfx
</pre>
<p>Now, run mmc and add a certificate snap-in for the Local Computer. Browse into Trusted People and import mycert.pfx. Just click next when it asks for the private key password.
</li>
<li>We have set the certificates for the client. Next we have to extract server&#8217;s public key and import it into Windows certificate store. Since I&#8217;m going to use WSO2 ESB for the server side, we need to extract the public key from the Java keystore that&#8217;s being used by the ESB. Browse to &lt;ESB HOME&gt;\repository\resources\security and give the following command. Java needs to be in your PATH. When prompted type &#8220;wso2carbon&#8221; as the keystore password.
<pre>
keytool -keystore wso2carbon.jks -export -alias localhost -file localhost.cer
</pre>
<p>Import localhost.cer into Trusted People just like before.
</li>
<li>Now we need to import the client&#8217;s public key to the server. Start the ESB by double clicking wso2server.bat. Browse into https://localhost:9443 and login with admin/admin. Click Configure -&gt; Key Stores.
<p><a href="http://engwar.com/wp-content/uploads/2011/11/select-keystore.png"><img src="http://engwar.com/wp-content/uploads/2011/11/select-keystore.png" alt="" title="select-keystore" width="243" height="340" class="aligncenter size-full wp-image-639" /></a></p>
<p> Click Import Cert</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/import-cert.png"><img src="http://engwar.com/wp-content/uploads/2011/11/import-cert.png" alt="" title="import-cert" width="242" height="55" class="aligncenter size-full wp-image-640" /></a></p>
<p> and browse and select mycert.cer we just created and click Import.</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/browse-cert-and-import.png"><img src="http://engwar.com/wp-content/uploads/2011/11/browse-cert-and-import.png" alt="" title="browse-cert-and-import" width="512" height="115" class="aligncenter size-full wp-image-641" /></a></p>
</li>
<li>We&#8217;re done setting up certificates. Let&#8217;s create a simple secure service. Luckily ESB ships an echo service which when you send a message, echoes it back. Click Main -&gt; List (under Web Services).
<p><a href="http://engwar.com/wp-content/uploads/2011/11/select-list-ws.png"><img src="http://engwar.com/wp-content/uploads/2011/11/select-list-ws.png" alt="" title="select-list-ws" width="244" height="264" class="aligncenter size-full wp-image-642" /></a></p>
<p>Here you see a list of web services. In front of the echo service you&#8217;ll see a link saying &#8220;Unsecured&#8221;. </p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/unsecured-echo.png"><img src="http://engwar.com/wp-content/uploads/2011/11/unsecured-echo.png" alt="" title="unsecured-echo" width="518" height="54" class="aligncenter size-full wp-image-643" /></a></p>
<p>Click it and select &#8220;yes&#8221; from the drop down to apply security for the echo service.</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/enable-security.png"><img src="http://engwar.com/wp-content/uploads/2011/11/enable-security.png" alt="" title="enable-security" width="214" height="67" class="aligncenter size-full wp-image-644" /></a></p>
<p>Here you&#8217;ll see a list of pre-configured security scenarios. We&#8217;ll be using number 2, Non-Repudiation under Basic Scenarios. Select it and click Next.</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/select-non-repudiation.png"><img src="http://engwar.com/wp-content/uploads/2011/11/select-non-repudiation.png" alt="" title="select-non-repudiation" width="229" height="136" class="aligncenter size-full wp-image-645" /></a></p>
<p>Select wso2carbon.jks as a trusted keystore and click Finish. Echo service is secured now.</p>
<p><a href="http://engwar.com/wp-content/uploads/2011/11/select-trusted-keystore.png"><img src="http://engwar.com/wp-content/uploads/2011/11/select-trusted-keystore.png" alt="" title="select-trusted-keystore" width="166" height="186" class="aligncenter size-full wp-image-646" /></a>
</li>
<li>We created and setup certificates and now have a secured service. Open up Visual Studio and create a new console application. You can create any kind of project but I&#8217;d prefer to create console apps for testing these type of scenarios.</li>
<li>Add a Service Reference to your project. WSDL file for the service is located at http://localhost:8280/services/echo?wsdl</li>
<li>For the binding that you&#8217;ll be using you have to configure security,
<pre class="prettyprint ">
&lt;security defaultAlgorithmSuite=&quot;Default&quot; authenticationMode=&quot;MutualCertificateDuplex&quot;
    requireDerivedKeys=&quot;false&quot; securityHeaderLayout=&quot;Lax&quot; includeTimestamp=&quot;true&quot;
    keyEntropyMode=&quot;CombinedEntropy&quot; messageProtectionOrder=&quot;SignBeforeEncrypt&quot;
    messageSecurityVersion=&quot;Default&quot; requireSignatureConfirmation=&quot;false&quot;&gt;
&lt;localClientSettings cacheCookies=&quot;true&quot; detectReplays=&quot;true&quot;
    replayCacheSize=&quot;900000&quot; maxClockSkew=&quot;00:05:00&quot; maxCookieCachingTime=&quot;Infinite&quot;
    replayWindow=&quot;00:05:00&quot; sessionKeyRenewalInterval=&quot;10:00:00&quot;
    sessionKeyRolloverInterval=&quot;00:05:00&quot; reconnectTransportOnFailure=&quot;true&quot;
    timestampValidityDuration=&quot;00:05:00&quot; cookieRenewalThresholdPercentage=&quot;60&quot; /&gt;
&lt;localServiceSettings detectReplays=&quot;true&quot; issuedCookieLifetime=&quot;10:00:00&quot;
    maxStatefulNegotiations=&quot;128&quot; replayCacheSize=&quot;900000&quot; maxClockSkew=&quot;00:05:00&quot;
    negotiationTimeout=&quot;00:01:00&quot; replayWindow=&quot;00:05:00&quot; inactivityTimeout=&quot;00:02:00&quot;
    sessionKeyRenewalInterval=&quot;15:00:00&quot; sessionKeyRolloverInterval=&quot;00:05:00&quot;
    reconnectTransportOnFailure=&quot;true&quot; maxPendingSessions=&quot;128&quot;
    maxCachedCookies=&quot;1000&quot; timestampValidityDuration=&quot;00:05:00&quot; /&gt;
&lt;secureConversationBootstrap /&gt;
&lt;/security&gt;
</pre>
</li>
<li>Your actual service should looks like this,
<pre class="prettyprint ">
static void Main(string[] args)
{
    svc.echoPortTypeClient echo = new svc.echoPortTypeClient(&quot;echoHttpSoap11Endpoint&quot;);

    echo.ClientCredentials.ServiceCertificate.SetDefaultCertificate(
       System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine,
       System.Security.Cryptography.X509Certificates.StoreName.TrustedPeople,
       System.Security.Cryptography.X509Certificates.X509FindType.FindBySubjectName, &quot;localhost&quot;);

    echo.ClientCredentials.ClientCertificate.SetCertificate(
        System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine,
        System.Security.Cryptography.X509Certificates.StoreName.TrustedPeople,
        System.Security.Cryptography.X509Certificates.X509FindType.FindBySubjectName, &quot;mycert&quot;);

    System.Console.WriteLine(echo.echoString(&quot;hello&quot;));
    System.Console.ReadLine();
}
</pre>
<p>Note that we set the correct service and client certificates. As you can see I&#8217;m using an HTTP endpoint. This is useful to test the messages going through a tool like <a href="http://ws.apache.org/commons/tcpmon/">TCPMon</a>. When you have the scenario working you can just switch to the HTTPS endpoint.
</li>
</ol>
<p>Useful references,</p>
<ul>
<li>Various ways to create private/public keypairs &#8211; <a href="http://code.google.com/apis/apps/articles/sso-keygen.html">http://code.google.com/apis/apps/articles/sso-keygen.html</a></li>
<li>Makecert reference &#8211; <a href="http://msdn.microsoft.com/en-us/library/bfsktky3%28v=VS.100%29.aspx">http://msdn.microsoft.com/en-us/library/bfsktky3%28v=VS.100%29.aspx</a></li>
<li>SecurityBindingElement Authentication Modes &#8211; <a href="http://msdn.microsoft.com/en-us/library/aa751836.aspx">http://msdn.microsoft.com/en-us/library/aa751836.aspx</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/636/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java PaaS : Building multitenant applications</title>
		<link>http://engwar.com/post/617?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-paas-building-multitenant-applications</link>
		<comments>http://engwar.com/post/617#comments</comments>
		<pubDate>Tue, 13 Sep 2011 00:06:40 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud apps]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[paas]]></category>
		<category><![CDATA[stratos]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=617</guid>
		<description><![CDATA[This shows you how to write multitenant applications. If you haven&#8217;t already, please read the following two posts before you read this. Those two sets the stage for the rest of this post. Java Paas : Building your first app &#8230; <a href="http://engwar.com/post/617">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This shows you how to write multitenant applications. If you haven&#8217;t already, please read the following two posts before you read this. Those two sets the stage for the rest of this post.</p>
<ol>
<li><a href="http://engwar.com/post/570">Java Paas : Building your first app</a></li>
<li><a href="http://engwar.com/post/578">Java PaaS : Handling authentication in your web apps</a></li>
</ol>
<p>Before proceeding further let me clarify some terms that we&#8217;ll be using . It has become a bit cloudy (no pun intended) since many people mean different things for the same word.</p>
<p>Multitenancy &#8211; In the context of Stratos, I&#8217;m using the word multitenancy to mean as <a href="http://en.wikipedia.org/wiki/Multitenancy">defined in Wikipedia</a>.</p>
<blockquote><p>Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants).</p></blockquote>
<p>When you register and get an account in Stratos, that&#8217;s a tenant. An organization. Your data will be isolated from other tenants/organizations in the system. When you sign up, you&#8217;ll be creating the administrator account for your tenant. Which we naturally refer to as the tenant admin. Tenant admin can add users to your domain, turn off/on various Stratos services such as the ESB, App Server, Data Services Server etc&#8230; Monitor data and bandwidth usage of your users, grant/revoke permissions to users.</p>
<p>Let&#8217;s me take a little step back here. When you talk about Stratos, there are two major deployment scenarios. One that&#8217;s hosted by WSO2. That&#8217;s available to users as a service, you sign up, you get an account, your data is hosted on hardware that we manage. This version is called <a href="http://stratoslive.wso2.com">StratosLive</a>. Other scenario, you setup Stratos on your hardware in your private data center, you control everything it&#8217;s not accessible to anyone else.</p>
<p>2 scenarios. StratosLive vs Stratos on your private cloud.</p>
<p>Now, coming back to multitenancy, there&#8217;s one user we called the <em>super tenant</em>. This acts as an admin account for all the tenants in Stratos.  It&#8217;s configured at the time of setting up Stratos. In StratosLive scenario, super tenant is WSO2. In the other scenario, super tenant is you. You can do stuff which will affect to all the tenants across the system. Why would you need this? It&#8217;s necessary when you&#8217;re developing SaaS applications. You&#8217;re providing a service which all the tenants can use.</p>
<p>In Stratos, to make your applications SaaSify you need to add a context parameter to your deployment descriptor.</p>
<pre class="prettyprint ">
&lt;context-param&gt;
    &lt;param-name&gt;carbon.enable.saas&lt;/param-name&gt;
    &lt;param-value&gt;true&lt;/param-value&gt;
&lt;/context-param&gt;
</pre>
<p>Authentication mechanism will be the standard form based authentication that we configured in the <a href="http://engwar.com/post/570">Jwitter app we developed earlier</a>. This however, does not mean that this is the only thing that you need to build SaaS applications, nor does it allow you to take any existing web app out their and magically turn it to a multitenanted app. For that you need to have a <a href="http://msdn.microsoft.com/en-us/library/aa479086.aspx">multitenant data architecture for you application</a>.</p>
<p>When you add the context parameter and deploy the web application as the super tenant, Stratos will authenticate against any user account in the system that has sufficient permissions. When you call <code>request.getPrincipal().getName()</code>, user account will appear in the format foo@example.com. From this point on it&#8217;s upto you to move to the bits of your application.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/617/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Private cloud and importance of OpenStack</title>
		<link>http://engwar.com/post/613?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=private-cloud-and-importance-of-openstack</link>
		<comments>http://engwar.com/post/613#comments</comments>
		<pubDate>Mon, 12 Sep 2011 04:03:12 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[amazon]]></category>
		<category><![CDATA[openstack]]></category>
		<category><![CDATA[private cloud]]></category>
		<category><![CDATA[stratos]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=613</guid>
		<description><![CDATA[On my last post, I mentioned that it&#8217;s getting more important having a solid open source private cloud solution. Without a doubt OpenStack is getting very good traction from the community, which is a good thing. As it turns out, &#8230; <a href="http://engwar.com/post/613">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://engwar.com/post/607">On my last post</a>, I mentioned that it&#8217;s getting more important having a solid open source private cloud solution. Without a doubt OpenStack is getting very good traction from the community, which is a good thing. As it turns out, for WSO2 Stratos (open source middleware platform as a service for enterprise) a private cloud is a very important part. Specially when most popular public cloud offering, Amazon EC2 is having so many issues.</p>
<p>In WSO2 data center, we run the entire platform on UEC which ships Eucalyptus and we haven&#8217;t seen any of the problems we faced with EC2. Ok, private cloud &#8211; very important.</p>
<p>As a platform as a service, it&#8217;s important to be able to run on top of many IaaS vendors. Same goes for private cloud solutions. So, if Stratos is to be run on OpenStack the auto scaling code should be working. Stratos auto scales on Amazon EC2 that&#8217;s the API that&#8217;s been implemented. It&#8217;s always a pain to support a different API. OpenStack is said to have an EC2 SOAP API but I couldn&#8217;t find the extent to which operations are supported. I&#8217;ll definitely have a definitive answer if I contact one of the devs. This post however was not about that.</p>
<p><a href="http://www.markshuttleworth.com/archives/765">Mark Shuttleworth wrote an excellent blog about some concerns over OpenStack</a>. As Mark correctly observes, it&#8217;s not the right thing to innovate at the API level. As eternal perfectionists it&#8217;s very easy to get into having cleaner and powerful APIs. Then again from a pragmatic perspective it&#8217;s energy that&#8217;s better put into where it matters.</p>
<p>WSO2 Stratos already have a working implementation that is tested. Effort of implementing and testing for another API is going to be time consuming. Whether it&#8217;s a bad or a good API when we have to get it running we&#8217;ll implement it nevertheless.</p>
<p>There are many concerns that needs more attention than having a good API. Higher IO and network throughput comes to the top of the list &#8216;cos that&#8217;s what it matters from a user&#8217;s perspective. It&#8217;s great that people debating this issue and looking to make a difference!</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/613/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Amazon EC2 woes</title>
		<link>http://engwar.com/post/607?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=amazon-ec2-woes</link>
		<comments>http://engwar.com/post/607#comments</comments>
		<pubDate>Sun, 11 Sep 2011 02:10:30 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[amazon]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[iaas]]></category>
		<category><![CDATA[private cloud]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=607</guid>
		<description><![CDATA[Samisa has written a great blog about instability and unpredictability of Amazon EC2 when we ran WSO2 Stratos on it for months. Also, Azeez shares his views which is similar. As a result of Amazon EC2 issues, mainly relating to &#8230; <a href="http://engwar.com/post/607">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://samisa-abeysinghe.blogspot.com/2011/09/cloud-computing-facts-iaas-is-not-prime.html">Samisa has written a great blog about instability and unpredictability of Amazon EC2</a> when we ran WSO2 Stratos on it for months. Also, <a href="http://blog.afkham.org/2011/09/is-paas-on-top-of-iaas-good-idea-after.html">Azeez shares his views which is similar</a>.</p>
<p>As a result of Amazon EC2 issues, mainly relating to unacceptable I/O and network delays hosted version of <a href="http://wso2.com/cloud/stratos/">Stratos</a> which we call <a href="http://stratoslive.wso2.com">StratosLive</a> was so damn slow. Now it&#8217;s hosted on real hardware and the site is way way faster!</p>
<p>In the long run, enterprise-wide software are better off running on real hardware. Investing in more powerful machines. Or horizontally scale with a number of cheap machines. I can see Amazon&#8217;s appeal for a very short term computing problems. Or as Azeez mentioned, cloud bursting for one. <a href="http://open.blogs.nytimes.com/2007/11/01/self-service-prorated-super-computing-fun/">Problems like this infamous article about Amazon EC2 trying to solve</a>. Value you gain for paying exuberant bills for Amazon EC2 is very little at the end of the month. Specially when you&#8217;re running it long term.</p>
<p>IMO, this is one reason why a reliable private cloud infrastructure matters. In my experience open source private cloud software has a lot to improve. The free stuff by VMware is good for playing around. When you need I/O and network performance + provisioning, you have to pay big bucks.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/607/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WSO2Con 2011 &#8211; Must attend sessions</title>
		<link>http://engwar.com/post/592?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wso2con-2011-must-attend-sessions</link>
		<comments>http://engwar.com/post/592#comments</comments>
		<pubDate>Fri, 09 Sep 2011 19:26:12 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[wso2]]></category>
		<category><![CDATA[wso2con]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=592</guid>
		<description><![CDATA[WSO2Con 2011 is just around the corner. This time packed with great set of sessions and lots of entertainment. So the question is what would be the top five talks that you would be attending to. That&#8217;s not easy. Samisa, &#8230; <a href="http://engwar.com/post/592">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wso2.com/events/wso2con-2011-colombo/">WSO2Con 2011</a> is just around the corner. This time packed with great set of sessions and lots of entertainment. So the question is what would be the top five talks that you would be attending to. That&#8217;s not easy. <a href="http://samisa-abeysinghe.blogspot.com/2011/09/wso2con-2011-5-dont-miss-talks-by-wso2.html">Samisa</a>, <a href="http://asanka.abeysinghe.org/2011/09/my-5-sessions-at-wso2con-2011.html">Asanka</a> and <a href="http://jonathanmarsh.net/2011/09/07/five-dont-miss-things-at-wso2con-2011/">Jonathan</a> has written about their favorite talks. Top five picks that I would be looking forward to hearing would be,</p>
<ul>
<li><em>Using WSO2 ESB with SAP ERP (Retail)</em> by <a href="http://wso2.com/events/wso2con-2011-colombo/speakers/#harshas">Harsha</a> &#8211; John Keels Holding PLC is one of the largest conglomerate in Sri Lanka. As a public liability company it&#8217;s really interesting how they went about adopting open source middleware products into their core business processes. As the person who spearheaded the effort and provided guidance for the team, Harsha&#8217;s talk is going to be interesting providing practical insights into the whole project</li>
<li><em>Building Cool Applications with WSO2 StratosLive</em> by <a href="http://wso2.com/events/wso2con-2011-colombo/speakers/#shankar">Shankar</a> &#8211; Stratos provide a rich framework for building applications. Developers can concentrate on making cool applications without having to worry about a whole heap of infrastructure related aspects. They&#8217;re taken care of. Interesting to get a head start on application development from Shankar</li>
<li><em>Open Source Adoption in the Enterprise</em> by <a href="http://wso2.com/events/wso2con-2011-colombo/speakers/#prajod">Prajod</a> &#8211; Enterprises have been a big no no for open source software. However, it&#8217;s been changing really fast. Going to be interesting hearing more insights into open source adoption from Prajod</li>
<li><em>Quality &#8211; The key to successful SOA</em> by <a href="http://wso2.com/events/wso2con-2011-colombo/speakers/#charitha">Charitha</a> &#8211; Traditional software QA and testing what I read during my undergrad is from a different era. The projects those days usually ran for years. Now, project durations are measured in weeks. Project life cycles are getting shorter and you have to adjust testing and QA efforts accordingly. Have to adopt new methods. SOA testing is even tougher given plethora of possible integration scenarios with other products. Going to be great hearing QA and testing insights from Charitha</li>
<li><em>Develop, Test and Deploy your SOA Application through a Single Platform</em> by <a href="http://wso2.com/events/wso2con-2011-colombo/speakers/#chathuri">Chathuri</a> &#8211; I&#8217;ll confess. I&#8217;m not  an ardent fan of Eclipse. When you compare it with IntelliJ IDEA, Eclipse does feels like some one kicked you in the nuts. That&#8217;s just me <img src='http://engwar.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  I am thrilled to get to know more about Eclipse + Carbon Studio for application development for the WSO2 middleware platform</li>
</ul>
<p><a href="http://wso2.com/events/wso2con-2011-colombo/agenda/">Full agenda</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/592/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java PaaS : Handling authentication in your web apps</title>
		<link>http://engwar.com/post/578?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-paas-handling-authentication-in-your-web-apps</link>
		<comments>http://engwar.com/post/578#comments</comments>
		<pubDate>Fri, 09 Sep 2011 00:16:02 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloudapps]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[paas]]></category>
		<category><![CDATA[wso2 stratos]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=578</guid>
		<description><![CDATA[In getting started with webapp development on Java PaaS, I briefly mentioned how to handle authentication for your web applications. Configuration is the same when you&#8217;re trying to configure form based authentication in Tomcat. &#60;login-config&#62; &#60;auth-method&#62;FORM&#60;/auth-method&#62; &#60;realm-name&#62;Jwitter Auth&#60;/realm-name&#62; &#60;form-login-config&#62; &#60;form-login-page&#62;/profile.jsp&#60;/form-login-page&#62; &#8230; <a href="http://engwar.com/post/578">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://engwar.com/p/java-paas-gs/">getting started with webapp development on Java PaaS</a>, I briefly mentioned how to handle authentication for your web applications. Configuration is the same when you&#8217;re trying to configure form based authentication in Tomcat. </p>
<pre class="prettyprint ">
&lt;login-config&gt;
    &lt;auth-method&gt;FORM&lt;/auth-method&gt;
    &lt;realm-name&gt;Jwitter Auth&lt;/realm-name&gt;

    &lt;form-login-config&gt;
        &lt;form-login-page&gt;/profile.jsp&lt;/form-login-page&gt;
        &lt;form-error-page&gt;/error.jsp&lt;/form-error-page&gt;
    &lt;/form-login-config&gt;
&lt;/login-config&gt;

&lt;security-role&gt;
    &lt;role-name&gt;everyone&lt;/role-name&gt;
&lt;/security-role&gt;

&lt;security-role&gt;
    &lt;role-name&gt;admin&lt;/role-name&gt;
&lt;/security-role&gt;

&lt;security-constraint&gt;
    &lt;display-name&gt;Jwitter Security Constraint&lt;/display-name&gt;

    &lt;web-resource-collection&gt;
        &lt;web-resource-name&gt;Protected Area&lt;/web-resource-name&gt;
        &lt;url-pattern&gt;/profile.jsp&lt;/url-pattern&gt;
    &lt;/web-resource-collection&gt;

    &lt;auth-constraint&gt;
        &lt;role-name&gt;admin&lt;/role-name&gt;
    &lt;/auth-constraint&gt;
&lt;/security-constraint&gt;
</pre>
<p>After this, your application is tied to the authentication scheme Stratos provides. This allows you to authenticate against any user in your tenant. In other words, any user you add to your domain after logging in as admin will be able to login. As you probably guess a tenant and a domain are synonymous in this context. A user inside another domain will not be able to login to your application when you configure it like this.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/578/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java Paas : Building your first app</title>
		<link>http://engwar.com/post/570?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-paas-building-your-first-app</link>
		<comments>http://engwar.com/post/570#comments</comments>
		<pubDate>Tue, 06 Sep 2011 20:34:43 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloudapps]]></category>
		<category><![CDATA[paas]]></category>
		<category><![CDATA[stratos]]></category>
		<category><![CDATA[wso2]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=570</guid>
		<description><![CDATA[This is a step by step guide to show you how to build your first web application and host in WSO2 StratosLive. We&#8217;ll be creating a simple Twitter like webapp using Carbon Studio. Here goes. P.S: Use a browser that &#8230; <a href="http://engwar.com/post/570">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is a step by step guide to show you how to build your first web application and host in <a href="http://stratoslive.wso2.com/">WSO2 StratosLive</a>. We&#8217;ll be creating a simple Twitter like webapp using <a href="http://wso2.com/products/carbon-studio/">Carbon Studio</a>. <a href="http://engwar.com/p/java-paas-gs/">Here goes</a>.</p>
<p>P.S: Use a browser that supports HTML5.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/570/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Realizing an Instant-On Enterprise!</title>
		<link>http://engwar.com/post/532?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=realizing-an-instant-on-enterprise</link>
		<comments>http://engwar.com/post/532#comments</comments>
		<pubDate>Wed, 03 Aug 2011 07:34:59 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[paas]]></category>
		<category><![CDATA[stratos]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=532</guid>
		<description><![CDATA[Why an Instant-On Enterprise? Instant-On Enterprise concept by HP is brilliant and started in the right time and is heading toward the right direction. Traditional enterprise are seen as slow behemoth monsters that are, Slow to respond to customer needs &#8230; <a href="http://engwar.com/post/532">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>Why an Instant-On Enterprise?</h2>
<p><a href="http://h10124.www1.hp.com/campaigns/enterprise/instant-on/us/en/overview.html">Instant-On Enterprise</a> concept by HP is brilliant and started in the right time and is heading toward the right direction. Traditional enterprise are seen as slow behemoth monsters that are,</p>
<ol>
<li>Slow to respond to customer needs</li>
<li>Slow to respond to current market needs</li>
<li>Slow to respond to changing business requirements</li>
<li>Have to go through layers of bureaucracy for doing trivial things</li>
</ol>
<p>&#8230; and I bet you can fill a lengthy and exhaustive list with a short amount of time. Things that everyone come to know and taken to be facts of life during their 10 &#8211; 15 year tenure. Often these are credited to necessary operational overhead for doing something. Selling a product, a step in the manufacturing process etc&#8230;</p>
<p>With the wide spread of Internet, the younger generation with very low attention span- Gen Xers if you will, have grown in numbers. It has become so large that traditional enterprise cannot ignore it. The amount of sales/money/customers they loose every time due to operational overhead is simply not acceptable anymore.</p>
<h2>What is an Instant-On Enterprise?</h2>
<p>So how can enterprises leverage advancements of technology to make their business processes, IT infrastructure, operational costs for optimal levels? As I see it, this is where HP has defined an elaborate vision with the Instant-On Enterprise. Let me quote the <a href="http://ctovision.com/2011/03/is-the-instant-on-enterprise-right-for-you">five critical success factors that the Instant-On Enterprise defines</a>,</p>
<table>
<colgroup>
<col width="164"></col>
<col></col>
</colgroup>
<tbody>
<tr>
<td><strong>Flexibility</strong></td>
<td>The Instant-On Enterprise runs on applications and services that are always available and can easily adapt to new opportunities.</td>
</tr>
<tr>
<td><strong>Automation</strong></td>
<td>The Instant-On Enterprise must rapidly and reliably scale technology resources up and down to meet changing needs. It neither over- nor under-provisions.</td>
</tr>
<tr>
<td><strong>Security</strong></td>
<td>In the Instant-On Enterprise, assets, resources and information are closely guarded to manage risk and protect innovation. They are protected against failure.</td>
</tr>
<tr>
<td><strong>Insight</strong></td>
<td>The Instant-On Enterprise harnesses the power of information to help executives make better decisions. It protects information and delivers it in accordance with enterprise needs.</td>
</tr>
<tr>
<td><strong>Speed</strong></td>
<td>The Instant-On Enterprise selects the best delivery model for the solution—the delivery model that provides the right outcome, in the right time frame, at the right price.</td>
</tr>
</tbody>
</table>
<h2>Jumping the curve</h2>
<p>There are a number of barriers that you have to consider in depth when trying to choose a path for making your business processes efficient. The key decision is to choose the right technology. Choosing the right technology is not an easy task. Consider the following points before you make an enterprise wide technology decision,</p>
<ol>
<li>
<strong>Based on open source and open standards</strong>. Open source is not hobbyists for anymore. A large number of critical business functions runs on top of open source software. When making a choice you have to make sure the stability and adoption of a particular piece of software. There are many open source alternatives for any given problem. Choosing open source alternatives is not simple anymore.
</li>
<li>
<strong>Business friendly license.</strong> Make sure to choose software components that have business friendly open source license. Where if necessary you could build upon and sell your solutions without having to reveal the source. If you don&#8217;t have such requirements, great!
</li>
<li>
<strong>Flexibility and performance.</strong> The solution that you choose should be able to configure to your business requirements without having to write copious amounts of custom code. Having to make changes to the core of the software in order to support your simple requirements is cumbersome, hard and time consuming. Time you can use to improve your business. As your business grows, software components that you choose should be able to handle demanding business needs. Shouldn&#8217;t disrupt your day to day operations while handling demand spikes and general increase of traffic.
</li>
<li>
<strong>Ability to use only those features that you need. No more. No less.</strong> Even though you have infinite resources (thanks to Amazon for example) at your disposal doesn&#8217;t mean that it&#8217;s ok to run bloated software with several hundred features that you&#8217;ll never need. You should be able to run with only the features that are absolutely needed for your scenario and discard/turn off all other features.
</li>
</ol>
<h2>How to implement an Instant-On Enterprise?</h2>
<p>Did the last section sound as if it&#8217;s a pipe dream? Couple of years ago it would have been, yes. Let me show you how you would go about implementing an Instant-On Enterprise. Infrastructure as a Service providers like Amazon EC2 are too low level when it comes to having an Instant-On Enterprise. Yes, it&#8217;s a critical part of this solution but you need a high level platform which operate on top of this elastic infrastructure.</p>
<p><a href="http://wso2.com/cloud/stratos/">WSO2 Stratos</a> is built to answer exactly that. Hosted version of WSO2 Stratos is called <a href="http://stratoslive.com">StratosLive</a>. Most of the corporates doesn&#8217;t like their private information lying around in public servers. If it&#8217;s the case, you can download Stratos and host it inside your corporate data centers.</p>
<p>Now let me revisit HP&#8217;s critical success factors again and show you how Stratos helps to achieve those.</p>
<table>
<colgroup>
<col width="164"></col>
<col></col>
</colgroup>
<tbody>
<tr>
<td><strong>Flexibility</strong></td>
<td>Each service in Stratos (Application Server, Enterprise Service Bus etc&#8230;) can be configured to work in a cluster of nodes. Each cluster can be configured through a load balancer. Load balancer itself can be configured with a fail over setup so there are no single point of failures. In StratosLive (the hosted version of Stratos) WSO2 ESB is configured to act as a software load balancer. This allows your services to be always available.</p>
<p>With a straightforward programming model, supported by Eclipse based Carbon Studio, your applications deployed in Stratos can be modify/deploy/debug with ease allowing you to incorporate new requirements.
</td>
</tr>
<tr>
<td><strong>Automation</strong></td>
<td>Stratos have auto scaling logic built in. This will seamlessly spin up new nodes when the load increases to your services and will terminate and decrease the number of nodes when the load gradually decreases.</td>
</tr>
<tr>
<td><strong>Security</strong></td>
<td>You can take advantage of number of different security mechanisms to safeguard your data as well as the communication that happens between your services deployed in Stratos. <a href="http://wso2.com/products/identity-server">Identity Server</a> supports single sign-on, OpenID, SAML2 and XACML for fine grained authorization policies. Stratos have a built in XACML editor for novices who are not well versed in XACML to define XACML policies. Also, you can take advantage of WS-Security when talking between your applications</td>
</tr>
<tr>
<td><strong>Insight</strong></td>
<td>The <a href="http://wso2.com/products/business-activity-monitor/">Business Activity Monitor</a> collects and show information relating to your applications and services. Using the extensible framework, you can define your own user interface to include KPIs that interests you</td>
</tr>
<tr>
<td><strong>Speed</strong></td>
<td>The installation takes minutes. Deployment of services takes seconds. If you don&#8217;t like to install at all, that&#8217;s all fine too, the entire platform can be accessed through <a href="http://stratoslive.wso2.com">StratosLive</a>!</td>
</tr>
</tbody>
</table>
<p>Tools needed for building an Instant-On Enterprise is right there. StratosLive has a free plan for you to play around and make yourself comfortable. Also has paid plans with differing SLAs for serious business usages. You don&#8217;t have to spend your time and money to buy some fairy tale big vendors usually preach about. You can play around with the entire platform and start building the bits and pieces you need for your enterprise. For free!</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/532/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CassandraSF 2011</title>
		<link>http://engwar.com/post/534?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cassandrasf-2011</link>
		<comments>http://engwar.com/post/534#comments</comments>
		<pubDate>Wed, 13 Jul 2011 08:40:39 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[cassandra]]></category>
		<category><![CDATA[cassandrasf2011]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=534</guid>
		<description><![CDATA[I was at CassandraSF 2011 yesterday and was surprised by the 450 &#8211; 500 people showing up for the conference. The community and the momentum behind Cassandra at the moment is exciting. Jonathan Ellis kicked off the conference with his &#8230; <a href="http://engwar.com/post/534">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was at CassandraSF 2011 yesterday and was surprised by the 450 &#8211; 500 people showing up for the conference. The community and the momentum behind Cassandra at the moment is exciting. <a href="http://spyced.blogspot.com/">Jonathan Ellis</a> kicked off the conference with his keynote speech where he laid out the progress so far and features that have been planned ahead for the project.</p>
<p>After Jonathan&#8217;s keynote, I went for the <a href="http://www.cloudsandra.com/">CloudSandra</a> presentation where they&#8217;ve implemented a framework with <a href="http://www.datastax.com/products/brisk">Brisk</a>. The presentation seem to be intriguing as they&#8217;ve developed a multi-tenant REST API for Cassandra. Although the meaning of multi-tenancy seemed to have interpreted differently as I&#8217;ve been used to the term. Multi-tenancy as I know it have been used to treat a particular organization (an entity as you will) as a tenant and you can have individual users inside that tenant. I felt the multi-tenancy in CloudSandra meant more like multi-user system. I may be wrong. Their usage of <a href="http://apigee.com/">Apigee</a> to play with the REST API was very cool as Apigee provide a neat UI for your REST APIs.</p>
<p>Next was an entertaining talk by <a href="http://blog.sym-link.com/">Eric Evans</a>. Was quite fun as Eric the guy who helped popularize the term NoSQL and the talk was regarding SQL like query language for Cassandra called CQL! It was mostly about high level info/rationale behind coming up with CQL and the current state and some hints as to how it might evolve in time to come.</p>
<p>After that there was a session about Brisk. An introduction and what Brisk is all about by Jake Luciani.</p>
<p>Then David Strauss did an entertaining talk where he demoed a highly available DNS server written using  Cassandra. He showed how data propagetes to 3 machines hosted in 3 geographical areas. Very cool!</p>
<p>During <a href="http://perfcap.blogspot.com/">Adrian Cockcroft</a>&#8216;s presentation he described how Netflix is using Cassandra, how they migrated to Cassandra from on Oracle DB. Also plethora of other operation aspects of Cassandra clusters. One point he stressed during the talk was, since they were running exclusively on EC2 nodes they had to take instance termination as a fact of life. So they write apps so that they&#8217;re resilient even couple of nodes go down. They also deliberately kill random instances and test if the system function as expected!</p>
<p>As the final session of the day attended the Cassandra internals by Gary Dusbabek walked the audience through the Cassandra code base. How everything is wired together and where critical components are at.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/534/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

