Advertisement

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

Research Associate
Dec. 5, 2017
Advertisement

More Related Content

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

Advertisement

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
  5. Architecture - Infrastructure 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
Advertisement