<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4685881957311672629</id><updated>2011-11-17T07:38:18.336-08:00</updated><title type='text'>JBoss SOA Governance: Project Overlord</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-5145607572490646004</id><published>2010-04-29T14:44:00.000-07:00</published><updated>2010-04-29T14:46:19.186-07:00</updated><title type='text'>SOA Governance on ebizq</title><content type='html'>It's been a while since we posted something, but &lt;a href="http://jboss-soa-p.blogspot.com/2010/04/soa-governance.html"&gt;this cross post&lt;/a&gt; should be interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-5145607572490646004?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/5145607572490646004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=5145607572490646004' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/5145607572490646004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/5145607572490646004'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2010/04/soa-governance-on-ebizq.html' title='SOA Governance on ebizq'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-9013421267757670655</id><published>2009-06-12T03:22:00.000-07:00</published><updated>2009-06-12T03:35:21.401-07:00</updated><title type='text'>Using Process Governance in support of Process Versioning</title><content type='html'>Seeing the recent &lt;a href="http://soamastery.blogspot.com/2009/06/soa-process-driven-message-driven-or.html"&gt;blog by Van Alst&lt;/a&gt; reminded me how low tech process versioning is. As he points out, it requires careful implementation of the processes, to avoid having long running process instances that may cause difficulties when trying to upgrade either the business process, or the infrastructure on which that process is running.&lt;br /&gt;&lt;br /&gt;His suggested approach is to implement those BPEL processes, that would normally be long running, as event/message driven processes that can optionally utilise short running BPEL processes. However the disadvantage is the complexity that may be introduced to accommodate the potentially large number of business process versions that need to be supported. Each new version of the business process needs to accommodate existing running process instances that may be at various stages in the event driven implementation. However suitable tooling could be provided to help manage this.&lt;br /&gt;&lt;br /&gt;The typical process versioning techniques currently used are:&lt;br /&gt;&lt;br /&gt;1) Active processes should continue to use the same process definition (e.g. BPEL) version, while new process instances would use the most recent version.&lt;br /&gt;&lt;br /&gt;2) Terminate all currently active processes – this seems a bit extreme, and can only really work if all systems involved have a way to undo or back out the work already done, and then replay the transaction on the new business process.&lt;br /&gt;&lt;br /&gt;3) Migrating the process – although some simple changes can be handled using this approach, it can be very difficult to achieve without introducing errors. This is because the control structure of a process may change, or new variables may be added that cannot be initialised 'after the fact'.&lt;br /&gt;&lt;br /&gt;So options (2) and (3) may be suitable in rare cases, but they are not a general solution.&lt;br /&gt;&lt;br /&gt;The problem with option (1) is that a business process may be changed while a business process instance (or transaction) has not 'touched' all of the BPEL process definitions involved. For simplicity, if we assume a business process is comprised of two BPEL process definitions, A and B – if a business process instance X starts with process A, and waits for some duration (i.e. may be awaiting user input), and in the meantime the business process is updated in such a way that the interface between process definitions A and B are changed. When process instance X restarts in process definition A, and attempts to interact with process definition B, it would fail. This is because process definition B has not previously been involved in business transaction X, and therefore the BPEL engine managing process definition B would not be aware that it needs to actually direct the interaction to an older version of process definition B.&lt;br /&gt;&lt;br /&gt;Could process governance provide another solution to this problem?&lt;br /&gt;&lt;br /&gt;Understanding what behaviour a service provides, and what behaviour a service requires from other services, may provide the basis for ensuring the appropriate versions of each service work together correctly to deliver a particular version of the overall business process. This means that when one service wants to interact with another service, it should invoke the process definition version that meets its behavioural requirements, and not necessarily the one that is the most recent version.&lt;br /&gt;&lt;br /&gt;The other way in which behaviour could be of use is to help determine whether a new version of a particular process definition (i.e. BPEL) is backward compatible with an active process instance associated with an older version of the process definition. If this is the case, then it may be easy to migrate the process instance to a newer process definition, and thus enable the business process instance as a whole to evolve – however this would be subject to the backward compatibility constraint.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So in summary:&lt;br /&gt;&lt;br /&gt;First approach is to make each component of the process as simple and short lived as possible, to avoid having to worry about issues related to versioning those components. The system runs using the most up-to-date version of each component, and the complexity in dealing with changes in a business process are managed by the glue between the tasks – the rules that govern how the results of one task are used to trigger one or more other tasks.&lt;br /&gt;&lt;br /&gt;The second approach doesn't place restrictions on the long running nature of the individual services, but instead provides a way in which multiple versions of a business process can run simultaneously, and evolve within certain constraints to newer versions of the service components.&lt;br /&gt;&lt;br /&gt;The main point is that a business process and the resulting service designs should not be defined with versioning in mind. As far as possible, this needs to be handled as part of a SOI. In the case of the second approach, this can be handled as part of the governance capabilities, by controlling the specific versions of services that are used based on the required behaviour.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-9013421267757670655?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/9013421267757670655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=9013421267757670655' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/9013421267757670655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/9013421267757670655'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2009/06/using-process-governance-in-support-of.html' title='Using Process Governance in support of Process Versioning'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-6460538939681169256</id><published>2009-05-19T05:45:00.000-07:00</published><updated>2009-05-19T05:54:18.586-07:00</updated><title type='text'>Choreography comes of age</title><content type='html'>A choreography, as defined in the WS-CDL spec, "describes peer-to-peer collaborations of parties by defining, from a global viewpoint, their common and complementary observable behavior; where ordered message exchanges result in accomplishing a common business goal."&lt;br /&gt;&lt;br /&gt;WS-CDL was ground breaking as a standard for two reasons:&lt;br /&gt;&lt;br /&gt;1) Normally a standardisation process occurs when a number of proprietary de-facto standards, supported by different groups within industry, need to be merged to provide a single true standard that all parties are happy with.&lt;br /&gt;&lt;br /&gt;No such proprietary standard existed for choreography, and therefore the working group were in the rare position of having to create something from scratch.&lt;br /&gt;&lt;br /&gt;2) For introducing the concept of a 'global' model - a global model being a description of the interactions between parties from a neutral or global (i.e. service independent) perspective.&lt;br /&gt;&lt;br /&gt;Much respect to Nickolas Kavantzas of ORACLE for dreaming up the idea, as this has spawned a lot of new research, and therefore if WS-CDL has achieved nothing else, it has made a significant contribution to computer science. Pity ORACLE didn't follow up on Nick's excellent contribution by providing an implementation of the standard, especially as they were also the co-chair of the working group.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However WS-CDL has its downsides.&lt;br /&gt;&lt;br /&gt;In an attempt to provide a language with a strong formal type system, it has become complex to use. It is perceived by many to be web service specific, due to its affiliation with W3C. However the most damaging aspect is the long running misconception that it is competitive to BPEL.&lt;br /&gt;&lt;br /&gt;As mentioned above, WS-CDL is an example of a 'global' model, and therefore provides a service independent view of interactions between participants.&lt;br /&gt;&lt;br /&gt;Abstract BPEL is an example of a 'local' model, i.e. it is a service specific view of interactions between that service and its directly associated participants. Therefore the standards are actually complementary, they should be able to work together harmoniously in their separate roles.&lt;br /&gt;&lt;br /&gt;The problem is that one of the main disadvantages with WS-CDL is that it does not define its own 'local' model representation that would be fully compatible with the 'global' model language. Although Abstract BPEL can be used to fulfill this role, it is not ideal for the job.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now choreography has come of age. We have a new champion emerging on the scene in the form of BPMN2.&lt;br /&gt;&lt;br /&gt;The popular graphical notation has taken a number of significant steps forward with version 2, including the introduction of a choreography 'global' model to accompany the existing process 'local' model notation.&lt;br /&gt;&lt;br /&gt;The benefit of this approach is that it is (1) not perceived to be web service specific, (2) there is a compatible notation between the 'global' and 'local' model perspectives, and (3) it is being incorporated into a standard that is already very popular, and therefore should make it easier for users to adopt the choreography concept.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-6460538939681169256?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/6460538939681169256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=6460538939681169256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/6460538939681169256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/6460538939681169256'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2009/05/choreography-comes-of-age.html' title='Choreography comes of age'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-2165055600049486777</id><published>2009-05-18T05:46:00.000-07:00</published><updated>2009-05-18T05:47:54.209-07:00</updated><title type='text'>BPM console blog moved</title><content type='html'>I moved the BPM console blog to a new location:&lt;br /&gt;&lt;a href="http://relative-order.blogspot.com/"&gt;http://relative-order.blogspot.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-2165055600049486777?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/2165055600049486777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=2165055600049486777' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/2165055600049486777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/2165055600049486777'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2009/05/bpm-console-blog-moved.html' title='BPM console blog moved'/><author><name>Heiko Braun</name><uri>http://www.blogger.com/profile/17987290811990461031</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-6147048822562321855</id><published>2009-02-15T16:30:00.000-08:00</published><updated>2009-02-15T16:36:47.867-08:00</updated><title type='text'>Testable architectures</title><content type='html'>Steve has posted &lt;a href="http://pi4tech.blogspot.com/2009/02/using-formal-methods-to-support.html"&gt;an interesting article on his recent use of the testable architectures approach&lt;/a&gt; he's been &lt;a href="http://pi4tech.blogspot.com/"&gt;discussing for several years&lt;/a&gt;. It's obviously closely related to &lt;a href="http://jboss-overlord.blogspot.com/2008/11/process-governance.html"&gt;what we're trying to achieve together on Process Governance&lt;/a&gt;, so take a look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-6147048822562321855?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/6147048822562321855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=6147048822562321855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/6147048822562321855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/6147048822562321855'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2009/02/testable-architectures.html' title='Testable architectures'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-4870430802690306795</id><published>2009-01-15T12:24:00.000-08:00</published><updated>2009-01-20T01:22:29.507-08:00</updated><title type='text'>Developing BPM console plugins</title><content type='html'>I committed a first draft of a plugin mechanism that allows composition of &lt;a href="https://www.jboss.org/community/docs/DOC-12879"&gt;BPM console&lt;/a&gt; features more easily. Initially we'd been looking for a convenient way to deal with the differences in jbpm3 and jbpm4, but now it has proven to be good solution for console &lt;a href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)"&gt;mash-ups&lt;/a&gt; in general. For instance future integration or composition with &lt;a href="http://blog.athico.com/2008/04/brms-for-drools-5.html"&gt;Guvnor&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The idea is simple: While providing common elements like authentication, configuration and look and feel, the console needs to be assembled out of common and proprietary features. Not everything we build into it, works across &lt;a href="http://jbpm.org"&gt;BPM runtimes&lt;/a&gt; even though it's our foremost goal.&lt;br /&gt;&lt;br /&gt;Fortunately GWT already ships with an extension mechanism called "&lt;a href="http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&amp;s=google-web-toolkit-doc-1-5&amp;t=DevGuideDeferredBinding"&gt;Deferred Binding&lt;/a&gt;". It allows you to replace or generate components at build time. Build time in our case means maven, and the easiest way to customize a maven build is by providing different sets of dependencies.  Unlike the regular GWT compilation which is restricted to a subset of the JDK, the deferred binding has access to the full API, including classloading. It actually happens before the GWT compiler kicks in.&lt;br /&gt;&lt;br /&gt;Great. That means our plugin loader can build upon the availability of plugins in the classloading scope.&lt;br /&gt;Maven already provides the dependency management, then we are set.&lt;br /&gt;&lt;br /&gt;Let's look at an example. Trunk contains a &lt;a href="http://anonsvn.jboss.org/repos/jbpm/projects/gwt-console/trunk/plugin-example/"&gt;plugin-example&lt;/a&gt; that should get you going. Take a look at the pom.xml dependencies first. Any plugin has a dependency on the console plugin API:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;dependency&gt;&lt;br /&gt;     &amp;lt;groupId&gt;org.jbpm.jbpm3&amp;lt;/groupId&gt;&lt;br /&gt;     &amp;lt;artifactId&gt;gwt-console-plugin&amp;lt;/artifactId&gt;&lt;br /&gt;     &amp;lt;version&gt;1.0.0-SNAPSHOT&amp;lt;/version&gt;&lt;br /&gt;&amp;lt;/dependency&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It ships with a few concepts that we need to clarify before we can move on. The console acts as a &lt;tt&gt;Workspace&lt;/tt&gt;. A &lt;tt&gt;Workspace&lt;/tt&gt; contains &lt;tt&gt;Editors&lt;/tt&gt;, which are composed of different &lt;tt&gt;Views&lt;/tt&gt;. Developing a plugin actually means implementing an &lt;tt&gt;Editor&lt;/tt&gt; and providing a workspace configuration (&lt;a href="http://anonsvn.jboss.org/repos/jbpm/projects/gwt-console/trunk/plugin-example/src/main/resources/org/jboss/bpm/console/workspace.cfg"&gt;workspace.cfg&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;When building the console, the deferred binding generates and links the code that is required to associate all &lt;tt&gt;Editors&lt;/tt&gt; in a workspace configuration with the console framework. Sounds terrible, but a plugin developer only needs to know a few interfaces and create a workspace configuration.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public abstract class Editor extends Panel&lt;br /&gt;{&lt;br /&gt; protected ApplicationContext appContext;&lt;br /&gt;&lt;br /&gt; public abstract String getEditorId();&lt;br /&gt; public abstract String getTitle();&lt;br /&gt; public abstract String getIconCSS();&lt;br /&gt; public abstract MenuSection provideMenuSection();&lt;br /&gt; &lt;br /&gt; [...]&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;An Editor is your plugin root implementation. It needs to be uniquely identified (&lt;tt&gt;editorId&lt;/tt&gt;) and contribute to the main menu (&lt;tt&gt;MenuSection&lt;/tt&gt;). It can contain one or more views:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public abstract class View extends Panel&lt;br /&gt;{&lt;br /&gt;  protected ApplicationContext appContext;&lt;br /&gt;&lt;br /&gt;  public abstract String getViewId();&lt;br /&gt;  public abstract String getIconCSS();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The editor and it's views share an &lt;tt&gt;ApplicationContext&lt;/tt&gt; that gives you access to common things like authentication, configuration, logging, etc.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public interface ApplicationContext&lt;br /&gt;{&lt;br /&gt;  [...]&lt;br /&gt;  void displayMessage(String message, boolean isError);&lt;br /&gt;  Authentication getAuthentication();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Besides that, you can leverage anything GWT provides for implementing your plugin. &lt;br /&gt;I think you get the idea. Take a look at the plugin example (Google Maps integration), especially the &lt;a href="http://anonsvn.jboss.org/repos/jbpm/projects/gwt-console/trunk/plugin-example/src/main/java/org/jboss/bpm/console/client/mapsplugin/"&gt;editor implementation&lt;/a&gt;.&lt;br /&gt;In order to enable this workspace configuration you need to build with "mvn -Pplugin-example" switch.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Discussion&lt;/span&gt;&lt;br /&gt;Please join us in the &lt;a href="http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;p=4203147"&gt;overlord forum&lt;/a&gt; for further discussions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-4870430802690306795?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/4870430802690306795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=4870430802690306795' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/4870430802690306795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/4870430802690306795'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2009/01/developing-bpm-console-plugins.html' title='Developing BPM console plugins'/><author><name>Heiko Braun</name><uri>http://www.blogger.com/profile/17987290811990461031</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-5746840043329402094</id><published>2009-01-13T05:12:00.001-08:00</published><updated>2009-01-13T05:17:04.045-08:00</updated><title type='text'>Typing a BPM system</title><content type='html'>While working on the GWT console I came across two requirements that I couldn’t realize easily within the console: process variables inspection and task management forms. Both solutions should allow modification of data associated with a process through web based forms. &lt;br /&gt;&lt;br /&gt;In order to build such a form and to process the data submitted through it you’d need some kind of data type description associated with the process definition. Even if you don’t intend to build those forms at runtime, but instead chose a design time approach you would still be left with the question of validation. &lt;br /&gt;&lt;br /&gt;But not only that. The tooling that helps you build the task forms at design time would need some data type description as well. How would know what types to chose for UI elements and the keys to access it? &lt;br /&gt;&lt;br /&gt;This leads to an additional requirement: Once you got the data type description and you successfully modeled your form, how do access the data at runtime? Somehow the process data needs to extracted and displayed through the forms.&lt;br /&gt;&lt;br /&gt;One thing you may realize at this point is that a simple example like the task management forms already require type information across BPM components. It start’s with the tooling, is used to extract data at runtime and finally describes how the forms should be rendered.&lt;br /&gt;&lt;br /&gt;One thing that jumps to my mind XML and XSD. Ok, I admit that I have been working on the JBoss web service stack, but other problem domains chose such a solution as well. Just think of heterogenous (i.e. ESB) or event based systems (i.e. CEP). And they do so for good reasons:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;You get a data type model that supports structured and simple types&lt;br /&gt;&lt;li&gt;It can be validated through XSD&lt;br /&gt;&lt;li&gt;Access to the data can either be done programatically or through XPath&lt;br /&gt;&lt;li&gt;Data can be represented in Java or XML&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt; &lt;br /&gt;If you add XForms to the picture we are one step closer to solving my initial task management problem: Describe your data types through XSD, extract it by using XPath and display it through XForms. &lt;br /&gt;&lt;br /&gt;But there’s more to it: Decoupled producer and consumers in SOA, in which BPM plays in important role, would greatly benefit from such a type system as well. Any invocation between a process and a service could then be constrained to the type information at hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-5746840043329402094?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/5746840043329402094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=5746840043329402094' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/5746840043329402094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/5746840043329402094'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2009/01/typing-bpm-system.html' title='Typing a BPM system'/><author><name>Heiko Braun</name><uri>http://www.blogger.com/profile/17987290811990461031</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-9110908087443805678</id><published>2009-01-12T10:01:00.000-08:00</published><updated>2009-01-12T11:08:34.683-08:00</updated><title type='text'>GWT console Beta2</title><content type='html'>Some things changed in Beta2 others did improve and I’d like to give you a quick update on what happened the last two month.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;TokenEditor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Something you may already know from the JSF console and what is commonly used during development is the possibility to signal tokens directly from the console. We’ve added that feature to the GWT console under the section “Development tools”. You’ll notice those by the little wrench icon in the upper corner. These tools will be available to a particular role only, once we add authorization to the editors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QxIFVLQdHS0/SWuFytbBE2I/AAAAAAAAAA8/ZM0uy9TV_fY/s1600-h/Picture+2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_QxIFVLQdHS0/SWuFytbBE2I/AAAAAAAAAA8/ZM0uy9TV_fY/s320/Picture+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290469293509645154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Report server integration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Beta2 drops the gchart, the client side Javascript charting library and instead switched to &lt;a href="http://www.eclipse.org/birt/phoenix/"&gt;BIRT&lt;/a&gt;. There have been several reasons leading to this decision.&lt;br /&gt;On the one hand we’ve realized that biggest challenge with reporting is not rendering itself (which gchart could have provided) but &lt;a href="http://download.eclipse.org/birt/downloads/examples/reports/2.1/tutorial/tutorial.html"&gt;the tooling&lt;/a&gt; that needs to go along with it. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QxIFVLQdHS0/SWuGK4UkqPI/AAAAAAAAABE/LmWJ8YwHQEk/s1600-h/Picture+3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 220px;" src="http://1.bp.blogspot.com/_QxIFVLQdHS0/SWuGK4UkqPI/AAAAAAAAABE/LmWJ8YwHQEk/s320/Picture+3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290469708752267506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We’ve realized that it’s close to impossible to come up with the one and only BPM report that pleases everyone. Most reporting and dashboard applications are actually quiet the opposite: Highly customized towards particular users and their problem domain.  This is the approach we are taking with BIRT as well. The jBPM console ships with &lt;a href="http://anonsvn.jboss.org/repos/jbpm/projects/gwt-console/trunk/server/src/main/resources/"&gt;stock reports&lt;/a&gt;, that can be extended or even be replaced. &lt;br /&gt;&lt;br /&gt;If you are interested in jBPM reporting a good starting point would be the &lt;a href="http://www.jboss.org/community/docs/DOC-13191"&gt;report server project introduction&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QxIFVLQdHS0/SWuGoMJecrI/AAAAAAAAABM/ux_BiYYRNCA/s1600-h/Picture+6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 132px;" src="http://4.bp.blogspot.com/_QxIFVLQdHS0/SWuGoMJecrI/AAAAAAAAABM/ux_BiYYRNCA/s320/Picture+6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290470212290638514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Task management&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We’ve also added the first &lt;a href="http://docs.jboss.com/jbpm/v3.2/userguide/html_single/#taskmanagement"&gt;task management&lt;/a&gt; functionality which currently does focus on &lt;a href="http://docs.jboss.com/jbpm/v3.2/userguide/html_single/#assignment"&gt;task assignments&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QxIFVLQdHS0/SWuG3qACZUI/AAAAAAAAABU/6mXOkod31R0/s1600-h/Picture+4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 308px; height: 320px;" src="http://2.bp.blogspot.com/_QxIFVLQdHS0/SWuG3qACZUI/AAAAAAAAABU/6mXOkod31R0/s320/Picture+4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290470478002152770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The current release allows you to claim tasks, complete them by signaling or reassign tasks to a particular user or group. Future console version will embed task forms for human interaction, but this area in particular requires &lt;a href="http://www.jboss.com/index.html?module=bb&amp;op=viewforum&amp;f=219"&gt;further discussion&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Stay tuned...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-9110908087443805678?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/9110908087443805678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=9110908087443805678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/9110908087443805678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/9110908087443805678'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2009/01/gwt-console-beta2.html' title='GWT console Beta2'/><author><name>Heiko Braun</name><uri>http://www.blogger.com/profile/17987290811990461031</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QxIFVLQdHS0/SWuFytbBE2I/AAAAAAAAAA8/ZM0uy9TV_fY/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-8686654439214885340</id><published>2008-11-28T07:18:00.000-08:00</published><updated>2008-11-28T07:50:19.513-08:00</updated><title type='text'>Guerilla Governance?</title><content type='html'>An &lt;a href="http://www.infoq.com/interviews/jim-webber-qcon-london"&gt;old friend of mine started talking about Guerilla SOA a few years back&lt;/a&gt; and got into some &lt;a href="http://adtmag.com/article.aspx?id=21622"&gt;interesting debates around it&lt;/a&gt;. Ignoring the fact that some of G-SOA is flack about the need (or not) for vendor specific SOIs (always a good thing to push &lt;a href="http://www.thoughtworks.com/"&gt;if you're working for a consultancy firm&lt;/a&gt;), one of the important aspects that I take from this is the incremental approach to SOA. Whatever you call it, the concept of taking things one step at a time when you approach SOA rather than trying to do a big bang approach is fairly obvious and intuitive. We're used to working in that way for many different things: you don't have to know all of Java in order to write HelloWorld; you don't have to understand how your car engine works in order to drive it etc. etc.&lt;br /&gt;&lt;br /&gt;This incremental approach to SOA is something we've been pushing since the &lt;a href="labs.jboss.org/jbossesb"&gt;very early days of JBossESB&lt;/a&gt; and it's embodied in the &lt;a href="http://www.jboss.com/pdf/JESP43WhatsNew.pdf"&gt;latest release of our SOA Platform&lt;/a&gt;. The feedback we've been getting is overwhelmingly positive, so we've also been doing this within Overlord. I'm not sure if we'll call this Guerilla Governance (G-Governance?) but the principles are the same: start small and build up as you gain experience and as your needs evolve. A flexible SOA Governance infrastructure should adapt to you while at the same time encouraging good governance practices so that you can adapt to it. This is why we've started with things like &lt;a href="http://www.jboss.org/dna/"&gt;DNA&lt;/a&gt;/&lt;a href="http://www.jboss.org/community/docs/DOC-9834"&gt;Guvnor&lt;/a&gt; and &lt;a href="http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;t=146260"&gt;Process Governance&lt;/a&gt;, as they satisfy well defined needs on an independent basis but also within the whole Overlord infrastructure as and when we get there. SAMM is a little more invasive as far as governance is concerned, as is the forthcoming work on Policy Enforcement Points and SLAs. But more on them in the future.&lt;br /&gt;&lt;br /&gt;So if you're looking to deploy your favourite SOI and are concerned about governance, don't think you necessarily have to buy in a complete solution immediately. (I'm not even sure there is such a thing as a complete solution!) Look for something that can grow with you and even better, something that you can influence with your own policies and approaches to governance.&lt;br /&gt;&lt;br /&gt;And if you're using &lt;a href="http://labs.jboss.org/jbossesb"&gt;JBossESB&lt;/a&gt; or our &lt;a href="http://www.jboss.com/products/platforms/soa"&gt;SOA Platform&lt;/a&gt;, take a look at the &lt;a href="http://www.jboss.org/feeds/post/process_governance_1_0mr1_released"&gt;Process Governance work&lt;/a&gt;. As soon as you start to tie together more than a couple of services, something like this (&lt;a href="http://jbossesb.blogspot.com/2008/01/making-soa-science-and-not-art.html"&gt;helping you to write and enforce provable correct choreographies between arbitrary services and across arbitrary complexities&lt;/a&gt;) is essential.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-8686654439214885340?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/8686654439214885340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=8686654439214885340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/8686654439214885340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/8686654439214885340'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/11/guerilla-governance.html' title='Guerilla Governance?'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-729463909612388840</id><published>2008-11-25T04:47:00.000-08:00</published><updated>2008-11-25T04:50:00.501-08:00</updated><title type='text'>Process Governance 1.0MR1 released</title><content type='html'>The &lt;a href="http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;p=4192082#4192082"&gt;first milestone release of our Process Governance work has just been released&lt;/a&gt;. Please take the time to download it and try it out. This is a major contribution to the whole governance area and we hope to get your feedback. Congratulations to everyone involved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-729463909612388840?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/729463909612388840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=729463909612388840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/729463909612388840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/729463909612388840'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/11/process-governance-10mr1-released.html' title='Process Governance 1.0MR1 released'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-7317259828257768738</id><published>2008-11-09T14:36:00.000-08:00</published><updated>2008-11-09T14:43:58.524-08:00</updated><title type='text'>Process Governance</title><content type='html'>I've &lt;a href="http://jbossesb.blogspot.com/2008/01/making-soa-science-and-not-art.html"&gt;mentioned a few times before how important I think the WS-CDL effort has been&lt;/a&gt; and how overlooked it's been. But we started to &lt;a href="http://jbossesb.blogspot.com/2008/05/more-cdl-work.html"&gt;put that right&lt;/a&gt; about a year ago when we looked to integrate the great tooling that the &lt;a href="http://www.hattricksoftware.com/cto.html"&gt;Hattrick guys&lt;/a&gt; have been working on with &lt;a href="http://labs.jboss.org/jbossesb"&gt;JBossESB&lt;/a&gt;. Well we're almost ready for the first milestone release and I've been going through what the team have been working on. It's very cool and I'm impressed. We'll be making an announcement soon, but this will really add an important differentiator to &lt;a href="http://www.jboss.org/overlord/"&gt;Overlord&lt;/a&gt; that we're calling &lt;a href="http://www.jboss.org/overlord/cdl/index.html"&gt;Process Governance&lt;/a&gt;. I'll blog more on that later, but watch this space!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-7317259828257768738?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/7317259828257768738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=7317259828257768738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/7317259828257768738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/7317259828257768738'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/11/process-governance.html' title='Process Governance'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-8352796068585868892</id><published>2008-09-01T01:44:00.000-07:00</published><updated>2008-09-01T06:33:34.915-07:00</updated><title type='text'>How does SAM relate to the world?</title><content type='html'>We've discussed briefly &lt;a href="http://jboss-overlord.blogspot.com/2008/08/we-know-answer-but-what-was-question.html"&gt;what we're doing with SAM&lt;/a&gt; and &lt;a href="http://jboss-overlord.blogspot.com/2008/06/goodbye-bambi-hello-samsi.html"&gt;it's relationship to BAM/BI&lt;/a&gt;, but it's worth going over some of this in a bit more detail.&lt;br /&gt;&lt;br /&gt;For instance, how does SAM related to &lt;a href="http://www.forrester.com/Research/Document/Excerpt/0,7211,38931,00.html"&gt;Business Service Management (BSM)&lt;/a&gt;? Well &lt;a href="http://www.networkworld.com/buzz/2004/092704bsm.html"&gt;according to the common definitions of BSM&lt;/a&gt;, it is aimed at helping users (e.g., administrators, project managers) inform their management software which services, tasks etc. are the most important for the business. BSM then enables them to correlate the performance and availability of those systems with their business goals, identifying when an application, service etc. is not behaving as expected. Through some magic, the BSM identifies the cause(s) of the breach in contract and how to fix it (them).&lt;br /&gt;&lt;br /&gt;So is SAM a solution to BSM? Not quite. But it should be easy to see how SAM can be a critical component in the development of BSM.&lt;br /&gt;&lt;br /&gt;What about &lt;a href="http://www.informationweek.com/news/management/showArticle.jhtml?articleID=164904050"&gt;infrastructure monitoring&lt;/a&gt;? Well we did cover this in &lt;a href="http://jboss-overlord.blogspot.com/2008/06/goodbye-bambi-hello-samsi.html"&gt;the very first posting about SAM&lt;/a&gt;. In essence the answer is the same as for BSM: SAM should be at the core of all infrastructure monitoring, receiving and collating information (data streams) from components, routers, processors, etc. Are these data streams real-time? Well let's ignore the fundamental problems &lt;a href="http://en.wikipedia.org/wiki/Speed_of_light"&gt;with the limitation of the speed of light&lt;/a&gt; and &lt;a href-="http://en.wikipedia.org/wiki/Relativity_of_simultaneity"&gt;simultanaeity&lt;/a&gt;. (Everyone should be made to read &lt;a href="http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf"&gt;Lamport's classic paper on the subject&lt;/a&gt; as it relates to computing.) Let's also ignore the differences between &lt;a href="http://en.wikipedia.org/wiki/Real-time"&gt;hard real-time and soft real-time&lt;/a&gt;. The answer is yes AND no: of course most of the information streaming in to the SAM implementation will be coming "as it happens", but we're allowed to provide archival data that may have been taken hours, days or weeks previously. In fact, in order to support the right kind of correlation, archival data, whether provided by the SAM user or taken by SAM itself (since it is based on CEP principles), is critically important. This is also where the &lt;a href="http://en.wikipedia.org/wiki/Bayesian_network"&gt;Bayesian Inference Network aspect to SAM&lt;/a&gt; comes in too. No longer will strict binary triggers be sufficient for the kinds of networks we see today and in the future.&lt;br /&gt;&lt;br /&gt;So what constitutes the data of an event? In fact an event message contains multi-dimensional data that we need in order to correlate and visualize it. Of course there has to be a way of distinguishing "when" something (event) happened. That could be explicitly mentioned in the data stream or implied by the local time at which the message is received. Then we need to figure out "what" is being mentioned, i.e., what data is being analyzed. Which brings us to the actual data. Of course one message may contain multiple readings, e.g., the temperature at a sensor as recorded over 5 different intervals. Given all of this information (which is common to most other monitoring techniques), we can start to build up a map of what is going on in the system and trigger on any desired event, even if triggering requires correlating across a multitude of input streams. (In order to make the architecture symmetrical, we'll actually consider time as an input stream to SAM as well.)&lt;br /&gt;&lt;br /&gt;But what about visualization? Well we've already seen &lt;a href="http://jboss-overlord.blogspot.com/2008/08/first-glimpse-at-new-bpm-console.html"&gt;the start of what we want to do with SAM&lt;/a&gt;. The BPM console is just one graphical view on to the data that we are accumulating and correlating. But there will be the equivalent of a BAM console: the SAM console. How you would view this information to obtain the best and most intuitive representation is an ongoing effort in its own right. For example, customizable home pages, displaying the most important graphs, data etc. per user. The notion of &lt;a href="http://www.op.dlr.de/SpaceOps/spops96/miscmpp/mm-4-21/4_21.pdf"&gt;mimic diagrams&lt;/a&gt; will also be interesting to explore. In all likelihood, because of the inherent flexibility of the SAM infrastructure it'll be impossible to cater for all of the different ways in which the information may be displayed, so there'll need to be a combination of common out-of-the-box views as well as a toolkit of components that allow for the easy construction of other views.&lt;br /&gt;&lt;br /&gt;In a later blog posting we'll look at how SAM can be important in the support of cloud computing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-8352796068585868892?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/8352796068585868892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=8352796068585868892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/8352796068585868892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/8352796068585868892'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/09/how-does-sam-relate-to-world.html' title='How does SAM relate to the world?'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-3169996278436124126</id><published>2008-08-21T03:11:00.000-07:00</published><updated>2008-08-21T11:23:25.402-07:00</updated><title type='text'>First glimpse at the new BPM console</title><content type='html'>The new BPM console approaches it's first milestone and I'd like to use that opportunity to introduce you to the most important changes and new features.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QxIFVLQdHS0/SK1S581Nz0I/AAAAAAAAAAM/Nyg8qRRe5n0/s1600-h/1-definition-list.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_QxIFVLQdHS0/SK1S581Nz0I/AAAAAAAAAAM/Nyg8qRRe5n0/s320/1-definition-list.png" alt="" id="BLOGGER_PHOTO_ID_5236933097237106498" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;Managing Process Definitions&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Moving to GWT&lt;/span&gt;&lt;br /&gt;More and more JBoss projects are moving to &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT&lt;/a&gt;. And they do it for a good reason:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you are familiar with Java development and don't want to become the next web developer expert, then GWT is a good choice. With GWT you can stick to eclipse, fire up a debugger and write unit tests. &lt;/li&gt;&lt;li&gt;It has a rich set of UI widgets that you can use out of the box. The widgets also force a common look and feel across implementations. &lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;Another good example of a successful GWT implementation is &lt;a href="http://blog.athico.com/2008/07/drools-50-m1-new-and-noteworthy.html"&gt;the Drools console&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QxIFVLQdHS0/SK1S6PH67oI/AAAAAAAAAAU/SlZMHIqAQeM/s1600-h/2-instance-list.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_QxIFVLQdHS0/SK1S6PH67oI/AAAAAAAAAAU/SlZMHIqAQeM/s320/2-instance-list.png" alt="" id="BLOGGER_PHOTO_ID_5236933102147399298" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;Managing process instances&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;GWT is already quiet modular and it will allow for integration of consoles across projects. Another side effect is, that you can easily take a GWT application, or pieces of it, and hook it up with existing web applications. For instance this would allow users to embed the task management functionality of the BPM console with their own intranet.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QxIFVLQdHS0/SK1S6p7NmAI/AAAAAAAAAAc/wyvZyDMJ21s/s1600-h/3-instance-detail.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_QxIFVLQdHS0/SK1S6p7NmAI/AAAAAAAAAAc/wyvZyDMJ21s/s320/3-instance-detail.png" alt="" id="BLOGGER_PHOTO_ID_5236933109341853698" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;Process instance details&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Improve on BAM and BI functionality&lt;/span&gt;&lt;br /&gt;Probably the biggest drawback of the current console is lack of &lt;a href="http://en.wikipedia.org/wiki/Business_activity_monitoring"&gt;BAM&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Business_Intelligence"&gt;BI&lt;/a&gt; features.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QxIFVLQdHS0/SK1S7LObqjI/AAAAAAAAAAs/Zoi0WGRXZBw/s1600-h/5-metric-overview.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_QxIFVLQdHS0/SK1S7LObqjI/AAAAAAAAAAs/Zoi0WGRXZBw/s320/5-metric-overview.png" alt="" id="BLOGGER_PHOTO_ID_5236933118280837682" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;Workload overview&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Improving on BAM and BI is not going to happen within a day, but you could expect to see the first metrics and stats in early releases and we try to add more bits and pieces while we move towards a full fledged BAM console. Because this going to overlap in both functionality and technology with the Service Activity Monitoring project, interested readers should have an eye on &lt;a href="http://jboss-overlord.blogspot.com/2008/08/we-know-answer-but-what-was-question.html"&gt;SAM&lt;/a&gt; as well.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QxIFVLQdHS0/SK1VoMfNdjI/AAAAAAAAAA0/P-v17WLmCf8/s1600-h/6-metric-detail.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_QxIFVLQdHS0/SK1VoMfNdjI/AAAAAAAAAA0/P-v17WLmCf8/s320/6-metric-detail.png" alt="" id="BLOGGER_PHOTO_ID_5236936090737014322" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;Performance metrics&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to move forward&lt;/span&gt;&lt;br /&gt;To begin with, we are going to provide a replacement for the existing jBPM console based on GWT. It will retain the current features and provide additional BI functionality. Initially we are going to leverage the existing jBPM3 backend and then gradually enrich it with SAM components or even replace it at all.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QxIFVLQdHS0/SK1S6jBjtBI/AAAAAAAAAAk/jco7OM0_ACk/s1600-h/4-Enlarge-process.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_QxIFVLQdHS0/SK1S6jBjtBI/AAAAAAAAAAk/jco7OM0_ACk/s320/4-Enlarge-process.png" alt="" id="BLOGGER_PHOTO_ID_5236933107489420306" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;Process Graph View&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;Stay tuned. Next time we dive into implementation details: &lt;a href="http://code.google.com/p/gchart/"&gt;gchart&lt;/a&gt;, &lt;a href="http://code.google.com/webtoolkit/"&gt;gwt&lt;/a&gt; and &lt;a href="http://code.google.com/p/gwt-ext/"&gt;gwt-ext&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-3169996278436124126?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/3169996278436124126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=3169996278436124126' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/3169996278436124126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/3169996278436124126'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/08/first-glimpse-at-new-bpm-console.html' title='First glimpse at the new BPM console'/><author><name>Heiko Braun</name><uri>http://www.blogger.com/profile/17987290811990461031</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_QxIFVLQdHS0/SK1S581Nz0I/AAAAAAAAAAM/Nyg8qRRe5n0/s72-c/1-definition-list.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-2255960758058733292</id><published>2008-08-08T12:28:00.000-07:00</published><updated>2008-08-09T05:10:40.780-07:00</updated><title type='text'>We know the answer, but what was the question?</title><content type='html'>&lt;blockquote&gt;Peter: "&lt;a href="http://jboss-overlord.blogspot.com/2008/06/goodbye-bambi-hello-samsi.html"&gt;SAM&lt;/a&gt; means service activity monitoring". &lt;br /&gt;Paul: "So, you are going to monitor service activities"&lt;br /&gt;Peter: "Right. That's what I said."&lt;br /&gt;Paul: "But it's two different things, isn't it?"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;A typical &lt;a href="http://www.amazon.com/gp/product/0131467409/"&gt;hallway chatter&lt;/a&gt;. You just want to grab some coffee and then you bump into somebody, who completely turns your world upside down. It's a small question, but in this case an important one. &lt;br /&gt;&lt;br /&gt;The last week I spend thinking about SAM infrastructure, basically getting an idea on how SAM might fit into different application/service landscapes. So you have SAM "monitoring" what your services do, and you put instrumentation code pushing "events" to SAM. Anything that might potentially be interesting to SAM, but it should figure our itself what's considered relevant. Hence &lt;a href="http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;t=138317"&gt;the CEP backup&lt;/a&gt; behind it, right? &lt;br /&gt;&lt;br /&gt;Fortunately I got distracted by some console work (moving the &lt;a href="http://jbpm.org"&gt;jBPM&lt;/a&gt; console to &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT&lt;/a&gt;), which made me think more thoroughly about what information will be relevant to people using the BPM console. There is process definitions, from which you create process instances, which again consists of work items (aka nodes). You can't tell upfront what path of execution will taken, neither you know what particular node types do. &lt;br /&gt;At least from a monitoring perspective, you are forced to keep a more general look onto things. Coming from the technical side, this quiet naturally leads to a static view onto things: Process start and end dates, overall number of executions, average execution time. These sort of things. &lt;br /&gt;&lt;br /&gt;But is it really what console users are interested in? &lt;br /&gt;If I put on my "chief of sales operations EMEA" hat, I would probably like to see key performance factors relevant to my business. This might be anything from missed opportunities to SLA breaks of certain partners. But what are key performance factors?&lt;br /&gt;Especially without knowing the business domain beforehand, how should I (the console developer) enable "chief of sales" to get the information relevant to him?&lt;br /&gt;&lt;br /&gt;Let's look at the catchy title again: If I would have known upfront what you are going to ask me, I could have prepared myself. But I don't, and I never will.&lt;br /&gt;I am just "Service Activity Monitoring" and you are monitoring service activities.&lt;br /&gt;&lt;br /&gt;Now that we know "chief of sales" actually exists, we can start wondering about what actually enables him (or her) to do a successful job. IT is just the tool set here. If we do that, we will probably see that any business is &lt;span style="font-style:italic;"&gt;goal&lt;/span&gt; driven (did we achieve it or not?), it has a number of &lt;span style="font-style:italic;"&gt;participants&lt;/span&gt; (partners, systems, colleagues) &lt;br /&gt;and suffers from &lt;span style="font-style:italic;"&gt;derivations&lt;/span&gt; (exceptions, compensation). To "chief of sales" the underlying IT infrastructure is irrelevant. It exists and enables business, that's it. &lt;br /&gt;&lt;br /&gt;Back to &lt;a href="http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;t=138317"&gt;SAM&lt;/a&gt;. &lt;br /&gt;To SAM the infrastructure exists but is irrelevant, too. Things that happen inside or outside your company can be relevant to the business. SAM just makes it visible to you and raises your attention. &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Paul: "Great, sounds like a match."&lt;br /&gt;Peter: "Yes, it is"&lt;br /&gt;Paul: "But what's with the BPM console then?"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Well, the work on the BPM console made me realize that "chief of sales" questions are not restricted to BPM. It covers anything that enables particular business aspects. IT is just an implementation detail here. And so is BPM. Or ESB, or web services. But still all of these SOA components will provide information relevant to the business. And so does the BPM engine. &lt;br /&gt;&lt;br /&gt;For the BPM console it means, that it doesn't need to be tight to the BPM domain. I believe that to a large degree general service information (goals, participants,derivations) which SAM can deliver would be sufficient. However, we may still add pluggable console components that are specific to BPM or even proprietary to jBPM. But to begin with, we should focus on a general monitoring concept.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Paul: "OK, back to work."&lt;br /&gt;Peter: "Yep, talk to you later."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-2255960758058733292?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/2255960758058733292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=2255960758058733292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/2255960758058733292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/2255960758058733292'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/08/we-know-answer-but-what-was-question.html' title='We know the answer, but what was the question?'/><author><name>Heiko Braun</name><uri>http://www.blogger.com/profile/17987290811990461031</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-8911924013014933429</id><published>2008-07-18T04:56:00.001-07:00</published><updated>2008-07-18T04:57:41.941-07:00</updated><title type='text'>CDL and precision</title><content type='html'>There's an interesting discussion &lt;a href="http://www.infoq.com/news/2008/07/it-cdl"&gt;on InfoQ related to WS-CDL&lt;/a&gt; and it obviously has direct relevance to the &lt;a href="http://jboss-overlord.blogspot.com/2008/06/design-for-correctness.html"&gt;work we've been doing in the community for over a year now&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-8911924013014933429?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/8911924013014933429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=8911924013014933429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/8911924013014933429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/8911924013014933429'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/07/cdl-and-precision.html' title='CDL and precision'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-7677515008674010594</id><published>2008-06-26T07:37:00.000-07:00</published><updated>2008-06-26T07:47:38.642-07:00</updated><title type='text'>Design for correctness</title><content type='html'>&lt;a href="http://labs.jboss.com/jbossesb"&gt;We&lt;/a&gt; started &lt;a href="http://jbossesb.blogspot.com/2008/01/making-soa-science-and-not-art.html"&gt;integrating WS-CDL into our design and runtime processes a while back&lt;/a&gt;. This work became one of the defining (and differentiating) factors behind our governance efforts (and therefore Overlord). &lt;a href="http://www.stucharlton.com/blog/archives/000179.html"&gt;Some people&lt;/a&gt; (&lt;a href="http://wi.wu-wien.ac.at/home/mendling/publications/TR05-WSCDL.pdf"&gt;users and analysts&lt;/a&gt;) just "get it" and understand the need behind CDL (let's drop the WS component to the name, because CDL is not limited to SOAP/HTTP by any means). However, others don't and still others ignore it entirely. Best case, this is a shame. Worst case, this is compromising integrity of the systems they develop.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=370"&gt;Steve Ross-Talbot&lt;/a&gt; recently gave a presentation on CDL recently at the &lt;a href="http://www.cognizant-events.co.uk/community/"&gt;Cognizant Community Europe workshop&lt;/a&gt;, and used the analogy of a house architect to explain where CDL fits in. This is a good analogy, because CDL should be in any good &lt;a href="http://markclittle.blogspot.com/2008/06/whats-it-mean-to-be-architect.html"&gt;Enterprise Architect's repertoire&lt;/a&gt;. Just as you don't throw together a straw-built house from a pencil drawing on the back of a napkin and expect it to withstand a hurricane, neither should you just cobble together components or services into a distributed system (irrespective of the scale) and expect it to be correct (and provably correct at that). In the housing example you would pull an architect into the solution and that architect would use best practices that have been developed over centuries of collective experience, to design a building that can withstand 100 mph winds. Software engineering should be no different. Some sectors of our industry have been able to get by with computing as an art rather than a science, and house designers did pretty much the same thing thousands of years ago. But we don't live in caves any more for good reasons (although there's still something to be said for using caves in a hurricane!)&lt;br /&gt;&lt;br /&gt;Of course it means that there are more layers in between the act of deciding what needs to be done and actually realising that in an implementation, but those layers are pretty important. The days of just throwing something together and assuming it'll work as planned are well and truly over. Asynchronous systems, &lt;a href="http://groups.csail.mit.edu/tds/papers/Lynch/jacm83.pdf"&gt;which really began life several decades ago&lt;/a&gt; but were muzzled by layers of &lt;a href="http://en.wikipedia.org/wiki/Remote_procedure_call"&gt;synchronous abstractions&lt;/a&gt;, are back to stay. Yes, synchronous is easier to understand and reason about, but it's an unfortunate reality that if you want scale, real-time, loose coupling etc. we have to break through the synchronous barrier. That has a knock-on effect on how you design your systems and individual components (services) and ultimately how they are managed (by a person or by some autonomic mechanism). &lt;a href="http://en.wikipedia.org/wiki/Design_For_Test"&gt;"Design for testability"&lt;/a&gt; was a buzz-phrase from many years ago. What we need now (and what CDL integration gives us) is "design for correctness".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-7677515008674010594?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/7677515008674010594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=7677515008674010594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/7677515008674010594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/7677515008674010594'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/06/design-for-correctness.html' title='Design for correctness'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-623934030276955703</id><published>2008-06-23T04:13:00.000-07:00</published><updated>2008-06-23T05:49:40.064-07:00</updated><title type='text'>Goodbye BAM/BI, hello SAM/SI</title><content type='html'>OK, not quite, but it's a nice title ;-)&lt;br /&gt;&lt;br /&gt;The term &lt;a href="http://msdn.microsoft.com/en-us/library/aa972199.aspx"&gt;Business Activity Monitoring (BAM)&lt;/a&gt; is used to describe the real-time access to critical business performance metrics in order to improve the efficiency and effectiveness of business processes. &lt;a href="http://www.cs.cornell.edu/home/sam/FDpapers.html"&gt;Real-time process/service monitoring&lt;/a&gt; is a common capability supported in many distributed infrastructures. However, BAM differs in that it draws information from multiple sources to enable a broader and richer view of business activities. BAM also encompasses &lt;a href="http://www.gartner.com/it/products/research/asset_129487_2395.jsp"&gt;Business Intelligence (BI)&lt;/a&gt; as well as network and systems management. Plus BAM is often weighted toward the business side of the enterprise.&lt;br /&gt;&lt;br /&gt;Although BAM was popularized by &lt;a href="http://www.jboss.org/feeds/view/jbossjbpm"&gt;BPM&lt;/a&gt;, the &lt;a href="http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/&amp;toc=comp/proceedings/sdne/1996/7499/00/7499toc.xml&amp;DOI=10.1109/SDNE.1996.502442"&gt;fundamental basis&lt;/a&gt; &lt;a href="citeseer.ist.psu.edu/25451.html"&gt;behind it&lt;/a&gt; (&lt;a href="http://www.ibm.com/developerworks/webservices/library/wa-monresp/"&gt;monitoring the activities in an environment&lt;/a&gt; and &lt;a href="http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/&amp;toc=comp/proceedings/icse/2004/2163/00/2163toc.xml&amp;DOI=10.1109/ICSE.2004.1317464"&gt;informing interested parties when certain events are triggered&lt;/a&gt;) &lt;a href="http://www.cs.cornell.edu/ken/Astrolabe.pdf"&gt;has been around&lt;/a&gt; &lt;a href="http://portal.acm.org/citation.cfm?doid=382244.382832"&gt;since the early days&lt;/a&gt; of (&lt;a href="http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/trans/ts/&amp;toc=comp/trans/ts/1988/01/e1toc.xml&amp;DOI=10.1109/32.4620"&gt;distributed&lt;/a&gt;) &lt;a href="http://citeseer.ist.psu.edu/little94replica.html"&gt;system management and monitoring&lt;/a&gt;. BAM specializes this general notion and targets the business analyst. Using BAM within an autonomic infrastructure is often difficult if not impossible (depending upon the implementation in question).&lt;br /&gt;&lt;br /&gt;Within a distributed environment (and many local environments) services are monitored by the infrastructure for a number of reasons, &lt;a href="http://ieeexplore.ieee.org/iel2/944/7202/00289936.pdf?tp=&amp;isnumber=&amp;arnumber=289936"&gt;including performance and fault tolerance, e.g., detecting when services fail so that new instances can be automatically started elsewhere&lt;/a&gt;. Over the years distributed system implementations have typically provided different solutions to specific monitoring requirements, e.g., failure detection (or suspicion) would be implemented differently from that used to detect performance bottlenecks. For some types of event monitoring this leads to overlap and possible inefficiencies. For instance, some approaches to detecting (or suspecting) failures may also be used to detect services that are simply slow, indicating problems with the network or overloaded machine on which the service resides. But where these ad hoc approaches have differed from BAM/BI is in their intended target audience: other software components (e.g., a load balancer) rather than humans.&lt;br /&gt;&lt;br /&gt;This separation of audience is useful from a high-level perspective: business analysts shouldn't have to be concerned about low-level infrastructural details. But in many cases this ad hoc (bolt-on) approach to BAM and BI can lead to less information being delivered to the entities that need it at the time they need it. Therefore, within the Overlord project we are working on Service Activity Monitoring (SAM) and associated Service Intelligence (SI), which will provide an architecture (and corresponding infrastructure) that brings together many different approaches to entity monitoring within distributed systems (where an entity could be a service, a machine, a network link or something else entirely) and particularly SOIs. The emergence of event processing has also seen an impact on this general entity monitoring, where some implementations treat failure, slowness to respond etc. as particular events. This uniform monitoring includes the following:&lt;br /&gt;&lt;br /&gt;• Message throughput (the number of messages a service can process within a unit of time). This might also include the time taken to process specific types of messages (e.g., how long to do transformations).&lt;br /&gt;• Service availability (whether or not the service is active).&lt;br /&gt;• Service Mean Time To Failure (MTTF) and Mean Time To Recovery (MTTR).&lt;br /&gt;• Information about where messages are sent.&lt;br /&gt;&lt;br /&gt;The information is made available to the infrastructure so that it may be able to take advantage of it for improved QoS, fault tolerance etc. The streams may be pulled from existing infrastructure, such as availability probing messages that are typically used to detect machine or service failures, or may be created specifically for the SAM environment. Furthermore, streams may be dynamically generated in real-time (and perhaps persisted over time) or static, pre-defined information, where the SAM can be used to mine the data over time and based on explicit queries.&lt;br /&gt;&lt;br /&gt;With the advent of SAM we will see BAM implementations that are built on it, narrowing the types of events of interest for the business analyst. The SAM approach offers more flexibility and power to monitoring and management over the traditional BAM approaches. As &lt;a href="http://jbossesb.blogspot.com/2008/01/soa-bpm-killer-combination.html"&gt;BPM and SOA move steadily towards each other&lt;/a&gt;, this kind of infrastructure will become more important to maintaining agility and flexibility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-623934030276955703?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/623934030276955703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=623934030276955703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/623934030276955703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/623934030276955703'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/06/goodbye-bambi-hello-samsi.html' title='Goodbye BAM/BI, hello SAM/SI'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4685881957311672629.post-663849052402311199</id><published>2008-05-14T08:09:00.000-07:00</published><updated>2008-05-14T08:19:40.341-07:00</updated><title type='text'>WS-CDL and ESB integration</title><content type='html'>At the start of the year we &lt;a href="http://jbossesb.blogspot.com/2008/01/making-soa-science-and-not-art.html"&gt;described some work around CDL&lt;/a&gt;. Well &lt;a href="http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;p=4150721#4150721"&gt;we've made a lot of progress&lt;/a&gt;. Check it out and provide feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4685881957311672629-663849052402311199?l=jboss-overlord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jboss-overlord.blogspot.com/feeds/663849052402311199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4685881957311672629&amp;postID=663849052402311199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/663849052402311199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4685881957311672629/posts/default/663849052402311199'/><link rel='alternate' type='text/html' href='http://jboss-overlord.blogspot.com/2008/05/ws-cdl-and-esb-integration.html' title='WS-CDL and ESB integration'/><author><name>Mark Little</name><uri>http://www.blogger.com/profile/15072917010265365428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
