From b00ef1d816c03dd3ff450d507c1ba70008629073 Mon Sep 17 00:00:00 2001 From: Gabriele Cardosi Date: Tue, 23 Jul 2024 15:10:58 +0200 Subject: [PATCH] [incubator-kie-issues#1395] Write developer documentation for the DMN implementation (#6029) * [DBACLD-143918] Write developer documentation for the DMN implementation - WIP * [DBACLD-143918] Write developer documentation for the DMN implementation - WIP * [DBACLD-143918] Write developer documentation for the DMN implementation - WIP * [DBACLD-143918] Write developer documentation for the DMN implementation - WIP * [DBACLD-143918] Write developer documentation for the DMN implementation * [incubator-kie-issues#1395] Add puml explanation to main README.md * [incubator-kie-issues#1395] Expand guide as per PR suggestion --------- Co-authored-by: Gabriele-Cardosi --- README.md | 10 ++ kie-dmn/Developer_Guide.md | 188 +++++++++++++++++++++++++++++++++++ kie-dmn/uml/Compilation.png | Bin 0 -> 83051 bytes kie-dmn/uml/Compilation.puml | 45 +++++++++ kie-dmn/uml/Execution.png | Bin 0 -> 117194 bytes kie-dmn/uml/Execution.puml | 55 ++++++++++ 6 files changed, 298 insertions(+) create mode 100644 kie-dmn/Developer_Guide.md create mode 100644 kie-dmn/uml/Compilation.png create mode 100644 kie-dmn/uml/Compilation.puml create mode 100644 kie-dmn/uml/Execution.png create mode 100644 kie-dmn/uml/Execution.puml diff --git a/README.md b/README.md index 161caebddd8..00110beaeda 100644 --- a/README.md +++ b/README.md @@ -83,5 +83,15 @@ The following two commands will execute tests on machine with locale different t 1. `make test -Ptest-en` 2. `make test -DTestEn` +Documenting tips +================ + +UML diagrams have been used for architectural and design documentation. Those diagrams are in ".puml" format and have been created using the [PlantUML](https://plantuml.com/https://plantuml.com/) tool. +Plugins exists to use it in different IDE: +* [IDEA](https://plugins.jetbrains.com/plugin/7017-plantuml-integration) +* [Eclipse](https://marketplace.eclipse.org/content/plantuml-plugin) +* [VisualStudio](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) + + diff --git a/kie-dmn/Developer_Guide.md b/kie-dmn/Developer_Guide.md new file mode 100644 index 00000000000..7dee4a57417 --- /dev/null +++ b/kie-dmn/Developer_Guide.md @@ -0,0 +1,188 @@ +# kie-dmn - Developer Guide + +This module (and all its submodules) contains the code that make up the DMN engine. + +The engine is responsible, in very general terms, of +1. compile the dmn model +2. validate it +3. evaluate it, against a given input; please note that execution could be statically-interpreted or dynamically-code-generated (see later on [Interpreted vs Codegen](#interpreted-vs-codegen)) + +## Structure +### DTOs +#### * [Definitions](kie-dmn-model%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fmodel%2Fapi%2FDefinitions.java): the direct representation of the original XML +#### * [DMNResource](kie-dmn-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fcore%2Fassembler%2FDMNResource.java): a wrapper used to forward `Definitions` with additional informations (e.g. [ResourceWithConfiguration](..%2Fkie-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fapi%2Fio%2FResourceWithConfiguration.java)) +#### * [DMNNode](kie-dmn-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fapi%2Fcore%2Fast%2FDMNNode.java): the _ast_ representation of high-level nodes inside the model; it map to **_BusinessKnowledge_**, **_Decision_**, **_DecisionService_**, **_ItemDef_**, or **_InputData_** +#### * [BaseNode](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Flang%2Fast%2FBaseNode.java): the _ast_ representation of low-level nodes inside the model (e.g. **_Boolean_**, **_AtLiteral_**, **_UnaryTest_**, **_String_**, ecc.) +#### * [CompiledFEELExpression](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Fcodegen%2Ffeel11%2FCompiledFEELExpression.java): the object that represents and actually executes a specific _FEEL-expression_; it is also a `FunctionalInterface`, since it extends `Function` +#### * [InterpretedExecutableExpression](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Flang%2Fimpl%2FInterpretedExecutableExpression.java): the `CompiledFEELExpression` instantiated for statically-interpreted execution of the specific _FEEL-expression_ +#### * [CompiledExecutableExpression](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Flang%2Fimpl%2FCompiledExecutableExpression.java): the `CompiledFEELExpression` instantiated for code-generated execution of the specific _FEEL-expression_ +#### * [ProcessedExpression](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Fcodegen%2Ffeel11%2FProcessedExpression.java): the result of the compilation of a specific _FEEL-expression_; in turns, it wraps the actual `CompiledFEELExpression` to be executed; please note that a _FEEL-expression_ could represent an aggregation of other sub-expressions; so, in turns, a `ProcessedExpression` may contain nested ones +#### * [DMNExpressionEvaluator](kie-dmn-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fcore%2Fapi%2FDMNExpressionEvaluator.java): a `FunctionalInterface` that it is invoked by evaluation objects (e.g. `Decision`) to actually invoke the generated `ProcessedExpression`; +#### * [DMNModel](kie-dmn-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fapi%2Fcore%2FDMNModel.java): the high-level result of the compilation, to be used to invoke the overall evaluation; it contains `Definitions` and all the `DMNNode`s obtained by compilation +#### * [DMNResult](kie-dmn-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fapi%2Fcore%2FDMNResult.java): an instance that encapsulates all the information resulting from a DMN service invocation; +#### * [DMNDecisionResult](kie-dmn-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fapi%2Fcore%2FDMNDecisionResult.java): an instance that stores the result of the evaluation of a decision + +### Code usage + +#### Compilation +The simplest way to compile a model is to instantiate a [DMNRuntime](kie-dmn-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fapi%2Fcore%2FDMNRuntime.java) from its file, e.g. + ```java + DMNRuntime runtime = DMNRuntimeUtil.createRuntime("simple-item-def.dmn", this.getClass() ); + ``` +[DMNRuntimeUtil](kie-dmn-core%2Fsrc%2Ftest%2Fjava%2Forg%2Fkie%2Fdmn%2Fcore%2Futil%2FDMNRuntimeUtil.java) has different overrides of the `createRuntime` method + +#### Validation +To validate a dmn model, it is necessary to: +1. get an instance of [DMNValidator](kie-dmn-validation%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fvalidation%2FDMNValidator.java), built with some [DMNProfile](kie-dmn-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fcore%2Fcompiler%2FDMNProfile.java); e.g. + ```java + List defaultDMNProfiles = DMNAssemblerService.getDefaultDMNProfiles(ChainedProperties.getChainedProperties(ClassLoaderUtil.findDefaultClassLoader())); + DMNValidator validator = DMNValidatorFactory.newValidator(defaultDMNProfiles); + ``` +2. invoke one of the `DMNValidator` methods; e.g. + ```java + List validate = validator.validate( + getFile("dmn14simple.dmn"), + VALIDATE_SCHEMA, VALIDATE_MODEL, VALIDATE_COMPILATION); + ``` + +### Execution +To execute a dmn model, it is necessary to: +1. get an instance of `DMNRuntime`, built around the given model; e.g. + ```java + DMNRuntime runtime = DMNRuntimeUtil.createRuntime("simple-item-def.dmn", this.getClass() ); + ``` +2. get the instance of `DMNModel` out of the former; e.g. + ```java + DMNModel dmnModel = runtime.getModel("https://github.com/kiegroup/kie-dmn/itemdef", "simple-item-def" ); + ``` +3. instantiate a [DMNContext](kie-dmn-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fapi%2Fcore%2FDMNContext.java) with the required input; e.g. + ```java + DMNContext context = DMNFactory.newContext(); + context.set( "Monthly Salary", 1000 ); + ``` +4. get the `DMNResult` + ```java + DMNResult dmnResult = runtime.evaluateAll(dmnModel, context ); + ``` +5. depending on the model, the actual result could be stored in the given context, or inside a `DMNDecisionResult` + +Please note that `DMNRuntime` has different `evaluate*` methods + +### Execution flows + +#### Compilation + +The original xml is first parsed to `Definitions` by the [DMNMarshaller](kie-dmn-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fapi%2Fmarshalling%2FDMNMarshaller.java), that is a simple xml-marshaller([DMNAssemblerService#addResourcesAfterRules](kie-dmn-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fcore%2Fassembler%2FDMNAssemblerService.java)). + +Then, each `Definitions` is wrapped inside a `DMNResource` and _compiled_ by [DMNCompilerImpl](kie-dmn-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fcore%2Fcompiler%2FDMNCompilerImpl.java). + +Each element of the `Definitions` is further translated to `DMNNode`. + +Then, the text representing each `DMNNode` is compiled by the [DecisionCompiler](kie-dmn-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fcore%2Fcompiler%2FDecisionCompiler.java) and, in turn, by [FEELImpl](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Flang%2Fimpl%2FFEELImpl.java), that would return a `ProcessedExpression`. + +Inside `ProcessedExpression`, the expression is parsed to `org.antlr.v4.runtime.tree.ParseTree` by `org.kie.dmn.feel.parser.feel11.FEEL_1_1Parser` (auto-generated), and that `ParsedTree` is visited by [ASTBuilderVisitor](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Fparser%2Ffeel11%2FASTBuilderVisitor.java) to get the `BaseNode` **_ast_**, that recursively contains all the nested `BaseNode`s. + +Finally, the `CompiledFEELExpression` to be executed is returned (`ProcessedExpression#asCompiledFEELExpression`). + +![Sequence Diagram](uml/Compilation.png) + +##### Interpreted vs Codegen +The retrieved `CompiledFEELExpression` could be a _statically-interpreted_ `InterpretedExecutableExpression` (that wraps the original `BaseNode` **_ast_**) or could be a _dynamically-code-generated_ `CompiledExecutableExpression`. +In the first case, evaluation is executed by the DMN code as it is statically defined. +In the latter case, code is generated out of the given model. In that code, some variable will be directly written in the generated, speeding up its execution. +Beside that, generated code will invoke the same functions as the interpreted one. +Codegen execution is enabled in two ways: +1. adding the [DoCompileFEELProfile](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Fparser%2Ffeel11%2Fprofiles%2FDoCompileFEELProfile.java) to the FEEL instantiation +2. setting the `doCompile` boolean in the `CompilerContext` (`CompilerContext.setDoCompile(true)`) + +When codegen is enabled, first the model is read and parsed as in the interpreted way; then: +1. source code is generated out of the given `BaseNode` **_ast_** (by `ASTCompilerVisitor`) +2. code is compiled in-memory to a `CompiledExecutableExpression` (by [CompilerBytecodeLoader](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Fcodegen%2Ffeel11%2FCompilerBytecodeLoader.java)) +3. the above `CompiledFEELExpression` is wrapped and returned inside a `CompiledExecutableExpression` + +#### Validation +Depending on a series of flags ( `VALIDATE_SCHEMA`, `VALIDATE_MODEL`, `VALIDATE_COMPILATION`, `ANALYZE_DECISION_TABLE`), [DMNValidatorImpl](kie-dmn-validation%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fvalidation%2FDMNValidatorImpl.java) executes the validation of the given model. + +Behind the scenes, the validation also uses the _rule engine_ and the _rules_ defined in the different `kie-dmn/kie-dmn-validation/src/main/resources/org/kie/dmn/validation/DMNv1()/*.drl` files. +This validation is fired inside `private List validateModel(DMNResource mainModel, List otherModels)` + +#### Execution + +When `DMNRuntime#evaluate*` is invoked, a `DMNResult` is instantiated, containing a map with `DMNDecisionResult`s, initially marked as `NOT_EVALUATED`. + +Then, for each [DecisionNode](kie-dmn-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fapi%2Fcore%2Fast%2FDecisionNode.java): +1. the mapped `DMNDecisionResult` is marked as `EVALUATING` +2. the associated [DMNExpressionEvaluator](kie-dmn-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Fcore%2Fapi%2FDMNExpressionEvaluator.java) is retrieved (`DecisionNodeImpl#getEvaluator()`) +3. the `DMNExpressionEvaluator#evaluate(DMNRuntimeEventManager, DMNResult)` method is invoked (see [DMNExpressionEvaluator](#--dmnexpressionevaluatorjava-a-functionalinterface-that-it-is-invoked-by-evaluation-objects-eg-decision-to-actually-invoke-the-generated-processedexpression)) +4. inside the concrete implementation, a new `EvaluationContextImpl` is created from the `FEELImpl` instance +5. the `FEELimpl#evaluate(CompiledExpression expr, EvaluationContext ctx)` method is invoked, passing the `CompiledExpression` _**expression**_ wrapped by the current `DMNExpressionEvaluator` +6. in turns, the `ProcessedExpression#apply(EvaluationContext)` method is invoked (`ProcessedExpression` is the actual type of `CompiledExpression`) +7. this result in invocation of the wrapped `CompiledFEELExpression` **_executableFEELExpression_** (that could be an `InterpretedExecutableExpression` or a `CompiledExecutableExpression`) +8. this, recursively, iterate over all the nested expressions, invoking the [FEELFunction](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Fruntime%2FFEELFunction.java)s mapped to any expression, until a given final result is provided, as `Object` +9. then, the returned object is coerced to the type requested by the decision, the result is stored in the mapped `DMNDecisionResult`, and that latter is marked as `SUCCEEDED` + +![Sequence Diagram](uml/Execution.png) + +### [BaseFEELFunction](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Fruntime%2Ffunctions%2FBaseFEELFunction.java) + +Every _FEEL function_ is mapped to a concrete class extending `BaseFEELFunction`. + +During execution, this `FEELFunction` is looked-up by name, then the actual method to be invoked is looked-for, **_reflectively_**, based on the given input parameters. + +The critical point where this happen is the `BaseFEELFunction#getCandidateMethod(EvaluationContext ctx, Object[] originalInput, boolean isNamedParams)` method. + +Based on a algorithm defined in the [ScoreHelper](kie-dmn-feel%2Fsrc%2Fmain%2Fjava%2Forg%2Fkie%2Fdmn%2Ffeel%2Fruntime%2Ffunctions%2FScoreHelper.java), each `invoke` method is tested and provided a score. The one with the highest score will be used for actual function evaluation. + +### Coercion +`Coercion` is the feature for which a given object is transformed to an _equivalent_ object of a different type. +One example of that coercion is applied whenever a number, or a string representing a number, is received, in which case it is translated to `BigDecimal`. Another example is when a method expects a list, and a single object is provided: in that case, the object is _coerced_ to a singleton list. The rules for coercion are the ones provided by the DMN specification. + +During `invoke` method discovery, inside `BaseFEELFunction`, the given input parameters are _coerced_ to potentially match the ones expected by the current `invoke` method, and the _coerced_ values are stored to be used for the execution of that specific method. + + +## Development guidelines + +The main goal for the DMN engine are performance and maintainability. + +About the former, whenever important refactoring are done, it would be important to also execute [DMN Benchmarks](https://github.com/apache/incubator-kie-benchmarks/) to verify for modification of them, fixing eventual regressions. + +About the latter, it would be important to strive for simplicity of reading, instead of too-hard-to-read conciseness. +It would also be important to follow goo'ol' rules, like: +* self-explanatory method names +* self-resilient methods, i.e. a method should work by itself, and eventually manage failures, without depending on some status/assumption provided by invoking code +* meaningfully property/variable names +* focused classes, dedicated to a clear and specific task +* unit-test methods as much as possible, especially newly created ones + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kie-dmn/uml/Compilation.png b/kie-dmn/uml/Compilation.png new file mode 100644 index 0000000000000000000000000000000000000000..d53645f609347a71fabc9be12f482b5f30c6ce20 GIT binary patch literal 83051 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 DMNMarshaller : unmarshal(Reader) +DMNMarshaller -> DMNAssemblerService: Definitions +DMNAssemblerService -> DMNCompilerImpl: compile(Definitions, Resource, Collection || Resource, Collection) +DMNCompilerImpl -> DMNMarshaller : unmarshal(Resource.getReader()) +DMNMarshaller -> DMNCompilerImpl: Definitions +DMNCompilerImpl -> DMNCompilerImpl: new DMNModelImpl +loop every ItemDefinition in Definitions.getItemDefinition +DMNCompilerImpl -> DMNCompilerImpl: new ItemDefNodeImpl +DMNCompilerImpl -> DMNModelImpl: addItemDefinition(ItemDefNodeImpl) +end +loop every DRGElement in Definitions.getDrgElement +DMNCompilerImpl -> DRGElementCompiler: compileNode(DRGElement, DMNCompilerImpl, DMNModel) +DRGElementCompiler -> FEELImpl: compile(String, CompilerContext) +FEELImpl -> ProcessedExpression: new +ProcessedExpression -> FEEL_1_1Parser: compilation_unit +FEEL_1_1Parser -> ProcessedExpression: ParseTree +ProcessedExpression -> ParseTree: accept(ASTBuilderVisitor) +ParseTree -> ProcessedExpression: BaseNode +FEELImpl -> ProcessedExpression: asCompiledFEELExpression +ProcessedExpression -> FEELImpl: InterpretedExecutableExpression || CompiledExecutableExpression +FEELImpl -> DRGElementCompiler: DMNExpressionEvaluator +DRGElementCompiler -> DRGElement: setEvaluator(DMNExpressionEvaluator) +end +DMNCompilerImpl -> DMNAssemblerService: DMNModel +@enduml \ No newline at end of file diff --git a/kie-dmn/uml/Execution.png b/kie-dmn/uml/Execution.png new file mode 100644 index 0000000000000000000000000000000000000000..626343d4b54df0cccb2264c514b2d3d44c1e8697 GIT binary patch literal 117194 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 F{}1=7wYvZS literal 0 HcmV?d00001 diff --git a/kie-dmn/uml/Execution.puml b/kie-dmn/uml/Execution.puml new file mode 100644 index 00000000000..837af913034 --- /dev/null +++ b/kie-dmn/uml/Execution.puml @@ -0,0 +1,55 @@ +/' + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +'/ +@startuml +participant Actor +Actor -> DMNRuntimeUtil : createRuntime +DMNRuntimeUtil -> Actor: DMNRuntime +Actor -> DMNRuntime: getModel +DMNRuntime -> Actor : DMNModel +Actor -> DMNFactory: newContext +DMNFactory -> Actor: DMNContext +Actor -> Actor: (populate dmn context) +Actor -> DMNRuntime: evaluate*(DMNModel, DMNContext) +DMNRuntime -> DMNResultImplFactory: createResult +DMNResultImplFactory -> DMNRuntime: DMNResult +loop every DecisionNode in DMNModel.decisions +DMNRuntime -> DMNResult: getDecisionResultById +DMNResult -> DMNRuntime: DMNDecisionResultImpl +DMNRuntime -> DMNRuntime: DMNResult.setEvaluationStatus(EVALUATING) +loop every DMNNode in DecisionNode.dependencies +DMNRuntime -> DMNRuntime: DMNNode evaluate* +end +DMNRuntime -> DecisionNode: decision.getEvaluator().evaluate +DecisionNode -> DMNExpressionEvaluator: evaluate(DMNRuntimeEventManager, DMNResult) +DMNExpressionEvaluator -> FEELImpl: newEvaluationContext +FEELImpl -> DMNExpressionEvaluator: EvaluationContextImpl +DMNExpressionEvaluator -> FEELImpl: evaluate(CompiledExpression, EvaluationContextImpl) +FEELImpl -> ProcessedExpression: apply(EvaluationContextImpl) +ProcessedExpression -> CompiledFEELExpression: (InterpretedExecutableExpression || CompiledExecutableExpression) apply(EvaluationContextImpl) +CompiledFEELExpression -> ProcessedExpression: Object +ProcessedExpression -> FEELImpl: Object +FEELImpl -> DMNExpressionEvaluator: Object +DMNExpressionEvaluator -> DMNRuntime: EvaluatorResult(Object) +DMNRuntime -> CoerceUtil: coerceValue(DMNType, Object) +CoerceUtil -> DMNRuntime: Object +DMNRuntime -> DMNResult: setResult(Object) +DMNRuntime -> DMNResult: setEvaluationStatus(SUCCEEDED || FAILED) +DMNRuntime -> Actor: DMNResult +end +@enduml \ No newline at end of file