{"id":673,"date":"2016-04-29T07:12:06","date_gmt":"2016-04-29T07:12:06","guid":{"rendered":"http:\/\/adriangrigoras.com\/blog\/?p=673"},"modified":"2016-04-29T07:12:06","modified_gmt":"2016-04-29T07:12:06","slug":"esb-bpms","status":"publish","type":"post","link":"https:\/\/adriangrigoras.com\/blog\/esb-bpms\/","title":{"rendered":"ESB vs BPMS"},"content":{"rendered":"<p>From the top of my head some aspects a modern Business Process Management Suite (BPMS) handles (better) in comparison to an ESB:<\/p>\n<ul>\n<li>Graphical modelling of the <em>business<\/em> process suitable for domain experts<\/li>\n<li>No technical detail required, e.g. without service composition<\/li>\n<li>the right granularity is reached when the task performer can be specific automated (system) vs manual (Human, possibly with system support).Below this granularity level the service composition start (ESB)<\/li>\n<li>Simulation of the workflow (without or without services connectivity), based on assumptions or real-life audit data<\/li>\n<li>Dashboard and Reporting features for operational control, tactical analysis and strategic continuous process improvement (all on business level \/ KPIs)<\/li>\n<li>Organizational modeling, management of authorizations<\/li>\n<li>task routing and assignment based on the business process model (e.g. roles) or dynamic based on conditions, business rules, decision tables, real-time analysis of user skills, workload and capacities, etc.<\/li>\n<li>Management of the context of the business process, e.g. business objects, documents,references to data in external systems, references to other workflows belonging to the same business entity<\/li>\n<li>Keeping an Audit Trail of all activities on business level (not a log file)<\/li>\n<li>Comprehensive worklist management and search features<\/li>\n<li>Features to operational management like definition and monitoring of business SLAs, priorities, benchmarks, criticalities, automated or manual task delegation<\/li>\n<li>Organizational aspect like deputy management, business calendar<\/li>\n<li>initiation of or changes to existing workflows based on defined internal or external technical or business events<\/li>\n<\/ul>\n<p>BPMS and ESBs are complementary systems. The BPMS is the business layer which orchestrates the composite business services defined in the underlying ESB layer. The ESB layer is a technical mitigation layer which supports the definition of basics services, their aggregation into composite services and other aspects like transformation and standardization of data formats. Since the layers are close the products in both areas have adopted more and more features from the the other layer. The overlaps are increasing as the vendors extend their feature sets.<\/p>\n<p>Depending on the complexity of the system landscape a comprehensive BPMS which covers many ESB features can make an ESB obsolete. An ESB which extends into the business layer is unlikely to reach the feature set and ease of use required by business users. If an ESB reached this business level then it would likely be rebranded and offered as a BPMS.<\/p>\n<p>If you compare the website of ESB&#8217;s like <a href=\"https:\/\/www.mulesoft.com\/resources\/esb\/what-mule-esb\" rel=\"nofollow\">Mule<\/a> and BPMS like <a href=\"https:\/\/www.eclipse.org\/stardust\/\" rel=\"nofollow\">Eclipse Stardust<\/a> then the different focus (technical integration platform vs business process management: modeling, simulation, execution, reporting, analysis &amp; improvement) should become evident.<\/p>\n<div class=\"post-text\">\n<p>The distinction you&#8217;re looking for is more &#8220;fuzzy&#8221; and it is about the focus of these tools, their intended end-users and the type of logic they compose. Here is my humble <em>attempt<\/em> at explaining the difference between ESB and BPM:<\/p>\n<h2>Focus and goals<\/h2>\n<ul>\n<li><strong>ESB<\/strong> is more focused on enablement of interoperability, separation of concerns, and abstraction of technical details. It has much more of an infrastructural role, it also cares about monitoring, scalability performance, availability, state deferral. In the ESB your goal is to enable the creation of a federated interoperable layer, by abstracting all technical details and to exposing reusable functionality.<\/li>\n<li><strong>BPM<\/strong> is more business-focused and in a perfect world scenario it is managed by business people and business analysts themselves that modify processes without having any idea about any technical details. The BPMN language is all about workflows and is designed to be business-friendly. In the BPM your goal is to implement real business processes by using these building blocks.<\/li>\n<\/ul>\n<h2>Intended users<\/h2>\n<ul>\n<li><strong>ESB<\/strong> services will be governed by architects and custodians (still, in accordance to requirements by business analysts).<\/li>\n<li><strong>BPM<\/strong> workflows will ideally be managed and modified by business people, business analysts and the like.<\/li>\n<\/ul>\n<h2>Composed logic<\/h2>\n<ul>\n<li><strong>In a BPM<\/strong> the compositions (workflows) consist of business-oriented tasks (e.g. check customer loyalty level and give him a discount if user X approves and his level is gold).<\/li>\n<li><strong>In the ESB<\/strong> the compositions generally consist of more technical services (e.g. retrieve this from the database, combine with that from this component, transform with xslt). It is possible to have an orchestrated task that implements an entire workflow the way a BPM does, that is entirely business-centric and without any reusability whatsoever, but you don&#8217;t have the handy tools and visualisation to be able to easily delegate the management of this business logic to business people.<\/li>\n<\/ul>\n<p>Having said all the above, ideally if you have a mature SOA, you&#8217;ll have a BPM layer on top of one or multiple ESBs and corresponding Service Inventories that have:<\/p>\n<ul>\n<li><strong>Entity<\/strong> and <strong>Utility<\/strong> <strong>services<\/strong> on the bottom (implemented in the ESBs)<\/li>\n<li><strong>Task<\/strong>, and in some cases <strong>Orchestrated Task services<\/strong> that compose said entity and utility services (implemented in the ESBs)<\/li>\n<li><strong>Workflows<\/strong> that use and reuse all these services in the BPM layer on top of the ESBs.<\/li>\n<\/ul>\n<p>I hope this gave you a good initial idea of the differences. Feel free to ask if you need more information.<\/p>\n<p>source:\u00a0http:\/\/stackoverflow.com\/questions\/34372004\/enterprise-service-bus-vs-bpm<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>From the top of my head some aspects a modern Business Process Management Suite (BPMS) handles (better) in comparison to an ESB: Graphical modelling of the business process suitable for domain experts No technical detail required, e.g. without service composition the right granularity is reached when the task performer can be specific automated (system) vs\u2026 <span class=\"read-more\"><a href=\"https:\/\/adriangrigoras.com\/blog\/esb-bpms\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[],"class_list":["post-673","post","type-post","status-publish","format-standard","hentry","category-architecture"],"_links":{"self":[{"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/posts\/673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/comments?post=673"}],"version-history":[{"count":1,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/posts\/673\/revisions"}],"predecessor-version":[{"id":674,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/posts\/673\/revisions\/674"}],"wp:attachment":[{"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/media?parent=673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/categories?post=673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adriangrigoras.com\/blog\/wp-json\/wp\/v2\/tags?post=673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}