<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.2.1 on Sat, 17 Feb 2007 16:03:56 GMT -->
<rss version="2.0">
	<channel>
		<title>David Black: Architecture</title>
		<link>http://radio.weblogs.com/0146416/categories/architecture/</link>
		<description>Enterprise Software Architecture</description>
		<copyright>Copyright 2007 David Black</copyright>
		<lastBuildDate>Sat, 17 Feb 2007 16:03:56 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.2.1</generator>
		<managingEditor>dblack@codecurl.org</managingEditor>
		<webMaster>dblack@codecurl.org</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>23</hour>
			<hour>0</hour>
			<hour>1</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>5</hour>
			<hour>6</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<title>An approach to monitoring and managing clustered servers as a single entity</title>
			<description>Often we need to be able to monitor and manage clustered servers as a single entity. This is an outline of an approach I&amp;#146;ve used before to monitor and manage a clusterable enterprise server product which had very demanding RASP and throughput requirements. It is based on JMX, but allows for an aggregated view of the mbeans (monitoring attributes and management operations) in the cluster i.e. it allows for things to be examined in a meaningful way at the cluster (or service) level, while at the same time being able to view an individual nodes value for that attribute.&lt;br&gt;&lt;br&gt;It also enables an operation to be executed once for the whole cluster e.g. flush a cache, rather than having to manually do that for each server instance in turn. This can be achieved using a standard single server aware mbean console (a limitation of most off the shelf open source ones).&lt;br&gt;&lt;br&gt;The kind of aggregation appropriate for an individual attribute can be easily configured, and a view can be presented at the cluster level and at the individual servers (node) level. Different attributes require different kinds of aggregation. For example, the aggregation of the number of items in a given cache across the cluster would be the sum of all the individual cache sizes, but at the same time we also want to be able to see the value for an individual node. In the case of message throughput the aggregation might be an average of all the individual servers throughputs, and we might also want a count across the cluster of messages processed to date, as well as those statistics on an individual node basis. For another attribute it might not be sensible to aggregate it, so we might just want the individual values for each node to be shown together. The point is that a sensible &amp;#147;cluster&amp;#148; view of a given attribute differs.&lt;br&gt;&lt;br&gt;The basic idea is to instrument the classes that house the stuff you want to expose as normal using an MBean interface. So each node in the cluster exposes all its stuff as an individual server. Additional metadata is added to the MBean interface using variables (static final Strings), which describe what is to be done with the individual attributes and operations. I say static final Strings because this annotation is Java 1.4.x compatible, but if you&apos;re using Java 5 then of course you can use &quot;real&quot; annotations.&lt;br&gt;&lt;br&gt;The mbeans are registered with the mbean server via a fa&amp;ccedil;ade &amp;#150; lets call it MBeanServerFacade. The facades job is to interrogate the mbeans and extract metadata using introspection. A simple convention is followed for the variable names in order to associate them with the monitoring attributes and management operations. The values of the strings then describe how the attribute is aggregated (and other useful things). The metadata could be described somewhere else, but the advantage of putting it on the mbean interface is that its easy to develope, and it lives with the attributes, so when the mbean changes the metadata can be easily changed with it. Also, it is really simple to add these annotated mbeans so there is no barrier to adding instrumentation to the server (and for clustered servers setups you can never know enough about what is going on under the covers). MBeanServerFacade writes the metadata to a simple database table, if that particular type of mbean hasn&amp;#146;t already been registered. It also writes the host address of each node in the cluster to another table.&lt;br&gt;&lt;br&gt;The next element in the architecture is a broker process. This should (but does not have to) live separately to the cluster, so on a standalone server instance. The MBeanServerBroker reads (and periodically reloads) the descriptions in the tables populated by MBeanServerFacade. So the broker has a full description of all the relevant mbeans available and all the servers where they can be found. MBeanServerBroker is used as an intermediary between the various MBeanServers and the calling application. Using the metadata MBeanServerBroker creates JMX dynamic mbeans which expose an appropriate aggregate view of the individual mbeans across the cluster. Because it uses dynamic mbeans, the aggregate mbeans can also expose the individual attribute values (and which server they belong to). When an aggregate operation is invoked from the console, MBeanServerBroker runs that operation on each node in the cluster. The other important job of the broker is caching the returned mbean information. This is because JMX requests are expensive both in terms of the caller (waiting/blocking) and the component exposing the mbeans (doing the work of gathering the mbean info etc.). The console remains responsive because its hitting a cache, and the broker updates the cached values frequently. It&amp;#146;s the dynamic mbeans exposed by MBeanServerBroker that the console looks at.&lt;br&gt;&lt;br&gt;Here is an example of an annotated mbean interface:&lt;br&gt;&lt;br&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;interface MyStatsMBean {&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  /** attributes */&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  int getCacheSize();&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  int getAvgJmsReadsPerSecond();&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  int getMaxInsertMessageTime();&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  int getMinInsertMessageTime();&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  int getUniqueValue();&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  /** annotations */&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  String getCacheSize_AM = AggregateMethod.SUM;&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  String getAvgJmsReadsPerSecond_AM = AggregateMethod.AVG;&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  String getMaxInsertMessageTime_AM = AggregateMethod.MAX;&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  String getMinInsertMessageTime_AM = AggregateMethod.MIN;&lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;  String getUniqueValue_AM = AggregateMethod.LIST; &lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;span style=&quot;font-family: Courier;&quot;&gt;} &lt;/span&gt;&lt;br style=&quot;font-family: Courier;&quot;&gt;&lt;br&gt;In this example we want to see the sum of cache sizes across the cluster, the average JMS reads per second across all nodes, the slowest message insert into the database, as well as the quickest, and a list of individual values for an attribute that it does not make sense to aggregate.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2007/01/23.html#a87</guid>
			<pubDate>Tue, 23 Jan 2007 14:01:00 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=87&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2007%2F01%2F23.html%23a87</comments>
			</item>
		<item>
			<title>The OSGi bandwagon effect</title>
			<description>No one could ever accuse me of not jumping on a well spotted bandwagon. Good introductory article on &lt;a href=&quot;http://www.theserverside.com/tt/articles/article.tss?l=EclipseEquinoxOSGi&quot;&gt;OSGi and bundle development with Eclipse&lt;/a&gt;.</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2007/01/16.html#a83</guid>
			<pubDate>Tue, 16 Jan 2007 14:01:50 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=83&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2007%2F01%2F16.html%23a83</comments>
			</item>
		<item>
			<title>OSGi-everywhere</title>
			<description>There was a lot of buzz in 2006 around OSGi and it looks like 2007 will be the OSGi-everywhere year. One of the more interesting posts I&apos;ve come across is &lt;a href=&quot;http://www.eclipsezone.com/eclipse/forums/t87966.rhtml&quot;&gt;this one&lt;/a&gt;, a reference to a talk about the Newton open source project and dynamic service grids in the enterprise and OSGi as a basis for SOA. I&apos;m hoping to try some of this out for large-scale (and large scaling) distributed systems shortly. More on that in due course.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2007/01/15.html#a82</guid>
			<pubDate>Mon, 15 Jan 2007 18:10:23 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=82&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2007%2F01%2F15.html%23a82</comments>
			</item>
		<item>
			<title>Cape Clear 7.0 BETA is now available</title>
			<description>Happy New Year and Happy New BETA! The Cape Clear 7.0 BETA is now available for download. Check out the brief &lt;a href=&quot;http://www.capeclear.com/ld/beta/&quot;&gt;summary of some new features&lt;/a&gt;, participate in the BETA on &lt;a href=&quot;http://developer.capeclear.com/?q=node/330&quot;&gt;developer.capeclear.com&lt;/a&gt; and have a look at the detailed &lt;a href=&quot;http://developer.capeclear.com/7_beta/help/index.jsp&quot;&gt;What&apos;s New&lt;/a&gt;. I reckon its going to be a great 2007 :-)&lt;a href=&quot;http://developer.capeclear.com/&quot;&gt;&lt;/a&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2007/01/03.html#a74</guid>
			<pubDate>Wed, 03 Jan 2007 08:23:57 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=74&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2007%2F01%2F03.html%23a74</comments>
			</item>
		<item>
			<title>Cape Clear ESB keeps on winning with IT Week Magazine Editors Choice Award for 2006</title>
			<link>http://www.eweek.com/article2/0,1895,1997918,00.asp</link>
			<description>&quot;One of the best ESB products available and it &lt;a href=&quot;http://www.eweek.com/article2/0,1895,1997918,00.asp&quot;&gt;wins our Editor&apos;s Choice Award&lt;/a&gt; for functionality and performance.&quot; - IT Week, July 31, 2006&lt;br&gt;&lt;br&gt;&quot;Clear&apos;s Cape Clear ESB 6.6 provides an intuitive and capable platform for creating, managing and deploying services, processes and data for an SOA infrastructure.&quot;&lt;br&gt;&lt;br&gt;And &lt;a href=&quot;http://www.capeclear.com&quot;&gt;Cape Clear&lt;/a&gt; will just keep getting stronger - we have a host of goodies in store for later this year. I can&apos;t wait! :)&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2006/08/09.html#a48</guid>
			<pubDate>Wed, 09 Aug 2006 09:50:07 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=48&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F08%2F09.html%23a48</comments>
			</item>
		<item>
			<title>SCA v0.95 - some much need simplification</title>
			<description>I am so glad to see that in the latest SCA draft specification the assembly composition has been greatly simplified using a &lt;a href=&quot;http://www.osoa.org/display/Main/Recursive+Assembly+Model&quot;&gt;recursive model&lt;/a&gt;.&amp;nbsp; I thought the&amp;nbsp; whole module, fragment, sub-system and system thing was hopelessly confusing (how many times did I read the 0.9 spec?!). Now we have Composities (which are just the same as Components) that include other Components and so on. So its basically composite services and services.&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2006/08/04.html#a47</guid>
			<pubDate>Fri, 04 Aug 2006 16:16:13 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=47&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F08%2F04.html%23a47</comments>
			</item>
		<item>
			<title>New Cape Clear ESB University courses starting shortly</title>
			<link>http://www.capeclear.com/esbuniversity</link>
			<description>The &lt;a href=&quot;http://www.capeclear.com/esbuniversity&quot;&gt;Cape Clear ESB University&lt;/a&gt; is an educational and training initiative aimed at providing software developers, systems integrators and IT architects with the information and tools they need to ensure the success of their Service-Oriented Architecture (SOA) projects. These live educational webcasts, which will be held during the month of August, will support organizations in the design, development, deployment and management of SOA and ESB projects, using relevant business case examples.&lt;br&gt;&amp;nbsp;&lt;br&gt;You can register for these courses &lt;a href=&quot;https://capeclearevents.webex.com/capeclearevents&quot;&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;The first course covers the Principles of SOA Design Using Enterprise Service Bus. This session focuses on the SOA creation process, principles of good SOA design, and the use of an ESB to enable SOA projects. &lt;br&gt;&lt;br&gt;During this event you will learn:&lt;br&gt;&lt;br&gt;- Service-Oriented Architecture: The accepted architecture for reducing development costs, increasing IT agility and improving IT/business alignment&lt;br&gt;- Enterprise Service Bus: The new technology platform for realizing SOA&lt;br&gt;- Standards: What are the standards that relate to SOA?&lt;br&gt;- True ESB: The standards-based ESB platform for SOA&lt;br&gt;&lt;br&gt;On these courses you can learn how Enterprise Service Bus can Leverage your SOA Initiative. &lt;br&gt;&lt;br&gt;The Cape Clear ESB University has been designed to accommodate the diverse needs of those who are responsible for creating a SOA strategy, design and implementation, helping to ensure projects result in reduced development costs, and increased business agility.&lt;br&gt;&lt;br&gt;The ESB University webcasts will include sessions on the following topics:&lt;br&gt;- Course 1: The Principles of SOA Design Using Enterprise Service Bus&lt;br&gt;- Course 2: SOA--Introduction to Process Orchestration and Top Down Service Design&lt;br&gt;- Course 3: Mapping and Transforming Diverse Data Formats Using SOA&lt;br&gt;- Course 4: Service Enablement and Quality of Service with SOA&lt;br&gt;&lt;br&gt;Sign up now!&lt;br&gt;&lt;br&gt;---------------------------------------&lt;br&gt;&lt;br&gt;Course 1, August 9, 2006&lt;br&gt;&lt;br&gt;8 AM PDT/11 AM EDT/4 PM GMT&lt;br&gt;&lt;br&gt;The Principles of SOA Design Using Enterprise Service Bus&lt;br&gt;&lt;br&gt;---------------------------------------&lt;br&gt;&lt;br&gt;Course 2, August 16, 2006&lt;br&gt;&lt;br&gt;8 AM PDT/11 AM EDT/4 PM GMT&lt;br&gt;&lt;br&gt;SOA - Introduction to Process Orchestration and Top Down Service Design&lt;br&gt;&lt;br&gt;---------------------------------------&lt;br&gt;&lt;br&gt;Course 3, August 23, 2006&lt;br&gt;&lt;br&gt;&amp;nbsp;8 AM PDT/11 AM EDT/4 PM GMT&lt;br&gt;&lt;br&gt;Mapping and Transforming Diverse Data Formats Using SOA&lt;br&gt;&lt;br&gt;---------------------------------------&lt;br&gt;&lt;br&gt;Course 4, August 30, 2006&lt;br&gt;&lt;br&gt;8 AM PDT/11 AM EDT/4 PM GMT&lt;br&gt;&lt;br&gt;Service Enablement and Quality of Service with SOA&lt;br&gt;&lt;br&gt;---------------------------------------&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2006/08/03.html#a46</guid>
			<pubDate>Thu, 03 Aug 2006 08:31:09 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=46&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F08%2F03.html%23a46</comments>
			</item>
		<item>
			<title>OSGi tutorial at ApacheCon Dublin</title>
			<description>&lt;a href=&quot;http://apachecon.com/&quot;&gt;ApacheCon&lt;/a&gt; Europe 2006 is being held in Dublin this week. I couldn&apos;t attend the whole week, but I did get to go to a half-day &lt;a href=&quot;http://www.osgi.org/&quot;&gt;OSGi&lt;/a&gt; tutorial given by longtime OSGi evangelist &lt;a href=&quot;http://www.aqute.biz/&quot;&gt;Peter Kriens&lt;/a&gt;. Peter, who is the current editor of the OSGi specification, says:&lt;br&gt;&lt;br&gt;&quot;OSGi is kind of SOA&quot;&lt;br&gt;&lt;br&gt;&quot;OSGi is kind of a Java Operating System&quot; or at least a &quot;mini-kernel&quot;&lt;br&gt;&lt;br&gt;OSGi is &quot;the Dynamic Modularity Layer for Java&quot;&lt;br&gt;&lt;br&gt;OSGi is a Java framework for developing remotely deployed service applications. OSGi started life in 1998 with the original use case of home automation. OSGi applications can run on different software and hardware architectures. There is a lot of buzz around it right now, particularily in the enterprise space, partially because of Eclipse &lt;a href=&quot;http://www.eclipse.org/equinox/&quot;&gt;Equinox&lt;/a&gt;, which is OSGi R4 based and the technology underlying Eclipse bundles (actually Equinox goes beyond pure OSGi). But there are a bunch of other implementations, including the &lt;a href=&quot;http://incubator.apache.org/felix/&quot;&gt;Apache Felix&lt;/a&gt; project. The specification is freely available and royalty free.&lt;br&gt;&lt;br&gt;OSGi applications adhere to a basic SOA, the contract between client and service is based on a Java interface and discovering and binding available implementations is done through the framework. Client and service are softly coupled. So it provides an in-VM service model. Declarative services, introduced in R4, are akin to having dependency injected components. Applications declare their service dependencies in an XML file, and are notified by the framework at runtime as services becomes available and go away. The last is an important point: services can go away at runtime, just as they can be dynamically discovered. The next major release of &lt;a href=&quot;http://www.springframework.org/&quot;&gt;Spring&lt;/a&gt; is adding support for OSGi. One of the tutorial attendees made the point that OSGi is a generic event notification framework.&lt;br&gt;&lt;br&gt;OSGi applications are packaged as bundles, handled by the OSGi Module Layer. The Module Layer addresses packaging, class loading modularization, protection and versioning (multiple versions of the same package) - things Java does not do well, or at all, by itself. In addition, OSGi provides basic Life Cycle Management. An API for managing bundles allows them to be installed, resolve their dependencies, started, stopped, refreshed, updated and uninstalled. So basically, bundles register one or more services with the framework service directory, and other bundles can use those services. Service contracts are just Java interfaces, so service implementations are just POJOs and no special classes need be extended nor interfaces implemented.&lt;br&gt;&lt;br&gt;Its a pity OSGi wasn&apos;t somehow used as the basis of &lt;a href=&quot;http://www.jcp.org/en/jsr/detail?id=208&quot;&gt;JBI&lt;/a&gt;, there are so many similarities.&lt;br&gt;&lt;br&gt;Its also a pity that there are currently two rival JSRs attempting to establish a dynamic modularity layer for Java SE. &lt;a href=&quot;http://www.jcp.org/en/jsr/detail?id=291&quot;&gt;JSR-291&lt;/a&gt; is the OSGi Alliance backed one that aims to &quot;define a dynamic component framework including component lifecycle for existing Java SE platforms&quot;. Peter is on the expert group. &lt;a href=&quot;http://www.jcp.org/en/jsr/detail?id=277&quot;&gt;JSR-277&lt;/a&gt; aims to do more or less the same thing, expect not as well according to Peter - who is is not on the expert group despite his best efforts! Richard Hall was at the tutorial, he is on both groups. According to Richard he is trying to steer the 277 folks in the right direction. It will be interesting to see what happens. Richard was giving a couple of OSGi related talks in Dublin, I wish I had been able to attend them.&lt;br&gt;&lt;br&gt;And I think the Eclipse &lt;a href=&quot;http://www.eclipse.org/proposals/rsp/&quot;&gt;Rich Server Platform&lt;/a&gt; proposal deserves some serious attention. There is so much happening in the module/component/service packaging, assembling and deployment space (the McSPAD space) (ok, I guess thats several kind of overlapping spaces). We&apos;ve got JBI, &lt;a href=&quot;http://www-128.ibm.com/developerworks/library/specification/ws-sca/&quot;&gt;SCA&lt;/a&gt; (though &lt;a href=&quot;http://www.davidchappell.com/HTML_email/Opinari_No15_12_05.html&quot;&gt;don&apos;t hold your breath&lt;/a&gt;) and now (yes it has been around for quite some time) OSGi. What we really need to do is get everyone in an aircraft hanger (big enough?), seal the doors and tell them they are not getting out until there is only &lt;span style=&quot;font-style: italic;&quot;&gt;one&lt;/span&gt;. One McSPAD to rule them all.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2006/06/28.html#a42</guid>
			<pubDate>Wed, 28 Jun 2006 21:37:47 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=42&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F06%2F28.html%23a42</comments>
			</item>
		<item>
			<title>AMQP: an open specification for queue based messaging</title>
			<description>The &lt;a href=&quot;http://www.twiststandards.org/tiki-download_file.php?fileId=226&quot;&gt;Advanced Message Queuing Protocol (AMQP) 0.8&lt;/a&gt; spec has been released. AMQ is an open specification for queued messaging that was born at JPMorgan Chase under the direction of John O&apos;Hara. &lt;a href=&quot;http://www.finextra.com/fullstory.asp?id=15470&quot;&gt;JPMorgan&lt;/a&gt; have formed the AMQP Working Group, 
