Friday, December 20, 2019

Introduction to Process-driven Applications

Introduction to Process-driven Applications

Objectives

After completing this section, students should be able to list the advantages in designing and developing applications as a process-driven focused application.

Introducing Process-driven Applications

Any organization is largely dependent on repetitive processes. For example:
  • Creating documents to request a insurance quote.
  • Evaluating scores from a customer to provide a mortgage.
  • Dismissing customer complaints after reviewing them.
Developing and designing applications are ways to automate many of these business processes. Unfortunately, applications usually are not well integrated with each other, causing information to flow from one system to the other without providing a unified data view. This results in an inability to evaluate the existing process, identify bottlenecks, and improve the company's productivity.
A further side-effect of the lack of unified process execution is poor experience for customers who may be required to provide the same information to multiple applications. To minimize this problem, a unified and data-driven process must be created using a process-driven tools. These tools are focused on creating a workflow with all of the required systems and people interaction to give customers an integrated experience and improve the product and business models supported by all applications.
What is Needed?
To support a process-driven tool, there are some requirements that need to be addressed:
  • Processes : Each application or system must be part of a business process. Each business process must be considered as assets that can be adapted, automated, and redesigned. The keys to improving innovation and initiating a digital transformation are mapping business processes to help identify and resolve problems and bottlenecks.
  • Data : Data must be stored in a centralized database where all applications and people supporting the business process have access. The information must flow through all the elements that support each application's execution. In a fragmented environment, it is common to lose information whenever data needs to be transmitted from one system or person to another.

Process-driven Applications

Process-driven applications address the following needs:
  • Orchestrate : engage and collaborate across multiple systems, applications and knowledge workers.
  • Automate : Identify business decisions and automatically choose the correct process or task using rules. These rules are written in a way that can be read by both developers and business users.
  • Enable : Provide mechanisms that allow business users to create their own decision or rules in a process with multiple systems in a low-code environment.
  • Analyze : Evaluate the information captured during the business process that helps improve the process itself. The application engages multiple applications, systems, and people to work together to provide a traceable and unified process.

Key Characteristics

A good process-driven application has the following characteristics:
  • Business-oriented : Provide an intelligent way to solve customer problems with support from both developers and business analysts.
  • Tech-support : Implement best practices to minimize the risk of system unavailability.
Business-Oriented Characteristics
A business process model must support the following business-oriented characteristics:
  • Customer experience : Providing a bad online experience directly impacts the value chain of a business. Most critical business processes expand to include customer interaction points, making business process management part of the product.
  • Intelligent : Optimize processes using automated decisions and tasks with process decision analysis. To accomplish optimization and automation, machine learning and artificial intelligence is an approach for more modern applications to analyze data and make better predictions. Additionally, as the business process is optimized, the tool provides insights to further improve processes an provide value to the business as whole.
  • Omni-Channel : Provide a uniform experience across any channel for seamless switching between interfaces for different devices, such as web browser, mobile application, or customer service center. Furthermore, use home automation platforms and Internet of Things (IoT) enabled appliances to take communication and interaction options to new level. This transparent communication enable organizations to provide omni-channel experience to customers.
Technology Characteristics
The following are technology requirements to support business processes:
  • Distributed : A distributed process-driven application is more reliable to orchestrate the invocation to multiple systems.
  • Cloud Native : As a process-driven application may be invoked by multiple customers, providing an elastic environment where new applications can be deployed under heavy load minimizes the risk of unavailability.
  • Integrated : As multiple systems provide information needed by a process-driven application, an easy to integrate application is fundamental to mitigate integration issues.
Distributed
The distributed process-driven applications enable:
  • Agility : Ability to quickly change processes for experimentation and innovation.
  • Flexibility : Use of smaller, independent but integrated processes to reduce impact on full process when a change is required.
  • Scalability : Ability to individually scale customer-facing components based on usage characteristics.
