SlideShare a Scribd company logo
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: [ trn]+ -> 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
Resources
Mazzola, 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
QUESTIONS?
LUCA.MAZZOLA@DFKI.DE
MAZZOLA.LUCA@GMAIL.COM
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

More Related Content

PPTX
How to code review for awesomeness and clarity
PDF
Introducing a horizontally scalable, inference-based business Rules Engine fo...
PDF
Dr. Andreas Lattner- Setting up predictive services with Palladium
PDF
OutSystsems User Group Netherlands September 2024.pdf
PDF
AngularJS Best Practices
PDF
Beyond simple benchmarks—a practical guide to optimizing code
PDF
(Micro?)services architecture in practice
PDF
Skye Sant - lead ux/product case studies
How to code review for awesomeness and clarity
Introducing a horizontally scalable, inference-based business Rules Engine fo...
Dr. Andreas Lattner- Setting up predictive services with Palladium
OutSystsems User Group Netherlands September 2024.pdf
AngularJS Best Practices
Beyond simple benchmarks—a practical guide to optimizing code
(Micro?)services architecture in practice
Skye Sant - lead ux/product case studies

Similar to Pattern-Based Semantic Composition of Optimal Process Service Plans with ODERU (20)

PPTX
Benefits of Using MongoDB Over RDBMSs
PDF
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
PDF
MineDB Mineral Resource Evaluation White Paper
PDF
Large scale data capture and experimentation platform at Grab
PDF
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
PDF
AngularJS in large applications - AE NV
PDF
Ecmascript 2015 – best of new features()
PDF
MongoDB Stitch Introduction
PDF
maXbox Starter 43 Work with Code Metrics ISO Standard
PDF
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
PPTX
Monitoring Weave Cloud with Prometheus
PDF
"CCIE Service Provider: Blueprint for Excellence"
PPTX
Making Oracle Services work
PPTX
BPSim The Interchange Format
PDF
Are API Services Taking Over All the Interesting Data Science Problems?
PDF
ELAVARASAN.pdf
PDF
How to Lower the Cost of Deploying Analytics: An Introduction to the Portable...
PPTX
SplunkLive! London 2017 - Using Machine Learning to Feed Hungry People
PDF
Real Time Analytics with Apache Cassandra - Cassandra Day Munich
PPTX
Benefits of Using MongoDB Over RDBMS (At An Evening with MongoDB Minneapolis ...
Benefits of Using MongoDB Over RDBMSs
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MineDB Mineral Resource Evaluation White Paper
Large scale data capture and experimentation platform at Grab
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
AngularJS in large applications - AE NV
Ecmascript 2015 – best of new features()
MongoDB Stitch Introduction
maXbox Starter 43 Work with Code Metrics ISO Standard
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Monitoring Weave Cloud with Prometheus
"CCIE Service Provider: Blueprint for Excellence"
Making Oracle Services work
BPSim The Interchange Format
Are API Services Taking Over All the Interesting Data Science Problems?
ELAVARASAN.pdf
How to Lower the Cost of Deploying Analytics: An Introduction to the Portable...
SplunkLive! London 2017 - Using Machine Learning to Feed Hungry People
Real Time Analytics with Apache Cassandra - Cassandra Day Munich
Benefits of Using MongoDB Over RDBMS (At An Evening with MongoDB Minneapolis ...
Ad

More from Luca Mazzola (19)

PDF
Document semantic characterization
PDF
Concept extraction with convolutional neural networks
PDF
DLP: a Web-based Facility for Exploration and Basic Modification of Ontologie...
PDF
ODERU: Optimisation of Semantic Service-Based Processes in Manufacturing
PDF
Phd defence: Learner Models in Online Personalized Educational Experiences: a...
PDF
MRC12_120915_MOCLog
ODP
Icalt2012 presentation
ODP
Presentazione moodle notification_moodlemoot2011_trieste
PDF
Ifhro2010
PDF
Presentazione Gvis MoodleMoot 2010
PDF
Presentazione GISMO moodlemoot2010 - Bari
ODP
GVIS: a framework for graphical mashups of heterogeneous sources to support d...
PDF
Protezione Dati Ambito Biomedico Intro
PDF
Supporting Learners in Adaptive Learning Environments through the enhancement...
ODP
Toward adaptive presentations of student models in eLearning environments
PDF
Towards Home Healthcare Informatics
PDF
Moodle e la verifica dell'uso delle risorse
PDF
Presentazione per MIC 2008
PDF
Verso il ritorno della oralita? Una esperienza di radio online nella scuola ...
Document semantic characterization
Concept extraction with convolutional neural networks
DLP: a Web-based Facility for Exploration and Basic Modification of Ontologie...
ODERU: Optimisation of Semantic Service-Based Processes in Manufacturing
Phd defence: Learner Models in Online Personalized Educational Experiences: a...
MRC12_120915_MOCLog
Icalt2012 presentation
Presentazione moodle notification_moodlemoot2011_trieste
Ifhro2010
Presentazione Gvis MoodleMoot 2010
Presentazione GISMO moodlemoot2010 - Bari
GVIS: a framework for graphical mashups of heterogeneous sources to support d...
Protezione Dati Ambito Biomedico Intro
Supporting Learners in Adaptive Learning Environments through the enhancement...
Toward adaptive presentations of student models in eLearning environments
Towards Home Healthcare Informatics
Moodle e la verifica dell'uso delle risorse
Presentazione per MIC 2008
Verso il ritorno della oralita? Una esperienza di radio online nella scuola ...
Ad

Recently uploaded (20)

PPTX
Cell Membrane: Structure, Composition & Functions
PPTX
Derivatives of integument scales, beaks, horns,.pptx
PPTX
2. Earth - The Living Planet earth and life
PDF
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
PDF
An interstellar mission to test astrophysical black holes
PDF
The scientific heritage No 166 (166) (2025)
PPTX
2Systematics of Living Organisms t-.pptx
PDF
Unveiling a 36 billion solar mass black hole at the centre of the Cosmic Hors...
PDF
HPLC-PPT.docx high performance liquid chromatography
PDF
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
PPTX
2. Earth - The Living Planet Module 2ELS
PPTX
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
PDF
Placing the Near-Earth Object Impact Probability in Context
PPT
POSITIONING IN OPERATION THEATRE ROOM.ppt
PPTX
The KM-GBF monitoring framework – status & key messages.pptx
PPTX
cpcsea ppt.pptxssssssssssssssjjdjdndndddd
PPT
protein biochemistry.ppt for university classes
PPTX
BIOMOLECULES PPT........................
PDF
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
PPTX
Protein & Amino Acid Structures Levels of protein structure (primary, seconda...
Cell Membrane: Structure, Composition & Functions
Derivatives of integument scales, beaks, horns,.pptx
2. Earth - The Living Planet earth and life
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
An interstellar mission to test astrophysical black holes
The scientific heritage No 166 (166) (2025)
2Systematics of Living Organisms t-.pptx
Unveiling a 36 billion solar mass black hole at the centre of the Cosmic Hors...
HPLC-PPT.docx high performance liquid chromatography
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
2. Earth - The Living Planet Module 2ELS
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
Placing the Near-Earth Object Impact Probability in Context
POSITIONING IN OPERATION THEATRE ROOM.ppt
The KM-GBF monitoring framework – status & key messages.pptx
cpcsea ppt.pptxssssssssssssssjjdjdndndddd
protein biochemistry.ppt for university classes
BIOMOLECULES PPT........................
VARICELLA VACCINATION: A POTENTIAL STRATEGY FOR PREVENTING MULTIPLE SCLEROSIS
Protein & Amino Acid Structures Levels of protein structure (primary, seconda...

Pattern-Based Semantic Composition of Optimal Process Service Plans with ODERU

  • 1. 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
  • 2. • 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
  • 3. • SOA • BPMN optimization • XaaS • Industry 4.0 • QoS Manufacturing Domain Context 05/Dec/2017iiWAS 2017 , Luca Mazzola
  • 4. • 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
  • 6. 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
  • 7. 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: [ trn]+ -> skip ;
  • 8. 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
  • 9. Architecture – PSP 2 steps: Service selection + Optimal Service composition 05/Dec/2017iiWAS 2017 , Luca Mazzola
  • 10. 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 >
  • 11. Architecture – PSP Multiple PSP based on gateway “expansion” 05/Dec/2017iiWAS 2017 , Luca Mazzola
  • 12. 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
  • 13. An Application: services iiWAS 2017 , Luca Mazzola SA SB1+2+3
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. Resources Mazzola, 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
  • 18. THANKS FOR THE ATTENTION QUESTIONS? LUCA.MAZZOLA@DFKI.DE MAZZOLA.LUCA@GMAIL.COM 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