<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">

<channel>
	<title>ProcessWorks Consulting</title>
	
	<link>http://bpmtalk.wordpress.com</link>
	<description>http://www.yourprocessworks.co.uk</description>
	<lastBuildDate>Sun, 22 Apr 2012 14:02:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain="bpmtalk.wordpress.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://0.gravatar.com/blavatar/2db9287554ddf577b9af98dfc55499f6?s=96&amp;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>ProcessWorks Consulting</title>
		<link>http://bpmtalk.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://bpmtalk.wordpress.com/osd.xml" title="ProcessWorks Consulting" />
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/bpmtalk" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="bpmtalk" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://bpmtalk.wordpress.com/?pushpress=hub" /><item>
		<title>Good Design Documentation</title>
		<link>http://bpmtalk.wordpress.com/2012/04/14/design-documentation/</link>
		<comments>http://bpmtalk.wordpress.com/2012/04/14/design-documentation/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 12:50:47 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=1040</guid>
		<description><![CDATA[Ok, that&#8217;s a relatively general title. What I mean specifically and what I want to talk about here is the importance of a good enough technical design specification and how the quality of said document really does impact the resulting solution. I want to share some recent experiences where documentation really did let the side [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=1040&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://bpmtalk.files.wordpress.com/2012/04/u1.jpg"><img class="aligncenter size-full wp-image-1061" title="u" src="http://bpmtalk.files.wordpress.com/2012/04/u1.jpg?w=627" alt=""   /></a></p>
<p>Ok, that&#8217;s a relatively general title. What I mean specifically and what I want to talk about here is the importance of a good enough technical design specification and how the quality of said document really does impact the resulting solution. I want to share some recent experiences where documentation really did let the side down.</p>
<p>I&#8217;ve not long finished a 6 month placement at a company working on Cordys C3 based bug fixes and change requests. It was challenging in 3 respects.</p>
<p>Firstly, the work was specific to Business Processes and XForms based user interfaces and both of which where not exactly organized within Cordys in a very intuitive and structured manner that provided any contextual reference to how the business solutions worked together.  Second, the new change requests being received really required a good knowledge of the existing 300+ processes and forms that made up the applications that ran on Cordys.  This was because design documentation was less than adequate and in six months, you really can&#8217;t get a detailed enough grasp of such a large number of processes, especially non-standard business processes in the world of media management and digital content distribution.  Finally, the loaded web service interfaces (and so the services themselves) included operation parameters such as arg0, arg1 and arg2, which as you&#8217;ll have no doubt evaluated, is unbelievably unhelpful in determining what the service operation actually does and what data should be provided in the messages.</p>
<p>OK, these issues aside for a moment, the real issue I want to discuss was how the design documentation should go some way in explaining which components, services and forms should be used or designed for the given solution, what dependencies are outstanding at the time of writing and what risks may be involved.  I worked on a couple of CR&#8217;s and the documentation was poor.  This was through no fault of the architect however, who knew the systems inside out and was stretched so thinly, that their desk was only visited once every 2 days when meetings were cancelled. Poor and constantly changing requirements where no help either.</p>
<p>In order for developers to attach time estimates to tasks detailed in a design specification document, there must be enough detail so that the estimate confidence level of such tasks can be as high as possible and thus the business is kept more realistically informed of how long the solution might take.  The problems I found with the documentation in this instance where as follows:</p>
<p>- Very brief document objective<br />
- Zero mention of any outstanding dependencies at the time of writing (i.e. are services required by this functionality written yet? Some where not)<br />
- &#8216;To Be&#8217; process illustrations made up the bulk of the document, with very little supporting written description.<br />
- Message interface definitions where non-existent<br />
- Not all of the requirements were met in the design document<br />
- No exception handling or compensatory actions where detailed in the event of errors<br />
- No architectural overview was presented and minimal system interactions (i.e. sequence diagrams) where present</p>
<p>In short, the design specification put the responsibility on the developer to fill in the gaps in detail. Whilst this free&#8217;s up the architects time, this really is no good for a few reasons:</p>
<p>1) Not all of the design is documented and therefore cannot be referenced in the future if the client questions functionality or attempts to request amendments outside of a new CR<br />
2) New developers to the team (myself in this instance) are left with gaps in their knowledge that requires time consuming investigation with potentially mutliple teams (and as such consumes estimated time but no development is done)<br />
3) Gaps in design specifics can lead to incorrect assumptions about how the solution should operate<br />
4) Inadequate design detail leaves room for (mis)interpretation of the design and can mean solutions move away from company design standards and architectural rules. This leaves a messy set of solutions that operate differently, don&#8217;t really utilize re-use and only further confuse developers.</p>
<p>In this case, clearly the company may not have the resource to focus more on detailed documentation or maybe they believe it&#8217;s just not as important as I do.  The bottom line however is that if you are going to develop a solution that&#8217;s more complex than &#8216;Hello World&#8217; you should really think about documenting the following (and I apologize in advance if you are great at your design specifications) :</p>
<p>- Start with a document summary. This should includes, author, distribution list, document approvers and release history.<br />
- Basic I know, but include a &#8216;contents&#8217; section that logically breaks up the design into layers (data access, service, process, ui).<br />
- Provide a detailed overview of the solution. Detailed being the key word here. Copying chunks of text from the functional specification is not cheating. The overview should include how the solution will improve any existing solutions (i.e. improve stability, boost usability, provide a greater level of system managability)<br />
- If necessary, provide details of the runtime environment and any antipicated configuration changes<br />
- Make reference to any other materials such as the functional specification and use case documents<br />
- Include design considerations (company or otherwise)<br />
- Detail any known risks, issues or constraints<br />
- Detail any dendancies at the time of writing. This should include any work being performed by other teams that the solution being detailed requires in order to operate successfully.<br />
- Provide a top level architectural diagram, even if the solution is basic. Diving into the detail without giving the developers a 1000 foot view of where the solution fit&#8217;s in to the wider solutions architecture to me is just wrong. Support the diagram with a sentance or two.<br />
- List the components that will change as part of the design<br />
- List any new components<br />
- Diagram component interactions (sequence diagrams)<br />
- &#8216;To be&#8217; process designs should include annotation, even if it&#8217;s assumed current knowledgable developers would know this information. You will not always have the same people doing the work.<br />
- For UI&#8217;s, detail the style and appearence ensuring it&#8217;s in line with company accessibility policies. That may require detailing fonts and hexidecimal colour references [#FFFFFF].<br />
- Detail what programming may be required. Server side, client side. What functionality should this code provide. What coding best practices should be honoured.<br />
- Keep a glossary of terms to the back of the document</p>
<p>Finally and most importantly, even if you are the architect and the master of all knowledge when it comes to your solution domain&#8230; Distribute the document and enable change tracking. Send to the subject experts for clarification and the business stakeholders, even if they don&#8217;t understand the content.</p>
<p>Most of us do and that&#8217;s great.  Design specification templates can be found online so there&#8217;s really no excuse.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/1040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/1040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/1040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/1040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/1040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/1040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/1040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/1040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/1040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/1040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/1040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/1040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/1040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/1040/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=1040&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2012/04/14/design-documentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>

		<media:content url="http://bpmtalk.files.wordpress.com/2012/04/u1.jpg" medium="image">
			<media:title type="html">u</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA. Just the basic facts. In 5 minutes.</title>
		<link>http://bpmtalk.wordpress.com/2012/04/14/soa-just-the-basic-facts-in-5-minutes/</link>
		<comments>http://bpmtalk.wordpress.com/2012/04/14/soa-just-the-basic-facts-in-5-minutes/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 10:16:52 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Service Orientated Architecture]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=1004</guid>
		<description><![CDATA[What a SOA is not SOA does not mean using web services. SOA is not just a marketing term. SOA also does not just mean &#8216;using distributed services&#8217;. What a SOA is SOA is an architecture of business services (usually distributed and sometimes &#8216;connected&#8217; by means of a service bus) that operate independently of each [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=1004&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<p><a href="http://bpmtalk.files.wordpress.com/2012/04/soa-fotolia_11660239_xs.jpg"><img class="aligncenter size-full wp-image-1035" title="SOA-Fotolia_11660239_XS" src="http://bpmtalk.files.wordpress.com/2012/04/soa-fotolia_11660239_xs.jpg?w=627" alt=""   /></a></p>
<p><strong>What a SOA is not</strong></p>
<p>SOA does not mean using web services.<br />
SOA is not just a marketing term.<br />
SOA also does not just mean &#8216;using distributed services&#8217;.</p>
</div>
<div></div>
<div>
<p><strong>What a SOA is</strong></p>
<p>SOA is an architecture of business services (usually distributed and sometimes &#8216;connected&#8217; by means of a service bus) that operate independently of each other, advertise what services they offer through well-defined interfaces and can be heavily re-used not only to aid development productivity of the IT department but to enable use of existing IT assets/systems. Ultimately, this means quicker turn around of IT projects, improving how IT serves the business and thus improves business agility.</p>
<p>&#8216;Service&#8217; orientation means that logic is provided via a suite of services which should be seen as &#8216;black boxes&#8217;. They do stuff, but you or the services consuming them don&#8217;t need to know what&#8217;s going on under the hood, only what messages they require as input (usually SOAP messages) and what the service will do for / return to you. A black box service doesn&#8217;t have to be a  web service, though they are the most commonly implemented type of service for maximum distribution and cross-platform compatibility.</p>
<p>So whilst that goes some way in explaining what SOA is on a general level using these developer written &#8216;services&#8217;&#8230; What SOA really is, is <em>A FUNDAMENTAL CHANGE IN THE WAY YOU DO BUSINESS</em> via a top down transformation requiring real commitment from the business, not just IT. That requires a change in mind-set of the top people.</p>
<p><strong>Characteristics of a black box &#8216;service&#8217; in a SOA</strong></p>
<p>- Loosely coupled (minimizes service dependency)<br />
- Contractual (adherence to well-defined service interface contracts&#8230; &#8216;if you wanna do business you need to abide by my interface contract&#8217;)<br />
- Abstract (service is a black box, internal logic is hidden from service consumers)<br />
- Reusable (divide and conquer! &#8211; We divide up business logic to basic reusable services)<br />
- Composable (can be used as a building block to build further composite services)<br />
- Stateless (retains little to no information about who it interacts with)<br />
- Discoverable (describes itself, a bit like a CV so that the service can be found and assessed &#8216;hello I&#8217;m a service, here is my CV&#8217;)</p>
<p><strong>What can these services do?</strong></p>
<p>Whatever you need them to do in order to satisfy business change needs / requirements. Common functions of services include:</p>
<p>- Perform business logic<br />
- Transform data<br />
- Route messages<br />
- Query data sources<br />
- Apply business policy<br />
- Handle business exceptions<br />
- Prepare information for use by a user interface<br />
- Generate reports<br />
- Orchestrate conversations between other services</p>
<p><strong>The business benefits of implementing a SOA strategy</strong></p>
<p>- Open standards based<br />
- Vendor neutral<br />
- Promotes discovery<br />
- Fosters re-usability<br />
- Emphasizes extensibility<br />
- Promotes organizational agility<br />
- Supports incremental implementation (bit by bit development)</p>
<p><strong>What a SOA might look like</strong></p>
<p>The below shows a business application based on a SOA.</p>
<p>The lowest level of operation consists of application logic, including existing API&#8217;s, DAL code and legacy systems. This may include &#8216;application connectors&#8217; that are middle men that interface between a simple exposed API and large systems like ERP, MRP etc).<br />
This low-level application logic is then exposed as basic level services (application orientated services as they are a wrapper for parts of the application logic).<br />
These basic level services form the building blocks of composite level services. More application aligned services are combined together to form services that are more aligned with the business, thus are more business orientated services. This can include exposing a business process as an independent business service.<br />
Basic (application orientated) and composite (more business orientated) services can then be orchestrated by business processes.<br />
These business processes may include human interaction points where user interfaces are required. Processes can also be initiated via user interfaces (requests / orders / applications etc).</p>
<p><a href="http://bpmtalk.files.wordpress.com/2012/04/soa.jpg"><img class="size-full wp-image" src="http://bpmtalk.files.wordpress.com/2012/04/soa.jpg?w=487" alt="Image" /></a></p>
<p><strong>Steps in Implementing a SOA with web services</strong></p>
<p>1) Creating and exposing services (development team creating component services)<br />
2) Registration of services (SOA isn&#8217;t truly in place when you just have random web services sitting on different web servers exposing WSDL. Where services are just consumed based on word of mouth and passing WSDL documents around.  A SOA requires a directory of its available services where all available services can be registered. UDDI 3.0 being the standard when using web services. This directory is the yellow pages for the services).<br />
3) Address security. Exposing business logic as services over large networks opens up a serious set of security challenges. Security standards must be implemented for the services so that consumers of services can meet the security requirements.<br />
4) Ensure reliability. Services must be monitored to make sure they are always up (high availability) and performance must be monitored to ensure reliability.<br />
5) Concentrate on governance. How are all of these steps governed? What are the policies that should be enforced at runtime. Compliance is also important.</p>
<p><strong>SERVICES THAT ARE EXPOSED, REGISTERED, SECURE AND PERFORM WELL FORM A SOLID SOA FOUNDATION.</strong></p>
</div>
<div>That&#8217;s all for now. Hopefully that paints a very top-level picture of what SOA is, what it is not and how you should go about implmenting it (with the all important business buy in).</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/1004/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/1004/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/1004/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=1004&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2012/04/14/soa-just-the-basic-facts-in-5-minutes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>

		<media:content url="http://bpmtalk.files.wordpress.com/2012/04/soa-fotolia_11660239_xs.jpg" medium="image">
			<media:title type="html">SOA-Fotolia_11660239_XS</media:title>
		</media:content>

		<media:content url="http://bpmtalk.files.wordpress.com/2012/04/soa.jpg?w=487" medium="image">
			<media:title type="html">Image</media:title>
		</media:content>
	</item>
		<item>
		<title>Cordys BPM Constructs 101a</title>
		<link>http://bpmtalk.wordpress.com/2011/12/29/cordys-bpm-constructs-101a/</link>
		<comments>http://bpmtalk.wordpress.com/2011/12/29/cordys-bpm-constructs-101a/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 11:00:35 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[Cordys]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=997</guid>
		<description><![CDATA[I&#8217;m now really quite comfortable with Cordys process modelling and the models component constructs.  There are simple differences between certain constructs that I&#8217;ve used in other products such as MS Biztalk so I wanted to absorb the Cordys documentation and present a sort of quick and dirty intro to each construct and how Cordys uses [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=997&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m now really quite comfortable with Cordys process modelling and the models component constructs.  There are simple differences between certain constructs that I&#8217;ve used in other products such as MS Biztalk so I wanted to absorb the Cordys documentation and present a sort of quick and dirty intro to each construct and how Cordys uses them to execute your processes.  As there are several constructs and I wanted to go into some detail, I&#8217;ll present some of them here and the rest in a subsequent article.</p>
<p>If you don&#8217;t already have a copy of the Cordys community edition VM that runs C3 or BOP4 on a CentOS virtual hard disk, I&#8217;d suggest getting hold of it so you can &#8216;play&#8217;.</p>
<p><span style="color:#339966;">/*Note that most of the constructs can only be used if a user is granted the Business Analyst role, from the Cordys Classic Studio ISV package.*/</span></p>
<p><strong>Start Event</strong> &#8211; Only one per process. Can have several trigger types:</p>
<p>- Message (a defined process specific message)<br />
- Timer (by setting a time unit (e.g. days) and no of occurrence<br />
times)<br />
- No Message or Timer</p>
<p><strong>End Event</strong> &#8211; Process can have multiple end events. Error, Message and Rollback. You define an output message by dragging a &#8216;Document Type&#8217; from the BPM Components repository to the end event. This then invokes a web service as the process ends. You can specify custom error XML in the &#8216;error details&#8217; tab of the end event.</p>
<p><strong>Activity</strong> - The activity is the construct that represents a generic step in the process and should be configured with an activity &#8216;type&#8217;. It can be of type &#8216;Application&#8217; (web service calls) or &#8216;XForm&#8217;. When of type XForm, an additional XForm tab becomes available in the activity properties.  An activity can also be set to be a &#8216;dummy activity&#8217; meaning it does nothing.  Each<br />
activity can be conditionally executed based on conditional evaluation returning a boolean result.</p>
<p><strong>Decision</strong> &#8211; The decision is a basic construct that allows multiple mutually exclusive outputs. It&#8217;s actual conditions are defined in the connectors that exit the decision construct and Xpath evaluations can use message map data for data driven decisions.</p>
<p><strong>Intermediate Message Event</strong> - The intermediate message should have a process specific message defined and is invoked when a message is received to the process.  Normally this is used to &#8216;wake&#8217; a waiting process instance. The gateway inmessage based on the process instance id (ensuring message correlation).  For asynchronous web service calls, an intermediate message can be used to receive the response message from a service operation call. Dragging the output message from message map will set this.  Therefore it is useful to know whether<br />
the operations you are calling via your activities are sync or async.</p>
<p><strong>Compensate Event </strong>- Used to rollback any effects of an activity or context or activities when an exception is caught.  A compensate event can be defined for an activity, sub-process,<br />
context (embedded sub-process), for each, while and until loops. An activity or sub-process can only have one compensate event associated. Compensate is represented as two left pointing arrows, side by side in a circle.</p>
<p><strong>Delay Event</strong> &#8211; An intermediate event that stalls the process for a configurable amount of waiting time. Delays can be of type:<br />
- Fixed delay.  That is a set amount days, hours, minutes or seconds.<br />
- Message read delay.  That is a delay value read from a process specific message using an Xpath reference. As with a standard activity, a delay may be conditionally executed based on a boolean return evaluation.</p>
<p><strong>Exception Event</strong> &#8211; An exception is an event which is fired when a Cordys error occurs (e.g. a soap fault is detected via external service responses or via SOA grid messages).<br />
As you would in programming code, you can specify a specific exception name to catch or just catch any exception.  Once an exception is thrown, process execution is diverted to the connected exception event where subsequent exception handling activities should follow.  There are several error types which can be caught and which are configured on the exception event construct:<br />
- All. All exceptions are caught, regardless of the error code.<br />
- Custom Error. You can set an error code you may expect from a service response indicating an error has occurred (e.g. a SOAP fault<br />
code).<br />
- System Error. Simply put, a Cordys internal error where some part of Cordys may not be operational (a soap processor may be down for example) or syntax rules are broken.<br />
- Communication&#8217;s Error. These errors are specific to SOAP faults returned from external service calls. Error code 11 is returned for comm&#8217;s failures.</p>
<p>There are error codes that are only raised when a sub-process is being invoked from a parent. These are:<br />
- Process Loading Error<br />
- Process Instantiation Error<br />
- Process Model Not Found Error</p>
<p>&#8230; more to follow soon!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/997/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/997/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/997/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=997&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2011/12/29/cordys-bpm-constructs-101a/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>
	</item>
		<item>
		<title>Metastorm BPM : It’s not an application development tool</title>
		<link>http://bpmtalk.wordpress.com/2011/11/26/metastorm-bpm-its-not-an-application-development-tool/</link>
		<comments>http://bpmtalk.wordpress.com/2011/11/26/metastorm-bpm-its-not-an-application-development-tool/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 10:47:23 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[BPM]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[Metastorm BPM]]></category>
		<category><![CDATA[v7]]></category>
		<category><![CDATA[v9]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=995</guid>
		<description><![CDATA[After 2 years of designing a large operational system using Metastorm v7.6, I wanted to reflect on why it&#8217;s a bad idea to use Metastorm BPM to build big workflow based systems. The problem with the finished system is not that it doesn&#8217;t satisfy the requirements or doesn&#8217;t perform well enough (considering), it&#8217;s that it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=995&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After 2 years of designing a large operational system using Metastorm v7.6, I wanted to reflect on why it&#8217;s a bad idea to use Metastorm BPM to build big workflow based systems.</p>
<p>The problem with the finished system is not that it doesn&#8217;t satisfy the requirements or doesn&#8217;t perform well enough (considering), it&#8217;s that it is a maintenance nightmare.  I wrote an article this time last year whilst travelling back home to Holland from being snowed in and which concerned why maintainability is the most important design factor (over and above scalability and extensibility).  Coupled with a &#8216;big bang&#8217; design approach (over an agile dev approach) and consistent requirement changes, it&#8217;s a surprise the system runs in its operational state.</p>
<p>I don&#8217;t wish to run the product down, because for small to medium workflow driven applications, it does the job. But, it&#8217;s clear lack of object orientation is the biggest single product flaw and when building a big system with Metastorm this cripples maintainability.   A solid design architecture is obviously of major importance.  Basic application architecture fundamentals such as breaking a system design down into cohesive functional &#8216;components&#8217;  that represent &#8216;concern&#8217; area&#8217;s for the application can be difficult to implement.  This is down to the fact that process data is stored in the database per process and passing data between processes using flags can become messy, especially when certain characters are passed using those flags (that Metastorm classes as delimiters).  Sub-processes are then an option, but these also have inherent flaws.</p>
<p>Forms, which again are application components are process specific, so re-use is again suffering and so replication of forms has to be done, further disabling the idea of good maintainability.</p>
<p>Having data repeated in processes and having no code dependency features is bad enough, but because you have to remember where you have used process variables and keep in mind when and where values may change, the tool puts all the responsibility on the developer.  Once the system get&#8217;s very large, the event code panels (the &#8216;on start&#8217;, &#8216;on complete&#8217; etc) get very complicated and tracking variables and when they may change etc becomes a struggle in itself.  Changing a variable value in a large process has the risk of making other parts of the process not work quite right because &#8216;you&#8217;ve forgotten that the variable is used in a conditional expression later on&#8217;.</p>
<p>This then begs the question, should you even use the Metastorm event/do this panels for ANY business logic.  I&#8217;d say no.  Only UI or process specific logic should be used and you should push ALL of your business logic to server-side scripts and a suite of external .NET assemblies.  You can then at least implement a fully swappable business logic layer.</p>
<p>So along comes v9.  This product is a great move towards stronger application architectures.  OOP design and ability to debug alone save a whole lot of system maintenance time.  So although this version takes us closer to being able to create solid, maintainable operational applications, it was released too early.  It is slow (halving development productivity against version 7), it had many broken features and grids, one of the most used visual components, especially for data driven applications (which is most business apps) were just terrible.  They continue to perform almost independently from the rest of the system and patch 9.1.1 is still addressing grid shortfalls.  Obvious shortfalls which should have been picked up by a thorough QC team @ (OpenText) Metastorm.</p>
<p>The new OOP approach means that designers and developers no longer have to use the &#8216;Line by line interpreted&#8217; syntax of v7 and can design re-usable components.  So there is a greater case for using Metastorm BPM as an application development tool for fair-sized applications but whilst development productivity is still poor and the designer is still very buggy, it&#8217;s not quite there yet.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/995/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/995/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/995/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=995&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2011/11/26/metastorm-bpm-its-not-an-application-development-tool/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>
	</item>
		<item>
		<title>Create PDF from HTML</title>
		<link>http://bpmtalk.wordpress.com/2011/10/21/create-pdf-from-html/</link>
		<comments>http://bpmtalk.wordpress.com/2011/10/21/create-pdf-from-html/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 14:45:18 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=985</guid>
		<description><![CDATA[I&#8217;m working on a project at the moment that needs to generate a PDF document from data on the SQL Server.  The following steps illustrates the approach I&#8217;m using but in this article I want to focus on the HTML to PDF conversion using the C# port of iText, iTextSharp. Select the required data into [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=985&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a project at the moment that needs to generate a PDF document from data on the SQL Server.  The following steps illustrates the approach I&#8217;m using but in this article I want to focus on the HTML to PDF conversion using the C# port of iText, iTextSharp.</p>
<ul>
<li>Select the required data into a .net DataSet</li>
<li>Create a new XmlDataDocument(DataSet) so that we have our data in XML</li>
<li>Create a new XSLT converter using XslCompiledTransform, load the XSLT file, then transform the XML to the output HTML we need</li>
</ul>
<div>So the HTML I have is structured correctly and links to images that are required to be included in the PDF output.  In order to generate the PDF i went searching for a free PDF API and iTextSharp seems to be the commonly used from what I could tell.  I&#8217;ve had a quick read through their API documentation and put together a quick example of how to generate a PDF from an existing HTML file (so this doesn&#8217;t use the iTextSharp elements).  I hope this is useful (click on the image to enlarge):</div>
<div>
<a href="http://bpmtalk.files.wordpress.com/2011/10/itext.jpg"><img class="aligncenter size-full wp-image-986" title="iText" src="http://bpmtalk.files.wordpress.com/2011/10/itext.jpg?w=627" alt=""   /></a></div>
<div>
To invoke the method, you simple pass in the source HTML file location (use MapPath() if on a web server) and where you want your output PDF to be created. Simples.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/985/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=985&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2011/10/21/create-pdf-from-html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>

		<media:content url="http://bpmtalk.files.wordpress.com/2011/10/itext.jpg" medium="image">
			<media:title type="html">iText</media:title>
		</media:content>
	</item>
		<item>
		<title>Cordys BOP4  : Messaging on the SOA Grid</title>
		<link>http://bpmtalk.wordpress.com/2011/10/08/cordys-bop4-messaging-on-the-soa-grid/</link>
		<comments>http://bpmtalk.wordpress.com/2011/10/08/cordys-bop4-messaging-on-the-soa-grid/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 17:55:28 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[Cordys]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[Service Orientated Architecture]]></category>
		<category><![CDATA[SOA Grid]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=972</guid>
		<description><![CDATA[I&#8217;ve spent a few weeks getting used to Cordys BOP 4 and as I usually try and do with a new product, I wanted to know more about what&#8217;s going on under the bonnet with it.  The central coordinating component of Cordys is its SOA grid, which takes care of messaging between all of the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=972&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent a few weeks getting used to Cordys BOP 4 and as I usually try and do with a new product, I wanted to know more about what&#8217;s going on under the bonnet with it.  The central coordinating component of Cordys is its SOA grid, which takes care of messaging between all of the core Cordys services and other web services.  Based on the information provided in the Cordys offline documentation and because I&#8217;m a visual learner, I&#8217;ve drawn up the following image that should hopefully shed some light on how Cordys organises its internal services and how they communicate via the SOA grid. Click on the image to zoom to actual size.</p>
<p><a href="http://bpmtalk.files.wordpress.com/2011/10/servicerequest1.jpg"><img class="aligncenter size-medium wp-image-976" title="ServiceRequest" src="http://bpmtalk.files.wordpress.com/2011/10/servicerequest1.jpg?w=300&#038;h=137" alt="" width="300" height="137" /></a><a href="http://bpmtalk.files.wordpress.com/2011/10/servicerequest.jpg"><br />
</a>What I&#8217;m trying to show here is how Cordys deals with an inbound service request.  The dark line represents the path of the message along the service bus.</p>
<p>To illustrate an example of how the above image can be used to understand what Cordys does is the request of an XForm from the Cordys client.  The client sends a request to display an XForm so sends a HTTP request to the web server for a resource of .caf file extension.  The web server, based on the .caf file extension hands the request over to the Cordys web gateway.  The web gateway contacts the LDAP service container and checks for the location of the XForms service container (the LDAP service must always be up and running for proper SOA grid functioning).  The LDAP service container has an LDAP application connector which talks to CARS.  Next the SOAP request is sent to the XForms service container and the XForms engine takes care of rendering the HTML response.  Not only that, but the XForms engine also validates controls against schemas and automatically contacts other web services required whilst rendering.  Once the HTML is generated, it is returned via the SOA grid to the Cordys web gateway, then back to the calling client.</p>
<p>I should mention at this point that web services on the SOA grid are called based on the service operation name and namespace in the SOAP request.</p>
<p>This is very high level and it&#8217;s always a good idea to read further into the Cordys documentation, but I hope this graphic helps to illustrate the architecture of services, service containers and service groups on the Cordys SOA Grid.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/972/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/972/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/972/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/972/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/972/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/972/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/972/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/972/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/972/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/972/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/972/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/972/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/972/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/972/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=972&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2011/10/08/cordys-bop4-messaging-on-the-soa-grid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>

		<media:content url="http://bpmtalk.files.wordpress.com/2011/10/servicerequest1.jpg?w=300" medium="image">
			<media:title type="html">ServiceRequest</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding Multi-tenancy</title>
		<link>http://bpmtalk.wordpress.com/2011/09/11/understanding-multi-tenancy/</link>
		<comments>http://bpmtalk.wordpress.com/2011/09/11/understanding-multi-tenancy/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 00:09:13 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cordys]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[Solution Design]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=967</guid>
		<description><![CDATA[I&#8217;m doing a lot of research and practical &#8216;playing&#8217; with the Cordys BOP 4 environment at the moment.  It&#8217;s a relatively young product from a young company (founded in 2001) but from what I have understood about the product and its architecture it is a strong, versatile collaborative tool that really supports rapid application development [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=967&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing a lot of research and practical &#8216;playing&#8217; with the Cordys BOP 4 environment at the moment.  It&#8217;s a relatively young product from a young company (founded in 2001) but from what I have understood about the product and its architecture it is a strong, versatile collaborative tool that really supports rapid application development and maintenance for business change thus reducing general cost of ownership.  I don&#8217;t want to talk about the product itself, I will be doing that soon enough, but I wanted to cover one of the software&#8217;s best features in my opinion and that is its ability to operate within the enterprise and in the cloud utilizing a fully multi-tenant architecture.</p>
<p>Multi-tenancy is an architectural principle which says that a single install of a software program / server application can service multiple client &#8216;organizations&#8217;, providing a customized isolated application environment with its own data.  This is in complete contrast to the idea of multiple instances for each organization (i.e. installing an instance of some server software and underlying database to serve one organization and store only that organizations data).  Each &#8216;organization&#8217; (in the general sense of the word) is classed as a tenant, using the application, therefore if one single installed application can serve multiple tenants their customized view of the application, then it is said to have multi-tenancy (supports multiple tenants). Google apps is a perfect example of a multi-tenant architecture.  Multi-tenancy is the foundation architecture for most if not all Software as a Service applications, thus cloud applications support multi-tenancy.</p>
<p>How multi-tenancy is implemented in an application can vary from application to application.  The general principle however is to have the application virtually partition portions of its data and services to different consuming organizations.  A very simple example at the data level would be to have the application generate a set of related data tables under new database schemas as new organizations are set-up to use the application (so a schema per organization).  This separates off the data into logical groups that have their own security context on the database.  There are other ways to partition the data, but this is just to illustrate one potential method.</p>
<p>So multi-tenancy is a software architecture and one that is prevalent in cloud applications.  Cordys BOP 4 does this very well and I&#8217;m looking forward to investigating this product and its virtualization capabilities further.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/967/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/967/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/967/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/967/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/967/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/967/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/967/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/967/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/967/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/967/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/967/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/967/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/967/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/967/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=967&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2011/09/11/understanding-multi-tenancy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>
	</item>
		<item>
		<title>Metastorm 9 : Ignores ‘Client Paging’ property</title>
		<link>http://bpmtalk.wordpress.com/2011/09/07/metastorm-9-ignores-client-paging-property/</link>
		<comments>http://bpmtalk.wordpress.com/2011/09/07/metastorm-9-ignores-client-paging-property/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 00:05:46 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[Metastorm BPM]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[v9]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=958</guid>
		<description><![CDATA[Grids were one of the biggest reasons I upgraded to 9.1 from an application written in 9.0.0.1.  Mainly because the ability to wrap text in grids was removed in v9.0 and so columns with large amounts of text to display became unreadable.  Now although this has been fixed in 9.1, grids are still throwing up [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=958&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Grids were one of the biggest reasons I upgraded to 9.1 from an application written in 9.0.0.1.  Mainly because the ability to wrap text in grids was removed in v9.0 and so columns with large amounts of text to display became unreadable.  Now although this has been fixed in 9.1, grids are still throwing up issues.   The first is noted in my previous post where you cannot assign a business object field to more than one column of a grid (worked in v9).  Second, the grid page size on many (if not all grids) appeared to reset to 50, regardless of what was previously set.  Lastly, it appears on deployment that 9.1 is completely ignoring the fact that I&#8217;ve unchecked the client paging check-box as I don&#8217;t want to deal with pages of data in the grid.  The below example shows what is set in the designer and the resulting form after deployment&#8230;.</p>
<p><a href="http://bpmtalk.files.wordpress.com/2011/09/grid1.jpg"><img class="aligncenter size-full wp-image-959" title="grid1" src="http://bpmtalk.files.wordpress.com/2011/09/grid1.jpg?w=627" alt=""   /></a></p>
<p>It is clear that the client paging property is not checked for this grid.</p>
<p><a href="http://bpmtalk.files.wordpress.com/2011/09/grid2.jpg"><img class="aligncenter size-full wp-image-960" title="grid2" src="http://bpmtalk.files.wordpress.com/2011/09/grid2.jpg?w=627" alt=""   /></a></p>
<p>You can see from the above however that paging is still active on the grid (the pages are shown to the left of the screen grab, but the white space represents the paging bar). Clearing the browser cache doesn&#8217;t help in any way.  It really makes me wonder how much in-house quality control testing is done at Metastorm.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/958/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=958&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2011/09/07/metastorm-9-ignores-client-paging-property/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>

		<media:content url="http://bpmtalk.files.wordpress.com/2011/09/grid1.jpg" medium="image">
			<media:title type="html">grid1</media:title>
		</media:content>

		<media:content url="http://bpmtalk.files.wordpress.com/2011/09/grid2.jpg" medium="image">
			<media:title type="html">grid2</media:title>
		</media:content>
	</item>
		<item>
		<title>Metastorm 9.0 to 9.1 – Same key has been added</title>
		<link>http://bpmtalk.wordpress.com/2011/09/06/metastorm-9-0-to-9-1-same-key-has-been-added/</link>
		<comments>http://bpmtalk.wordpress.com/2011/09/06/metastorm-9-0-to-9-1-same-key-has-been-added/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 22:38:26 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[Metastorm BPM]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[v9]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=955</guid>
		<description><![CDATA[So I performed the relatively simple Metastorm 9.0 to 9.1 upgrade this week and for the most part, functionality for existing applications has remained.  There are however a few issues I experienced, the biggest being a new message appearing on a few of my forms. &#8216;An item with the same key has already been added&#8217;. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=955&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So I performed the relatively simple Metastorm 9.0 to 9.1 upgrade this week and for the most part, functionality for existing applications has remained.  There are however a few issues I experienced, the biggest being a new message appearing on a few of my forms. &#8216;An item with the same key has already been added&#8217;.</p>
<p><a href="http://bpmtalk.files.wordpress.com/2011/09/error.jpg"><img class="aligncenter size-full wp-image-956" title="Error" src="http://bpmtalk.files.wordpress.com/2011/09/error.jpg?w=627" alt=""   /></a></p>
<p>The error kept showing its face on grid heavy forms, especially when you select a row in a grid or where there are buttons on a form and the grids are dependant on other fields.  After some trial and error (and guess-work) it became apparent which grid was causing the error to occur and further to that I noticed that the grid had the same business object item assigned to 2 columns.  I killed one of these columns, redeployed and all was well. The annoying part is that this worked in v9.0 with no issues.  So it seems that in 9.1 you can only assign business object items to a single grid column only.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/955/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/955/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/955/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=955&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2011/09/06/metastorm-9-0-to-9-1-same-key-has-been-added/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>

		<media:content url="http://bpmtalk.files.wordpress.com/2011/09/error.jpg" medium="image">
			<media:title type="html">Error</media:title>
		</media:content>
	</item>
		<item>
		<title>Metastorm announcing BPM 9.1</title>
		<link>http://bpmtalk.wordpress.com/2011/07/11/metastorm-announcing-bpm-9-1/</link>
		<comments>http://bpmtalk.wordpress.com/2011/07/11/metastorm-announcing-bpm-9-1/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 09:00:14 +0000</pubDate>
		<dc:creator>Scott Altham</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://bpmtalk.wordpress.com/?p=942</guid>
		<description><![CDATA[This morning at US Eastern Daylight Time, Metastorm are set to make some product launch announcements including Metastorm BPM 9.1.  The other product announcements include Smart Business Workspace 9.0 and Metastorm Business Performance Intelligence Dashboards and the predefined dashboards for Metastorm Business Process Management, Metastorm Integration Manager and Metastorm Knowledge Exchange.  These boosting the product(s) visibility to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=942&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This morning at US Eastern Daylight Time, Metastorm are set to make some product launch announcements including Metastorm BPM 9.1.  The other product announcements include Smart Business Workspace 9.0 and Metastorm Business Performance Intelligence Dashboards and the predefined dashboards for Metastorm Business Process Management, Metastorm Integration Manager and Metastorm Knowledge Exchange.  These boosting the product(s) visibility to business users.</p>
<p>For me personally, the Metastorm BPM 9.1 release is the most welcome news.  I work with this product every day and if you&#8217;ve read my recent posts, I&#8217;ve shared my concerns about its general stability and poor performance.  It sounds like many new features in this release surround the client UI and building of forms with this version (hopefully!) introducing Panels (collapsible groupings of form controls), Field Anchoring (spacing your form content when window maximized), improved field visibility options, dynamically visible actions and I&#8217;m sure many others.</p>
<p>Many Metastorm BPM developers are looking for big improvements in this release and are hoping that Metastorm has made the development experience more efficient.  It has taken some getting used to the new way of design and it can be tedious at times, so any new features that boost development efficiency I can see being received with applause by the development community.</p>
<p>Let&#8217;s wait and see what comes to pass.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bpmtalk.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bpmtalk.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bpmtalk.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bpmtalk.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bpmtalk.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bpmtalk.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bpmtalk.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bpmtalk.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bpmtalk.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bpmtalk.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bpmtalk.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bpmtalk.wordpress.com/942/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bpmtalk.wordpress.com/942/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bpmtalk.wordpress.com/942/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bpmtalk.wordpress.com&amp;blog=9809752&amp;post=942&amp;subd=bpmtalk&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bpmtalk.wordpress.com/2011/07/11/metastorm-announcing-bpm-9-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/54f4e0d5bd81ebc38ffb81c989ff1574?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">bpmtalk</media:title>
		</media:content>
	</item>
	</channel>
</rss>

