Pattern-Based Semantic Composition of Optimal Process Service Plans with ODERU
-
Upload
luca-mazzola -
Category
Science
-
view
10 -
download
0
Transcript of Pattern-Based Semantic Composition of Optimal Process Service Plans with ODERU
Pattern-Based Semantic Composition
of Optimal Process Service Plans with
ODERU
Luca Mazzola, Patrick Kapahnke, and Matthias Klusch
German Research Center for Artificial Intelligence (DFKI), Saarbrücken, Germany
iiWAS conference 2017– Salzburg
05/Dec/2017iiWAS 2017 , Luca Mazzola
• Context
• Needs
• ODERU architecture and overview• Semantics for tasks and Services
• Infrastructure and surrounding PEE
• Constraint Optimization for QoS
• Process service plans
• An Application
• Results
• Conclusions
Agenda
05/Dec/2017iiWAS 2017 , Luca Mazzola
• SOA
• BPMN optimization
• XaaS
• Industry 4.0
• QoS Manufacturing Domain
Context
05/Dec/2017iiWAS 2017 , Luca Mazzola
• ICT Integration for BPMN in Manufacturing
• Dynamic design and execution of BPMN
• Adaptation to changing context
• Service and Process Plan Optimisation
• Functional and non-Functional requirements
• Semantic models and KPI representation
• QoS consideration and aggregation methods
• Effective composition of complete PSP
• Support for run-time incremental re-planning
Needs for ODERU
05/Dec/2017iiWAS 2017 , Luca Mazzola
Architecture - Infrastructure
05/Dec/2017iiWAS 2017 , Luca Mazzola
Architecture – COP for QoS
• BPMN extension for (COP) Constraint Optimization
Problem definition, at the process level
• Based on a newly defined COPSE2 grammar
• Usage of complex formulas
• Adaptable type of constraints
• User-definable optimization objective function
• Internally the COP is solved by the JaCoP package
• Result encoded back into the produced PSP in term
of services selection and/or variable assignments
05/Dec/2017iiWAS 2017 , Luca Mazzola
COPSE2 grammar
05/Dec/2017iiWAS 2017 , Luca Mazzola
1 grammar COPSE2_meta ;
3 problem:'PROBLEM ' type solver problemclass probleminstance output ? 'END
PROBLEM ';
5 type:'TYPE ' Linear Objective 'END TYPE ';
6 Linear:('linear '|'nonlinear ');
7 Objective:('single '|'multi ');
9 solver:'SOLVER ' Solver 'END SOLVER ';
10 Solver:(' centralized '|'distributed '|'both ');
12 problemclass:'CLASS ' variables constants ? functions ? constraints ?
objectivefunction + 'END CLASS ';
14 variables:'VARIABLES ' ( Identifier | ArrayIdentifier )+ 'END VARIABLES ';
15 constants:'CONSTANTS ' ( Identifier | ArrayIdentifier )+ 'END CONSTANTS ';
16 functions:'FUNCTIONS ' function + 'END FUNCTIONS ';
17 functionSignature:Identifier '(' identifierList ')';
18 function:functionSignature '=' ( expr | ifexpr );
20 Comparison:' >='|' <='|'== '|'!= '|'>'|'<';
21 Assignment:'=';
22 expr:'-'? term (('+'|'-') term )*;
23 term:mterm (('*'|'/'|'^') mterm )*;
24 dim:Identifier '. length ' ;
26 loop:('SUM '|'PRODUCT ') '(' Identifier ',' ( Number | dim) ',' ( Number | dim) ',‘
expr ')';
28 mterm:( Identifier | ArrayElem | REAL |'(' expr ')'|('MIN '|'MAX ') '{' expr (',‘ expr
)* '}'| functionSignature | dim| Number | loop );
30 ifexpr:'IF ' expr Comparison ( expr | Number ) 'THEN ' ( expr | ifexpr ) 'ELSE ' (
expr | ifexpr ) 'END IF ';
32 constraints:'CONSTRAINTS ' constraint + 'END CONSTRAINTS ';
33 constraint:expr ( Comparison | Assignment ) ( expr | Identifier | Number );
35 objectivefunction:('minimize '|'maximize ') expr ('->' URI)?;
37 probleminstance:'INSTANCE ' variabledomains ? constantvalues ? 'END
INSTANCE ';
39 variabledomains:'DOMAINS ' vdomain + 'END DOMAINS ';
40 constantvalues:'VALUES ' cvalue + input ? 'END VALUES ';
42 input:'INPUT ' inputEntry + 'END INPUT ';
43 inputEntry:Identifier '<-' '(' Identifier ',' URI ')';
44 URI:'http :// ' ([a-zA -Z0 -9/.]) + '#' ([a-zA -Z0 -9]) +;
46 vdomain:( Identifier | ArrayIdentifier ) ( Number | '[' Number ',' Number ']' |
'{' Number (',' Number )* '}');
47 cvalue:( Identifier | ArrayElem ) Assignment Number ;
49 output:'OUTPUT ' ( valueAssignment | serviceSelection )+ 'END OUTPUT ';
50 valueAssignment:( Identifier | ArrayElem ) '->' '(' Identifier ',' URI ')';
51 serviceSelection:ArrayIdentifier ':: ' Identifier ;
53 fragment Letter:[a-zA -Z];
54 fragment ANumber:[0 -9];
55 fragment INF:('INF '|'-INF ');
57 Number:(( '-'? ( ANumber +| ANumber * '.' ANumber +) ('*' ('10 '|'e') '^' '-'?
ANumber +)?)|INF);
59 Identifier:Letter ( Letter | ANumber |'_')*;
60 ArrayIdentifier:Identifier '[] ';
61 ArrayElem:Identifier '['Identifier ']';
62 identifierList:Identifier (',' Identifier )*;
64 WS: [ \t\r\n]+ -> skip ;
Example of COP definition
05/Dec/2017iiWAS 2017 , Luca Mazzola
1 PROBLEM
3 TYPE linear single END TYPE
4 SOLVER both END SOLVER
6 CLASS
7 VARIABLES
8 S
9 END VARIABLES
11 CONSTANTS
12 α β γ Costs[] Quality[] Tolerance[] Limit_C Min_Q Max_T
13 END CONSTANTS
15 FUNCTIONS
16 Objective_Function (S) = SUM (i ,1,S.length ,S[i] * (α * Costs[i]
+ β * (1 - Quality[i]) + γ * Tolerance[i]) )
17 Produced_Quality (S) = PRODUCT (i ,1,S. length , IF S[i] == 1
THEN Quality[i] ELSE 1 END IF )
18 Produced_Tolerance (S) = SUM (i ,1,S.length ,S[i] *
Tolerance[i])
19 END FUNCTIONS
21 CONSTRAINTS
22 SUM (i ,1,S.length , Costs[i]) < Limit_C
23 Produced_Quality (S) >= Min_Q
24 Produced_Tolerance (S) < Max_T
25 END CONSTRAINTS
27 minimize Objective_Function (S) ->
http://CREMA/Ont/fake.owl#TaskCosts
29 END CLASS
31 INSTANCE
33 DOMAINS
34 S[]{0 ,1}
35 END DOMAINS
37 VALUES
38 α = 1.0 β = 0.2 γ = 0.1 Limit_C = 125 Min_Q = 0.5 Max_T = 3
39 INPUT
40 Costs <- ( Task_ X, http://CREMA/Ont/fake.owl#ServiceCosts
)
41 Quality <- ( Task_ X,
http://CREMA/Ont/fake.owl#ServiceQuality )
42 Tolerance <- ( Task_ X,
http://CREMA/Ont/fake.owl#ServiceTolerance )
43 END INPUT
44 END VALUES
46 END INSTANCE
48 OUTPUT
49 Produced_Quality (S) -> ( Task_ X
http://CREMA/Ont/fake.owl#TaskQuality )
50 Produced_Tolerance (S) -> ( Task_ X,
http://CREMA/Ont/fake.owl#TaskTolerance )
51 END OUTPUT
53 END PROBLEM
Architecture – PSP
2 steps: Service selection + Optimal Service composition
05/Dec/2017iiWAS 2017 , Luca Mazzola
Example of PSP
05/Dec/2017iiWAS 2017 , Luca Mazzola
1 <? xml version ="1.0" encoding =" UTF -8" ?>
2 <bpmn:definitions xmlns:bpmn=" http://www.omg.org/spec/BPMN
/20100524/MODEL“ xmlns:crema ="http ://crema-project.eu“
3 id="Definitions_1" targetNamespace ="http://bpmn.io/schema/bpmn">
4 <bpmn:process id="Process_1 " isExecutable =" true ">
5 <bpmn:extensionElements >
6 <crema:metadata >
7 <crema:optimization >
8 <crema:formulation > <![ CDATA [...]] > </ crema:formulation >
9 <crema:results >
10 <crema :log > <![ CDATA [ ...]] > </ crema :log >
11 <crema:dimension name=" Objective_Function (S)"><crema:value
>37</crema:value ></ crema:dimension >
12 </ crema:results >
13 </ crema:optimization >
14 <crema:implementation >
15 <crema:service implements="ServiceTask_1yjnl8n " seq ="1" origin
="optimization ">
16 <crema:marketplaceServiceID >6e0940f0-289f-45ee-b514
</crema:marketplaceServiceID >
17 <crema:owlsDescription > http ://.../6e0940f0-289f-45ee-b514.owl
</crema:owlsDescription >
18 <crema:assignments >
19 <crema:variable name =" Produced_Quality " service ="6e0940f0-
289f-45ee-b514-efd533ae9be0">
20 <crema :value >186.92 </ crema :value >
21 </crema:variable >
22 <crema:variable name =" Produced_Tolerance " service ="6e0940f0-
289f-45ee-b514-efd533ae9be0">
23 <crema :value >186.92 </ crema :value >
24 </crema:variable >
25 </ crema:assignments >
26 <crema:bindings >
27 <crema:binding >
28 <crema:origin >
29 <crema:variable name =" SparePart1 " service =" b5be92ca-a10e-
4386-80be-ead09a8cb9ce " />
30 </ crema:origin >
31 <crema:target >
32 <crema:variable name =" SpRef " service ="6e0940f0-289f-45ee-
b514-efd533ae9be0 " />
33 </ crema:target >
34 </ crema:binding >
35 <crema:binding >
36 <crema:origin >
37 <crema:env />
38 </ crema:origin >
39 <crema:target >
40 <crema:variable name =" Cu1 " service ="6e0940f0-289f-45ee-b514 -
efd533ae9be0 " />
41 </ crema:target >
42 </ crema:binding >
43 </ crema:bindings >
44 </ crema:service >
45 ...
46 </ crema:implementation >
47 </ crema:metadata >
48 </ bpmn:extensionElements >
49 ...
50 </ bpmn:process >
51 </ bpmn:definitions >
Architecture – PSP
Multiple PSP based on gateway “expansion”
05/Dec/2017iiWAS 2017 , Luca Mazzola
An Application: PM
05/Dec/2017iiWAS 2017 , Luca Mazzola
• Very simple PM: raw material -> delivered brake disk
• Include the piece bending, drilling and engraving
• Need to be executed in two different production parts
• Different services (simple or composed) existing to
achieve the only “single usage” resource in the PM
(Mechanical Production), with different QoS
An Application: services
iiWAS 2017 , Luca Mazzola
SA
SB1+2+3
An Application: COP
05/Dec/2017iiWAS 2017 , Luca Mazzola
• This is for the first instance (I1)
• For I2 the constant values are:
ϕ = 0.8
χ = 0.1
ψ = 1.0
Functions Problem definition
Results
05/Dec/2017iiWAS 2017 , Luca Mazzola
Objective function values Comparison for I1& I2
(α = 1.0 β = 0.2 γ = 0.1)
With different parameters, the PSP can conflict for the
same resource:
User can decide which instance to make suboptimal
Conclusions
05/Dec/2017iiWAS 2017 , Luca Mazzola
• ODERU : innovative flexible solution to optimal
service composition of process models
• Create functionally correct plans and supports
optimization of non-functional aspects (QoS-based)
• Advantages:
• Full integration with the BPMN process model
• directly enactable PSP by an PEE (execution
environment) as it contains services selection,
data bindings, and variable assignments
• Example: optimise two instances of a mechanical
process (disk brake production) in case of service
exclusive usage and with conflicting requirements
ResourcesMazzola, L., Kapahnke, P., Vujic, M., & Klusch, M. (2016). CDM-Core: A Manufacturing Domain
Ontology in OWL2 for Production and Maintenance. In KEOD (pp. 136-143).
Mazzola, L., Kapahnke, P., Waibel, P., Hochreiner, C., & Klusch, M. (2017). FCE4BPMN: On-
demand QoS-based optimised process model execution in the cloud. In Proceedings of the
23rd ICE/IEEE ITMC Conference. IEEE.
Mazzola L., Kapahnke P., Klusch M. (2017) ODERU: Optimisation of Semantic Service-Based
Processes in Manufacturing. In: Różewski P., Lange C. (eds) Knowledge Engineering and
Semantic Web. KESW 2017. Communications in Computer and Information Science, vol 786.
Springer, Cham
Mazzola L., Kapahnke P., Klusch M. (2017). Pattern-Based Semantic Composition of Optimal
Process Service Plans with ODERU. In Proceedings of The 19th Int. Conference on
Information Integration and Web-based Applications & Services, Salzburg, Austria, December 4–
6, 2017 (iiWAS ’17), 10 pages. DOI: https://doi.org/10.1145/3151759.3151773
Mazzola L., and Kapahnke P. (2017). DLP: a Web-based Facility for Exploration and Basic
Modification of Ontologies by Domain Experts. In Proceedings of The 19th Int. Conference on
Information Integration and Web-based Applications & Services, Salzburg, Austria, December 4–
6, 2017 (iiWAS ’17), 5 pages. DOI: https://doi.org/10.1145/3151759.3151816
05/Dec/2017iiWAS 2017 , Luca Mazzola
THANKS FOR THE ATTENTION
http://www.crema-project.eu
H2020-RIA agreement 637066
https://www.linkedin.com/in/mazzolaluca/
The ODERU code can be found at:
https://oderu.sourceforge.io/
05/Dec/2017iiWAS 2017 , Luca Mazzola