PAS Concepts: How does Scheer PAS work?
With Scheer PAS and its process-oriented integration approach, you can seamlessly connect applications, services and data within a clear process flow, and automate business processes end-to-end. Our Model2Execute approach guides you through all phases: From development and execution to operation and analysis.
Development
In development, we distinguish between the two topics of process and execution modeling. Both are carried out in the Designer, but with different modeling languages.
Additional options such as diagrams or coding are also available to bring your process to life.
Process Modeling
The basic process flow is modeled using the BPMN notation in the BPMN editor of the Designer. This includes roles, user-based and service-based tasks, gateways for condition checks, start and end events. Integrations and information flows are realized in a different way. The rough process flow should be known at this point in order to transfer it into a process model.
Business Process Model Notation (BPMN)
The Designer uses a simplified version of the BPMN standard. This makes it easier for users who are not familiar with the BPMN notation to get started with modeling.
BPMN modeling is used for pure process flow modeling. Data structures, information flows and the like are created in another place in the Designer, with separate notations and diagrams.

BPMN model in the Designer
Execution Modeling
To realize integrations, variants of UML diagrams, mapping diagrams and the programming languages Action Script, Java Script, Java and Angular are used.
Unified Modeling Language (UML)
UML offers standard notation for several types of diagrams, which can be divided into two groups: behavior and structure diagrams.
Behavioral diagrams, such as activity, sequence, and state diagrams, are particularly used in PAS, especially within the Designer. The activity diagram editor, found in class operations, is used to define class behavior. The diagrams can be implemented in the execution flow (a sequence diagram) to be executed in the subsequently compiled and deployed service.

UML sequence diagram in the form of an execution flow in the Designer
In addition to its use in Designer, UML is also used in background processes. Each xUML process modeled with the Designer contains a standard root state machine diagram that supports
error handling and compensation as well as history states. The Analyzer uses these diagrams to visualize imported xUML processes.
Mapping Diagram
Data mapping is a very common task in the integration business and with the mapping diagram the Designer offers a powerful tool to define data mappings directly by drawing object flows between the properties of the related classes.

Mapping diagram in the Designer
The mapping diagram is based on the data model of the service, which is located in the service panel of the Designer. It defines mappings between the data structures defined in this data model. Just like the activity diagram, the mapping diagram can also be integrated into the process flow.
Activity Diagram
As already mentioned for UML, activity diagrams are a sub-area of UML, the behavior diagrams.
Activity diagrams are an important part of integrations, therefore the Designer has its own editor for creating and customizing activity diagrams.
Operations or sub-operations can be created step-by-step. By using decisions, local variables, and more, you can implement complex behavior.

Activity diagram in the Designer
Coding
In some cases, graphical modeling or mapping tools reach their limits.
For this reason, it is also possible to use the programming languages Action Script, JavaScript, Java and Angular in the PAS Designer.
Action Script
When modeling xUML services with the Designer, you may come to a point where the features of BPMN and xUML are not sufficient for your purposes. For these cases, the Designer offers an Action Script Language that implements the action semantics defined by the OMG™ for the UML. You can implement atomic actions like manipulating strings, arrays and so on by using Action Script (refer to Using Action Script for further information). Expressions of the Action Script language are not only used in actions but also for decisions (on the outgoing process flow) to evaluate boolean expressions.JavaScript
As an alternative to the built-in Action Script, a JavaScript implementation is also available in the Designer.
This allows JavaScript operations to be used to effectively write the function body of a (synchronous) JavaScript function. This is useful if you are already familiar with JavaScript development, but there are also some differences to Action Script.
Pro-Code Development
If the functionalities of the editors and diagrams in the Designer reach their limits, developers can export a service and develop it further with the help of the Pro-Code development kit.
Prerequisite: Compilation
The prerequisite for Pro-Code development is the successful compilation of the service. During this process, the xUML compiler transforms models, diagrams, and code into executable xUML services that can then be deployed on a Docker or Kubernetes system. Throughout the compilation process, the syntax is checked, and a repository file is created, optimized for size and performance. Additionally, the WSDL file is generated, which describes the service in the Web Service Definition Language. The WSDL file can later be imported into the PAS Analyzer for debugging purposes. All files are stored in a JAR file, that can be loaded by the xUML runtime.
The focus of Pro-Code Development is primarily on further developments for the service UI and its functions, but developers can also realize user-defined libraries and custom Note.js services with Pro-Code.
Programming and markup languages used for Pro-Code Development are Java Script, Typescript, Angular, Java, HTML, and CSS.
The Designer offers several options for extending Designer services with user-defined implementations. Different programming languages are used depending on which customizations are made:
Deployment
The Runtime assembles the platform-independent image with settings and parameters and transforms it into a platform-configured image.
This image can then be deployed directly via the Designer or via the service administration on a Docker or Kubernetes setup.

