Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo | Basic Behaviour - Composition and Workflow
Basic Behaviour
Saverio Giallorenzo | sgiallor@cs.unibo.it
1 Laboratorio di Sistemi Operativi
Basic Behaviour Composition and Workflow Saverio Giallorenzo | - - PowerPoint PPT Presentation
Basic Behaviour - Composition and Workflow Basic Behaviour Composition and Workflow Saverio Giallorenzo | sgiallor@cs.unibo.it 1 Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi | Basic Behaviour -
Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo | Basic Behaviour - Composition and Workflow
Saverio Giallorenzo | sgiallor@cs.unibo.it
1 Laboratorio di Sistemi Operativi
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
include "MyInterface.iol"
Location: "socket://localhost:8000" Protocol: sodep Interfaces: MyInterface } main { sendNumber @ B ( 5 ) } include "MyInterface.iol" inputPort B { Location: "socket://localhost:8000" Protocol: sodep Interfaces: MyInterface } main { sendNumber( x ) }
interface MyInterface { OneWay: sendNumber( int ) }
2
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
3
rr-op( req )( res ){ // code block }
rr-op@Port( req )( res )
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
4
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
5
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
6
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
7
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
8
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
9
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
10
{ print@Console( "A" )()| print@Console( "B" )() }; print@Console( "C" )() print@Console( "A" )()| print@Console( "B" )(); print@Console( "C" )()
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
11
{ print@Console( "A" )() | print@Console( "B" )() };{ print@Console( "C" )() | print@Console( "D" )() }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
12
[ input_operation_1 ]{ branch_code_1 } [ ... ]{ ... } [ input_operation_n ]{ branch_code_n }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
13
[ oneWayOperation() ] { branch_code } [ requestResponseOperation()(){ rr_code } ] { branch_code }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
14
main { [ buy( stock )( response ) { buy@Exchange( stock )( response ) } ] { println@Console( "Buy order forwarded" )() } [ sell( stock )( response ) { sell@Exchange( stock )( response ) }] { println@Console( "Sell order forwarded" )() } }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
15
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
16
equals to
not equals to
lower than
lower than or equal to
greater than
greater than or equal to
negation
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
17
if( cond1 ){ … } else if ( cond2 ) { … } else if ( cond3 ){ … }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
18
while( condition ) { ... } for ( ini_code, cond, aftermath-code ) { ... }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
19
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
20
init { getCurrentDateTime@Time()( date ) } main { start(); println@Console( "start date: " + date )(); getCurrentDateTime@Time()( date ); println@Console( "current date: " + date )() }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
21
define procedureName { ... code ... }
include "console.iol" define fibonacci { if( f1 < end ){ println@Console( f1 )(); _f2 = f1+f2; f1 = f2; f2 = _f2; fibonacci } } main { f1 = 0; f2 = 1; end = 200; fibonacci }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
22
constants { server_location = "socket://localhost:8080", ALARM_TIMEOUT = 2000, standard_gravity = 9.8 }
jolie -C ALARM_TIMEOUT=2000 program.ol
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
23
[ count() ]{ global.i++ } [ print( run ) ]{ println@Console(global.i)(); println@Console( "missing: " + run - global.i )(); undef( global.i ) }
| Saverio Giallorenzo | sgiallor@cs.unibo.it | DISI@Unibo Laboratorio di Sistemi Operativi Basic Behaviour - Composition and Workflow
24
[ count() ]{ synchronized( syncToken ){ global.i++ } }
[ print( run ) ]{ println@Console(global.i)(); println@Console( "missing: " + run - global.i )(); undef( global.i ) }