 
{"id":37513,"date":"2013-06-12T12:06:00","date_gmt":"2021-02-10T10:56:28","guid":{"rendered":"https:\/\/www.globallogic.com\/latam\/insights\/blogs\/bpm-y-arquitecturas-de-software\/"},"modified":"2025-01-30T11:42:58","modified_gmt":"2025-01-30T11:42:58","slug":"bpm-y-arquitecturas-de-software","status":"publish","type":"insightsection","link":"https:\/\/www.globallogic.com\/latam\/insights\/blogs\/bpm-y-arquitecturas-de-software\/","title":{"rendered":"BPM y Arquitecturas de Software"},"content":{"rendered":"<div class=\"classic_editor_content\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The notion of software architectures involves describing and specifying the interaction of components at a high level of abstraction, showing the interaction between them and the communication flow. The great impact that the concept of software architectures had is due to the inclusion of non-functional aspects such as scalability, availability, security and performance.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">These aspects are relevant when implementing and executing a solution based on BPM tools, a philosophy that allows specifying each of the steps involved in a business process: its identification, modeling, development, implementation and administration. In this way, there are concepts of software architecture that can be extrapolated when carrying out process management according to BPM. In [1] these concepts are focused from three points of view: <\/span><\/span><i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Production or deployment, architectural styles and hardware estimates<\/span><\/span><\/i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> .<\/span><\/span><\/p>\n<h2><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Deployment<\/span><\/span><\/h2>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">From a deployment perspective, it is important to think about the configuration that the BPM architecture will have when managing the organization&#8217;s business processes. A correct configuration will explore 4 different angles: <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">the development environment<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> , which includes configuration, testing, and bug correction that arise from the application of BPM tools; <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">the testing environment<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> , which, like the traditional stage of software development, will be focused on corroborating that the different acceptance criteria are met; <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">the \u00abstaging\u00bb environment,<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> which essentially functions as a secure virtual environment to run products in production (often optional depending on the scale of the project); and the <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">production environment<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> , where the different processes will be applied.<\/span><\/span><\/p>\n<h2><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Architectural Styles<\/span><\/span><\/h2>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The application of an architectural style will depend on the BPM toolset selected. A stand-alone or single-tier style provides a single structure to store all BPM components (BPM engine, application manager, databases) on a single machine or server. The main advantage of this approach is simplicity and less administrative overhead, although complex deployments will require a different approach.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">A two-tier style allows the BPM engine and application manager to be located on different servers, allowing for greater concurrency and better performance.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">A three-tiered approach allows for dedicated services for each BPM component individually. Obviously, maintenance and monitoring become more complex, but the scope of projects that can be covered increases.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Finally, in a multi-tier style (with 4 or more), the BPM components are located in separate layers, with dedicated servers. This style requires special care in matters of load balancing and synchronization between the different layers, an aspect that is often underestimated.<\/span><\/span><\/p>\n<h2><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Hardware estimates<\/span><\/span><\/h2>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">From the hardware estimation point of view, BPM aspects must be considered. This point is often overlooked, and constitutes one of the most common mistakes when implementing a BPM solution. The main BPM issues that influence the estimation are: the number of processes per year\/month\/day\/week, the number of activities in each process, the number of users involved, integration with external services, the organization&#8217;s experience in BPM solutions, and the organization&#8217;s current IT infrastructure.<\/span><\/span><\/p>\n<h2><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">A concrete case<\/span><\/span><\/h2>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">A typical case of a layered BPM architecture is illustrated in reference [2], combining BPM management with <\/span><\/span><a href=\"https:\/\/www.globallogic.com\/latam\/insights\/blogs\/soa-governance-la-clave-del-exito\/\" target=\"_blank\" rel=\"noopener\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">SOA -style service orientation.<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> style service orientation .<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The main layer is the service application layer, which represents the heart of the system. This shows the link between BPM and SOA, as detailed in [3].<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Using BPM, SOA focuses on process services to develop complex business flows. BPM adds additional power for service composition and allows a communication flow to be modified dynamically. Finally, BPM provides the ability to control processes and execution units over the long term, ideal for the context of transaction-based applications.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The immediate layer is the communication flow layer. There are various technologies that can help with this. For example, an orchestration engine like <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">BizTalk<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> is perfectly suited for automated systems. The goal of this layer is to model the interaction between services.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The presentation layer is the classic \u201cFront End\u201d, where the entry points to the offered services are displayed. This layer has its complexity, including concepts such as security, authentication, internationalization, and customization of features and structure.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Finally, an integration layer allows the system to be combined with external systems.<\/span><\/span><\/p>\n<h2><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">How to approach a BPM architecture<\/span><\/span><\/h2>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Reference [4] describes some preliminary steps to take into account when facing a BPM architecture. A good architectural BPM design includes examining the project from step 0: that is, having a broad and complete overview of the scope of the system. This includes having a deep knowledge of the system&#8217;s behavior and knowing how to discern between detailed design and high-level design. Without having these aspects clear, the architectural development will suffer serious risks to complete its success.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Other useful tips are also described in [4]. For example, a BPM architect should focus on the local perspective of the company, and not consider the global view of all the partner companies involved. This last aspect only needs to be taken into account to ensure that the services satisfy the integration with the partners. Another tip is based on the old saying \u201cdon\u2019t reinvent the wheel\u201d: it is rare to have to build an architecture from scratch. One should always try to use functionalities already included in many frameworks such as security, logging, connection management and more.<\/span><\/span><\/p>\n<h2><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">References<\/span><\/span><\/h2>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">[1]<\/span><\/span><a rel=\"external nofollow\" target=\"_blank\" href=\"http:\/\/blog.andrewrivers.co.uk\/2009\/04\/description-of-bpm-architecture.html\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> http:\/\/blog.andrewrivers.co.uk\/2009\/04\/description-of-bpm-architecture.html<\/span><\/span><\/a><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">[2]<\/span><\/span><a rel=\"external nofollow\" target=\"_blank\" href=\"http:\/\/www.bptrends.com\/publicationfiles\/05-06-WP-BPM-SOA-Behara.pdf\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> http:\/\/www.bptrends.com\/publicationfiles\/05-06-WP-BPM-SOA-Behara.pdf<\/span><\/span><\/a><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">[3] <\/span><\/span><a rel=\"external nofollow\" target=\"_blank\" href=\"http:\/\/oreilly.com\/catalog\/essentialpm\/chapter\/ch02.pdf\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">http:\/\/oreilly.com\/catalog\/essentialpm\/chapter\/ch02.pdf<\/span><\/span><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>La noci\u00f3n de arquitecturas de software involucra describir y especificar la interacci\u00f3n de <\/p>\n","protected":false},"author":12,"featured_media":25662,"parent":0,"menu_order":129,"template":"","insight":[41],"insight-subcats":[],"insight-industry":[779],"insight-services":[],"insight-partners":[],"class_list":["post-37513","insightsection","type-insightsection","status-publish","has-post-thumbnail","hentry","insight-blogs","insight-industry-cross-industry"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insightsection\/37513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insightsection"}],"about":[{"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/types\/insightsection"}],"author":[{"embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":2,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insightsection\/37513\/revisions"}],"predecessor-version":[{"id":101036,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insightsection\/37513\/revisions\/101036"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/media\/25662"}],"wp:attachment":[{"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/media?parent=37513"}],"wp:term":[{"taxonomy":"insight","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight?post=37513"},{"taxonomy":"insight-subcats","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight-subcats?post=37513"},{"taxonomy":"insight-industry","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight-industry?post=37513"},{"taxonomy":"insight-services","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight-services?post=37513"},{"taxonomy":"insight-partners","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight-partners?post=37513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}