Cloud-native
Cloud native applications have the following desirable characteristics:
  • Reduce risk of deployment through standardization and management automation.
  • Increase scalability through on-demand auto-scaling features.
  • Facilitate continuous integration (CI) and continuous delivery (CD).
Integrated
Integration with multiple technologies provides the following advantages:
  • Best-of-breed technologies such as software as a service providers and analysis and artificial intelligence engines.
  • Vast array of systems and services such as microservices or data services
  • Open, standard, managed APIs such as those ones provided by personal assistant tools.
  • Hooks to integrate with CI/CD platforms, identity management systems, application servers, and container platforms.

Technologies

The major technologies that need to be provided by a business process automation tool are:
  • Business process management (BPM) : To write down the process in an interchangeable format.
  • Robotic process automation (RPA) : To provide mechanisms to automate manual tasks.
  • Rules : To define decision management capabilities to the tool in a human-readable way.
  • Cognitive : To identify patterns and support decision management capabilities to the tool.
  • Application programming interface (API) : To customize the business process management tool.
  • Low-code : To implement or expand the capability of the business process tool providing extensible mechanisms.
  • Mobile : To provide a simplified access to the application on any mobile device.
  • Integration : To access external systems or services.
  • Analysis : To evaluate metrics on a process for optimization.
  • Containers : To deploy the tool fast on any container-enabled environment.


Introduction to Business Decisions

Objectives

After completing this section, students should be able to list the advantages in using process-driven applications.

Implementing Decision Management Tools

An organization must make business decisions quickly to support customers needs. Developing applications that hard-code business logic into the source code makes these fast changes difficult to accomplish. These changes should be able to be made by someone besides a developer.
A decision management tools provides mechanisms for business analysts to create rules that should support a decision without the need to update the application. Usually, these rules are created using a language that any human can understand, but are evaluated by the engine. Rules generally evaluate a certain condition in the order they are to be executed, which differs from the traditional programming language approach, where you need to chain multiple conditionals to evaluate the correct rule to be processed.
Executing the Correct Rules
Decision manager tools use the following process to select the correct rule:
  • Discovery : Identify and model the decisions that are most important to your operational processes.
  • Services : Design and build independent decision services using business rules and advanced analysis.
  • Analysis : Create a closed loop between operations and analysis to measure results and drive improvement.

Implementing Decision Management

To implement decision management, applications must invoke a decision manager server which stores all of the rules, and passes any parameter needed to evaluate which rule should be used to process the request. These parameters are named facts and they may be manipulated by the rule engine. After processing the content, the manipulated fact return back to the requester.
Modeling Decisions
Decisions made repeatedly by organizations as part of normal business operations should be used to create decisions. Each management level, however, may define different decision definitions to deal with rules.
  • Strategic : Long-term complex decisions usually are made by senior management. They do not address routine decisions as they are company guidelines and they are not focused on a specific task or process objective.
  • Tactical : Decisions that support senior management policies. They are usually less complex than the strategic ones and they define medium term decision.
  • Operational : Decisions based on routines and used on a daily basis to solve regular problems. Due to the nature of operational decisions, they may affect the way tactical and strategic decisions in way that they must be changed. As the operational decisions affect strategic decisions there is a constant feedback needed to define the strategic decisions regularly.

Red Hat Decision Manager

Red Hat Decision Manager implements a decision management tool that may be invoked in any external system using REST APIs. It has a flexible architecture that supports:
  • Embedded : Lightweight runtime that can be embedded in any Java-based application. Rules are executed as part of the application. Rule definitions can be packaged with the application or fetched from a rules repository.
  • Decision server : Lightweight runtime which provides a RESTful and JMS API for rule execution. Supports extension APIs, protocols, and transports.
  • Containerized : Also built on the Decision Server technology, the OpenShift container image provides microservices based rule execution platform for cloud, Platform-as-a-Service, and container environment.

No comments: