<?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>MyArch &#187; XML Appliances</title>
	<atom:link href="http://myarch.com/category/xml-appliances/feed" rel="self" type="application/rss+xml" />
	<link>http://myarch.com</link>
	<description>Builds and bytes</description>
	<lastBuildDate>Sat, 17 Mar 2012 14:13:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>DataPower Buddy 2.3 Release</title>
		<link>http://myarch.com/dpbuddy-2-3-release-announcement</link>
		<comments>http://myarch.com/dpbuddy-2-3-release-announcement#comments</comments>
		<pubDate>Sat, 28 Jan 2012 04:48:00 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[DataPower]]></category>
		<category><![CDATA[dpbuddy]]></category>
		<category><![CDATA[WebSphere]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/?p=852</guid>
		<description><![CDATA[You can find DPBuddy 2.3 announcement here.]]></description>
			<content:encoded><![CDATA[<p>You can find <span class="caps">DPB</span>uddy 2.3 announcement <a href="/dpbuddy-2-3-release">here</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://myarch.com/dpbuddy-2-3-release-announcement/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DataPower Deployment Policies and XPath</title>
		<link>http://myarch.com/datapower-deployment-policies-and-xpath</link>
		<comments>http://myarch.com/datapower-deployment-policies-and-xpath#comments</comments>
		<pubDate>Thu, 16 Sep 2010 12:18:13 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[DataPower]]></category>
		<category><![CDATA[dpbuddy]]></category>
		<category><![CDATA[WebSphere]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/?p=698</guid>
		<description><![CDATA[Deployment policy in IBM DataPower appliance is a very nice concept. Deployment policies allow for "tweaking" device and domain configuration for different environments. Let's face it, there are always differences between environments. Sometimes, these differences are small, such as different back-end hosts, and in other cases these differences could be significant, such as different security [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ibm.com/developerworks/websphere/library/techarticles/0904_rasmussen/0904_rasmussen.html">Deployment policy</a> in <span class="caps">IBM</span> DataPower appliance is a very nice concept. Deployment policies allow for "tweaking" device and domain configuration for different environments. Let's face it, there are always differences between environments. Sometimes, these differences are small, such as different back-end hosts, and in other cases these differences could be significant, such as different security policies. It is commendable that <span class="caps">IBM </span>recognized this fact and implemented a mechanism for dealing with this very common problem directly in their product.</p>

<p>Deployment policies do a decent job of dealing with differences between environments. Deployment policies support changing, adding and deleting configuration, so it  is possible to implement fairly complex transformations. </p>

<p>However, dealing with deployment policies could be confusing. Deployment policy's match rules utilize xpath, but the syntax of the rules is not pure xpath (note -- I'm using 3.7 firmware. The syntax might be different in 3.8). Consider this simple deployment policy match rule:</p>

<code>
*/*/protocol/http?Name=personSreviceHTTP&amp;amp;Property=LocalPort
</code>

<p>The part before "?" looks like xpath. But what schema is this xpath based on? There is no "protocol" element in the DataPower <span class="caps">XML </span>management schema. The part after "?" that uses name-value parameters is even more odd. Why use this instead of proper xpath? After all, DataPower has an <span class="caps">XML</span>-processing engine with full xpath support, so it would certainly be more logical to rely on <span class="caps">XML </span>standards.<br />
 <br />
The bottom line is that while deployment policies are useful, they have limitations. They have to be developed using Deployment Policy builder in WebGUI. They can only be applied to configuration elements supported in WebGUI. For example, creating a deployment policy that updates RemoteEndpointPort of a Web Services Proxy proves to be a non-trivial task. </p>

<p>This is why we added support for "plain" xpath-based overrides in our <a href="/dpbuddy"><span class="caps">DPB</span>uddy DataPower management tool</a>. Instead of dealing with the obscure syntax of deployment policies, developers can simply look at the configuration export file and specify an xpath expression against this file.  "dp:setConfig" task of <span class="caps">DPB</span>uddy will update the matching element of this expression with the new value. For example, to update RemoteEndpointPort, one can define the following task:</p>


<pre>
<code>
&lt;dp:setConfig&gt;
    &lt;configFile file=&quot;dpconfigs/config-wsproxy.xml&quot;&gt;
        &lt;override xpath=&quot;//RemoteEndpointPort&quot; value=&quot;${endpoint.port}&quot;/&gt;
    &lt;/configFile&gt;
&lt;/dp:setConfig&gt;
</code>
</pre>


<p>It is not possible to add or remove configuration using "dp:setConfig"; deployment policies still have to be used for this kind of config changes.  However, from our experience, majority of environment differences can be dealt with the xpath-based override mechanism.</p>

<p>MyArch, Inc. offers <a href="/why-pay-for-dpbuddy-support">paid support for dpbuddy</a>, including implementing custom enhancements. If you're interested, please contact us as <a href="mailto:info@myarch.com">info at myarch.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://myarch.com/datapower-deployment-policies-and-xpath/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>DPBuddy &#8212; Tool For DataPower Administrators and Developers</title>
		<link>http://myarch.com/dpbuddy-announcement</link>
		<comments>http://myarch.com/dpbuddy-announcement#comments</comments>
		<pubDate>Sat, 28 Aug 2010 16:28:06 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[Building software]]></category>
		<category><![CDATA[DataPower]]></category>
		<category><![CDATA[dpbuddy]]></category>
		<category><![CDATA[IT operations]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/?p=677</guid>
		<description><![CDATA[We're pleased to announce the release of our new product, DataPower Buddy (dpbuddy). "dpbuddy" a free command-line tool for automating administration, management and deployment of IBM WebSphere DataPower appliances. The tool supports export/import, file transfer, backups and many other functions. dpbuddy is implemented as a set of custom tasks for the popular build tool, Apache [...]]]></description>
			<content:encoded><![CDATA[<p>We're pleased to announce the release of our new product, <a href="/dpbuddy">DataPower Buddy (dpbuddy)</a>. "dpbuddy" a free command-line tool for automating administration, management and deployment of <span class="caps">IBM</span> WebSphere DataPower appliances. The tool supports export/import, file transfer, backups and many other functions.</p>

<p>dpbuddy is implemented as a set of custom tasks for the popular build tool, <a href="http://ant.apache.org/">Apache Ant</a>.</p>

<p>Here is a quick example of dpbuddy in action: </p>


<pre>
<code>
&lt;dp:copy cleanDirectories=&quot;true&quot;&gt;
    &lt;dpFileset prefix=&quot;/apps/services&quot; 
               dir=&quot;services&quot; includes=&quot;**/*.wsdl **/*.xsd&quot;/&gt;
&lt;/dp:copy&gt;
</code>
</pre>


<p>This Ant task will remove remote directories if they exist, reproduce the local directory tree (all folders under "services") on the device and upload the necessary files based on the "includes" pattern.</p>

<p>dpbuddy is completely free; it can be downloaded from the <a href="/dpbuddy">dpbuddy product page</a></p>

<p>dpbuddy provides many cool features, including:</p>


<ul>
<li>Response from the device is presented in a human-readable form as opposed to raw <span class="caps">SOAP</span>/XML messages.  dpbuddy makes it easy to understand error and status messages.</li>
</ul>




<ul>
<li>Powerful remote "copy" command that automatically reproduces local directory tree on the device.</li>
</ul>




<ul>
<li>Tight integration with Ant. Ant variables can be used inside deployment policies and configuration files. </li>
</ul>




<ul>
<li>Easy-to-use alternative to deployment policies based on XPath. </li>
</ul>




<ul>
<li>Ability to remotely "tail" device logs. It is even possible to automatically get new log messages similarly to Unix "tail -f" command. "tail" task can also check for error patterns. </li>
</ul>




<ul>
<li>"Export" based on naming patterns. You don't need to know types ("classes") of DataPower objects; simply specify a regexp pattern and dpbuddy will export all objects matching this pattern.</li>
</ul>




<ul>
<li>Support for self-signed certificates. No need to add DataPower certificates to the <span class="caps">JDK </span>store.</li>
</ul>




<ul>
<li>Support for arbitrary <span class="caps">SOMA </span>requests. You can use Ant variables inside a request. </li>
</ul>




<ul>
<li>Parsing of all commands on the client. In case of <span class="caps">XML </span>errors, DataPower returns cryptic "internal error" message. The actual error then has to be extracted from the device logs. dpbuddy on the other hand validates management <span class="caps">XML </span>commands on the client and displays error messages right away. </li>
</ul>



<p>Go to <a href="/dpbuddy">dpbuddy product page</a> to learn more.</p>]]></content:encoded>
			<wfw:commentRss>http://myarch.com/dpbuddy-announcement/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DataPower News</title>
		<link>http://myarch.com/datapower-news</link>
		<comments>http://myarch.com/datapower-news#comments</comments>
		<pubDate>Tue, 27 Jan 2009 03:15:02 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[SOA Appliances]]></category>
		<category><![CDATA[WebSphere]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/?p=152</guid>
		<description><![CDATA[I've long been a fan of XML Appliances. Looks like IBM customers like the appliance idea as well. IBM said that DataPower was one of the top-selling products and also announced that DataPower-lution is one of their strategic directions for 2009. Basically, more and more edge functions will be moving into the appliance. And why [...]]]></description>
			<content:encoded><![CDATA[<p>I've long been a <a href="/is-xml-appliance-an-ultimate-esb">fan of <span class="caps">XML</span> Appliances</a>. Looks like <span class="caps">IBM </span>customers like the appliance idea as well. <span class="caps">IBM </span>said that DataPower was one of the top-selling products and also <a href="http://www.infoq.com/articles/cuomo-websphere-trends-2009">announced</a> that <a href="http://www.ibm.com/developerworks/blogs/page/gcuomo?entry=datapower_lution">DataPower-lution</a> is one of their strategic directions for 2009. Basically, more and more edge functions will be moving into the appliance. And why not use the same device for <span class="caps">XML </span>acceleration, load balancing, crypto acceleration, caching, perhaps even WebSEAL replacement (it's just a fancy reverse proxy after all). We'll see how this vision plays out. </p>

<p>In a related news, there is finally a <a href="http://www.ibm.com/developerworks/blogs/page/woolf?entry=ibm_websphere_datapower_soa_appliance1">DataPower book</a> and it's 960 pages long. And this is before <span class="caps">IBM </span>started adding all these edge functions to the device :).</p>]]></content:encoded>
			<wfw:commentRss>http://myarch.com/datapower-news/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>It Takes a Mental Shift to Benefit from XML Appliances</title>
		<link>http://myarch.com/it-takes-a-mental-shift-to-benefit-from-xml-appliances</link>
		<comments>http://myarch.com/it-takes-a-mental-shift-to-benefit-from-xml-appliances#comments</comments>
		<pubDate>Wed, 01 Aug 2007 02:44:14 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[XML]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/it-takes-a-mental-shift-to-benefit-from-xml-appliances</guid>
		<description><![CDATA[This article on techtarget is a great illustration of my point from the previous post about the importance of the proper design patterns and techniques required to be able to benefit from XML appliance capabilities. When implementing Web services Java developers tend to think in terms of Java classes that XML documents map to. Using [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci1256661,00.html">This article</a> on techtarget is a great illustration of my point from the previous post about the importance of the proper design patterns and techniques required to be able to benefit from XML appliance capabilities. 
</p>
<p>
When implementing Web services Java developers tend to think in terms of Java classes that XML documents map to. Using XSLT (or even Schema) for implementing part of their processing logic is not on their list because the common thinking is that it is too expensive to do it in Java. 
</p>
<p>
With XML appliances the situation is exactly the opposite. XSLT all of a sudden becomes one of the best performing part of an application (although, I would imagine that using Java hardware acceleration such as the one provided by <a href=http://www.azulsystems.com/>Azul</a> might once again change that). This could be a serious "paradigm shift" for many developers and architects.
</p>
<p>
Another obstacle to more effective usage of appliances could simply be the lack of XSLT skills. XSLT is essentially a <a href="http://en.wikipedia.org/wiki/Functional_programming">functional language</a> and so it comes with a learning curve attached, especially for complex transformations. It is important to have a good knowledge of XSLT to understand what kind of work can be "outsourced" to an appliance. Not that many developers have this knowledge today, but perhaps it will change with more widespread use of XML appliances. 
</p>


]]></content:encoded>
			<wfw:commentRss>http://myarch.com/it-takes-a-mental-shift-to-benefit-from-xml-appliances/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improve Your Application Performance with XML Appliance</title>
		<link>http://myarch.com/improve-your-application-performance-with-xml-appliance</link>
		<comments>http://myarch.com/improve-your-application-performance-with-xml-appliance#comments</comments>
		<pubDate>Sun, 29 Jul 2007 22:04:29 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/improve-your-application-performance-with-xml-appliance</guid>
		<description><![CDATA[XML appliances are capable of extremely fast XML parsing and transformation (sometimes the term "wire-speed" is used). The speed is achieved by using hardware acceleration, specially written XML parsers and XSLT engines (you won’t find Xerces on these devices) and optimized operating system (usually, a trimmed-down version of Linux or BSD). How fast are XML [...]]]></description>
			<content:encoded><![CDATA[<p>
XML appliances are capable of extremely fast XML parsing and transformation (sometimes the term "wire-speed" is used). The speed is achieved by using hardware acceleration, specially written XML parsers and XSLT engines (you won’t find Xerces on these devices) and optimized operating system (usually, a trimmed-down version of Linux or BSD).
</p>
<p>
How fast are XML appliances? I’m not aware of published benchmarks; however, I did have a chance to conduct an informal performance testing of DataPower XI50 for a client and the results were quite impressive; for example we saw little to no overhead validating medium-size XML schemas.
</p>
<p>
Clearly, offloading as much XML processing as possible to an appliance could be a performance booster. So what kind of processing could be done on the device? Here are my recommendations based on the capabilities of the DataPower appliance; the situation could be slightly different with devices from other vendors. 
<span id="more-66"></span>
<ul>
<li>
Validation. Turning schema validation on is a no-brainer, especially for complex schemas that can choke software parsers. In addition to schema validation, XSLT can be used to validate rules that are not grammar-based. You can use <a href="http://www.schematron.com">Schematron</a> to generate XSLT that validates these rules. Combination of Schema and Schematron provides very powerful validation mechanism. The beauty of this approach is that failed XML documents never reach the application thus reducing resource consumption of the application server.
</li>
<li>
Splitting. It is possible to define XPath-rules that in combination with XSLT will split complex documents into multiple fragments that can then be sent to different back-end services for processing. 
</li>
<li>
Filtering. Sometimes an application only needs a subset of elements provided in a message. Eliminating unnecessary tags will reduce the application’s XML processing overhead.
</li>
<li>
Flattening. Complex XML documents with deep nesting can be “flattened” using XSLT to eliminate some of the nesting. This could make application XML parsing quicker. 
</li>
<li>
"Canonicanization". In many cases, XML schema may allow for different representation of the same piece of data to accommodate needs of different clients. It could be allowing for SSN with and without dashes or supporting different name formats (e.g., "firstName, lastName" vs. "fullName"). XSLT logic on the device could implement the rules to clean up incoming messages and transform them into one strict canonical representation so that the application only needs to implement one way of parsing data. 
</li>
</ul>
<p>
 "Shredding"” could also be very effective for high-throughput XML processing. Shredding is the process of breaking up large documents into smaller fragments and sending them off to the application for concurrent processing. Shredding helps dealing with the documents consisting of a large number of repetitive groups. Each group/fragment can be processed independently without waiting for the completion of the processing of the entire document. Note that shredding is different from "splitting" which allows for  processing of different logical parts (different types) of the document independently (as opposed to repetitive groups). Shredding is the most useful for processing large bathes of data of the same type. 
</p>
<p>
Unfortunately, shredding does not seem to be supported by DataPower, although the appliance does support streaming XML processing which would’ve worked very nicely in conjunction with shredding logic. Perhaps devices from other vendors do provide this support. 
</p>
<p>
The bottom line is that just plugging the appliance in and using it in a gateway mode is not necessarily going to improve XML processing performance by much. Web services (and any other application components that interface via XML such as XML-based batch file processing components) have to be designed with the appliance in mind. In the course of the design effort, developers need to identify pre-processing or post-processing logic that can be implemented in XSLT as opposed to making it all application’s responsibility. Anything that uses XSLT can then go to the appliance to improve the processing speed and throughput.
</p>
]]></content:encoded>
			<wfw:commentRss>http://myarch.com/improve-your-application-performance-with-xml-appliance/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XML Appliances Begin Supporting Java</title>
		<link>http://myarch.com/xml-appliances-begin-supporting-java</link>
		<comments>http://myarch.com/xml-appliances-begin-supporting-java#comments</comments>
		<pubDate>Fri, 22 Jun 2007 03:14:54 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/xml-appliances-begin-supporting-java</guid>
		<description><![CDATA[Layer7 announced that its appliances will support Java-based custom assertions. Details are sketchy at this point but apparently Layer7 will provide a proprietary SDK for developing assertions. This could be much more powerful mechanism than XSLT-only facilities in IBM DataPower. So how long before appliances begin supporting JBI and SCA components? The trick here of [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://www.sdtimes.com/article/story-20070615-15.html">Layer7 announced</a> that its appliances will support Java-based custom assertions. Details are sketchy at this point but apparently Layer7 will provide a proprietary SDK for developing assertions. This could be much more powerful mechanism than XSLT-only facilities in IBM DataPower.
</p>
<p>
So how long before appliances begin supporting JBI and SCA components? The trick here of course is to make sure that an appliance is still a robust low-maintenance device that can't be brought down by a rogue application thread. But if Layer7 was able to figure it out for Java in general (I wonder if they use a general Sun JDK or some kind of a special JDK build), there is no reason why an appliance can't start supporting more advanced specifications such as JBI/SCA. 
</p>
]]></content:encoded>
			<wfw:commentRss>http://myarch.com/xml-appliances-begin-supporting-java/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

