<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Solace Systems Technical Blog</title>
	
	<link>http://techblog.solacesystems.com</link>
	<description />
	<lastBuildDate>Thu, 09 May 2013 21:10:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SolaceTechBlog" /><feedburner:info uri="solacetechblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>SolaceTechBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Why Horizontally Scaling Message Brokers isn’t All it’s Cracked up to Be</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/2MfQnfdjEwY/why-horizontally-scaling-message-brokers-isnt-all-its-cracked-up-to-be</link>
		<comments>http://techblog.solacesystems.com/arch/why-horizontally-scaling-message-brokers-isnt-all-its-cracked-up-to-be#comments</comments>
		<pubDate>Thu, 09 May 2013 21:10:42 +0000</pubDate>
		<dc:creator>Shawn McAllister</dc:creator>
				<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=468</guid>
		<description><![CDATA[When it comes to increasing the capacity of IT systems  [...]]]></description>
				<content:encoded><![CDATA[<p>When it comes to increasing the capacity of IT systems you can either scale &#8220;vertically&#8221; by increasing the power or storage of a given device or piece of software, or &#8220;horizontally&#8217; by adding new devices or instances of that software.</p>
<p><a href="/wp-content/uploads/2013/05/interbroker-comms-diagram.png" class="gallery_colorbox"><img class="alignright size-medium wp-image-471" alt="interbroker-comms-diagram" src="/wp-content/uploads/2013/05/interbroker-comms-diagram-300x187.png"  width="300" height="187" /></a>One of the biggest problems with increasing the capacity of a software-based messaging platform by adding brokers is the communication that inevitably needs to happen between brokers. When clients or applications connected to one broker need to communicate with an application that&#8217;s connected to another broker, you end up sacrificing some of each broker&#8217;s capacity to that inter-broker traffic, leaving less available for client communications. In fact, this problem increases exponentially as you add more brokers, so the return you get by adding each new broker is less and less.</p>
<p><a href="/wp-content/uploads/2013/05/focused-overload-diagram.png" class="gallery_colorbox"><img class="alignright size-medium wp-image-470" alt="focused-overload-diagram" src="/wp-content/uploads/2013/05/focused-overload-diagram-300x187.png"  width="300" height="187" /></a>The next challenge that IT personnel face when horizontally scaling software-based message brokers is that of capacity planning. With discrete message brokers serving unique sets of clients and instances of applications, each broker must meet the demands placed on it by clients and applications alike with its own available capacity. The complexity of assuring adequate system performance makes load balancing across message brokers much more difficult than load balancing across application instances, and in fact doing so amplifies the inter-broker communications problem described above. This means a given broker can be overwhelmed with traffic (focused overload) while another broker sits idly by with stranded capacity going to waste.</p>
<p>Software-based message brokers can only handle a few thousand messages a second, so capacity problems come up quickly. Solace gives you all the capacity you need (over 200,000 messages per second per appliance) to meet the need of a few high-volume applications, or lots of low volume applications, all in one compact device with unified administration.</p>
<p>In this 10-minute video, I explain why horizontally scaling message brokers doesn&#8217;t work as well as horizontally scaling other assets like applications, and why our high-capacity appliance provides you with a better solution.<br />
<div id="v-clmkzk66-1" class="video-player"><embed id="v-clmkzk66-1-video" src="http://s0.videopress.com/player.swf?v=1.03&amp;guid=clmkzk66&amp;isDynamicSeeking=true" type="application/x-shockwave-flash" width="600" height="336" wmode="direct" seamlesstabbing="true" allowfullscreen="true" allowscriptaccess="always" overstretch="true"></embed></div></p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/2MfQnfdjEwY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/arch/why-horizontally-scaling-message-brokers-isnt-all-its-cracked-up-to-be/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/arch/why-horizontally-scaling-message-brokers-isnt-all-its-cracked-up-to-be</feedburner:origLink></item>
		<item>
		<title>The Art of One Handed Programming</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/muXe7jzIJVk/the-art-of-one-handed-programming</link>
		<comments>http://techblog.solacesystems.com/dev/the-art-of-one-handed-programming#comments</comments>
		<pubDate>Tue, 30 Apr 2013 20:30:30 +0000</pubDate>
		<dc:creator>Hans Jespersen</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[MuleSoft]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=440</guid>
		<description><![CDATA[I&#8217;ve been playing around with MuleStudio from Mul [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been playing around with <a href="http://www.mulesoft.com/mule-studio">MuleStudio </a>from <a href="http://www.mulesoft.com/">MuleSoft </a>lately, and am very impressed with how easy it is to create integrations with the Eclipse-based IDE. The product comes with a long list of commonly needed endpoint connectors for talking to files, databases, HTTP, IBM WebSphere MQ, or even end systems like SAP.</p>
<p>This was all it took to customize the included JMS Endpoint to work with a Solace appliance, which we make available in the public Internet as a messaging service:<br />
<a href="/wp-content/uploads/2013/04/xml.jpg" class="gallery_colorbox"><img class="size-full wp-image-449 aligncenter" alt="xml" src="/wp-content/uploads/2013/04/xml.jpg"  width="695" height="299" /></a></p>
<p><a href="/wp-content/uploads/2013/04/jms.jpg" class="gallery_colorbox"><img class="size-full wp-image-446 alignright" alt="jms" src="/wp-content/uploads/2013/04/jms.jpg"  width="342" height="254" /></a>With the Solace JMS endpoint configured, the rest was “one handed programming.” Dragging and dropping icons and connecting endpoints from the pallete was quick and easy, and before I knew it  I was running a REST API for publishing messages to Solace topics and queues.</p>
<p>After that, I wanted to explore further and make a more “cloudy” demo so I picked up on the available Cloud Connectors which include integration components for Amazon, Salesforce.com, Facebook, and Google.</p>
<p><a href="/wp-content/uploads/2013/04/twitter.jpg" class="gallery_colorbox"><img class="wp-image-448 alignright" alt="twitter" src="/wp-content/uploads/2013/04/twitter.jpg"  width="360" /></a>A quick drag and drop and I had a streaming Twitter application that consumes all @SolaceDemo tweets, transforms them into both XML and JSON formatted messages and publishes them to a topic name hierarchy that allows the subscriber to pick which format of messages they want to receive based on topic wildcard subscriptions.</p>
<p><a href="/wp-content/uploads/2013/04/soladmin2.jpg" class="gallery_colorbox"><img class=" wp-image-447 alignright" alt="soladmin2" src="/wp-content/uploads/2013/04/soladmin2.jpg"  width="360" /></a>Adding topic subscriptions to attract these messages to queues for persistence is easy using the SolAdmin GUI so I created a queue for xml tweets (xmlQ) and another for the JSON versions (jsonQ) and configured the appropriate topic subscriptions for each.</p>
<p>All that’s left to do is to wire up an analytics engine to pore over the tweet-stream and figure out by <a title="sentiment analysis" href="http://en.wikipedia.org/wiki/Sentiment_analysis">sentiment analysis</a> what people are thinking and saying about Solace messaging.  A quick search on MuleSoft’s <a title="APIhub" href="http://www.apihub.com/">APIhub </a>shows there are at least 42 ways to do that too!</p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/muXe7jzIJVk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/dev/the-art-of-one-handed-programming/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/dev/the-art-of-one-handed-programming</feedburner:origLink></item>
		<item>
		<title>Meet SolAdmin; Monitoring Subscribers in Several Scenarios</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/CAUAPnG5kZE/monitoring-subscribers-with-soladmin</link>
		<comments>http://techblog.solacesystems.com/ops/monitoring-subscribers-with-soladmin#comments</comments>
		<pubDate>Fri, 22 Mar 2013 21:06:59 +0000</pubDate>
		<dc:creator>Mark Spielman</dc:creator>
				<category><![CDATA[Operations]]></category>
		<category><![CDATA[monitoring and management]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=337</guid>
		<description><![CDATA[This is the first in what will become a series of posts [...]]]></description>
				<content:encoded><![CDATA[<p><em>This is the first in what will become a series of posts introducing our SolAdmin management application. These posts will take quick tours of key capabilities and features of the SolAdmin application and how to put these features to use monitoring Solace appliances so that you can get the most out of your applications that depend on Solace’s unified messaging platform.</em></p>
<hr />
<p><a href="/wp-content/uploads/2013/03/SolAdmin_Stats_Charting1.png" class="gallery_colorbox"><img class="alignright size-medium wp-image-375" alt="SolAdmin_Stats_Charting" src="/wp-content/uploads/2013/03/SolAdmin_Stats_Charting1-300x159.png"  width="300" height="159" /></a>If you’re new to SolAdmin, it’s a management application that can be used to access all management features of Solace appliances. It is designed for both advanced administrators already familiar with Solace and those just getting started.</p>
<div style="clear: both;"></div>
<p><iframe style="float: right; margin-left: 15px;" src="http://www.youtube.com/embed/UZGZHQVQ49Y?rel=0" height="169" width="300" allowfullscreen="" frameborder="0"></iframe>This video demonstrates the monitoring of subscriber applications receiving messages from a Solace messaging appliance. My goal was to show how easy it is to take a typical problem of an application that is not correctly receiving messages and to show both how the appliance provides detailed statistics and debug information that help to diagnose the problem and how SolAdmin makes it very easy to access these details. Here&#8217;s a brief summary of what I covered:</p>
<p>In general applications having issues receiving messages can be divided into these categories:</p>
<ol>
<li>The application’s network connectivity to the message broker has issues.</li>
<li>The application is simply consuming messages too slowly. I.e. the application is back pressuring the message broker and needs to be streamlined.</li>
<li>The application may be hung.</li>
<li>The message broker may be overloaded.</li>
</ol>
<p>Initially when debugging this issue it might not be immediately obvious which of these reasons is being seen and furthermore it is often different teams that are responsible to fix the issue. So being able to determine the real reason the application is misbehaving is very useful.</p>
<p>To demonstrate this, the video starts with a look at a typical publish subscribe message flow with a single publisher sending messages to the Solace appliance. The messages are then fanned out to several subscribing applications. SolAdmin is used to explore the details of the receiving clients and plot the real time message flow towards these clients and look at the TCP/IP details of each client.</p>
<p><a href="http://techblog.solacesystems.com/wp-content/uploads/2013/03/WAN_PPT.png" class="gallery_colorbox"><img class="alignright size-medium wp-image-339" alt="WAN_PPT" src="http://techblog.solacesystems.com/wp-content/uploads/2013/03/WAN_PPT-300x223.png"  width="300" height="223" /></a>Then a client is connected over a simulated lossy wide area network (WAN) and I drill down into the TCP signature of this client and how to use SolAdmin to observe and diagnose the network issue. Finally a simulated slow subscriber is connected and the video goes over the client statistics available to differentiate slow subscribers vs hung applications.</p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/CAUAPnG5kZE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/ops/monitoring-subscribers-with-soladmin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/ops/monitoring-subscribers-with-soladmin</feedburner:origLink></item>
		<item>
		<title>Tesla Model S: The Worlds Most Expensive WebSocket Demo</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/iMPCaqKX3Uo/tesla-model-s-the-worlds-most-expensive-websocket-demo</link>
		<comments>http://techblog.solacesystems.com/misc/tesla-model-s-the-worlds-most-expensive-websocket-demo#comments</comments>
		<pubDate>Wed, 20 Feb 2013 00:37:41 +0000</pubDate>
		<dc:creator>Hans Jespersen</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=304</guid>
		<description><![CDATA[When I first got behind the wheel of my fully electric  [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://techblog.solacesystems.com/wp-content/uploads/2013/02/2012-tesla-model-s-fd.jpg" class="gallery_colorbox"><img class="alignright size-medium wp-image-316" alt="2012-tesla-model-s-fd" src="http://techblog.solacesystems.com/wp-content/uploads/2013/02/2012-tesla-model-s-fd-300x199.jpg"  width="300" height="199" /></a>When I first got behind the wheel of my fully electric <a title="Tesla Model S" href="http://www.teslamotors.com/models" target="_blank">Tesla Model S</a>, the 17&#8243; multi-touch console display immediately got me thinking about the plethora of cool apps that it could enable. Imagine porting <a title="MAME" href="http://mamedev.org" target="_blank">MAME</a> and running classic video games like Atari&#8217;s Pole Position using the actual steering wheel and pedals as the drive-by-wire controls. <img class="alignright" alt="" src="http://farm9.staticflickr.com/8235/8414873662_1ebf0735f5_z.jpg" width="300" height="192" /></p>
<p>More practically, imagine using the onboard GPS to define geocoded zones that dynamically adjust the height of the Active Air Suspension to avoid scraping speed bumps and ditches that would otherwise fail to clear the front spoiler or the underlying battery pack.</p>
<p>I would love to have the Android app <a title="Torque Pro" href="https://play.google.com/store/apps/details?id=org.prowl.torque&amp;hl=en" target="_blank">Torque Pro</a> running on the console and streaming real-time telemetry from the onboard computer to a cloud hosted application for post-race — sorry post <em>commute</em> — analytics. I&#8217;ll let you know how that goes in a later post.</p>
<p>I&#8217;m still waiting for Tesla to release the native SDK for this platform, but in the meantime there&#8217;s a lot you can do via the embedded browser which I&#8217;ve discovered does support HTML5 WebSockets. For fun I tried a few of the <a title="Solace Web Messaging" href="http://solacesystems.com/solutions/web-messaging/" target="_blank">Solace Web Messaging</a> demos and as you can see in this video they work fine.<br />
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='580' height='390' src='http://www.youtube.com/embed/Q0OjotbUcYg?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>What this says to me is that the <a href="http://en.wikipedia.org/wiki/WebSocket" target="_blank">WebSocket</a>  protocol is essentially becoming ubiquitous and you can add cars to the ever expanding list of the <a href="http://www.theinternetofthings.eu">Internet of Things</a>.</p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/iMPCaqKX3Uo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/misc/tesla-model-s-the-worlds-most-expensive-websocket-demo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/misc/tesla-model-s-the-worlds-most-expensive-websocket-demo</feedburner:origLink></item>
		<item>
		<title>Apples, Oranges, and WAN Optimization Appliances</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/ww6nWOninqw/apples-oranges-and-wan-optimization-appliances</link>
		<comments>http://techblog.solacesystems.com/arch/apples-oranges-and-wan-optimization-appliances#comments</comments>
		<pubDate>Fri, 18 Jan 2013 03:08:15 +0000</pubDate>
		<dc:creator>Hans Jespersen</dc:creator>
				<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=271</guid>
		<description><![CDATA[WAN optimization is a crowded and confusing space full  [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-298" alt="iStock_000002646362XSmall" src="http://techblog.solacesystems.com/wp-content/uploads/2013/01/iStock_000002646362XSmall-300x199.jpg" width="300" height="199" />WAN optimization is a crowded and confusing space full of solutions that all sound alike and promise magic 10-20x performance increases. But when you look at what each solution actually does, they are often completely different and your mileage may vary, so it&#8217;s important to understand the various approaches and apply the right tool to each challenge.</p>
<p>I recently presented at QCon in San Francisco on the topic of &#8220;<a title="QCon Web Site" href="http://qconsf.com/dl/qcon-sanfran-2012/slides/HansJespersen_Achieving10XWANEfficiencyInGloballyDistributedApplications.pdf" target="_blank" class="broken_link">Distributed Data Fabrics and Hardware WAN Optimization</a>&#8220;. If you have never been to a QCon event, note that it is a geekfest and the attendees have zero tolerance for marketing hype. Developers and architects come to QCon to learn, share, and socialize amongst their peers, not to listen to sales pitches. I like the vibe at QCon and think it&#8217;s very much in line with the kind of content that works on a tech blog, rather than a corporate blog, so I&#8217;d like to expand the audience of my thoughts here.</p>
<p><a href="http://techblog.solacesystems.com/wp-content/uploads/2013/01/lfn-diagram.png" class="gallery_colorbox"><img class="alignright size-medium wp-image-300" alt="lfn-diagram" src="http://techblog.solacesystems.com/wp-content/uploads/2013/01/lfn-diagram-300x125.png"  width="300" height="125" /></a>My talk was about the <a href="http://en.wikipedia.org/wiki/Bandwidth-delay_product">Long Fat Network (LFN, or sometimes &#8220;elephant&#8221;) problem</a> and how to distinguish between different ways of solving this problem at the network/transport level (layer 3) versus the application/messaging level (layer 7).</p>
<p>The basic problem of WAN optimization is that a WAN is <em>not</em> just a slow LAN. TCP/IP based apps that run great on a LAN often suck wind on the WAN and the blame often incorrectly goes to the lack of bandwidth. The expensive way to find out this is wrong is to pay for a 10 Gigabit WAN link and find out that throughput is actually a function of the latency, and loss, in addition to bandwidth.</p>
<p>Check out one of the many <a title="throughput calculators" href="http://www.silver-peak.com/calculator/" target="_blank">throughput calculators</a> and you will quickly see that a 10 Gigabit WAN link with 100ms round trip latency and 0.5% packet loss yields just 1.65 Mbps of maximum effective throughput per TCP flow. This is all an artifact of the TCP sliding window and the fact that over long distances the speed of light becomes a significant limit. The further complication is that unlike a LAN, packets get dropped and need to be retransmitted. Even small loss rates stall the advancement of the the TCP windows and kill your throughput.</p>
<p>Why do you care? Databases and data grids are increasingly becoming replicated and distributed across multiple datacenters for redundancy or active/active partitioning and localization. The trend to &#8220;big data&#8221; is also expanding to sources that span remote datacenters, and even mobile apps and sensors, which all adds more WAN into the mix.</p>
<p>Enter Riverbed and Silverpeak, and a host of other WANop hardware and software vendors that apply compression, forward error correction, and other techniques to speed up the flow of data across the WAN. These solutions are typically not application aware. They operate on TCP packets without understanding what they contain. That can still yield impressive results but it really depends on the use case. Replicating encrypted data or pre-compresses binary data will reduce or eliminate the performance gains that a layer 3 WAN optimization tool can provide.</p>
<p>Some WANop solutions try to go further up the stack and optimize for popular application protocols like NFS or Microsoft&#8217;s CIFS file sharing protocols. However the vast majority of application specific WAN traffic still goes unoptimized. This is the target for distributed messaging solutions such as those provided by Solace.</p>
<p>Consider the following example of distributed database replication using a <a href="http://en.wikipedia.org/wiki/Change_data_capture">CDC</a> tool like GoldenGate or DataMirror. In the simplest case you might have just two datacenters and want to replicate all updates from one site to the other for disaster recovery. This is a great use case for traditional WANop solutions because the data is point to point and all of the updates at one site go to the other. There is no value in looking at the contents of the updates or filtering based on the values of the data because everything needs to flow across a single WAN link between two sites.</p>
<p>Now consider a more distributed data grid, where some data (reference data) needs to flow between 3 or more global sites and other local data needs to be selectively replicated, or in some cases not replicated at all. This is a great fit for &#8220;layer 7&#8243; or application aware WAN Optimization because it is necessary to look into the contents of the data and selectively filter and route the updates.</p>
<p>WAN optimization and application-aware WAN Optimization both add value and can even be used together, and you&#8217;ll be most successful when you use the right tool for each job. Network optimization is a broad brush that can speed up all your network traffic, while application-specific WAN optimization accelerate the traffic that you care most about to an even higher level.</p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/ww6nWOninqw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/arch/apples-oranges-and-wan-optimization-appliances/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/arch/apples-oranges-and-wan-optimization-appliances</feedburner:origLink></item>
		<item>
		<title>Deconstructing Kafka</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/tjc-wv9OWds/deconstructing-kafka</link>
		<comments>http://techblog.solacesystems.com/arch/deconstructing-kafka#comments</comments>
		<pubDate>Tue, 30 Oct 2012 20:32:24 +0000</pubDate>
		<dc:creator>Hans Jespersen</dc:creator>
				<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=275</guid>
		<description><![CDATA[A colleague of mine asked me to “compare and contrast”  [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://techblog.solacesystems.com/wp-content/uploads/2012/10/iStock_000020380404XSmall-300x199.jpg" alt="" title="iStock_000020380404XSmall" width="300" height="199" class="alignright size-medium wp-image-293" />A colleague of mine asked me to “compare and contrast” Solace with <a title="Kafka" href="http://incubator.apache.org/kafka/">Kafka</a>. Apache Kafka is an open source distributed messaging system, written by LinkedIn specifically for activity stream and log processing. As a detail oriented techie, I hate it when someone asks me a one sentence question that requires a two page answer. Sometimes I wish I could feel good about myself while spouting weasel words like “robust”, “scalable”, and “carrier class” to explain why my employer’s products are different. I am just not that guy. Instead, I got out my green highlighter and my reading glasses and spent the afternoon dissecting the <a href="http://research.microsoft.com/en-us/um/people/srikanth/netdb11/netdb11papers/netdb11-final12.pdf">excellent whitepaper written by Kreps, Narkhede, and Rao</a>.</p>
<p>First it’s important to introduce what constitutes large scale in the log processing space and why there is a need for solutions like Kafka. These are some log processing metrics quoted in the paper.</p>
<p>-          LinkedIn: generates 100’s of GB of new data in the form of 1 Billion messages per day</p>
<p>-          China Mobile: generates 5-8 TB of Call Detail Records (CDRs)  per day</p>
<p>-          Facebook: generates 6TB of user activity data per day</p>
<p>These huge volumes of data are generated across thousands of source systems distributed in multiple data centers, so it’s no easy feat to reliably capture the torrent of data, consolidate it and route it to the various analytics engines and back-end applications that feed on log data as the raw material for search, fraud detection, targeted advertising, and social networking.</p>
<p>Sounds like a good job for a message broker, either in the form of open source like RabbitMQ and Apache ActiveMQ, or a commercial product like IBM WebSphere MQ or TIBCO EMS.</p>
<p>The four main reasons outlined in the paper for why traditional enterprise messaging offering are not a fit for LinkedIn’s use case are:</p>
<ol>
<li>Feature bloat and the overkill of unnecessarily strong message delivery guarantees</li>
<li>Not focused on throughput</li>
<li>Weak clustering/partitioning support</li>
<li>Poor message spool handling under heavy load</li>
</ol>
<p>This is when I started to get really intrigued because the items in the list above are the very same ones that I use to qualify a fit for a Solace Messaging Appliance. Log processing, and the similar application in sensor networks, are becoming common and repeatable use cases.</p>
<p>Let&#8217;s look quickly at how the four needs are addressed in a hardware implementation:</p>
<ol>
<li>Bloat &#8211; Reliable message delivery with batching – Solace has two simple tiers of delivery quality (best effort, and guaranteed) with configurable sliding windows, ACKs, and vectored send (i.e. batching) for high throughput in a LAN or WAN environment (where the RTT will kill most JMS implementations). Dedicated PCI cards handle the different qualities of service so that traffic from one does not impact the performance of the other. If guaranteed delivery is not required, the extra card is not installed and there is no &#8220;feature bloat&#8221; or unnecessary code paths in the broker.</li>
<li>Throughput &#8211; Hardware offload is perfect for maximizing throughput. Offloading the Linux kernel from interrupts for disk, network, memory, context switching, is how the Solace 3260 achieves 10/40 Gbps wirespeed throughput on a single box.</li>
<li>Clustering &#8211; Interconnected nodes with no master hub and with dynamic but efficient message routing and balancing protocols are built in. FPGAs and Network Processors (like those found in F5 Load Balancers and Cisco Routers) can be reprogrammed to do high speed inter-node Layer 7 routing between the nodes in a network of message brokers without impacting the performance of each node to handle client producers or consumers. By dedicating the balancing to bare metal silicon, it is possible to do continuous balancing at higher speed than periodic balancing done in software.</li>
<li>Message spooling -  Solace appliances accelerate the persistence of  messages in a novel tiered non-volatile message spool without suffering from the hit of slow spinning hard disk I/O for every message. Flash and SSDs don&#8217;t help if you treat them like hard disks and write every message because the constant writing creates longevity problems very quickly. Solace uses RAM backed by Super-Capacitors and RDMA memory replication within clustered nodes to allow huge queues to build up and then efficiently dequeue at a later time. This enables the “snake eating a pig” use cases where messages can bulge temporarily in the message spool until downstream processing kicks in to digest the data. This capability makes for an excellent buffer or shock absorber for log data streams flowing into batch oriented big data frameworks like Hadoop.</li>
</ol>
<p>So now let&#8217;s look at the actual performance. The benchmark testing in the Kafka paper matches with the proof of concept testing I have seen with ActiveMQ and RabbitMQ. Basically anything with durable, persistent, clustered operation puts a heavy load on general purpose Linux servers and yields no more than 10,000 – 20,000 msg/sec in or out. The Kafka numbers are impressive and proof that the optimizations and tradeoffs made are effective.</p>
<p>Kafka Perf test</p>
<p>-          2 Linux servers with 8 cores, 1GigE, 16GB RAM</p>
<p>-          200 bytes message size</p>
<p>-          Tested both batches of 1 or 50 messages per batch</p>
<p>-          Pub rate of 50,000 msg/sec (batches of 1)</p>
<p>-          Pub rate of 400,000 msg/sec (batches of 50)</p>
<ul>
<li>Said another way this is 8,000 batches/sec @ 10 KB batch size (50*200 bytes)</li>
<li>Said another way this is ~0.7 Gbps wire speed throughput</li>
</ul>
<p>-          Sub rate of 22,000 msg/sec</p>
<p>Solace Perf test</p>
<p>-          1 Solace 3260 Appliance w/ Fedora Core Linux control plane with 8 cores, 1GigE, 16GB RAM</p>
<ul>
<li>Solace Topic Routing PCI Card</li>
<li>Solace Assured Delivery PCI Card</li>
<li>Solace 10 GigE Network Acceleration PCI Card</li>
</ul>
<p>-          200 bytes message size</p>
<p>-          Pub rate of 206,400 msg/sec (batches of 1)</p>
<p>-          Pub rate of 2,670,000 msg/sec (batches of 50)</p>
<ul>
<li>Said another way this is 53,400 batches/sec @ 10KB batch size (50*200 bytes)</li>
<li>Said another way this is ~4.4 Gbps wire speed throughput</li>
</ul>
<p>-          Sub rate of 206,400 msg/sec</p>
<p>So by most metrics the Solace 3260 appliance is 6.7 – 9.4 times higher throughput than Kafka even with the higher quality of service provided with the once-and-only-once-in-order “assured delivery”.  Lessening the restriction on guaranteed delivery some more would yield a further 25 times increase in throughput (to ~11 Million msg/sec, in+out, batches of 1). While it is true that the Solace benchmark uses 10 Gbps Ethernet rather than the 1 Gbps Ethernet used in the Kafka test, the network bandwidth was not the bottleneck in either test so the performance difference can be attributed to the acceleration provided by the Solace Appliance and associated Solace PCI cards offloading the Linux kernel.</p>
<p>So to summarize, the architecture of Kafka does an excellent job of optimizing generic message oriented middleware into a lean and powerful log processing framework. The lessons learned and approaches used are equally applicable in firmware, rather than software, and can yield yet another leap in overall throughput. Features such as compression, replication, and stream processing can be efficiently added inline in firmware. The benefit of the modular approach to a hardware based implementation makes it possible to add back in extra features and functions and enable a common shared infrastructure for generic messaging as well as log processing.</p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/tjc-wv9OWds" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/arch/deconstructing-kafka/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/arch/deconstructing-kafka</feedburner:origLink></item>
		<item>
		<title>A Slice of Pi</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/x4KasEFoIeQ/a-slice-of-pi</link>
		<comments>http://techblog.solacesystems.com/misc/a-slice-of-pi#comments</comments>
		<pubDate>Mon, 20 Aug 2012 17:13:39 +0000</pubDate>
		<dc:creator>Hans Jespersen</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[M2M]]></category>
		<category><![CDATA[Sensor]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=254</guid>
		<description><![CDATA[Remember the $500 Network Computer (NC) that Larry Elli [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://techblog.solacesystems.com/wp-content/uploads/2012/07/rpi.jpeg" class="gallery_colorbox"><img class="wp-image-255 alignright" src="http://techblog.solacesystems.com/wp-content/uploads/2012/07/rpi-1024x682.jpeg"  alt="" width="344" height="229" /></a>Remember the $500 <a href="http://en.wikipedia.org/wiki/Network_Computer">Network Computer</a> (NC) that Larry Ellison used to talk about all the time?  Time to meet the $35 <span style="text-decoration: line-through;">Network Computer</span> <a href="http://en.wikipedia.org/wiki/Machine-to-Machine">M2M</a> node.</p>
<p>The <a href="http://www.raspberrypi.org/">Raspberry Pi</a> Model B is much more than the <a href="http://www.arduino.cc/">Arduino</a> microcontroller devices popular with the <a href="http://makerfaire.com/">Maker Faire</a> crowd. It’s a complete computer with Ethernet, USB Ports, SD Card slot, 256MB RAM, 1080p HDMI video, all running a standard Debian &#8220;squeeze&#8221; Linux distribution running on it&#8217;s ARM-based SoC. Add 4 AA batteries, a WiFi dongle, and some custom software and you have a very capable wireless sensor node in a box (box not included). The waitlist for these tiny embeddable computers is growing and an ecosystem of complimentary add-ons has sprung to life overnight.  Everything from <a href="http://venturebeat.com/2012/07/16/9-amazing-raspberry-pi-case-mods-including-one-that-looks-like-a-raspberry/">cases</a>, to <a title="cameras" href="http://news.cnet.com/8301-17938_105-57473114-1/raspberry-pi-to-get-camera-add-on-by-october/">cameras</a>, to the inevitable <a href="http://omer.me/2012/05/introducing-ponte/">Arduino to Rasperry Pi bridge</a>. With the one-two punch of the sub-$50 price point of the Pi and the emerging $200 price point of the full blown touch screen tablets (Nexus 7, Kindle Fire, et al.) we should finally be at the tipping point where we will get an explosion of devices connected to the <a href="http://www.rfidjournal.com/article/view/4986">Internet of Things</a>.</p>
<p>Real-time message passing between embedded devices seems like a perfect fit for an M2M messaging appliance like the <a title="Solace 3260" href="http://solacesystems.com/products/solace-3200-series">Solace 3260</a>. Devices like the Pi enable customer kiosks, point of sale terminals, medical monitors, remote sensors, and remote control networks via intelligent customer premise equipment. For this reason some of us have been experimenting with running the Solace messaging APIs on this incredible little machine and I am happy to report that it works like a charm. Now we just have to work our way through that waitlist a bit longer so we can test 100,000 of these puppies connected simultaneously.</p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/x4KasEFoIeQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/misc/a-slice-of-pi/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/misc/a-slice-of-pi</feedburner:origLink></item>
		<item>
		<title>The Fleet of Buses</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/dmCr8bIaVgY/the-fleet-of-buses</link>
		<comments>http://techblog.solacesystems.com/arch/the-fleet-of-buses#comments</comments>
		<pubDate>Thu, 09 Aug 2012 17:57:09 +0000</pubDate>
		<dc:creator>Hans Jespersen</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[AMQP]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[MQ]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=257</guid>
		<description><![CDATA[The message bus, information bus,  and enterprise servi [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-261" title="iStock_000002004120XSmall" src="http://techblog.solacesystems.com/wp-content/uploads/2012/08/iStock_000002004120XSmall-300x199.jpg" alt="" width="300" height="199" />The message bus, information bus,  and enterprise service bus concepts are popular, and now old enough, that most large organizations find they have an entire fleet of such buses. Complicating matters is the fact that they tend to be heterogeneous in version and vendor and much of this middleware is really embedded legacy application infrastructure that cannot be easily changed. So how do you modernize your fleet of old buses?</p>
<p style="padding-left: 30px;"><strong>1 ) Federate:</strong> Get them talking to one another so that they benefit from the <a title="network effect" href="http://en.wikipedia.org/wiki/Network_effect">network effect</a> that returns greater value as more endpoints are inter-connected</p>
<p style="padding-left: 30px;"><strong>2) Accelerate:</strong> Get rid of the road bumps and bottlenecks slowing down the real-time flow of information. Modern data movement is much lower latency, globally distributed, with active/active  replication into in-memory datagrids and distributed cache.</p>
<p style="padding-left: 30px;"><strong>3) Rejuvenate:</strong> Remodel a few key flagship implementations to take advantage of the new world of streaming big data, real-time analytics, mobile sensors, M2M, etc.</p>
<p>Easier said than done you&#8217;re saying, and of course you are right. However, it&#8217;s not the technology that is holding us back anymore. The world of the message broker has never been more open and interoperable. AMQP, Websockets, JMS, REST, Web Services, XML, JSON, Virtualization and Cloud Computing all combine to make the task of building a multi-tenent multi-protocol federated message bus a reality.</p>
<p>The following is a 12 min video demonstration of a set of off the shelf components easily tied together to show seamless real-time communications between IBM WebSphere MQ, a RabbitMQ AMQP 0-9-1 Broker, any Java Messaging Service (JMS) server, and a Web Streaming application tunneling through standard HTTP. A <a title="Solace Systems 3260 Appliance " href="http://solacesystems.com/products/solace-3200-series/">Solace Systems 3260 Appliance </a>and <a title="Layer 7 SecureSpan Gateway" href="http://www.layer7tech.com/products/industry-leading-xml-gateway-overview" target="_blank">Layer 7 Technologies SecureSpan Gateway</a> are the key components integrating the other systems together.</p>
<p><code><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='580' height='357' src='http://www.youtube.com/embed/2_6pe_W8ej0?version=3&#038;rel=0&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></code></p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/dmCr8bIaVgY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/arch/the-fleet-of-buses/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/arch/the-fleet-of-buses</feedburner:origLink></item>
		<item>
		<title>Solace Web Streaming Demo</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/NvsDhTv9ZXI/solace-web-streaming-demo</link>
		<comments>http://techblog.solacesystems.com/dev/solace-web-streaming-demo#comments</comments>
		<pubDate>Wed, 25 Jul 2012 03:54:46 +0000</pubDate>
		<dc:creator>Hans Jespersen</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Streaming]]></category>
		<category><![CDATA[websockets]]></category>

		<guid isPermaLink="false">http://techblog.solacesystems.com/?p=247</guid>
		<description><![CDATA[It seems that the classic pub/sub demo always includes  [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://techblog.solacesystems.com/wp-content/uploads/2012/07/blog_arch1.jpg" class="gallery_colorbox"><img class="alignright size-full wp-image-249" src="http://techblog.solacesystems.com/wp-content/uploads/2012/07/blog_arch1.jpg"  alt="" width="300" /></a>It seems that the classic pub/sub demo always includes some streaming financial market data. With that in mind I set out to create a 3 minute video that shows how easy it is to build pub/sub apps using the Solace Web Streaming API.</p>
<p>The server-side of the demo uses an early access version of the Solace Node.js module. The client side is written with the generally available JavaScript Solace Web Streaming client libraries running on an Android  mobile phone. Communications between the client and server is all via HTTP Streaming through a  Solace Messaging Appliance.</p>
<p><code></code><code><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='580' height='357' src='http://www.youtube.com/embed/LjaZ73CAd28?version=3&#038;rel=0&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></code></p>
<p>If you want to see the text, the video is best viewed full screen in 720p HD quality.  I hope you enjoy these quick videos. Email us at <a href="mailto:info@solacesystems.com">info@solacesystems.com</a> if you have ideas for future video demos or technical tutorials that you would like to see.</p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/NvsDhTv9ZXI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/dev/solace-web-streaming-demo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/dev/solace-web-streaming-demo</feedburner:origLink></item>
		<item>
		<title>Industry Focus – Enterprise Messaging in Healthcare, Part 1</title>
		<link>http://feedproxy.google.com/~r/SolaceTechBlog/~3/VvhzD7jHcPM/industry-focus-enterprise-messaging-in-healthcare-part-1</link>
		<comments>http://techblog.solacesystems.com/misc/industry-focus-enterprise-messaging-in-healthcare-part-1#comments</comments>
		<pubDate>Tue, 17 Jul 2012 03:50:21 +0000</pubDate>
		<dc:creator>Aiken Leung</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[healthcare]]></category>

		<guid isPermaLink="false">http://solacesystems.com/techblog/?p=213</guid>
		<description><![CDATA[The global focus on healthcare transformation over the  [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://techblog.solacesystems.com/wp-content/uploads/2012/07/iStock_000018939372XSmall-300x277.jpg" alt="" title="iStock_000018939372XSmall" width="300" height="277" class="alignright size-medium wp-image-262" />The global focus on healthcare transformation over the past decade has brought focus to IT organization’s role in improving the quality, coverage and cost of providing care for patients. Enterprise Messaging within healthcare is a big topic as healthcare itself covers a huge area from an IT perspective. Using the UK’s NHS IT systems as an example, we can examine some of the messaging requirements in healthcare where a topic-based messaging appliance such as Solace may be used to help in their implementation.</p>
<p>Enterprise Messaging in healthcare has been principally leveraged as a mechanism for information sharing either in the form of system synchronization or real-time information distribution.  From a patient’s point of view, information sharing is particularly important. For example, a patient who visited different hospitals and specialists within a system using messaging based synchronization gets the benefit of collated and correlated clinical, medical and social information, so diagnosis can be more accurate and overall care can be of much higher quality.  Additional benefits can include reduction or elimination of repetitive tests and procedures.  Collectively these benefits can have a dramatic affect in accelerated diagnosis and overall cost reduction.</p>
<p>There are many ways of architecting a national healthcare system to achieve information sharing. In the UK, the backbone of providing patient information and shared services at the national level is called the Spine [1] and there are many applications from Local Service Providers (LSPs) connected to the Spine. The Spine is a part of the NHS National Program for IT (NPfIT), which aims provide “<em>a single, centrally-mandated electronic care record for patients and to connect 30,000 GP(s) to 300 hospitals, providing secure and audited access to these records by authorised health professionals”</em> [2]. British Telecom is responsible for implementing the Spine, as well as the LSPs for the London cluster and South of England cluster.</p>
<p>To connect local applications to the Spine, the NHS IT authority – Connecting for Health (CfH), employed a loosely-coupled architecture based on messaging. LSP applications need to send different types of messages to the Spine requesting information and services. The Spine then returns information and services in the form of messages.  This project, spanning more than 10 years, has been claimed to be the largest civilian IT project in the world.</p>
<p><strong>Message Handling Service</strong></p>
<p>With such a big project and complex system in the Spine, where exactly in the architecture does a messaging appliance like Solace play a part?</p>
<div id="attachment_216" class="wp-caption alignleft" style="width: 263px"><img class="size-medium wp-image-216       " style="margin: 2px 2px;" title="Figure 1: MHS Interactions" src="/wp-content/uploads/2012/07/f1-253x300.jpeg" alt="" width="253" height="300" /><p class="wp-caption-text">Figure 1: MHS Interactions</p></div>
<p>To talk to the Spine, all applications need to do it via a Message Handling Service (MHS), of which its specification is defined by CfH. In fact, all senders and receivers of the Spine messages must implement an MHS. MHS is responsible to move messages between applications that request external services and applications that implement such services. For example, if an application from an LSP needs to find demographic information of a patient (such as name, address, date of birth, NHS number), it will need to send a message via the LSP’s MHS node to the Spine MHS node, and the Spine’s MHS node will route the message to its Person Demographic Service (PDS) to</p>
<p>process the request. The Spine will then return the patient demographic data to the LSP system via the Spine MHS. See Figure 1 for the MHS interactions, where LRS stands for Legitimate Relationship Service that is to make sure the requestor has the authorization to retrieve the patient data.</p>
<p>MHS is currently implemented as a software component that supports both HL7 and non-HL7 XML messages, and operates under either Web Service (synchronous) or ebXML (asynchronous, reliable) mode. HL7 messaging is very complex but hugely important for healthcare systems to talk to each other. It is used not only for conveying data but also invoking actions. However, message format is not what we should concern here. If Solace appliances are to be used to play a part in MHS, all HL7 or non-HL7 messages will be wrapped in message payloads. The question is, how much does the Solace SDK cover MHS functionalities?</p>
<p>&nbsp;</p>
<p>Let’s look at the main tasks that an MHS is supposed to perform.</p>
<div id="attachment_217" class="wp-caption alignleft" style="width: 310px"><a href="/wp-content/uploads/2012/07/f2.png" class="gallery_colorbox"><img class="size-medium wp-image-217     " style="margin: 2px 2px;" title="Figure 2: MHS Functional Components" src="/wp-content/uploads/2012/07/f2-300x287.png"  alt="" width="300" height="287" /></a><p class="wp-caption-text">Figure 2: MHS Functional Components</p></div>
<ul>
<li>MHS Service Interface.  The abstract interface between the MHS and a system that is sending or receiving HL7 (via HL7 processor) or non-HL7 messages.</li>
<li>Header processing. The creation and processingof (ebXML or web service) header elements.  This also includes the parsing of header elements, the interaction with contract properties, and the passing of elements to and from the message service interface.</li>
<li>Message packaging.  All messages, HL7 or non-HL7, ebXML or web service, need to be wrapped in SOAP envelopes. This part is responsible for the building of the ebXML and web service envelopes, including the ebXML SOAP attachment structure.</li>
<li>Routing.  Responsible making any routing and address mapping decisions required.</li>
<li>Reliable messaging.  Responsible for the delivery and acknowledgement of reliable messages.  This component deals with persistence, retries, error notification, and acknowledgement of messages requiring reliable delivery.</li>
<li>Transport Binding.  The abstract interface between the MHS and the various protocol stacks.</li>
<li>The HL7 Processor is a logical component that may be external to MHS. It is responsible for marshalling and unmarshalling HL7 messages.</li>
</ul>
<div id="attachment_218" class="wp-caption alignleft" style="width: 310px"><a href="/wp-content/uploads/2012/07/f3.png" class="gallery_colorbox"><img class="size-medium wp-image-218    " style="margin: 2px 2px;" title="Figure 3: MHS with Solace SDK" src="/wp-content/uploads/2012/07/f3-300x288.png"  alt="" width="300" height="288" /></a><p class="wp-caption-text">Figure 3: MHS with Solace SD</p></div>
<p>Based on what an MHS normally do, we can architect Solace into MHS, and partially replace the function of Routing, Reliable Messaging and Transport Binding.</p>
<p><strong>Summary</strong></p>
<p>There are still many details to be considered for the architecture to work efficiently and across other services that the Spine provides. For example,</p>
<ol>
<li>How to utilise Solace’s topic routing strength to help the Spine to fan out to thousands of local applications and service requestors effortlessly?</li>
<li>The Spine is currently using SeeBeyond eGate with heavy customisation as the messaging gateway called TMS (Transaction Messaging Service). How efficient is TMS to receive thousands of guaranteed messages per second and fan out to the service providers on one hand and response to service requestors on the other?</li>
<li>Some Spine services such as PDS, LRS and PSIS (Personal Spine Information Service, delivers detailed patient clinical data), use HTTP but some others such SDS (Spine Directory Service, locating hospitals, doctors and nurses etc.) and SBS (Spine Security Broker) are just TCP/IP based protocol. How can Solace integrate with those services so Solace can provide a <strong>unified messaging platform</strong> for the Spine?</li>
</ol>
<p>If the above questions are addressed, topic-based messaging platform will ease the development of MHS across thousands of healthcare systems, cut down the mounting cost of NHS IT program, and provide a solid scalable platform for better care for patients.</p>
<p>Let’s leave the discussion open and I will further elaborate this messaging solution in Part 2 of this blog. Watch this space.</p>
<p>&nbsp;</p>
<p><strong>References</strong></p>
<p>[1] <a href="http://www.connectingforhealth.nhs.uk/systemsandservices/spine">http://www.connectingforhealth.nhs.uk/systemsandservices/spine</a></p>
<p>[2] <a href="http://en.wikipedia.org/wiki/NHS_Connecting_for_Health">http://en.wikipedia.org/wiki/NHS_Connecting_for_Health</a></p>
<p>[3] <a href="http://www.hl7.org.uk/repository/mim.asp">http://www.hl7.org.uk/repository/mim.asp</a></p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/SolaceTechBlog/~4/VvhzD7jHcPM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://techblog.solacesystems.com/misc/industry-focus-enterprise-messaging-in-healthcare-part-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://techblog.solacesystems.com/misc/industry-focus-enterprise-messaging-in-healthcare-part-1</feedburner:origLink></item>
	</channel>
</rss><!-- WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory. -->
