{"id":1261,"date":"2014-10-05T05:40:06","date_gmt":"2014-10-05T11:40:06","guid":{"rendered":"http:\/\/garysamuelson.com\/blog\/?p=1261"},"modified":"2018-05-28T09:42:29","modified_gmt":"2018-05-28T15:42:29","slug":"single-page-and-rich-internet-applications-for-bpm-systems","status":"publish","type":"post","link":"http:\/\/garysamuelson.com\/blog\/?p=1261","title":{"rendered":"Mapping Web-UI to BPM"},"content":{"rendered":"<h3><em>Forward:<\/em><\/h3>\n<p>Building rich internet or single page user interfaces for BPM applications isn&#8217;t trivial. Development teams representing the various domains (UI, BPM, SOA) have broadly differing needs in terms of requirements, approach, and methodology. For instance, contemporary web technologies and drivers necessitate extreme agility while, on the other hand, BPM and SOA projects enjoy the support of formalized practice.<\/p>\n<p>This disparity among development teams typically leads to project delays due to poor alignment between web-UI, data bindings, and service dependencies.<\/p>\n<p>In this article I&#8217;ll attempt an explanation and work-around for this common problem associated with BPM projects.<\/p>\n<p>&nbsp;<\/p>\n<h2>Relationship between Task and Form<\/h2>\n<p>In process-centric BPM applications the relationship between user-interface (UI or form) and process-task is simple. Each task has its own form.\u00a0 This one-to-one correspondence clears the way for a reasonable, step-wise process execution model.<\/p>\n<p>User-interaction is fully contained within the boundaries of BPMN&#8217;s represented process. And, human-task relationships within the process are clearly defined and aligned towards overall value as expressed within the process definition.<\/p>\n<p>The problem though with this approach is that a fully detailed process-centric model, having expressed all necessary user operations as tasks, contains too much information. The relevant importance of the model itself becomes obscured behind task inflation. In-other-words, we can&#8217;t see the forest for the trees.<\/p>\n<p><a href=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_09h00_34.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1277\" src=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_09h00_34.png\" alt=\"form_task_relationship\" width=\"443\" height=\"296\" srcset=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_09h00_34.png 828w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_09h00_34-300x200.png 300w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_09h00_34-150x100.png 150w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_09h00_34-400x267.png 400w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>User Interaction versus Process Definition<\/h2>\n<p>Users want a rich internet application &#8211; the type typically represented by the new\u00a0single page application (SPA) pattern of interface design. These contemporary web applications offer both increased productivity and efficiency. However this approach leaves process design at a loss given the difficulty of relating user activity, associated with rich internet applications, to their corresponding process tasks.<\/p>\n<p>Two views now come into conflict. The <strong>user-centric<\/strong> approach necessitates a modern web-UI and, in the other corner, the <strong>process-centric<\/strong> view requiring correspondence between user effort and task.<\/p>\n<p><a href=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_10h12_06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1282\" src=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_10h12_06.png\" alt=\"user_interface_and_process_pattern\" width=\"515\" height=\"314\" srcset=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_10h12_06.png 977w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_10h12_06-300x183.png 300w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_10h12_06-150x91.png 150w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-09-28_10h12_06-400x244.png 400w\" sizes=\"auto, (max-width: 515px) 100vw, 515px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Mapping User Interaction<\/h2>\n<p>Attempting to satisfy both end-users and process specialists requires a reasonable attempt at unification under the BPM flag. In-other-words, everything should be modeled.<\/p>\n<p>In keeping with the spirit of BPM being a language for business, as apposed to wholly owned by software architects, user interaction is more often captured as a BPM microflow. So we now have a new task oriented,\u00a0 human-service flow representing user effort during task execution.<\/p>\n<p>In my example (below), tasks 1 through 3 are migrated into a web-UI microflow. This microflow, or human service flow (depending on terminology), illustrates human interaction between Web-UI and underlying process. The process is then relegated to managing a single work item showing an abstracted representation of tasks 1 through 3.<\/p>\n<p><a href=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_12h03_11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1298\" src=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_12h03_11.png\" alt=\"Mapping Web-UI to Process\" width=\"569\" height=\"386\" srcset=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_12h03_11.png 1222w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_12h03_11-300x203.png 300w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_12h03_11-1024x693.png 1024w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_12h03_11-150x101.png 150w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_12h03_11-400x271.png 400w\" sizes=\"auto, (max-width: 569px) 100vw, 569px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>An Impractical Middle-tier Control Mapping Pattern<\/h2>\n<p>Modeling user interaction is traditionally accomplished through UML diagrams expressing, in object-oriented terms, state transitions relating user initiated events to their corresponding system representations (with reciprocal relationships given HTML5 &#8216;push&#8217; technology).<\/p>\n<p>The problem with detailed, web-UI interaction modeling is that it&#8217;s just not practical anymore given the rate of churn on this type of development effort.<\/p>\n<p>Web-UI is constantly changing. Any attempt at keeping these types of models current, past initial analysis phase, yields&#8230; at best diminishing returns. In-other-words, there is no life-cycle for user-centric microflows. Though detailed microflow analysis has its role during early UI design, it should frozen and retired after after its representing web-UI construction is well under way.<\/p>\n<p><a href=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_14h20_34.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1305\" src=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_14h20_34.png\" alt=\"Web-UI Control Mapping Churn\" width=\"617\" height=\"562\" srcset=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_14h20_34.png 1250w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_14h20_34-300x272.png 300w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_14h20_34-1024x931.png 1024w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_14h20_34-150x136.png 150w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-01_14h20_34-400x363.png 400w\" sizes=\"auto, (max-width: 617px) 100vw, 617px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Serialized Effort Isn&#8217;t Efficiency<\/h2>\n<p>There is no process or task flow in modern web applications. Instead, there are objectives which are loosely translated into <em><strong>web<\/strong><\/em><strong>&#8211;<\/strong>application features. This being a key shift in our perspective of web-UI as it is <strong>no longer a direct extension of process<\/strong> but instead a means by which the user achieves their goals set forth by assigned process tasks.<\/p>\n<p>The modern web-UI now stands out on its own. And, as an application isn&#8217;t necessarily held back by process-centric design constraints. This explains the misplaced effort behind the middle-tier control mapping pattern described above. The web-UI,\u00a0given its new role as an application, and no longer relegated the sole responsibility of user-task execution, takes on greater responsibilities. Naturally extending this line of reasoning we drive scope and requirements, initially contained under single purpose user-tasks, towards those reserved for fully formed applications.<\/p>\n<p><a href=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-05_10h00_30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1317\" src=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-05_10h00_30.png\" alt=\"Unconstrained Web-application\" width=\"604\" height=\"338\" srcset=\"http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-05_10h00_30.png 1429w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-05_10h00_30-300x167.png 300w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-05_10h00_30-1024x572.png 1024w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-05_10h00_30-150x83.png 150w, http:\/\/garysamuelson.com\/blog\/wp-content\/uploads\/2014\/09\/2014-10-05_10h00_30-400x223.png 400w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Further Study<\/h2>\n<p>In my next article we take a look at employing the service bus pattern as a solution for bringing Web and BPM applications together under a united event driven architecture.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Forward: Building rich internet or single page user interfaces for BPM applications isn&#8217;t trivial. Development teams representing the various domains (UI, BPM, SOA) have broadly differing needs in terms of requirements, approach, and methodology. For<a class=\"moretag\" href=\"http:\/\/garysamuelson.com\/blog\/?p=1261\"> Read more&hellip;<\/a><\/p>\n","protected":false},"author":1,"featured_media":1301,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,11],"tags":[],"class_list":["post-1261","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business-process-management-integration","category-bpm-methodology"],"_links":{"self":[{"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1261"}],"version-history":[{"count":45,"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1261\/revisions"}],"predecessor-version":[{"id":1321,"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1261\/revisions\/1321"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=\/wp\/v2\/media\/1301"}],"wp:attachment":[{"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1261"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/garysamuelson.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}