<?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>William Vambenepe's blog</title>
	<atom:link href="http://stage.vambenepe.com/feed" rel="self" type="application/rss+xml" />
	<link>http://stage.vambenepe.com</link>
	<description>IT management in a changing IT world</description>
	<lastBuildDate>Wed, 01 Jul 2009 06:31:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>File upload/download and remote program execution using WS-Management &#8211; a practical solution</title>
		<link>http://stage.vambenepe.com/archives/844</link>
		<comments>http://stage.vambenepe.com/archives/844#comments</comments>
		<pubDate>Wed, 01 Jul 2009 06:29:33 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[WS-Management]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=844</guid>
		<description><![CDATA[The previous blog post described a way to upload and (in theory at least) download text files to/from a remote Windows machine using WS-Management. In practice, the applicability of the method is  limited for upload (text files only, slow for large files) and almost nonexistent for download. Here is a much improved version.
This is another [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://stage.vambenepe.com/archives/837">previous blog post</a> described a way to upload and (in theory at least) download text files to/from a remote Windows machine using WS-Management. In practice, the applicability of the method is  limited for upload (text files only, slow for large files) and almost nonexistent for download. Here is a much improved version.</p>
<p>This is another example of something that was too obvious for me to see last weekend when I was in the thick of fighting with WS-Management SOAP messages and learning about WMI classes. It just took a day of not thinking about it to have the solution pop in my mind: use ftp.exe. For the longest time (at least since Windows NT) Windows has been shipping with this FTP client. And the <a href="http://www.nsftools.com/tips/MSFTP.htm">documentation</a> shows that you can call it from the command line and provide it with the name of a text file containing the commands to execute. Bingo.</p>
<p>Specifically, here are the steps. Let&#8217;s say that I want to run a program called task.exe on a remote Windows machine and that program takes a large binary file (data.bin) as input. I want to transfer both to the remote machine and then run the program. This can be done in 3 simple steps:</p>
<p><strong>Step 1</strong>: upload the FTP command file to the remote Windows machine. The content of the command file is below. <em>mgmtserver.myco.com</em> is the name of the machine from which the two files can be retrieved over FTP. I use anonymous FTP here, but you could just as well provide a username and password.</p>
<pre>open mgmtserver.myco.com
anonymous
binary
get task.exe
get data.bin
quit</pre>
<p><strong>Step 2</strong>: execute the FTP commands above. This downloads task.exe and data.bin from <em>mgmtserver.myco.com</em> onto the remote Windows machine.</p>
<p><strong>Step 3</strong>: execute the program on the remote Windows machine (&#8221;task.exe data.bin&#8221;).</p>
<p>Here are the on-the-wire messages corresponding to each step:</p>
<p><strong>Step 1</strong>: upload the FTP command file to the remote Windows machine</p>
<pre>&lt;s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
  xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
  xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"&gt;
  &lt;s:Header&gt;
    &lt;a:To&gt;http://server:80/wsman&lt;/a:To&gt;
    &lt;w:ResourceURI s:mustUnderstand="true"&gt;http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process &lt;/w:ResourceURI&gt;
    &lt;a:ReplyTo&gt;
    &lt;a:Address s:mustUnderstand="true"&gt;http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous&lt;/a:Address&gt;
    &lt;/a:ReplyTo&gt;
    &lt;a:Action s:mustUnderstand="true"&gt;http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process/Create&lt;/a:Action&gt;
    &lt;a:MessageID&gt;uuid:9A989269-283B-4624-BAC5-BC291F72E854&lt;/a:MessageID&gt;
  &lt;/s:Header&gt;
  &lt;s:Body&gt;
    &lt;p:Create_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process"&gt;
      &lt;p:CommandLine&gt;cmd /c echo open mgmtserver.myco.com&gt;ftpscript&amp;amp;&amp;amp;echo
      anonymous&gt;&gt;ftpscript&amp;amp;&amp;amp;echo binary&gt;&gt;ftpscript&amp;amp;&amp;amp;echo get
      task.exe&gt;&gt;ftpscript&amp;amp;&amp;amp;echo get data.bin&gt;&gt;ftpscript&amp;amp;&amp;amp;echo
      quit&gt;&gt;ftpscript&lt;/p:CommandLine&gt;
      &lt;p:CurrentDirectory&gt;C:\data\winrm-test\&lt;/p:CurrentDirectory&gt;
    &lt;/p:Create_INPUT&gt;
  &lt;/s:Body&gt;
&lt;/s:Envelope&gt;</pre>
<p>As before, you need to set the Content-Type HTTP header to &#8220;application/soap+xml;charset=UTF-8&#8243; (or UTF-16).</p>
<p><strong>Step 2</strong>: execute the FTP commands to download the files from your server</p>
<p>It&#8217;s the same message, except the &lt;p:CommandLine&gt; element now has this value:</p>
<pre>&lt;p:CommandLine&gt;ftp -s:ftpscript&lt;/p:CommandLine&gt;</pre>
<p><strong>Step 3</strong>: execute the task.exe program on the remote Windows machine</p>
<p>Again, the same message except that the command line is simply:</p>
<pre>&lt;p:CommandLine&gt;C:\data\winrm-test\task.exe data.bin&lt;/p:CommandLine&gt;</pre>
<p>Note that I have broken this down in three messages for clarity, but you can easily bundle all three steps in one SOAP message. Just use this command line:</p>
<pre>&lt;p:CommandLine&gt;cmd /c echo open mgmtserver.myco.com&gt;ftpscript&amp;amp;&amp;amp;echo
anonymous&gt;&gt;ftpscript&amp;amp;&amp;amp;echo binary&gt;&gt;ftpscript&amp;amp;&amp;amp;echo get
task.exe&gt;&gt;ftpscript&amp;amp;&amp;amp;echo get data.bin&gt;&gt;ftpscript&amp;amp;&amp;amp;echo
quit&gt;&gt;ftpscript&amp;amp;&amp;amp;ftp -s:ftpscript&amp;amp;&amp;amp;C:\data\winrm-test\task.exe
data.bin&lt;/p:CommandLine&gt;</pre>
<p>Of course this can also be used in reverse, to download files from the remote Windows machine rather than upload files to it. Just use PUT or MPUT as FTP commands instead of GET or MGET.</p>
<p>This mechanism is a major improvement, for many use cases, over what I originally described. I feel a bit like someone who just changed a flat tire by loosening the lug nuts with his teeth and then found the lug wrench under the spare tire.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/844/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Uploading a file to a Windows machine via WMI/WS-Management</title>
		<link>http://stage.vambenepe.com/archives/837</link>
		<comments>http://stage.vambenepe.com/archives/837#comments</comments>
		<pubDate>Mon, 29 Jun 2009 08:59:44 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[DMTF]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SOAP header]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[WS-Management]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=837</guid>
		<description><![CDATA[[UPDATED 2009/6/30: Check the following post for a more practical solution.]
Here is a simple way to upload a text (i.e. not binary) file to a Windows machine. Because my interest is to be able to do it from any platform, I investigated the use of WS-Management. But the method relies on invoking WMI methods over [...]]]></description>
			<content:encoded><![CDATA[<p>[UPDATED 2009/6/30: Check the <a href="http://stage.vambenepe.com/archives/844">following post</a> for a more practical solution.]</p>
<p>Here is a simple way to upload a text (i.e. not binary) file to a Windows machine. Because my interest is to be able to do it from any platform, I investigated the use of WS-Management. But the method relies on invoking WMI methods over WS-Management, so I don&#8217;t see why it would not also work in a straight WMI scenario if you prefer.</p>
<p>I am not a Windows management expert, so there may be a much better way to do this (e.g. <a href="http://msdn.microsoft.com/en-us/library/aa362708(VS.85).aspx">BITS</a>). But if what you&#8217;re after is the simplest possible way to drop a file on a Windows machine it from a non-Windows machine, it doesn&#8217;t get much simpler than sending an XML doc over HTTP and calling it a day. Here is how.</p>
<p>The easiest would be if the CIM_DataFile WMI class had a &#8220;create&#8221; method to create a new file. It doesn&#8217;t. But <a href="http://msdn.microsoft.com/en-us/library/aa394372(VS.85).aspx">Win32_Process</a> does. Invoking this method creates a new process and you get to specify the command line to execute. All you need to do is come up with a command line that invokes a program that will create the file that you want to upload.</p>
<p>There may be alternatives, but the command line I came up with for this purpose uses the &#8220;cmd.exe&#8221; interpreter (the Windows command-line shell). By using the &#8220;/c&#8221; option, you can invoke this interpreter with its instructions as parameters directly on the command line (it gets a bit confusing because we have two &#8220;command lines&#8221; here, the one that is used to launch the &#8220;cmd.exe&#8221; shell and the one that is presented inside the &#8220;cmd.exe&#8221; shell).</p>
<p>Anyway, if you type the following line inside the &#8220;start/run&#8221; field in Windows</p>
<pre>cmd /c echo 1st line &gt; test1.txt</pre>
<p>It will have the same effect as opening a command shell, typing &#8220;echo 1st line &gt; test1.txt&#8221; in it and the closing it. It creates a new file called &#8220;test1.txt&#8221; with one line of content (&#8221;1st line&#8221;). If you want a second line, you can do this by adding a second command that uses &#8220;&gt;&gt;&#8221; (append) instead of &#8220;&gt;&#8221;. And the two commands can be joined by &#8220;&amp;&amp;&#8221; to invoke them in one pass. So to create a file with three lines, we&#8217;d execute:</p>
<pre>cmd /c echo 1st line &gt; test1.txt &amp;&amp; echo 2nd line &gt;&gt; test1.txt
&amp;&amp; echo 3rd line &gt;&gt; test1.txt</pre>
<p>Now all we have to do is package this in a WS-Management SOAP message and post it to the WS-Management listener of the Windows machine. In the process, we have to escape the &#8220;&amp;&#8221; in the command line to &#8220;&amp;amp;&#8221; because of XML syntax rules. The resulting message looks like:</p>
<pre>&lt;s:Envelope
  xmlns:s="http://www.w3.org/2003/05/soap-envelope"
  xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
  xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd"&gt;
&lt;s:Header&gt;
&lt;a:To&gt;http://localhost/wsman&lt;/a:To&gt;
&lt;w:ResourceURI s:mustUnderstand="true"&gt;
  http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process
&lt;/w:ResourceURI&gt;
&lt;a:ReplyTo&gt;
&lt;a:Address s:mustUnderstand="true"&gt;
  http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
&lt;/a:Address&gt;
&lt;/a:ReplyTo&gt;
&lt;a:Action s:mustUnderstand="true"&gt;
  http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process/Create
&lt;/a:Action&gt;
&lt;a:MessageID&gt;uuid:9A989269-283B-4624-BAC5-BC291F72E854&lt;/a:MessageID&gt;
&lt;/s:Header&gt;
&lt;s:Body&gt;
&lt;p:Create_INPUT
  xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process"&gt;
&lt;p:CommandLine&gt;cmd /c echo 1st line &gt; test1.txt &amp;amp;&amp;amp; echo 2nd line &gt;&gt;
  test1.txt &amp;amp;&amp;amp; echo 3rd line &gt;&gt; test1.txt&lt;/p:CommandLine&gt;
&lt;p:CurrentDirectory&gt;C:\data\winrm-test\&lt;/p:CurrentDirectory&gt;
&lt;/p:Create_INPUT&gt;
&lt;/s:Body&gt;
&lt;/s:Envelope&gt;</pre>
<p>You don&#8217;t even need a WS-Management toolkit to do this as the only WS-Management header is w:ResourceURI which can easily be set manually. You don&#8217;t need a WS-Addressing library either as all the headers are also static (except for the MessageID even though nobody will care in practice if you always send the same value; I hereby authorize you to re-use the one in my example as much as you want). As a side note, this is yet another illustration of how useless this header (and more generally WS-Addressing) is in 95% of the case. And yet the Microsoft WS-Management implementation (like many others) will make a point to fault if you don&#8217;t send it. But ranting against WS-Addressing is a topic for another day (look for a future post titled &#8220;WS-IfInteroperabilityWasEasyItWouldNotBeFunWouldIt&#8221;).</p>
<p>I should mention that you want to set the Content-Type HTTP header to &#8220;application/soap+xml;charset=UTF-8&#8243; for this message. Or UTF-16 if that&#8217;s what you&#8217;re sending.</p>
<p>A few comments:</p>
<ul>
<li>This obviously only works for character-based files, not binaries</li>
<li>I&#8217;ve noticed that the parsing of the wsa:Action header is pretty minimalistic. The Microsoft implementation seems to just pick up the text behind the last &#8220;/&#8221;. So you can type send &#8220;blahblah/Create&#8221; and it works just as well as the correct value, &#8220;http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process/Create&#8221; (it knows what class to apply the operation on from the Resource URI). Interestingly, there is only one URL ending in &#8220;/Create&#8221; that doesn&#8217;t work and it&#8217;s the WS-Transfer &#8220;Create&#8221; operation (&#8221;http://schemas.xmlsoap.org/ws/2004/09/transfer/Create&#8221;). That&#8217;s because the &#8220;Create&#8221; operation invoked in the message above is not the WS-Transfer &#8220;Create&#8221; operation but rather the homonymous operation on the WMI class.</li>
<li>Using the &#8220;/k&#8221; modifier on &#8220;cmd&#8221; in the command line (instead of &#8220;/c&#8221;) would also work, but the command shell would stay alive after returning so over time you&#8217;d have quite a few of them hanging out and using up memory on the remote machine. Not a good move.</li>
<li>As part of this exercise, I noticed an error in <a href="http://msdn.microsoft.com/en-us/library/cc251716(PROT.13).aspx">the MSDN page describing the &#8220;invoke&#8221; method of Win32_Process</a>. In the SOAP body, the URI for the &#8220;p&#8221; namespace prefix uses &#8220;&#8230;/cim/&#8230;&#8221; instead of &#8220;&#8230;/cimv2/&#8230;&#8221;, which caused my first attempts to fail.</li>
</ul>
<p>If the file you want to upload is large, you can break the upload over several successive messages similar to the one above. As long as you use the same file name and use &#8220;&gt;&gt;&#8221; instead of &#8220;&gt;&#8221; you&#8217;ll keep appending to the end of the file until it&#8217;s complete.</p>
<p>Of course this could be any type of text file, including XML (watch for the character-escaping rules though, both for XML and for &#8220;cmd&#8221; as you have to apply them in the right sequence). Even better, it could be a Python, Perl or PowerShell script too. And in that case (assuming the corresponding interpreter is installed on the machine) you can use the same mechanism to also invoke the script for execution. So that you use this WS-Management interface just to bootstrap into a more comfortable remote-control mechanism.</p>
<p>The next logical question (for extra credit) is whether WS-Management can be used to read files remotely instead of writing them. In theory yes, though in practice you&#8217;re much better off with alternate solutions, like the remote shell extension to WS-Management that I have described as <a href="http://stage.vambenepe.com/archives/816">&#8220;dumb SSH&#8221;</a> previously.</p>
<p>But since you ask, here is the theory. My first attempt was to do a WS-Management &#8220;Get&#8221; (the Get operation from WS-Transfer) on an instance of CIM_DataFile (using the &#8220;Name&#8221; selector and setting it to &#8220;C:\data\winrm-test\test1.txt&#8221;). But this returns the properties of the file rather than its content. Whether this is kosher is an interesting theoretical question to ponder from a REST-beard-stroking perspective, but it&#8217;s useless for my file retrieval purpose. As before, one solution is to use the magical Win32_Process &#8220;Create&#8221; method to overcome the shortcomings of the CIM_DataFile class. The windows command shell &#8220;type&#8221; command can be used to display the content of a text file. But the WMI Win32_Process &#8220;create&#8221; operation that we use here only returns the processId and a result code, not the stdout stream (unlike the remote shell protocol that I mentioned above). We cannot therefore use it directly to return the output of the &#8220;type&#8221; command over the wire.</p>
<p>The solution is to use one Win32_Process &#8220;create&#8221; operation over WS-Management to write the content of the file in a place where a subsequent WS-Management opeation can read it. I can think of two examples off the top of my head: directory names and environment variables.</p>
<p>Here is how you&#8217;d do it with directory names. The following command takes the test1.txt file, reads it and creates nested subdirectories, one for each line in the input file. The name of the directory is the content of the corresponding line in the file.</p>
<pre>for /f "delims=" %I in (test1.txt) do @mkdir "%I" &amp;&amp; cd "%I"</pre>
<p>For example, if the file content is</p>
<pre>1st line
2nd line
3rd line</pre>
<p>The command will generate the following three subdirectories:</p>
<pre>1st line
  |_ 2nd line
      |_ 3rd line</pre>
<p>What&#8217;s the point? You can use WS-Management enumeration to retrieve the names of all directories (using the Win32_Directory WMI class). Now that may be a bit overwhelming, so you want to add a WS-Enumeration filter to your WS-Management request. The Microsoft WS-Management implementation <a href="http://msdn.microsoft.com/en-us/library/cc251612(PROT.13).aspx">supports</a> the WQL filter syntax that lets you do just that.</p>
<p>BTW, you can presumably do the same thing with files, but directories by their nesting make it easy to read the lines in the order in which their appear in the file. Though you&#8217;d quickly run into path length limitations (and characters that are not valid in file/directory names).</p>
<p>A slightly more robust approach may be to set each line of the file in an environment variable (again via the &#8220;for&#8221;, and using &#8220;set&#8221; after the &#8220;do&#8221;). You can then read these environment variables over WS-Management by doing a WS-Transfer Get on the Win32_Environment WMI class. Unlike CIM_DataFile (for which Get only return properties, not the content), a Get on Win32_Environment includes the value of the environment variable as one of the properties. The pragmatic reasons for this dichotomy are obvious, but the architectural consequences will give a headache to anyone who still has any illusion that WS-Transfer has anything to do with REST.</p>
<p>As a side note, the &#8220;for&#8221; instruction can keep no more than 52 variables at a time, so if your file has more than 52 lines you&#8217;d have to send successive WS-Management requests and add a &#8220;skip&#8221; option to the &#8220;for&#8221; operation on subsequent requests (&#8221;skip=52&#8243;, &#8220;skip=104&#8243;, etc&#8230;). Again, practicality isn&#8217;t much of a concern here, we&#8217;re just playing with theory (Ed: &#8220;we&#8221;? how many people do you expect will still be reading at this point?).</p>
<p>That&#8217;s it for today&#8217;s episod of &#8220;Windows management for the on-the-wire-protocol guy&#8221;. Maybe next weekend I&#8217;ll take some time to look more into the remote shell over WS-Management protocol extention and how it can be misued/abused.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/837/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Whose ******* idea was this?</title>
		<link>http://stage.vambenepe.com/archives/827</link>
		<comments>http://stage.vambenepe.com/archives/827#comments</comments>
		<pubDate>Wed, 24 Jun 2009 08:35:55 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Off-topic]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=827</guid>
		<description><![CDATA[My last two entries have been uncharacteristically Microsoft-friendly, so it&#8217;s time to restore some balance. Coincidentally, I just noticed the latest &#8220;alertbox&#8221; entry by Jakob Nielsen, about putting an end to password masking (the ******* that appears when you type a password). I actually disagree with Nielsen on this (it&#8217;s not just about shoulder-surfing, who [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://stage.vambenepe.com/archives/816">last</a> <a href="http://stage.vambenepe.com/archives/805">two</a> entries have been uncharacteristically Microsoft-friendly, so it&#8217;s time to restore some balance. Coincidentally, I just noticed the latest <a href="http://www.useit.com/alertbox/passwords.html">&#8220;alertbox&#8221; entry</a> by Jakob Nielsen, about putting an end to password masking (the ******* that appears when you type a password). I actually disagree with Nielsen on this (it&#8217;s not just about shoulder-surfing, who hasn&#8217;t had to enter a password while sharing their desktop via a projector or a webex-like conference service; plus I either know my password very well or I paste it directly from a password management tool, either way the lack of visual feedback doesn&#8217;t bother me).</p>
<p>But, and this is where the Microsoft-bashing starts, there is one area where password-masking is inane: wifi keys. Unlike passwords, these are never things that you have picked yourself, so they are harder to type, often hexadecimal (the one I chose, for my home network, I never have to type).  And where do we do this? Either in a meeting room, where the key is written on the white board, or in a dentist waiting room, where it is pinned on the wall. In almost all cases, everyone in the room has access to the key. And if it is not on a wall, then it is on a piece of paper that&#8217;s right next to my computer and easier to snoop from. Masking this field, as Windows XP does, is plain stupid.</p>
<p>But stupidity turns into depravity and sadism when they force you to type it twice. I understand the reason for entering passwords twice when you initially set them in the system (accidentally entering a different password than what you intended can be trouble). But not when you provide them as a user requesting access (accidentally entering the wrong password just means you have to try again). So why does Windows insist on this? In the best case (I enter the key correctly twice) I&#8217;ve had to do double work for the same result. In the worst case (at least one is mistyped) I am in no better situation than if there was only one field but I have done twice the work. And this worst case is twice as likely to happen, since I have twice the opportunity to foul-up.</p>
<p>When confronted with this, I usually type the key in a regular text box (e.g. the search box in Firefox) and copy-paste from there to both fields in the Windows dialog box. But I shouldn&#8217;t have to.</p>
<p>While I am at it, do you also want to read what I think about the practice, initiated by MS Word as far as I can tell, to include formatting in copy/paste by default? And how deep you have to go in the &#8220;paste special&#8221; menu to get the obviously superior behavior (unformatted text)? Not really? Ok, I&#8217;ll save that for a future rant. Let&#8217;s just say that this idea must have come from a relative of the Windows wifi-key-screen moron. Just give me their names and I&#8217;ll be the arm of Darwinism.</p>
<p>[UPDATED 2009/6/26: Bruce Schneier <a href="http://www.schneier.com/blog/archives/2009/06/the_problem_wit_2.html">agrees</a> with Jakob Nielsen. So this is an issue at the confluence of security and usability on which both security guru Schneier and usability guru Nielsen are wrong. Gurus can't always be right, but what's the chance of them being wrong at the same time?]</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/827/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Native &#8220;SSH&#8221; on Windows via WS-Management</title>
		<link>http://stage.vambenepe.com/archives/816</link>
		<comments>http://stage.vambenepe.com/archives/816#comments</comments>
		<pubDate>Tue, 23 Jun 2009 08:06:07 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[DMTF]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Implementation]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[WS-Management]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=816</guid>
		<description><![CDATA[Did you know that you can now SSH to a Windows machine over WS-Management and its is a documented protocol that can be implemented from any platform and programming language? This is big news to me and I am surprised that, as management protocol geek, I hadn&#8217;t heard about it until I started to search [...]]]></description>
			<content:encoded><![CDATA[<p>Did you know that you can now SSH to a Windows machine over WS-Management and its is a documented protocol that can be implemented from any platform and programming language? This is big news to me and I am surprised that, as management protocol geek, I hadn&#8217;t heard about it until I started to search MSDN for a related but much smaller feature (file transfer over WS-Management).</p>
<p>OK, so it&#8217;s not exactly SSH but it is a remote shell. In fact it comes in two flavors, which I think of as &#8220;dumb SSH&#8221; and &#8220;super SSH&#8221;.</p>
<p><strong>Dumb SSH</strong></p>
<p>Dumb SSH is the ability to remotely run a DOS-like command shell over WS-Management. Anyone who has had to use the Windows command shell as a scripting language ersatz understands why I call it &#8220;dumb&#8221;. I expect that even in Microsoft most would agree (otherwise why would they have created PowerShell?).</p>
<p>Still, you can do quite a few basic things using the Windows command shell and being able to do them remotely is not something to sneer at if you&#8217;re building a management product. If you&#8217;re interested, you need to read MS-WSMV, the <a href="http://msdn.microsoft.com/en-us/library/cc251526(PROT.10).aspx">WS-Management Protocol Extensions for Windows Vista</a> specification (available <a href="http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-WSMV%5D.pdf">here</a> as a PDF). By the name of the specification, I expected a laundry list of tweaks that the WS-Management and WS-CIM implementation in Vista makes on top of the standards (e.g. proprietary extensions, default values, unsupported features, etc). And there is plenty of that, in sections 3.1, 3.2 and 3.3. The kind of &#8220;this is my way&#8221; decisions that you&#8217;d come to expect from Microsoft on implementing standards. A bit frustrating when you know that they pretty much wrote the standard but at least it&#8217;s well documented. Plus, being one of those that forced a few changes in WS-Management between the Microsoft submission and the DMTF standard (under laments from Microsoft that &#8220;it&#8217;s too late to change Longhorn&#8221;) I am not really in position to complain that &#8220;Longhorn&#8221; (now Vista) indeed deviates from the standard.</p>
<p>But then we get to section 3.4 and we enter a new realm. These are not tweaks to WS-Management anymore. It&#8217;s a stateful tunneling protocol going over WS-Management, complete with base-64-encoded streams (stdin, stdout, stderr) and signals. It gives you all you need to run a remote command shell over WS-Management. In addition to the base Windows command shell, it also supports &#8220;custom remote shells&#8221;, which lets you leverage the tunneling mechanism for another protocol than the one made of Windows shell commands. For example, you could build an HTTP emulation over this on top of which you could run WS-Management on top of which&#8230; you know where this is going, don&#8217;t you?</p>
<p>A more serious example of such a &#8220;custom remote shell&#8221; is PowerShell, which takes us to&#8230;</p>
<p><strong>Super SSH</strong></p>
<p>Imagine SSH with the guarantee that the shell that you log into on the other side was a Python interpreter, complete with full access to the server&#8217;s management API. I think that would qualify as &#8220;super SSH&#8221;, at least for IT management purposes (no so exciting if all you want to do is check your email with mutt). This is equivalent to what you get when the remote shell invoked over WS-Management (or rather WS-Management plus Vista extensions described above) is PowerShell instead of the the Windows command shell. I have always liked PowerShell but it hasn&#8217;t really be all that relevant to me (other than as a design study) because of its ties to the Windows platform. Now, thanks to MS-PSRP, the <a href="http://msdn.microsoft.com/en-us/library/dd357801(PROT.10).aspx">PowerShell Remoting Protocol</a> specification (PDF <a href="http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-PSRP%5D.pdf">here</a>) we are only a good Java (or Python, or Ruby) library away from being able to invoke PowerShell commands from any language, anywhere.</p>
<p>I have criticized over-reliance on libraries to shield developers from XML for task that really would be much better handled by simply learning to use XML. But in this case we really need a library because there is quite a bit of work involved in this protocol, most of which has nothing to do with XML. We have to fragment/defragment packets, compress/decompress messages, not to mention the security aspects. At this point you may question what the value of doing all this on top of WS-Management is, for which I respectfully redirect you to your local Microsoft technology evangelist, MVP or, in last resort, sales representative.</p>
<p>Even if PowerShell is not your scripting language of choice, you can at least use it to create a bootstrap mechanism that will install whatever execution engine you want (e.g. Ruby) and download scripts from your management server. At which point you can sign out of PowerShell. For some reason, I get the feeling that we just got one step closer to Puppet managing Windows machines.</p>
<p><strong>A few closing comments</strong></p>
<p>First, while the MS-WSMV part that lets you run a basic command shell seems <a href="http://msdn.microsoft.com/en-us/library/cc251762(PROT.10).aspx">already available</a> (Vista SP1, Win2K3R2, Win2K8, etc), the PowerShell part is a lot greener. The MS-PSRP specification is marked &#8220;preliminary&#8221; and the <a href="http://msdn.microsoft.com/en-us/library/dd305343(PROT.10).aspx">supported platform list</a> only contains Windows 7 and Win2K8R2. Nevertheless, the word from Microsoft is that they have the intention to make this available on XP and above shortly after Windows 7 comes out. Let&#8217;s hope this is the case, otherwise this technology will remain largely irrelevant for years to come.</p>
<p>The other caveat comes from the standard angle. In this post, I only concern myself with the technical aspects. If you want to implement these specifications you have to also take into account that they are proprietary specifications with no IP grant (<em>&#8220;Microsoft has patents that may cover your implementations of the technologies described in the Open Specifications. Neither this notice nor Microsoft&#8217;s delivery of the documentation grants any licenses under those or any other Microsoft patents&#8221;</em>) and fully controlled by Microsoft (who could radically change or kill them tomorrow). As to whether Microsoft plans to eventually standardize them, I would again refer you to your friendly local Microsoft representative. I can just predict, based on the content of the specification, that it would make for some interesting debates in the DMTF (or wherever they may go).</p>
<p>This is a big step towards the citizenship of Windows machines in an automated datacenter (and, incidentally, an endorsement for the &#8220;these scripts have to grow up&#8221; <a href="http://stage.vambenepe.com/archives/773">approach to automation</a>). As Windows comes to parity with Unix in remote scripting abilities, the only question remaining (well, in addition to the pesky license) will be &#8220;why another mechanism&#8221;. Which could be solved either via standardization of MS-PSRP, de-facto adoption (PowerShell on Suse Linux is only one Microsoft-to-Novell check away) or simply using PowerShell as just a bootstrapping mechanism for Puppet or others, as mentioned above.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/816/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>With M (Oslo), is Microsoft on the path to reinventing RDF?</title>
		<link>http://stage.vambenepe.com/archives/805</link>
		<comments>http://stage.vambenepe.com/archives/805#comments</comments>
		<pubDate>Fri, 12 Jun 2009 07:19:34 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Graph query]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Modeling]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[Semantic tech]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=805</guid>
		<description><![CDATA[I have given up, at least for now, on understanding what Microsoft wants Oslo (and more specifically the &#8220;M&#8221; part) to be. I used to pull my hair reading inconsistent articles and interviews about what M tries to be (graphical programming! DSL! IT models! generic parser! application components! workflow! SOA framework! generic data layer! SQL/T-SQL [...]]]></description>
			<content:encoded><![CDATA[<p>I have given up, at least for now, on understanding what Microsoft wants Oslo (and more specifically the &#8220;M&#8221; part) to be. I used to pull my hair reading inconsistent articles and interviews about what M tries to be (graphical programming! DSL! IT models! generic parser! application components! workflow! SOA framework! generic data layer! SQL/T-SQL for dummies! JSON replacement! all of the above!). Douglas Purdy makes a valiant 4-part effort (<a href="http://www.douglaspurdy.com/2009/04/09/where-is-oslo-going/">1</a>, <a href="http://www.douglaspurdy.com/2009/04/09/where-is-oslo-going-part-ii/">2</a>, <a href="http://www.douglaspurdy.com/2009/04/10/where-is-oslo-going-part-iii/">3</a>, <a href="http://www.douglaspurdy.com/2009/04/11/where-is-oslo-going-iv/">4</a>) but it&#8217;s still not crisp enough for my small brain. Even David Chapell, explainer extraordinaire, seems to <a href="http://www.davidchappell.com/blog/2008/11/first-look-at-wf-40-dublin-and-oslo.html">throw up his hands</a> (<em>&#8220;a modeling platform that can be applied in lots of different ways&#8221;</em>, which BTW is the most exact, if vague, description I&#8217;ve heard). Rather than articles, I now mainly look at the base specifications and technical documents that show what it actually is. That&#8217;s what I did  <a href="http://stage.vambenepe.com/archives/420">when the Oslo SDK first came out last year</a>. A new technical document came out recently, an <a href="http://msdn.microsoft.com/en-us/library/dd878360.aspx">update to the MGraph Object Model</a> so I took another a look.</p>
<p>And it turns out that MGraph is&#8230; RDF. Or rather, &#8220;RDF minus entailment&#8221;. And with <a href="http://www.w3.org/TeamSubmission/turtle/">turtle</a> as the base representation rather than an add-on.</p>
<p>Look at section 3 (&#8221;RDF concepts&#8221;) in this <a href="http://www.w3.org/TR/rdf-concepts/#contents">table of content</a> from W3C. It describes the core RDF concepts. Keep the first five concepts (sections 3.1 to 3.5) and drop the last one (&#8221;3.6: Entailment&#8221;). You have MGraph, a graph-oriented object model.</p>
<p>On top of this, the RDF community adds reasoning capabilities with RDF entailment, <a href="http://www.w3.org/TR/rdf-schema/">RDFS</a>, <a href="http://www.w3.org/2007/OWL/wiki/OWL_Working_Group">OWL</a>, <a href="http://www.w3.org/Submission/SWRL/">SWRL</a>, <a href="http://spinrdf.org/">SPIN</a>, etc and a variety of engines that implement these different levels of reasoning.</p>
<p>Microsoft, on the other hand, seems to ignore that direction. Instead, it focuses on creating a good mapping from this graph object model to programming languages. In two directions:</p>
<ul>
<li>from programming languages to the graph model: they make it easy for you to create a domain-specific language (DSL) that can easily be turned into M instances.</li>
<li>from the graph model to programming languages: they make it easy for you to work on these M instances (including storing them) using the .NET technology stack.</li>
</ul>
<p>So, if Microsoft is indeed reinventing RDF as the title of this entry provocatively suggests, then they are taking an interesting detour on the way. Rather than going straight to &#8220;model-based inferencing&#8221;, they are first focusing on mapping the core MGraph concepts to programming (by regular developers) and user interactions (with regular users). Something that for a long time had not gotten much attention in the RDF world beyond pointing developers to Jena (though it seemed to have improved over the last few years with companies like TopQuadrant; ironically, the Oslo model browser/editor is code-named &#8220;Quadrant&#8221;).</p>
<p>Whether the Oslo team sees the inferencing fun as a later addition or something that&#8217;s not needed is another question, on which I don&#8217;t see any hint at this point.</p>
<p>I hope they eventually get to it. But I like the fact that they cleanly separate the ability to represent and manipulate the graph model from the question of whether instances can be inferred. We could use such a reusable graph representation mechanism. Did CMDBf, for example, really have to create a new graph-oriented metamodel and query language? I failed to convince the group to adopt RDF/SPARQL, but I may have been more successful if there had been a cleanly-separated &#8220;static&#8221; version of RDF/SPARQL, a way to represent and query a graph independently of whether the edges and nodes in the graph (and their types) are declared or inferred. Instead, the RDF stack has entailment deeply embedded and that&#8217;s very scary to many.</p>
<p>But as much as I like this separation, I can&#8217;t help squirming when I see the first example in the MGraph document:</p>
<pre>// Populate a small village with some people
Villagers =&gt; {
  Jenn =&gt; Person { Name =&gt; 'Jennifer', Age =&gt; 28, Spouse =&gt; Rich },
  Rich =&gt; Person { Name =&gt; 'Richard', Age =&gt; 26, Spouse =&gt; Jenn },
  Charly =&gt; Person { Name =&gt; 'Charlotte', Age =&gt; 12 }
},
HaveSpouses =&gt; { Villagers.Rich, Villagers.Jenn }</pre>
<p>That last line is an eyesore to anyone who has been anywhere near RDF. I have just declared that Rich and Jenn are one another&#8217;s spouse, why do I have to add a line that says that they have spouses? What I want is to say that participation in a &#8220;Spouse&#8221; relationship entails membership in the &#8220;hasSpouse&#8221; class. And BTW, I also want to mark the &#8220;Spouse&#8221; relationship as symmetric so I only have to declare it one way and the inverse can be inferred.</p>
<p>So maybe I don&#8217;t really know what I want on this. I want the graph model to be separated from the inference logic and yet I want the syntactic simplicity that derives from base entailments like the example above. Is June too early to start a Christmas wish list?</p>
<p>While I am at it, can we please stop putting people&#8217;s ages in the model rather than their dates of birth? I know it&#8217;s just an example, but I see it over and over in so many modeling examples. And it&#8217;s so wrong in 99% of cases. It just hurts.</p>
<p>There are other things about MGraph edges that look strange if you are used to RDF. For example, edges can be labeled or not, as illustrated on this first example of the graph model:</p>
<p><img src="http://i.msdn.microsoft.com/dd878360.image001%28en-us%29.gif" alt="" /></p>
<p>In this example, &#8220;Age&#8221; is a labeled edge that points to the atomic node &#8220;42&#8243;, while the credit score is modeled as a non-atomic node linked from the person via an unlabeled edge. Presumably the &#8220;credit score&#8221; node is also linked to an atomic node (not shown) that contains the actual score value (e.g. &#8220;800&#8243;). I can see why one would want to call out the credit score as a node rather than having an edge (labeled &#8220;credit score&#8221;) that goes to an atomic node containing the actual credit score value (similar to how &#8220;age&#8221; is handled). For one thing, you may want to attach additional data to that &#8220;credit score&#8221; node (when was it calculated, which reporting agency provided it, etc) so it helps to have it be a node. But making this edge unlabeled worries me. Originally you may only think of one possible relationship type between a person and a credit score (the person <em>has</em> a credit score). But other may pop up further down the road, e.g. the person could be a loan agent who orders the credit score but the score is about a customer. So now you create a new edge label (&#8221;orders&#8221;) to link the loan agent person to the credit score. But what happens to all the code that was written previously and navigates the relationship from the person to the score with the expectation that the score is about the person. Do you think that code was careful to only navigate &#8220;unlabeled&#8221; edges? Unlikely. Most likely it just grabbed whatever credit score was linked to the person. If that code is applied to a person who happens to also be a loan agent, it might well grab a credit score about other people which happened to be ordered by the loan agent. These unlabeled edges remind me of the practice of not bothering with a &#8220;version&#8221; field in the first version of your work because, hey, there is only one version so far.</p>
<p>The restriction that a node can have at most one edge with a given label coming out of it is another one that puzzles me. Though it may explain why an unlabeled edge is used for the credit score (since you can get several credit scores for the same person, if you ask different rating agencies). But if unlabeled edges are just a way to free yourself from this restriction then it would be better to remove the restriction rather than work around it. Let&#8217;s take the &#8220;Spouse&#8221; label as an example. For one thing in some countries/cultures having more than one such edge might be possible. And having several ex-spouses is possible in many places. Why would the &#8220;ex-spouse&#8221; relationship have to be defined differently from &#8220;spouse&#8221;? What about children? How is this modeled? Would we be forced to have a chain of edges from parent to 1st child to next sibling to next sibling, etc? Good luck dealing with half-siblings. And my model may not care so much about capturing the order (especially if the date of birth is already captured anyway). This reminds me of how most XML document formats force element order in places where it is not semantically meaningful, just because of XSD&#8217;s bias towards &#8220;sequence&#8221;.</p>
<p>Having started this entry by declaring that I don&#8217;t understand what M tries to be, I really shouldn&#8217;t be criticizing its design choices. The &#8220;weird&#8221; aspects I point out are only weird in the context of a certain usage but they may make perfect sense in the usage that the Oslo team has in mind. So I&#8217;ll stop here. The bottom line is that there are traces, in M, of a nice, reusable, graph-oriented data model with strong bridges (in both directions) to programming languages and user interfaces. That is appealing to me. There are also some strange restrictions that puzzle me. We&#8217;ll see where this goes (hopefully <a href="http://msdn.microsoft.com/en-us/library/dd861703(VS.85).aspx">this</a> article, &#8220;Designing Domains and Models Using M&#8221; will soon contain more than &#8220;to be submitted&#8221; and I can better understand the M approach). In any case, kuddos to the team for being so open about their work and the evolution of their design.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/805/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Interesting links</title>
		<link>http://stage.vambenepe.com/archives/798</link>
		<comments>http://stage.vambenepe.com/archives/798#comments</comments>
		<pubDate>Wed, 03 Jun 2009 08:10:29 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Application management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[CA]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=798</guid>
		<description><![CDATA[A few interesting links I noticed tonight.
HP Delivers Industry-first Management Capabilities for Microsoft System Center
That&#8217;s not going to improve the relationship between the Insight Control group (part of the server hardware group, of Compaq heritage) and the BTO group (part of HP Software, of HP heritage plus many acquisitions) in HP.  The Microsoft relationship was [...]]]></description>
			<content:encoded><![CDATA[<p>A few interesting links I noticed tonight.</p>
<p><a href="http://blogs.technet.com/systemcenter/archive/2009/06/02/guest-blog-post-hp-delivers-industry-first-management-capabilities-for-microsoft-system-center.aspx">HP Delivers Industry-first Management Capabilities for Microsoft System Center</a></p>
<p style="padding-left: 30px;">That&#8217;s not going to improve the relationship between the Insight Control group (part of the server hardware group, of Compaq heritage) and the BTO group (part of HP Software, of HP heritage plus many acquisitions) in HP.  The Microsoft relationship was already a point of tension when they were still called SIM and OpenView, respectively.</p>
<p><a href="http://www.ca.com/us/press/release.aspx?cid=207716">CA Acquires Cassatt</a></p>
<p style="padding-left: 30px;">Constructive destruction at work.</p>
<p><a href="http://www.theserverlabs.com/blog/2009/05/29/setting-up-a-load-balanced-oracle-weblogic-cluster-in-amazon-ec2/">Setting up a load-balanced Oracle Weblogic cluster in Amazon EC2</a></p>
<p style="padding-left: 30px;">It&#8217;s got to become easier, whether Oracle or somebody else does it. In the meantime, this is a good reference.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/798/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/me thinks Google Wave looks like IRC</title>
		<link>http://stage.vambenepe.com/archives/794</link>
		<comments>http://stage.vambenepe.com/archives/794#comments</comments>
		<pubDate>Wed, 03 Jun 2009 06:24:38 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mashup]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=794</guid>
		<description><![CDATA[If you&#8217;re not yet seasick with all the reviews of Google Wave, here are a few additional thoughts.
My mental picture for a Wave is that of an IRC channel on which each message is an edit to an XML doc. And where the IRC server (or a bot, like Zakim) keeps a log of all [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re not yet seasick with <a href="http://blog.monstuff.com/archives/000358.html">all</a> <a href="http://mashable.com/2009/05/31/google-wave-test/">the</a> <a href="http://theappslab.com/2009/06/01/google-wave-the-killer-enterprise-apps-platform/">reviews</a> of <a href="http://wave.google.com/">Google Wave</a>, here are a few additional thoughts.</p>
<p>My mental picture for a Wave is that of an IRC channel on which each message is an edit to an XML doc. And where the IRC server (or a bot, like <a href="http://www.w3.org/2001/12/zakim-irc-bot">Zakim</a>) keeps a log of all messages. I think it&#8217;s the use of bots in Wave as in IRC that pushed me towards this view. The character-per-character update reminded me of the arguments about the comparative values of the Unix &#8220;talk&#8221; command and IRC. And if the IRC comparison holds water, hang on for the upcoming bot wars. BTW, doesn&#8217;t this <a href="http://www.waveprotocol.org/">Wave Federation Protocol</a> look like an ideal opportunity to resurrect the IRC bot attack code that leveraged <a href="http://en.wikipedia.org/wiki/Netsplit">server splits</a>?</p>
<p>Leaving IRC aside, the other obvious lens through which to look at Wave is the good old WS/REST debate. Let&#8217;s brace ourselves for the &#8220;is Wave RESTful&#8221; analysis that are sure to follow. I&#8217;ll note, tongue in cheek, that an alternative (to XMPP) way to implement a Wave could be provided by the WS specifications currently being worked on in the W3C <a href="http://www.w3.org/2002/ws/ra/">Web Services Resource Access working group</a> : send a succession of <a href="http://www.w3.org/TR/2009/WD-ws-resource-transfer-20090317/">WS-RT</a> &#8220;Put&#8221; messages to a <a href="http://www.w3.org/TR/2009/WD-ws-eventing-20090317/">WS-Eventing</a> event sink that, in turn, acts as an event source. Or formalize the sink/source combination more cleanly as a broker from <a href="http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-os.pdf">WS-BrokeredNotification</a>. Finally a non-management use case for these specifications! Good luck doing character-by-character updates over this, but I am not sure that this is the most fundamental part of Wave anyway (though it makes for a good demo).</p>
<p>Nick Gall is <a href="http://ironick.typepad.com/ironick/2009/06/my-2-on-google-wave-www-is-a-unidirectional-web-of-published-documents----wave-is-a-bidirectional-web-of-instant-messages.html">right</a> to separate the &#8220;technology showcase&#8221; aspect from the &#8220;killer app&#8221; aspect. The demo is very nice but it takes more than cool technology to change years of habits and social conventions, supported by hundreds of tools. So I am not sure how much of a killer app this collaboration demo is, however nice. On the other hand, I can see how the underlying framework (or at least the techniques used to create it) could quickly spread. I need more time looking at the federation protocol to decide what I think about it. This <a href="http://googleblog.blogspot.com/2009/05/went-walkabout-brought-back-google-wave.html">blog entry</a> clearly describes the three Ps (product, platform, protocol) and some of the history.</p>
<p>As far as how this may relate to systems management, I don&#8217;t see too much alignment from a modeling perspective. What really matters in IT models are the relationships between the entities and Wave puts a lot more focus on the content of each wave than its relationships with others. At least for now. The underlying synchronization techniques on the other hand seem more readily applicable. The Rasmussen brothers previously created Google Maps which I found <a href="http://stage.vambenepe.com/archives/48">very inspiring</a> from an IT management point of view. Years later the IT management industry still hasn&#8217;t caught up with them.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/794/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cloud APIs need to be complemented by Cloud processes</title>
		<link>http://stage.vambenepe.com/archives/783</link>
		<comments>http://stage.vambenepe.com/archives/783#comments</comments>
		<pubDate>Fri, 22 May 2009 06:05:58 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Application management]]></category>
		<category><![CDATA[Business process]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[ITIL]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=783</guid>
		<description><![CDATA[A lot of attention has been focused on technical standards for Cloud computing, especially over the last month (e.g. DMTF incubator announcement). That&#8217;s fine, but before we go crazy with detailed technical standards let&#8217;s realize that for Cloud computing (of the public variety at least) to take off we&#8217;ll need just as much standardization of [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of attention has been focused on technical standards for Cloud computing, especially over the last month (e.g. <a href="http://stage.vambenepe.com/archives/715">DMTF incubator announcement</a>). That&#8217;s fine, but before we go crazy with detailed technical standards let&#8217;s realize that for Cloud computing (of the public variety at least) to take off we&#8217;ll need just as much standardization of non-technical interactions. Namely processes.</p>
<p>This, to me, is one of the most interesting angles on the recent announcement by Amazon AWS that they now support (in limited beta) the ability to load data from <a href="http://www.allthingsdistributed.com/2009/05/amazon_import_export.html">storage that is physically shipped to them</a>. Have a look at <a href="http://aws.typepad.com/aws/2009/05/send-us-that-data.html">this announcement</a> and you&#8217;ll notice that it spends more time describing a logistical process (how to <a href="http://docs.amazonwebservices.com/AWSImportExport/2009-05-20/DG/CHAP_UsingTheService.html#PackingYourMedia">pack</a>, how to <a href="http://docs.amazonwebservices.com/AWSImportExport/2009-05-20/DG/CHAP_UsingTheService.html#FillingouttheShipLabelandShipIt">ship</a>&#8230;) than technical interfaces (storage device <a href="http://docs.amazonwebservices.com/AWSImportExport/2009-05-20/DG/CHAP_GettingSetUp.html#StorageDeviceRequirements">requirements</a>, how to create a <a href="http://docs.amazonwebservices.com/AWSImportExport/2009-05-20/DG/index.html?CHAP_ManifestFile.html">manifest</a>&#8230;). It is still part of the &#8220;AWS Developer Guide&#8221; but clearly these instructions are not just for developers.</p>
<p>Many more such processes need to be &#8220;standardized&#8221; (or at least documented) for companies to efficiently be able to use public Clouds (and to some extent even private Clouds). Let&#8217;s take SLAs as an example. It sounds good when a Cloud provider says &#8220;we offer SLAs&#8221;. But what does it mean? Does it mean &#8220;we advertise some SLA numbers, you&#8217;re responsible for contacting us (trough a phone number hidden somewhere on our site) when you think we&#8217;ve violated them; if we agree with your measurements then you may get a check in the mail at some point in the future&#8221;? Not so useful. If, on the other hand, there is a clear definition of the metric that the SLA applies to, a clear definition of how it gets measured (do we trust provider performance reports, customer measurement, a third party monitor&#8230;), a clear process to claim refund, a clear process to actually provide the refund (credit for future service or direct payment, when/how is the payment made&#8230;), then it becomes more useful.</p>
<p>I picked the SLA enforcement example because it happens to be an area that the TMF (TeleManagement Forum) has made <a href="http://www.tmforum.org/library/etom/7.5_short/Flows/SLA/indexdiagram.htm">partially available</a> as a teaser for its eTOM business process framework (aimed at telco providers). The full list of eTOM processes is only available to paying subscribers. One of the <a href="http://www.tmforum.org/BusinessProcessFramework/1647/home.html">goals</a> of the eTOM process framework is <em>&#8220;to simplify procurement, serving as a common language between service providers and suppliers&#8221;</em>. <a href="http://www.tmforum.org/BusinessProcessFramework/6775/home.html">Another way</a> to say it is that eTOM <em>&#8220;recognizes that the enterprise interacts with external parties, and that the enterprise may need to interact with process flows defined by external parties, as in ebusiness interactions&#8221;</em>. Exactly what we are talking about when it comes to making public Clouds easily consumable by enterprises. SLA management is just one small part of the overall eTOM framework (if you look for it in this <a href="http://www.tmforum.org/browse.aspx?linkID=35431&amp;docID=8862">eTOM overview poster</a> it&#8217;s in purple, under &#8220;assurance&#8221;, in the first row).</p>
<p>My point is not to assert that Cloud providers should adopt eTOM. Nobody adopts eTOM directly as a blueprint anyway. But, while the cultures and maturity levels are sometimes different, it is also hard to argue that Cloud providers have nothing to learn form telco providers (many of which are <a href="http://sanjeevaggarwal.wordpress.com/2009/03/27/can-cloud-computing-and-managed-services-resolve-the-telecom-crisis/">becoming Cloud providers themselves</a>). I shudder at the idea of AT&amp;T teaching another company how to handle customer service, but have you ever tried to <a href="http://discuss.joelonsoftware.com/default.asp?biz.5.730915.0">call Google</a>?</p>
<p>Readers of this blog are likely to be more familiar with ITIL than eTOM (who, incidentally, incorporates parts of ITIL in its latest version, 8.0). For those who don&#8217;t know about either, one way to think about it is that Cloud providers would implement processes that look somewhat like eTOM processes, that Cloud consumers implement IT management processes that follow to some extent ITIL best practices and that these two sets of processes need to meet for public Clouds to work. I touched on this a few months ago, when I <a href="http://stage.vambenepe.com/archives/569">commented</a> on the incorporation of Cloud services in an IT service catalog.</p>
<p>My main point is not about ITIL or eTOM. It&#8217;s simply that there are important process aspects to delivering/consuming Cloud services and that they have so far been overshadowed by the technical aspects. The processes sketched in the AWS import/export capability represent the first drop of an upcoming shower.</p>
<p>[UPDATED 2009/5/22: More on telcos becoming Cloud providers from <a href="http://chucksblog.emc.com/chucks_blog/2009/05/emc-takes-atmos-storage-online.html">EMC's Chuck Hollis</a>, with a <a href="http://www.redmonk.com/jgovernor/2009/05/22/cloud-computing-on-structural-advantages-and-lessons-from-history-emcworld/">retort</a> by James Governor. Just listing these as FYI but my main point in this post is not about telcos, it's about the need to clarify processes, independently of whether the provider is Amazon or AT&amp;T. It's just that the telcos have been working on such process standardization for a long time. Hoff provides another example of where process standardization is needed in Cloud relationships: <a href="http://www.rationalsurvivability.com/blog/?p=877">right to audit</a>.]</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/783/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IT automation: the seven roads to management middleware</title>
		<link>http://stage.vambenepe.com/archives/773</link>
		<comments>http://stage.vambenepe.com/archives/773#comments</comments>
		<pubDate>Wed, 20 May 2009 08:52:34 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=773</guid>
		<description><![CDATA[You can call it a &#8220;Cloud operating system&#8221;, an &#8220;adaptive infrastructure framework&#8221; or simply &#8220;IT management middleware&#8221; (my vote) as you prefer. It&#8217;s the software that underpins the automation engine of your Cloud. You can&#8217;t have a Cloud without an automation engine, unless you live in a country where IT admins run really fast, never [...]]]></description>
			<content:encoded><![CDATA[<p>You can call it a &#8220;Cloud operating system&#8221;, an &#8220;adaptive infrastructure framework&#8221; or simply &#8220;IT management middleware&#8221; (my vote) as you prefer. It&#8217;s the software that underpins the automation engine of your Cloud. You can&#8217;t have a Cloud without an automation engine, unless you live in a country where IT admins run really fast, never push the wrong button, never plug a cable in the wrong port, can interpret blinking lights at a rate of 9,600 bauds and are very cheap. The automation engine is what technically makes a Cloud. That engine is an application whose business is to know what needs to be done to maintain the IT environment you use in a state that is acceptable to you at any point in time (where you definition of &#8220;acceptable&#8221; can evolve). Like any application, you want to keep its business logic neatly isolated from the mundane tasks that it relies on. These mundane tasks include things like:</p>
<ul>
<li>collecting events and delivered them to the right place</li>
<li>collecting metrics of the different IT elements</li>
<li>discovering available resources and accessing them (with or without agents)</li>
<li>performing coordinated actions on IT elements</li>
<li>maintaining an audit of management actions</li>
<li>securing the management interactions</li>
<li>managing long-running tasks and processes</li>
<li>etc</li>
</ul>
<p>That&#8217;s what management middleware does. It doesn&#8217;t automate anything by itself, but it provides an environment in which it is feasible to implement automation. This middleware is useful even if you don&#8217;t automate anything, but it often doesn&#8217;t get called out in that scenario. On the other hand, automation means capturing more business logic in software which makes it imperative to clearly layer concerns, at which point the IT management middleware can be more clearly identified within the overall IT management infrastructure.</p>
<p>This is happening in many different ways. I can count seven roads to IT management middleware, seven ways in which it is emerging as an identifiable actor in data centers. Each road represents a different history and comes with different assumptions and mindsets. And yet, they go after the same base problem of enabling IT management automation. Here is a quick overview of these seven roads.</p>
<p><strong>Road #1: &#8220;these scripts have to grow up&#8221;</strong></p>
<p>This road starts from all the scripts common in IT operations and matures them. It&#8217;s based on the realization that they are crucial business assets, just like the applications that they support. And that they implement reusable patterns. Alex Honor described it well <a href="http://dev2ops.blogspot.com/2008/05/stone-axes.html">here</a>. <a href="http://reductivelabs.com/trac/puppet">Puppet</a> and <a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx">Powershell</a> are in this category.</p>
<p><strong>Road #2: &#8220;it&#8217;s just another integration job&#8221;</strong></p>
<p>We&#8217;ve been doing computer integration almost since the second piece of software was written. There are plenty of mechanisms available to do so. IT management is just another integration problem, so let&#8217;s present it in a way that allows us to use our favorite integration tools on it. That&#8217;s the driver behind the use of Web Services for management integration (e.g. WSDM/WS-Management): create interfaces to manageable resources so that existing middleware (mostly J2EE application servers, along with their WS stack) can be used to solve the &#8220;enterprise IT management&#8221; integration problems in a robust and reliable way. The same logic is behind the current wave of REST-based IT management efforts (see <a href="http://www.slideshare.net/StuC/designing-enterprise-it-systems-with-rest-qcon-san-francisco-2008-presentation">this presentation</a>). REST is a good integration approach, so let&#8217;s turn IT resources into RESTful resources so we can apply this generic integration mechanism to enterprise IT management. Different tool, but same logical approach. Which is why they can be easily <a href="http://www.redmonk.com/jgovernor/2009/02/12/the-rest-of-the-cloud/">compared</a>.</p>
<p><strong>Road #3: &#8220;top-down&#8221;</strong></p>
<p>This is the &#8220;high road&#8221;, the one most intellectually satisfying and most promising in the long term. But also the one with this highest hurdle off the gate. In this approach, you create a top-down model of your system and you try to mediate management actions through this model. But for this to be practical, you need to hit the sweetspot in many dimensions. You need composable sub-models at a level of granularity that makes them maintainable. You need to force enough uniformity but not so much as to loose all optimizations. You need to decide which of the myriads of configuration variables you include in your model. Because you can&#8217;t take the traditional approach of &#8220;I&#8217;ll model it and display it to my user who can decide what to do with it&#8221;. Because the user now is a piece of software and it can&#8217;t make a judgment of whether it is ok if parameter foo differs from the desires state or not. This has been worked on for a long time (remember HP&#8217;s <a href="http://news.zdnet.com/2100-9584_22-138727.html">UDC</a>?) with steady but slow progress. Elastra has some of the most interesting technology there, and a healthy dose of realism and opportunism to make it work.</p>
<p>Think of it as SCA component/composites but not just for software artifacts. Rather, it&#8217;s SCA for all IT elements, with wires and policies that are just rich enough to allow meaningful optimization but not too rich to be unmanageable. If you can pull off such model-driven IT management middleware, then the automation code almost writes itself on top of it.</p>
<p><strong>Road #4: &#8220;management integration is another feature of our management console&#8221;</strong></p>
<p>That was the road followed by the Big Four. Buy enough of their products (CMDBs, network management console, operations console, service desk, etc&#8230;) and you&#8217;ll get APIs that allow you to leverage their discovery, collection, eventing and process management features. So you can write your automation on top. At least on paper. In reality, these APIs are too inconsistent and import/export-oriented to really support SOA-style (or REST-style) integration, even though they usually have a SOAP and/or plain HTTP option available. It&#8217;s a challenge just to get point to point integration between these products, even more a true set of management services that can be orchestrated. These vendors know it and rather than turning their product suites into a real SOI (Service Oriented Infrastructure) they have decided to build/buy automation engines on the side that can be hard-wired with the existing IT management products. That&#8217;s your IT management middleware but it comes bundled with the automation engine rather than as an independent layer.</p>
<p><strong>Road #5: </strong><strong>&#8220;management integration is another feature of our hypervisor&#8221;</strong></p>
<p>If the virtual machine (in the x86 virtualization sense of the term, a.k.a. a <a href="http://stage.vambenepe.com/archives/135">fake machine</a>) is the basic building block of your IT infrastructure then hypervisor interfaces to manipulate these VMs are pretty much all you need in terms of middleware to build data center automation on top, right? Are we done then? Not really, since there is a lot more to an application than the VMs on which it runs. Still, hypervisors bring the potential of automation to what used to be a hardware domain and as such play a big part in the composition of the IT management middleware of modern data centers.</p>
<p><strong>Road #6: &#8220;make it all the same&#8221;</strong></p>
<p>From what I understand about how Yahoo, Google (see <a href="http://labs.google.com/papers/disk_failures.pdf">section 2.1 &#8220;System Health Infrastructure&#8221;</a>), Microsoft (see the &#8220;device manager&#8221; and &#8220;collection service&#8221; parts of <a href="http://research.microsoft.com/pubs/64604/osr2007.pdf">Autopilot</a>) and others run their Web applications, they have put a lot of work in that management middleware and have made simplicity a key design goal for it. To that end, they are  willing to accept drastic limitations at both ends of the IT infrastructure chain: at the bottom, they actively limit the heterogeneity of resources in the data center. At the top, they limit the capabilities exposed to the business applications. In an extreme scenario, all servers are the same and all the business applications are written to a few execution/persistence/communication environments (think GAE SDK as an example). Even if you only approximate this ideal, it&#8217;s a dramatic simplification that makes your IT management middleware much simpler and thinner.</p>
<p><strong>Road #7: &#8220;it&#8217;s the Grid&#8221;</strong></p>
<p>The Grid computing and HPC (High Performance Computing) communities have long been active in this area. There is a lot of relevant expertise in <a href="http://www-unix.globus.org/alliance/publications/papers.php">all the Grid work</a>, but we also need to understand the difference between IT management middleware and the Grid infrastructure as defined by OGSI. OGSI defines a virtualization layer on which to build applications. It doesn&#8217;t define how to deploy, manage and configure the physical datacenter infrastructure that allows OGSI interfaces to be exposed to consumers. With regards to HPC, we also need to keep in mind that the profile of the applications is very different from your typical enterprise application (especially the user-driven apps as opposed to batch jobs). In HPC environments, CPUs can run at full capacity for days and new requests just go in a queue. The Web applications of your typical enterprise don&#8217;t have this luxury and usually need spare capacity.</p>
<p>All these approaches can complement each other and I am not trying to pin each product/vendor to just one approach. In <a href="http://www.stucharlton.com/blog/archives/000581.html">this post</a> (motivated by <a href="http://www.redmonk.com/cote/2009/02/09/pulse-2009-wooing-the-cloud-it-management-podcast-special/">this podcast</a>), Stu Charlton discusses the overlap and differences between some of these approaches. Rather than a taxonomy of products, this list of seven roads to IT management middleware is simply a cultural history, a reading guide to understand the background, vocabulary and assumptions of the different solutions. This list cuts across the <a href="http://stage.vambenepe.com/archives/565">declarative versus procedural</a> debate (#1 is clearly procedural, #3 is clearly declarative, the others could go either way).</p>
<p>[UPDATED 2009/6/23: Stu has a somewhat related (similary structured but much more entertainingly writen) <a href="http://www.stucharlton.com/blog/archives/000585.html">list of Cloud Computing approaches</a>. I feel good that I have one more item in my list than him.]</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/773/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oracle buys Virtual Iron</title>
		<link>http://stage.vambenepe.com/archives/768</link>
		<comments>http://stage.vambenepe.com/archives/768#comments</comments>
		<pubDate>Wed, 13 May 2009 16:57:00 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=768</guid>
		<description><![CDATA[The rumor had some legs. Oracle announced today that is has acquired Virtual Iron for its virtualization management technology. This publicly-available white paper is a great description of the technology and product capabilities.
Here is a short overview (from here).
VI-Center provides the following capabilities: 

 Physical infrastructure: Physical hardware discovery, bare metal     [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://dcsblog.burtongroup.com/data_center_strategies/2009/03/virtual-iron-acquired-by-oracle-rumor.html">rumor</a> had some legs. Oracle <a href="http://www.sap.com/about/company/sapventures/index.epx">announced</a> today that is has acquired <a href="http://www.virtualiron.com/">Virtual Iron</a> for its virtualization management technology. This publicly-available <a href="http://www.virtualiron.com/wp/Virtual-Iron-V42-Technical-White-Paper.pdf">white paper</a> is a great description of the technology and product capabilities.</p>
<p>Here is a short overview (from <a href="http://www.virtualiron.com/Products-and-Services/Technology-And-Architecture/index.php">here</a>).</p>
<p><em>VI-Center provides the following capabilities: </em></p>
<ul type="square">
<li><em> Physical infrastructure: Physical hardware discovery, bare metal            provisioning, configuration, control, and monitoring </em></li>
<li><em> Virtual Infrastructure: Virtual environment creation and hierarchy,            visual status dashboards, access controls </em></li>
<li><em> Virtual Servers: Create, Manage, Stop, Start, Migrate, LiveMigrate </em></li>
<li><em> Policy-based Automation: LiveCapacity™, LiveRecovery™, LiveMaintenance,            Rules Engine, Statistics, Event Monitor, Custom policies </em></li>
<li><em> Reports: Resource utilization, System events </em></li>
</ul>
<p>Interesting footnote: I <a href="http://blogs.barrons.com/techtraderdaily/2009/05/13/oracle-agrees-to-buy-virtual-iron-terms-not-disclosed/">read</a> that <a href="http://www.sap.com/about/company/sapventures/index.epx">SAP Ventures</a> was an investor in Virtual Iron&#8230;</p>
<p>I also notice that the word &#8220;cloud&#8221; does not appear once in the <a href="http://www.virtualiron.com/News-and-Events/News-Releases/index.php">list of all press releases</a> issued by Virtual Iron over three years. For a virtualization start-up, that&#8217;s a pretty impressive level of restrain and hype resistance.</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/768/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The law of conservation of hype</title>
		<link>http://stage.vambenepe.com/archives/755</link>
		<comments>http://stage.vambenepe.com/archives/755#comments</comments>
		<pubDate>Fri, 08 May 2009 08:45:53 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[CrazyStats]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=755</guid>
		<description><![CDATA[To the various conservation laws from physics (e.g. of energy and of momentum), one can add the law of conservation of hype. In the IT industry, as in others, there is only so much bandwidth for over-hyped concepts. Old ones have to move out of the limelight to make room for new ones, independently of [...]]]></description>
			<content:encoded><![CDATA[<p>To the various conservation laws from physics (e.g. of energy and of momentum), one can add the law of conservation of hype. In the IT industry, as in others, there is only so much bandwidth for over-hyped concepts. Old ones have to move out of the limelight to make room for new ones, independently of their usefulness.</p>
<p>Here is this law, I think, illustrated in action. After running a Google Trends <a href="http://www.google.com/trends?q=Cloud+computing%2C+SOA%2C+web+services%2C+virtualization&amp;ctab=0&amp;geo=all&amp;date=all&amp;sort=0">report</a> on &#8220;web services&#8221;, &#8220;SOA&#8221;, &#8220;virtualization&#8221; and &#8220;cloud computing&#8221;, I downloaded the underlying data and added one line: the total search volume across all four terms. Here is the result:</p>
<p><img class="alignnone" title="SOA/WS/Cloud search volume trend" src="http://stage.vambenepe.com/pages/ws-soa-cloud-virt-trends.png" alt="SOA/WS/Cloud/Virtualization search volume trend" width="755" height="548" /></p>
<p>The black line, &#8220;total&#8221;, is remarkably flat (if you ignore the annual Christmas-time drop). There is a surge in late 2007 for both WS and SOA that I can&#8217;t really link to anything (Microsoft first announced Oslo around that time, but I doubt this explains it). Other than this, there is a nice continuity that seems to graphicaly support the following narrative:</p>
<p>Web services were the hot thing in the beginning of the decade among people who sell and buy corporate IT systems. Then the cool kids decided that Web services were just an implementation technology but what matters is the underlying pattern. So &#8220;SOA&#8221; became the word to go after. Just ask Sys-con: exit &#8220;Web Services Journal&#8221;, hello &#8220;SOA World magazine&#8221;. Meanwhile &#8220;virtualization&#8221; has been slowly growing and suddenly came Cloud computing. These two are largely an orthogonal concern from the SOA/WS pair but it doesn&#8217;t matter. Since they interest the same people, the law of conservation of hype demands that room be made. So down goes SOA.</p>
<p>The bottom line (and the reason why I ran these queries on Google Trends to start with) is that I feel that application integration and architecture concerns have been pushed out of the limelight by Cloud computing, but that important work is still going on there (some definition work and a lot of implementation work). Work that in fact will become critical when Cloud computing grows out of its VM-centric adolescent phase. I plan to write more entries about this connection (between Cloud computing and application architecture) in the future.</p>
<p>[Side note: I also put this post in the <a href="http://stage.vambenepe.com/archives/category/crazystats">crazyStats</a> category because I understand that by carefully picking the terms you include you can show any trend you want for the "total". My real point is not about proving "the law of conservaton of hype" (though I believe in it). Rather, it is captured in the previous paragraph.]</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/755/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hyperic joins SpringSource</title>
		<link>http://stage.vambenepe.com/archives/747</link>
		<comments>http://stage.vambenepe.com/archives/747#comments</comments>
		<pubDate>Tue, 05 May 2009 05:09:06 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Application management]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Manageability]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Utility computing]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=747</guid>
		<description><![CDATA[SpringSource&#8217;s Rod Johnson tells us today that his company just bought Hyperic. The press release is a bit more specific, announcing that SpringSource acquired &#8220;substantially all of the assets of Hyperic&#8221;, which sounds different from acquiring the company itself. Maybe not for SpringSource customers, but possibly for current Hyperic customers (and investors). Acquiring the assets [...]]]></description>
			<content:encoded><![CDATA[<p>SpringSource&#8217;s Rod Johnson <a href="http://blog.springsource.com/2009/05/04/hyperic/">tells us today</a> that his company just bought Hyperic. The <a href="http://www.hyperic.com/news/releases/springsource-acquires-hyperic.html">press release</a> is a bit more specific, announcing that SpringSource acquired &#8220;substantially all of the assets of Hyperic&#8221;, which sounds different from acquiring the company itself. Maybe not for SpringSource customers, but possibly for current Hyperic customers (and investors). Acquiring the assets of an open source company may sound like a bit of an oxymoron (though I understand it&#8217;s not just about the source code), but Hyperic is what&#8217;s called an &#8220;open core&#8221; company, which means not all the code is open source (see Tarus&#8217; <a href="http://blogs.opennms.org/?p=641">take</a> on it). But the main difference between this and forking might be that you are getting the key employees; who are nice enough with their investors do to it in an orderly way.</p>
<p>Anyway, this is not a business or HR blog, it&#8217;s about the technology. And on that front, this looks like an interesting way for SpringSource to expand their monitoring from just the application down into some parts of the infrastructure, at least to some extent. SpringSource&#8217;s <a href="http://blog.springsource.com/2008/03/31/springsource-application-management-suite-ams-released/">AMS</a> (Application Management Suite) was already based on Hyperic, so the integration headaches should be minimal. And Hyperic has been doing some Cloud monitoring work too (see this <a href="http://www.johnmwillis.com/hyperic/cloud-cafe-32-cloud-talk-with-hyperic/">podcast</a> if you want to learn more about it), which if nothing else is PR gold these days (I am not saying it&#8217;s just that, but it is that for sure).</p>
<p>As a side note, it is ironic that Hyperic (which started inside Covalent until Javier Soltero <a href="http://blogs.zdnet.com/open-source/?p=673">spun it off</a> and became its CEO) is now reunited with its mothership (SpringSource <a href="http://blog.springsource.com/2008/01/29/some-decisions-are-easy-%E2%80%93-like-springsource-acquiring-covalent/">acquired Covalent</a> last year).</p>
<p>I am a big proponent of management capabilities in application infrastructure. I <a href="http://stage.vambenepe.com/archives/188">applauded</a> Rod Johnson for writing something along the same line last year and I am pleased to see him really push this approach with this acquisition.</p>
<p>Here are the questions that come to my mind when I read about this deal (keep in mind that this is competition from my perspective, so feel free to &#8220;question my questions&#8221; as you read):</p>
<p>I was going to ask whether this acquisition means that Hyperic users who don&#8217;t care for Spring are going to see diminishing value as the product becomes more tied to Spring. But if you look at what Hyperic gives you on the resources it manages, it&#8217;s mainly a list of metrics and a few control operations. These will still be there because they&#8217;ll be needed for the Spring-centric view anyway. It would be more of a question if Hyperic had advanced discovery features (e.g. examine all the config files of the managed resources and extract infrastructure topology from them). I would wonder if these would still be maintained/improved for non-Spring middleware. But again, not an issue here since I don&#8217;t think there is much of this in Hyperic today. And since presumably SpringSource made the acquisition in part to cover more resources types in their management offering (Rod talks about DB and VM management in his post), the list of supported infrastructure elements (OS, DB, VM, network&#8230;) will presumably grow rather than shrink. What may be trimmed down eventually is the list of application runtimes currently supported. If you&#8217;re a Hyperic/Coldfusion user you should probably attend the upcoming <a href="https://www1.gotomeeting.com/register/422979681">webcast</a> to hear about the plans.</p>
<p>Still on the topic of Hyperic&#8217;s monitoring-only capabilities, it means that if Rod Johnson really wants to provide everything for Java developers to put &#8220;applications into production without the mediation of operations&#8221;, as he says, then he should keep his checkbook open (as a side note, if a developer puts &#8220;applications into production&#8221; then s/he doesn&#8217;t bypass operations but rather <em>becomes</em> operations; you may not think of yourself as one, but if you&#8217;re the one who gets called when the application crashes then you are in &#8220;operations&#8221;). SpringSource is still a long way from offering the complete picture. Here are my guesses for the management features on Rod&#8217;s grocery list:</p>
<ul>
<li>configuration management -many potential acquisition candidates</li>
<li>in depth database management (going beyond the <em>&#8220;you want metrics? we&#8217;ve got metrics!&#8221;</em> approach to DB management) &#8211; fewer candidates</li>
</ul>
<p>As far as in-house developement, I would expect this acquisition to first yield some auto-discovery of application (and infrastructure) topology in a Spring environment. Then they&#8217;ll have to decide if they want to double-down on Cloud support and build/buy more automation features or rather focus on application-centric management and join the fray of BTM / transaction tracing. Doing both at the same time would be very ambitious. This <a href="http://www.theregister.co.uk/2009/05/04/springsource_hyperic_acquisition/">Register article</a> seems to imply the former (Cloud) but my guess is that SpringSource will make the smart choice of focusing on the latter (application-centric management). I see in the Register that, <em>&#8220;Peter Cooper-Ellis, SpringSource&#8217;s senior vice president of engineering and product management called management of the cloud and virtualized datacenters a strategic driver for the deal&#8221;</em>. But this sounds more like telling a buzzword-hungry reporter what he wants to hear rather than actual strategy to me. We&#8217;ll see. I hope this acquisition and its follow-through will help move the industry in the right direction of application-centric management, something that will take more than one company.</p>
<p>[UPDATED 2009/5/7: A nice <a href="http://www.infoq.com/news/2009/05/springsource_hyperic">article</a> on the acquisition by Charles Humble at InfoQ. Though I have to take issue with the assertion that "many aspects of monitoring that are essential in a data centre, such as OS and network monitoring, are irrelevant in the context of the cloud".]</p>
<p>[UPDATED 2009/6/23: <a href="http://www.redmonk.com/cote/2009/06/23/links-for-june-22nd-through-june-23rd/">Via Cot</a>é, an <a href="http://www.springsource.com/node/1790">announcement</a> that shows that the Cloud angle might have more post-aquisition juice than I expected. Unless this thing coasted on momentum alone.]</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/747/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cloud API: what&#8217;s cooking between IBM and VMWare?</title>
		<link>http://stage.vambenepe.com/archives/743</link>
		<comments>http://stage.vambenepe.com/archives/743#comments</comments>
		<pubDate>Sat, 02 May 2009 06:17:20 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DMTF]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[OVF]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[Specs]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=743</guid>
		<description><![CDATA[In the previous entry, I declared that I had a &#8220;guess as to why [the DMTF Cloud] incubator was created without a submission&#8221;, that I may later reveal. Well here it is: VMWare and IBM are negotiating a joint Cloud API submission to DMTF and need more time before they can submit it.
This is 100% [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a href="http://stage.vambenepe.com/archives/720">previous entry</a>, I declared that I had a <em>&#8220;guess as to why [the DMTF Cloud] incubator was created without a submission&#8221;</em>, that I may later reveal. Well here it is: VMWare and IBM are negotiating a joint Cloud API submission to DMTF and need more time before they can submit it.</p>
<p>This is 100% speculation on my part. It&#8217;s not even based on rumors or leaks. I made it up. Here are the data points that influenced me. You decide what they&#8217;re worth.</p>
<ul>
<li>VMWare has at numerous time <a href="http://www.vmware.com/company/news/releases/cloud-initiatives-vmworld.html">announced</a> (comments <a href="http://dcsblog.burtongroup.com/data_center_strategies/2009/02/standardizing-the-cloud-implications-of-vmware-submitting-vcloud-api-to-dmtf.html">here</a> and <a href="http://stage.vambenepe.com/archives/645">here</a>) that they would submit a vCloud API to DMTF in the first half of 2009.</li>
<li>In the <a href="http://rodos.haywood.org/2008/10/transcript-of-all-about-vcloud-podcast.html">transcript</a> of this VMWare <a href="http://blogs.vmware.com/vmtn/2008/10/all-about-vclou.html">webcast</a> we learn that an important part of the vCloud API is its adoption of REST as part of a move towards more abstraction and simplicity (<em>&#8220;this is not simply proxy-ing of VIM APIs&#8221;</em>).</li>
<li>IBM, meanwhile, has been trying to get a SOAP-based IT management framework for a while. Unsuccessfully so far. WSDM was a first failed attempt. The WS-Management/WSDM reconciliation was another one (I was in the same boat on both of these). The WS-RA working group at W3C (where the ashes of WS-RT are smoldering) could be where the third attempt springs from. But IBM is currently very quiet about their plans (compared to all the conference talks, PowerPoint slides and white papers that that heralded the previous two attempts). They obviously haven&#8217;t given up, but they are planning the next move. And the emergence of Cloud computing in the meantime is redefining the IT automation landscape in a way that they will make sure to incorporate in their updated standards plans.</li>
<li>Then <a href="http://stage.vambenepe.com/archives/715">comes the DMTF Cloud incubator</a> of which the co-chairs are from VMWare and IBM (&#8221;interim&#8221; co-chairs in theory, but we know how these things go). Which seems to imply an agreement around a proposal (this is what the incubator process is explicitly designed for: <em>&#8220;allow vendors aligned with a certain proposal to move forward and produce an interoperability specification&#8221;</em>). But there is no associated specification submission, which suggest that the agreed-upon proposal is still being negotiated.</li>
</ul>
<p>VMWare has a lot of momentum in a virtualization-focused view of IT automation (the predominant view right now, though I am not sure it will always be) and IBM sees them as the right partner for their third attempt (HP was the main partner in the first, Microsoft in the second). VMWare knows that they are going against Microsoft and they need IBM&#8217;s strength to control the standard. This could justify an alliance.</p>
<p>It seems pretty clear that VMWare has an API specification already (they supposedly even gave it to partners). It is also pretty clear that IBM would not agree to it in a wholesale way. For technical and pride reasons. They did it for OVF because it is a narrow specification, but a more comprehensive Cloud API would touch on a lot of aspects where IBM has set ideas and existing products. Here are some of the aspects that may be in contention.</p>
<p><strong>REST versus WS-*</strong> &#8211; Yes, that old rathole. Having just moved to REST, the VMWare folks probably don&#8217;t feel like turning around. IBM has invested a lot in a WS-* approach over the years. It doesn&#8217;t mean that they won&#8217;t go with the REST approach, but it would take them some time to get over it. Lots of fellows and distinguished engineers would need to be convinced. There are some very REST-friendly parts in IBM (in Rational, in WebSphere) but Tivoli has seemed a lot less so to me. The worst outcome is if they offer both options. If you see this (or if you see XPath/XQuery expressions embedded inside URLs or HTTP headers), run for the escape hatches.</p>
<p>While REST versus WS-* is an easy one to grab on, I don&#8217;t think it&#8217;s the most important issue. Both parties are smart enough to realize it&#8217;s not that critical (it&#8217;s the model, not the protocol, that matters).</p>
<p><strong>CBE/WEF</strong> &#8211; IBM has been trying to get a standard stamp on its Common Base Event format (<a href="http://www.ibm.com/developerworks/library/specification/ws-cbe/">CBE</a>) forever. When they did (as WEF, the WSDM Event Format) it was in a simplified form (by yours truly, among others) and part of a standard that wasn&#8217;t widely adopted. But it&#8217;s still there in Tivoli and you can expect it to resurface in some form in their next proposal.</p>
<p><strong>Software packaging</strong> &#8211; I am not sure what&#8217;s up with SDD, but whether it&#8217;s this specification or something else I would expect that IBM would have a lot to say about software packaging and patching. A lot more than VMWare probably cares about. Expect IBM&#8217;s fingerprints all over that part.</p>
<p><strong>Security</strong> &#8211; I have <a href="http://stage.vambenepe.com/archives/128">criticized</a> IBM many times for the &#8220;security considerations&#8221; boilerplate that they stick on every specification. But this in an area in which it actually make sense to have a very focused security analysis, something that IBM could do a lot better than VMWare I suspect.</p>
<p><strong>ITSM / ITIL</strong> &#8211; In addition to the technical aspect of IT management operations, there are plenty of process and human aspects. Many areas of ITSM are applicable (e.g. I have written about the role of <a href="http://stage.vambenepe.com/archives/569">service catalogs</a>, or you can think about the link to CMDBf). IBM has a lot more exposure there than VMWare.</p>
<p><strong>Grid</strong> &#8211; IBM&#8217;s insistence to align Grid computing and IT management is one of the things that weighted WSDM down. Will they repeat this? In a way, Cloud computing *is* that junction of IT management and Grid that they were after with WSRF. But how much of the existing GGF Grid infrastructure are they going to try to accommodate? I don&#8217;t think they&#8217;ll be too rigid on this, but it&#8217;s worth watching.</p>
<p>Seeing how the topics above are handled in the VMWare/IBM proposal (if such a proposal ever materializes) will tell the alert readers a lot about the balance of power between VMWare and IBM.</p>
<p>As a side note, there are very smart people in the EMC CTO office (starting with the <a href="http://www.emc.com/about/emc-at-glance/exec-team/nick.htm">CTO</a> himself and my friend Tom Maguire) who came from IBM and are veterans of the WSDM/WSRF/OGSI efforts. These people could play an interesting role in the IBM/VMWare relationship if the corporate arrangement between EMC and VMWare allows it (my guess is it doesn&#8217;t). Another interesting side note is to ask what Microsoft would do if indeed VMWare and IBM were dancing together on this. Microsoft is listed in the members of the DMTF Cloud incubator, but I notice a certain detachment in <a href="http://blogs.msdn.com/stevemar/archive/2009/04/28/walking-the-walk-the-cloud-and-standards.aspx">this post</a> from Steve Martin. For now at least.</p>
<p>Did I mention that this is all pure speculation on my part? We&#8217;ll see what happens. Hopefully it&#8217;s at least entertaining. And even if I am wrong, the questions raised (around the links between previous IT management efforts and the new wave of Cloud standards) are relevant anyway. I am still in <a href="http://stage.vambenepe.com/archives/700">&#8220;lessons learned&#8221;</a> mode on this.</p>
<p>[UPDATED 2009/5/5: Here is a first-hand source for the data point that VMWare plans to submit the vCloud API (rather than second-hand reports from reporters): Winsont Bumpus (VMWare's Director of Standards Architecture) <a href="http://blogs.vmware.com/console/2009/03/open-cloud-standards-part-1.html">says</a> that "VMware announced its intention to submit its key elements of the vCloud API to an existing standards organization for the basis of developing an industry standard".]</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/743/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A pulp view of Cloud computing politics</title>
		<link>http://stage.vambenepe.com/archives/720</link>
		<comments>http://stage.vambenepe.com/archives/720#comments</comments>
		<pubDate>Wed, 29 Apr 2009 09:16:01 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[CMDBf]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DMTF]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[Management integration]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=720</guid>
		<description><![CDATA[As promised, here are some more thoughts on the creation by DMTF of an incubator for Cloud standards. The first part of this entry asks whether DMTF will play nicely with the other kids in the playground. The second part examines the choice of the &#8220;incubator&#8221; process in DMTF for this work.
Sharing the sandbox with [...]]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://stage.vambenepe.com/archives/715">promised</a>, here are some more thoughts on the creation by DMTF of an incubator for Cloud standards. The first part of this entry asks whether DMTF will play nicely with the other kids in the playground. The second part examines the choice of the &#8220;incubator&#8221; process in DMTF for this work.</p>
<p><strong>Sharing the sandbox with the other kids</strong></p>
<p>In other words, will the DMTF seek collaboration with other standards bodies, as well as less-structured organizations (the different Cloud forums and interest groups out there) and other communities (e.g. open source projects). The short answer is &#8220;no&#8221;, for reasons explained below.</p>
<p>The main reason is that companies don&#8217;t have the same level of influence in all organizations. Unless you&#8217;re IBM, who goes in force pretty much everywhere, you place your bets. If you are very influential in organization A but not in B, then the choice of whether a given piece of work happens in A or B decides the amount of influence you&#8217;ll have on it. That&#8217;s very concrete. When companies see it that way, the public-facing discussions about the &#8220;core competencies&#8221; of the different organizations is just hand-waving that has little actual weight in the decision. Just like plaintiffs pick friendly jurisdictions to press charge (e.g. East Texas for patent holders), companies try to choose the standard organization they want the game to be played in. As a result, companies influential in the DMTF want the DMTF to do the work and companies influential in other organizations would rather have the other organization. Since by definition those influential companies make the will of the organizations, you see organizations always trying to grow to cover more ground. For example, VMWare has invested quite a lot in DMTF. I don&#8217;t know if they are even members of OGF (at least they are not <a href="http://www.ogf.org/Members/members_members.php">organizational members</a>) so it makes a huge difference to them. Sure they could just as well ramp up in OGF. But at a cost.</p>
<p>That&#8217;s a general rule that apply to DMTF like others. But collaboration is especially hard for DMTF because it is on the &#8220;opaque&#8221; side of the openess scale (e.g. compare it to OASIS, W3C and OGF which have large amounts of publicly-accessible working documents and mailing list archives). It&#8217;s hard to collaborate if the others can&#8217;t even see what you&#8217;re doing.</p>
<p>But, you may ask, doesn&#8217;t the Cloud incubator <a href="http://www.dmtf.org/about/cloud-incubator/CloudIncubatorCharter2009-04-16.pdf">charter</a> list <em>&#8220;Work register(s) with appropriate alliance partners&#8221;</em> as a deliverable, and aren&#8217;t &#8220;work registers&#8221; what DMTF calls its collaboration agreements with other organizations? Surely they are taking this collaboration to heart, aren&#8217;t they? Let me tell you a story.</p>
<p>Once upon a time, there was a work register in place between DMTF and the OASIS WSDM technical committee which <a href="http://www.oasis-open.org/apps/group_public/download.php/5332/WSDM-DMTFWorkRegisterV1.1.doc">said</a> things like <em>&#8220;OASIS web service standardization for resource sharing and provisioning will be cross-leveraged in DMTF&#8217;s CIM and WBEM standards&#8221;</em> and <em>&#8220;recommendations related to management of and management using web services will be submitted to OASIS&#8221;</em>. Then Microsoft submitted WS-Management, a replacement for WSDM, to DMTF and DMTF used the work register as a doormat.</p>
<p>Don&#8217;t get me wrong though. I do believe that Cloud standards are closely related to IT management automation and that the DMTF has a central role to play there. I am not arguing against DMTF&#8217;s attempt to tackle this. I am just doing a reality check on the prospect of open and meaningful collaboration with other organizations.</p>
<p>OGF is not standing still and has also staked its claim to the Cloud (also focusing on the IaaS form of Cloud computing): it&#8217;s called <a href="http://www.occi-wg.org/doku.php">OCCI</a> for Open Cloud Computing Interface and will share its documents <a href="http://forge.ogf.org/sf/projects/occi-wg">here</a>. OGF and DMTF have long had a <a href="http://www.ogf.org/documents/liaison/OGF-DMTFWorkRegister20080527.pdf">work register</a> too (it includes an eerily familiar sounding sentence, <em>&#8220;Grid technology will be cross-leveraged in the DMTF&#8217;s CIM and WBEM standards&#8221;</em>). Looks like it is going to endure its first stress test.</p>
<p>As for the less structured Cloud gatherings (like CCIF), they&#8217;ll be welcome as long as they play the cheerleader role (<a href="http://groups.google.com/group/cloudforum/msg/c1d4b6477f2722ea?dmode=source"><em>&#8220;If this group forms a Cloud trade association, I can see us establishing an alliance with the DMTF to coordinate the messaging and driving adoption of the DMTF standards&#8221;</em></a>) or are happy providing feedback into a black hole (<a href="http://groups.google.com/group/cloudforum/msg/1c6dd70f07900650?dmode=source"><em>&#8220;DMTF already has a process for providing feedback: http://www.dmtf.org/standards/feedback/ so no additional legal agreements need be made for community members to provide their input&#8221;</em></a>). These are from Mark Carlson, the DMTF VP of Alliances, in a <a href="http://groups.google.com/group/cloudforum/browse_thread/thread/bdf71851e6aed0a1?pli=1">thread</a> about the incubator announcement on the CCIF mailing list. BTW, Mark is a very fair-minded person and an ardent promoter of collaboration (disclosure: he once gave me a ride in a cool Volvo convertible to the Martha&#8217;s Vineyard airport so I could catch my puddle-jumper back to Boston, so I owe him). It&#8217;s not him personally, it&#8217;s the DMTF that is so tightfisted.</p>
<p><strong>The use of the &#8220;incubator&#8221; process</strong></p>
<p>This second part is for standards junkies and other process wonks who run their family dinners by Robert&#8217;s rules of order. Normal people should feel free to move on.</p>
<p>I am not at all surprised to see the incubator process being used here, but I am surprised to see it used in the absence of a submitted specification. I expected VMWare to submit a <a href="http://www.networkworld.com/news/2009/022509-vmware-hails-new-vcloud.html">vCloud API</a> document to this group. What&#8217;s a <a href="http://stage.vambenepe.com/archives/576">rubber stamp</a> for if you don&#8217;t have a piece of paper to stamp with it?</p>
<p>I have my guess as to why this incubator was created without a submission, but that&#8217;s a topic for a future post (a good soap opera writer knows to pace the drama).</p>
<p>In any case, this leaves us in an interesting situation. The incubator process document (<a href="http://www.dmtf.org/standards/published_documents/DSP4008.pdf">DSP 4008</a>) itself says that <em>&#8220;the purpose of this is to allow vendors aligned with a certain proposal to move forward and produce an interoperability specification without being blocked by those who would prefer a different proposal&#8221;</em>. What&#8217;s the &#8220;proposal&#8221; that members of this incubator align with? That Cloud computing is important? Not something that too many people would dispute at this time.</p>
<p>This has interesting repercussions from a process standpoint. The incubator process pushes you towards an informational specification that is then sent to a new working group for quick ratification. The quick ratification is, in effect, the reward for doing the work in the incubator rather than in private. But this Cloud incubator is currently chartered to produce proposed changes to OVF and other DMTF standard (rather than a new specification). Say it does that, what happens to the proposed changes then? Presumably they are sent to the working groups that own the original specifications, but what directives do these groups get from the board? Are they expected to roll over and alter their specifications as demanded by the Cloud incubator? Or do these changes come as comments like any other, for the groups to handle however they sees fit?</p>
<p>Take a concrete example. Oracle, BMC, CA and Fujitsu are very involved in the DMTF CMDBf working group but not (that I can see) in the incubator. If the Cloud incubator comes up with changes needed in CMDBf for Cloud usage, are these companies supposed to accept the changes even if they are disruptive to the original goals of the CMDBf specification? Same goes for WS-Management and even OVF. It&#8217;s one thing for an incubator to produce its own specification, it is another entirely to go and try to change someone else&#8217;s work. Presumably this wouldn&#8217;t stand (or would it?).</p>
<p>The lack of a submission to this incubator may end up creating a lot of argument about the interpretation of DSP 4008. For one thing, the DSP is not precise about when a submission to an incubator can take place. Since an incubator is meant to assemble people who agree with a given proposal, you&#8217;d expect that the proposal would be there at the start (so people can self-select and only join if they buy into it). But this is not explicit in the process.</p>
<p>The more Cloud API standardization unfolds, the more it <a href="http://stage.vambenepe.com/archives/700">looks like the previous attempt</a>.</p>
<p>[UPDATED 2009/5/5: I just saw that Winston Bumpus has been blogging recently on the VMWare exec blog. Hopefully he will soon have his own feed for those of us interested in Cloud standards, an area in which he is a major actor. In <a href="http://blogs.vmware.com/console/2009/04/open-cloud-standards-part-3.html">this entry</a> he describes his view of the DMTF incubator process. It doesn't really align with my reading of the incubator process document though. Winston sees it as "a place for ideas to be developed or incubate before specifications are created", while I see the process as geared towards work that starts from an existing submission. In any case, what really matters is less what the process says than how it is used, and so far it seems that it is being used as Winston describes.]</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/720/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DMTF calls the ball on Cloud standards</title>
		<link>http://stage.vambenepe.com/archives/715</link>
		<comments>http://stage.vambenepe.com/archives/715#comments</comments>
		<pubDate>Mon, 27 Apr 2009 19:59:43 +0000</pubDate>
		<dc:creator>William Vambenepe</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DMTF]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[IT Systems Management]]></category>
		<category><![CDATA[OVF]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Utility computing]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://stage.vambenepe.com/?p=715</guid>
		<description><![CDATA[To no surprise to industry watchers (and especially the small subset of them who read this blog), the DMTF has announced today (warning, PDF) that they are creating their very first &#8220;incubator&#8221; group and it is chartered with standardizing deployment, management and portability of Cloud systems. You&#8217;ve probably skipped it at the time (you&#8217;re forgiven), [...]]]></description>
			<content:encoded><![CDATA[<p>To no surprise to industry watchers (and especially the small subset of them who <a href="http://stage.vambenepe.com/archives/645">read this blog</a>), the DMTF has <a href="http://www.dmtf.org/about/cloud-incubator/DMTF_Cloud_Incubator_PR_FIN.pdf">announced today</a> (warning, PDF) that they are creating their very first &#8220;incubator&#8221; group and it is chartered with standardizing deployment, management and portability of Cloud systems. You&#8217;ve probably skipped it at the time (you&#8217;re forgiven), but you may now be motivated to go back and read this short <a href="http://stage.vambenepe.com/archives/576">analysis of the DMTF incubator process</a>. And now you know why I bothered to look into this never-used two-year old process. Since it was DMTF-internal information, I couldn&#8217;t at the time explain that my motivation was the preparations under way for this <a href="http://www.dmtf.org/about/cloud-incubator/">Cloud computing incubator</a>.</p>
<p>Since the press release talks about Cloud compatibility and since I am obviously in very self-referencing mood today, I have to point to this <a href="http://stage.vambenepe.com/archives/684">&#8220;reality check on Cloud portability&#8221;</a> for a historical perspective.</p>
<p>Three things to notice in the <a href="http://www.dmtf.org/about/cloud-incubator/CloudIncubatorCharter2009-04-16.pdf">charter</a> (warning, PDF) of the incubator:</p>
<p>First and foremost, it explicitly takes a very IaaS-centric view of Cloud computing. And within that, a very VM-driven view. VMWare could have written it&#8230;</p>
<p><em>&#8220;Virtualization technology and the evolution from software packages that can be created and deployed as a collection of virtual images is becoming the primary focus for delivering and managing software solutions into enterprise customers today&#8221;</em>. I guess the &#8220;is becoming&#8221; formulation provides enough wiggle room (interesting rhetorical twist that lets you make a prognostic and yet use the present tense) that one can&#8217;t really call them on it and ask how many enterprise software systems are actually delivered and managed as virtual machines today (see my colleague Adam&#8217;s <a href="http://blogs.oracle.com/virtualization/2009/04/oracle_vm_blog_executing_on_th.html">view</a> of what it will take).</p>
<p>Let&#8217;s next look at the description of the deliverables:</p>
<p><em>Cloud taxonomy</em>:<br />
<em>- Terms and definitions </em><br />
<em>Cloud Interoperability whitepaper</em><br />
<em>Informational specifications</em>:<br />
<em>- Proposed OVF changes for cloud usage</em><br />
<em>- Proposed Profiles  for management of resources exposed by a cloud</em><br />
<em>- Proposed changes to other DMTF standards </em><br />
<em>Requirements for trust for cloud resource management. </em><br />
<em>Work register(s) with appropriate alliance partners (See below) </em></p>
<p>We find the requisite &#8220;cloud taxonomy&#8221; (all the blog chatter about this a few months ago died without producing much alignment beyond the good old &#8220;IaaS, PaaS and SaaS&#8221;, or did I miss something). The interesting aspect to notice is the lack of new specification in the list. Just adjustments to the current ones (including OVF) and some profiling on top. I guess we are much closer to Cloud interoperability and portability than I thought! And the <a href="http://stage.vambenepe.com/archives/700">lessons form the past</a> have been learned.</p>
<p>The third thing to notice is the name of the &#8220;interim co-chairs&#8221;. Who happen to be from VMWare and IBM. Who also happen to be the DMTF President and DMTF Chairman. In case you had any doubt, this is very high profile in DMTF. Especially for something that&#8217;s theoretically only an &#8220;incubator&#8221;. It may just be an egg, but there is a baby T-Rex in it.</p>
<p>Who&#8217;s missing in the party? Two groups of people. First, DMTF members who chose not to join (Oracle, CA, BMC&#8230;). And more importantly, the non-DMTF members who may nevertheless have a few ideas about Clouds: Google, Amazon, Salesforce and all the small Cloud pure-plays. You know, the kind of people who publish their docs in HTML rather than just PDF.</p>
<p>[Note: this is a quick first take written over lunch. More thoughts about the choice of the "incubator process" and the prospects for collaboration with other standards groups to follow, maybe as soon as tonight. -- UPDATE: <a href="http://stage.vambenepe.com/archives/720">done</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://stage.vambenepe.com/archives/715/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