Overview of the model images
After deployment, developers and administrators can manage the services in the administration.
If your Scheer PAS installation is running on a Docker compose setup, the containers are handled on a single server.
If your Scheer PAS installation is running on a Kubernetes setup, you have a provisioned cluster including modularized PAS components running. Internal service communication is encrypted via mutual TLS.
Process Execution
After successful deployment, the container is started automatically. Starting a service is possible in various ways:
For UI-based services, a URL is generated that can be used to execute the applicaiton. The URL is stored both in the service administration and directly in the Designer and starts the service via a generated Angular UI interface.
Especially for non-UI-based services, timed events or API endpoints can also be used to start the service.
The xUML Runtime is responsible for the general execution of the compiled service.
During execution, persistent state management ensures the storage of data objects and state machines preserve the states during asynchronous communication:
Synchronous execution relates to the process flow, following the sequence defined in the BPMN editor.
Asynchronous execution involves communication with interfaces via adapters and connectors, which are modeled during integration and executed within the execution flow.
Runtime
The xUML Runtime is comparable to other virtual machines, such as Node or JVM, as it executes code that was previously defined by the user.
The Compiler converts a Designer service to a repository file and the xUML Runtime executes this repository.
The xUML Runtime interprets the platform configured model image (compiled Service) and is entirely written in C/C++.
It exposes service ports on highly multithreaded socket listeners and links dynamically native adapter libraries (SAP, Oracle, MySQL, Curl, OpenSSL, and more).
The Runtime writes model and transaction logs and also model traces and maintains the Persistent State DB Oracle (preferred) MySQL MS-SQL.
It forwards exceptions to stderr exposes a control port for managing at execution time.

Overview of the xUML Runtime and its functions
Persistent State
Technically, creating a persistent state object means to create entries in generic database tables.
These hold information about the state of the object and all object data.
After creation of a persistent state object, only the object's state machine diagram defines its lifecycle.
Only events that are defined in the state machine diagram can change object states and object data.

Life cycle of a persistent state object
The persistent states (in short: P-States) contain information on the process steps, the content of persisted variables and other information. These persisted variables were previously created in the Designer in the execution flow and could be used throughout the entire process.
For more information about P-State management in Scheer PAS refer to Persistent State Data Storage.
Root State Machine
Most business processes involve asynchronous processing and require to hold states persistent while communicating via asynchronous messages.
In UML, this behavior is supported by state machines. A state diagram defines all the states that a process instance can assume - including the start and end states. While in a state, the process instance can receive asynchronous messages via signals, e.g. an abortion signal. Changes of state are referred to as transitions.
For each BPMN process that has been modeled with the Designer, the compiled xUML service contains one standard root state machine diagram that supports error handling and compensation as well as history states.
For more information about the root state machine and the individuell states refer to https://doc.scheer-pas.com/designer/latest/xuml-service-state-machines.

Behavior and error handling of the state machine
Administration
The Scheer PAS platform offers a range of management components such as:
User Management: User administration is integrated with identity management but offers a more user-friendly interface and the ability to create and assign new namespaces (profiles).
Permissions (access to other PAS components such as API Management or Log Analyzer), are assigned in the user administration and mirrored in the identity management.
Identity Management: The pas Identity management is based on Keycloak. This open-source identity and access management solution enables the implementation of various authorization concepts, such as SSO or integrations with third-party systems. It offers more extensive configuration options than the upstream user management.
API Management: Our API Management component allows you to manage and publish your APIs, enhance them with policies, control access and analyze their collected metrics. The main elements of API Management are Clients, Plans and APIs. All of them can contain Policy definitions. To be used, they need to be grouped by an Organization.
(Service) Administration: The PAS Administration allows to manage your developed xUML services. Users with a special administration profile are also able to manage the platform’s own services. In the administration, a deployment wizard is available that allows to directly deploy compiled services - without having to resort to the Designer. Via the administration, users also have access to service status details and can quickly perform actions such as starting or stopping services. From the administration interface, users can view details of individual services like building oder deployment information, endpoints and used libraries. It is also possible to set log levels, inspect persistent state objects and service logs.
Analysis
The Scheer PAS platform also supports developers and users in the ongoing analysis and optimization of services. For debugging and regression tests, developers can use the Analyzer. The Log Analyzer assists with troubleshooting. Users, on the other hand, can use Process Mining to visualize and evaluate processes or process data and KPIs (if configured). Both Log Analyzer and Process Mining are accessible via the PAS Portal (permissions required). The PAS Analzyer is a separate tool that must be installed on the development computer.
Log Analyzer: The Log Analyzer uses OpenSearch for data storage and OpenSearch Dashboards for log analysis. OpenSearch Dashboards allow you to search, view, and visualize data in charts, tables, and maps. Standard retention time for logs is 30 days.
Process Mining: Process Mining investigates service process flow issues, identifies causes, and evaluates data. The analytics collector service collects transaction log data and stores it in an operational data warehouse. Users can visualize the data in customizable dashboards, requiring proper configuration of the collector service, retention time, and log level.
Scheer PAS Analyzer: The Analyzer is a tool to support PAS developers with the tasks of runtime analysis, troubleshooting of distributed systems and regression testing. It allows you to inspect the execution path of a deployed xUML service asynchronously, and you can review this trace graphically in order to debug your service, or verify its correct functionality.