GithubHelp home page GithubHelp logo

rhpam7-order-it-hw-demo's Introduction

Red Hat Process Automation Manager - Order IT Hardware Case Management and Microservices Demo

This demo shows and IT Hardware Order application build on the case management features and technology of Red Hat Process Automation Manager 7.

In this demo, the PAM Execution Engine is deployed as a capability with a lightweight SpringBoot application, a feature that was introduced in the 7.1 release of the PAM platform. The process/case uses external microservices built on Vert.x to demonstrate how Process Automation Manager is used in a microservices world to orchestrate process execution. The process implements the Saga pattern via standard BPMN2 compensation flows, showing the powerful concepts and ease of semantical expression that Red Hat Process Automation Manager 7 brings to a modern microservices architecture.

Software

This demo runs on OpenShift, and therefore requires an available OpenShift runtime. This can be a OpenShift Container Platform instance, a Minishift instance, etc. The only requirement is that there are enough resource available to run the 4 OpenShift pods that this demo consists off.

Install on OpenShift

This demo can be installed on Red Hat OpenShift in various ways. We'll explain the different options provided.

All installation options require an oc client installation that is connected to a running OpenShift instance. More information on OpenShift and how to setup a local OpenShift development environment based on the Red Hat Container Development Kit can be found here.


NOTE

The Red Hat Process Automation Manager 7 - Business Central image requires a Persistent Volume which has both ReadWriteOnce (RWO) and ReadWriteMany (RWX) Access Types. If no PVs matching this description are available, deployment of that image will fail until a PV of that type is available.


Automated installation

This installation option will install the demo in OpenShift using a single script, after which the demo project needs to be manually imported.

  1. Download and unzip or clone this repo.

  2. Run the init-openshift.sh (Linux/macOS) or init-openshift.ps1 (Windows) file. This will create a new project and application in OpenShift and deploy the demo.

  3. Login to your OpenShift console. For a local OpenShift installation this is usually: https://{host}:8443/console

  4. A full walkthrough script of the demo can be found here

Scripted installation

This installation option will install the demo in OpenShift using the provided provision.sh (Linux/macOS) or provision.ps1 (Windows) script, which gives the user a bit more control how to provision to OpenShift.

  1. Download and unzip. or clone this repo.

  2. In the demo directory, go to ./support/openshift. In that directory you will find the provision.sh (Linux/macOS) and provision.ps1 (Windows) script.

  3. Run ./provision.sh -h (Linux/macOS) or ./provision.ps1 -h (Windows) to inspect the installation options.

  4. To provision the demo, with the OpenShift ImageStreams in the project's namespace, run ./provision.sh setup rhpam7-oih --with-imagestreams (Linux/macOS) or ./provision.sh -command setup -demo rhpam7-oih -with-imagestreams (Windows)


    NOTE

    The with-imagestreams parameter installs the Process Automation Manager 7 image streams and templates into the project namespace instead of the openshift namespace (for which you need admin rights). If you already have the required image-streams and templates installed in your OpenShift environment in the openshift namespace, you can omit the with-imagestreams from the setup command.


  5. A second useful option is the --pv-capacity (Linux/macOS)/ -pv-capacity (Windows) option, which allows you to set the capacity of the Persistent Volume used by the Business Central component. This is for example required when installing this demo in OpenShift Online, as the Persistent Volume Claim needs to be set to 1Gi instead of the default 512Mi. So, to install this demo in OpenShift Online, you can use the following command: ./provision.sh setup rhpam7-oih --pv-capacity 1Gi --with-imagestreams (Linux/macOS) or ./provision.ps1 -command setup -demo rhpam7-oih -pv-capacity 1Gi -with-imagestreams (Windows).

  6. After provisioning, follow the instructions from above "Automated installation", starting at step 3.

  7. To delete an already provisioned demo, run ./provision.sh delete rhpam7-oih (Linux/macOS) or ./provision.ps1 -command delete -demo rhpam7-oih (Windows).

Notes

The following functionality is covered:

  • Case Management: the IT Order process is implemented as a dynamic, data-driven case. Changes in data drive the execution of the case/process.

  • Document Management: uploaded documents are stored via the PAM 7 Document Management Service

  • Human/User Tasks: various user tasks need to be completed to complete the full order process. Integration between the User/Human Task Service and the front-end applications is done via REST

  • API integration: the AngularJS UI integrates with the PAM Execution Engine through RESTful APIs.

  • SpringBoot: the PAM Execution Engine runs on a SpringBoot runtime. The runtime is connected to a PAM 7 Business Central environment for process management.

  • Vert.x integration: the Order Service is implemented using Vert.x. Integration between the Vert.x application and the PAM Execution Engine is done via RESTful APIs

  • Saga pattern: The order in the order service is cancelled via a BPMN2 compensation flow when the order time’s out. This effectively is the implementation of the Saga pattern in a BPMN2 process.

Supporting Articles

Released versions

See the tagged releases for the following versions of the product:

Case Definitino

RHPAM 7

rhpam7-order-it-hw-demo's People

Contributors

duncandoyle avatar

Stargazers

Neha Gupta avatar Rakhmad Azhari avatar Rafael T. C. Soares (A.K.A Tuelho) avatar ICEMAPLE avatar Evrim Ozcelik avatar 魏鹏 avatar  avatar Karsten Gresch avatar Lex K avatar Cristiano Nicolai avatar Yayan avatar  avatar

Watchers

Rakhmad Azhari avatar Eric D. Schabell avatar James Cloos avatar James Falkner avatar Thomas Qvarnström avatar Christina Lin avatar Cojan van Ballegooijen avatar Evrim Ozcelik avatar  avatar

rhpam7-order-it-hw-demo's Issues

RHPAM 7.7 template uses different parameters

The provision.sh script is configured for the 7.6 and earlier templates however as far as I can tell the 7.7 template is using different parameters which is causing the script to fail. The parameters being used are here:

https://github.com/jbossdemocentral/rhpam7-order-it-hw-demo/blob/pam77-upgrade/support/openshift/provision.sh#L331

However things like KIE_ADMIN_USER and KIE_ADMIN_PWD have been replaced with credentials. I've modified things as follows to deploy it:

  oc create secret generic rhpam-credentials --from-literal=KIE_ADMIN_USER=$KIE_ADMIN_USER --from-literal=KIE_ADMIN_PWD=$KIE_ADMIN_PWD

  oc new-app --template=rhpam$PAM7_VERSION-authoring \
  -p APPLICATION_NAME="$ARG_DEMO" \
  -p IMAGE_STREAM_NAMESPACE="$IMAGE_STREAM_NAMESPACE" \
  -p IMAGE_STREAM_TAG="$IMAGE_STREAM_TAG" \
  -p CREDENTIALS_SECRET="rhpam-credentials" \
  -p BUSINESS_CENTRAL_HTTPS_SECRET="businesscentral-app-secret" \
  -p KIE_SERVER_HTTPS_SECRET="kieserver-app-secret" \
  -p BUSINESS_CENTRAL_MEMORY_LIMIT="2Gi"

However I'm not sure about the BC Maven credentials to use in 7.7 since they are not in the template?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.