together with a bunch of companies including Red Hat, Cisco and Iona. They aim 
to create an alternative to expensive proprietary messaging middleware like IBMs MQSeries. IBM aren&apos;t the only vendor selling an overpriced queuing system, I reckon TIBCO fall into that category too. I understand this has been brewing behind the scenes for a while, but a lot of &lt;a href=&quot;http://radio.weblogs.com/0112098/2006/06/21.html#a567&quot;&gt;folks&lt;/a&gt; weren&apos;t sure it would ever see the light of day. As Brian McCallister puts it this is a space badly in need of an &lt;a href=&quot;http://kasparov.skife.org/blog/src/amqp-0_8.html&quot;&gt;open standard&lt;/a&gt;, but has concerns about whether it will be properly opened up. According to &lt;a href=&quot;http://www.infoq.com/news/amq&quot;&gt;InfoQ&lt;/a&gt; JPMorgan have an implementation in production now. I&apos;ve worked on a number of messaging systems for investment bank trading floors (and beyond) over the years, going back to NetBIOS days, reliable broadcast with UDP/IP, point-to-point based systems with TCP/IP, including HTTP tunneling based Internet trading infrastructure. Back in those days the messaging systems were the product. These days they &lt;span style=&quot;font-style: italic;&quot;&gt;should&lt;/span&gt; just be part of the woodwork, and hopefully AMQP, OpenWire and implementations like ActiveMQ can bring scalable, performant and reliable asychronous messaging to all enterprises. &lt;br&gt; </description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2006/06/25.html#a40</guid>
			<pubDate>Sun, 25 Jun 2006 20:13:40 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=40&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F06%2F25.html%23a40</comments>
			</item>
		<item>
			<title>Enabling effective BAM with the ESB</title>
			<link>http://www.capeclear.com</link>
			<description>By now most folks understand the advantages of running and orchestrating key business processes using SOA principles and Enterprise Service Buses, like the web service standards based &lt;a href=&quot;http://www.capeclear.com/capeclearesb/&quot;&gt;Cape Clear ESB&lt;/a&gt;. There is a lot of business activity taking place on the ESB, and it&apos;d be great to be able to monitor that, gather the intelligence and analyze what our businesses are telling us. In other words putting the ESB and Business Activity Monitoring (BAM) together. &lt;br&gt;&lt;br&gt;One of the key issues when considering BAM is being non-invasive. A BAM should be able to collect the data it needs to present a real-time dashboard of business state and Key Performance Indicators (KPIs), without you having to engineer that into your applications. Another key issue is correlation. Lots of bits of data and process state go into creating a holistic picture of a business process. A BAM needs to be able to tie all those bits together. Different systems often use different keys to identify a particular instance of a process. Sometimes the interaction between systems is terse e.g. in a synchronous request/response scenario the response message might not even have a process identifier. This can make it difficult for the BAM to create that holistic view and show you everything you want to see. &lt;br&gt;&lt;br&gt;Fortunately, both of these issues can be addressed very effectively by the ESB. When business services are exposed on an ESB, the bus is handling all the messages as they flow between services. These messages and their orchestrated flow between services define a large part of the process. The ESB itself can event out these messages to the BAM, there is no need for invasive engineering - so collection is free. The ESB is already doing correlation, internally it knows what process instances it is dealing with, so it can add that information to the messages it sends to the BAM, together with a whole bunch of other useful stuff like timestamps and source and destination services. &lt;br&gt;&lt;br&gt;Sometimes of course, things happen inside of applications that are invisible to the bus, and may be difficult to collect, but that are important to know. Again the ESB can help by exposing its BAM collection function as just another service that applications can invoke. With the Cape Clear ESB we&apos;re enabling effective BAM. We&apos;re doing a whole bunch of other great stuff to make BAM easier too, I&apos;ll post more on that soon.&lt;br&gt;&lt;br&gt;In the meantime, how about a new TLA: SAM - SOA Activity Monitoring :-)&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2006/06/10.html#a36</guid>
			<pubDate>Sat, 10 Jun 2006 12:44:24 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=36&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F06%2F10.html%23a36</comments>
			</item>
		<item>
			<title>Landed at the Cape</title>
			<link>http://www.capeclear.com</link>
			<description>I&apos;ve wanted to get into the SOA and Enterprise Service Bus space for some time now. When an opportunity arose to join &lt;a href=&quot;http://www.capeclear.com&quot;&gt;Cape Clear Software&lt;/a&gt;, the leading ESB vendor, I was excited by the prospect and impressed by the people I met. From a technical perspective, it fit nicely with my keen interest in Eclipse tooling on the one hand, server technology, and enterprise architecture in general. So pretty much the whole kit and kaboodle then! This is clearly a red hot space right now, and rightly so, SOA is changing the way we do so many things. Cape Clear have a stellar &lt;a href=&quot;http://www.capeclear.com/capeclearesb/&quot;&gt;SOA platform&lt;/a&gt; that is ready to go out of the box, giving you tons of loosely coupled integration options that work first time. So I charted a course, and I&apos;ve just landed at the Cape. One of the things I&apos;m going to be helping Cape Clear do is to define extension points for BAM (Business Activity Monitoring). More on that later.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2006/05/06.html#a35</guid>
			<pubDate>Sat, 06 May 2006 20:35:11 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=35&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F05%2F06.html%23a35</comments>
			</item>
		<item>
			<title>Farewell PaceMetrics</title>
			<link>http://www.pacemetrics.com</link>
			<description>In a few days time I&apos;m finishing up at PaceMetrics, the company I&apos;ve been with for the last three years. Leaving Pace was a tough enough decision for me. I joined on an up curve just as the company was starting to build its fourth generation BAM (Business Activity Monitor), and winning a huge deal with a tier one investment bank. To deliver that project and productise it, I was lucky enough to quickly assemble one of the best software development teams I&apos;ve ever had. This team was world class, all experienced, seasoned, innovative, agile engineers. We had a really stellar project manager and business architect in &lt;a href=&quot;http://www.toolan.de/&quot;&gt;Colm Toolan&lt;/a&gt;, and a super professional services team, and the result was PaceMaker 4:&lt;br&gt; &lt;br&gt;- fully Java, J2EE (POJOs of course!) and JMS based, leveraging best-of-breed open source components and tools&lt;br&gt;- loosely coupled components communicating asynchronously using XML-based messagess&lt;br&gt;- a simple maven based build&lt;br&gt;- a super-scalable, fully reliable, and architecturally innovative BAM engine - thanks James :-)&lt;br&gt;- a scalable web front end built on some pretty cool caching technology&lt;br&gt;- enterprise ready monitoring and management through JMX from our own custom web based admin console&lt;br&gt;- Eclipse based tooling (courtesy of yours truely) &lt;br&gt;&lt;br&gt;Its been a great few years, but in the end I&apos;ve been tempted away by the shimmering lights of SOA and ESBs. I&apos;ll post more on that in a couple of days.&lt;br&gt;&lt;br&gt;</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2006/04/23.html#a33</guid>
			<pubDate>Sun, 23 Apr 2006 17:43:52 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=33&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2006%2F04%2F23.html%23a33</comments>
			</item>
		<item>
			<title>Weblogic Workshop? I don&apos;t think so</title>
			<description>

&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Have you seen the new
Weblogic Workshop released with Weblogic 8.0? Are you impressed by the flash
demo, cool graphics and seamless BPM workflow visual editor based development?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p style=&quot;font-family: Arial;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;I&apos;ve
just had quite a discussion with some of my companies product management
people. It was suggested we ditch the open source and open standards based
stuff we&apos;re using to build a major web application for a big customer we have,
in favour of this new workshop and &lt;st1:place w:st=&quot;on&quot;&gt;BEAs&lt;/st1:place&gt;
webflow technology. So right now we&apos;re using Eclipse for development, Struts,
Tiles, JSTL and EL. Hmmm, let me think about that for just a nanosecond - no
way dude! First of all, why didn&apos;t they just build on Eclipse? Why reinvent an
inferior, Swing-based (barf) IDE wheel? And all this jpd stuff is totally proprietary.
Even if BEA push to standardize some of this it&apos;ll be years before there are
other implementations (and it&apos;ll be different). I just can&apos;t see too many
people ditching Eclipse and best use open source for this. I guess BEA have
deep pockets, but I think this is a mistake.&lt;/span&gt;&lt;/p&gt;

</description>
			<guid>http://radio.weblogs.com/0146416/categories/architecture/2003/12/18.html#a16</guid>
			<pubDate>Thu, 18 Dec 2003 22:02:18 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=146416&amp;amp;p=16&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0146416%2F2003%2F12%2F18.html%23a16</comments>
			</item>
		</channel>
	</rss>
