!
!"##$"$ %&
!
!"##$ $ ' (
)" $
" * +, --- .
INDICE....................................................................................................................................................2
1. INTRODUZIONE ..............................................................................................................................3
1. ARCHITETTURA .............................................................................................................................4
3 ARCHITETTURA TECNICA ...........................................................................................................6
3.1 ARCHITETTURA MULTI-THREAD ......................................................................................................6
3.2 THREAD INTERNI E INTER-THREAD COMMUNICATION......................................................................8
3.3 INTER-PROCESS COMMUNICATION ...................................................................................................8
4. SCRIPT DI CONTROLLO APPLICATIVO: STREAM .............................................................10
5. PRECALCULATED LOAD-FACTOR SCHEDULING ..............................................................12
6. STRUTTURA DEL DATABASE 'FLOWMANDB' .....................................................................14
"
!
/ -0 . 1
7 .5 - ,
•
2 . + 31 455 -
.%
.
5
++
.
( 5
. 8
* + 4
.
.
5
5
6
6
. 4
6. 5 %
5
. 0
%
5
. 8
1.
1 . .5 ,
•
4. 5 %
! 9 !
! 4
! . :4
5
;
.4 5 8 .
(
(
+
9 .5 5
++ 6 . 5 = 4 !> .3.1
.5 5,
1 4 .< + 5 %.
6
6
.
6. 4
?. ++ 6 . / -4 . 1 ;
++
(
*
4 . .5
4
4
"
5
4
.%
++
(;
4
.
"
@
.%1 6 .
. 4
( 5
A
.
+C
4
!
(
A
5
.
$
< 2 .
5
4+
4 5
6.
4,
;
5
.
4.
2+
6 . ;/ -!
.%1 6 .
1 . 1
4 55
.4 5
9
<
<
1 .6
6
"
+ ( %
.
*5 .
#
+ %
%
/ -! .
.!
(
.
+
. 4 . 0
( 9
5
5 % 4.
. (;/ 5 ' 1 F<
6 .,
. . 8 + .6 5 %
1.
++
(
4 . ++
(5 %
5. %
6
6
.
. .+
1
+
(
(
51 .
2 9 .5
%
5
. .
/ -!'
4
+
5
5
. 8
(
5
+ .
<
5
/ -!'
+
6.
$
6.
+B
.
+
(5 5
. %.6 . 5
%7 .5 - + ( . 4 . + (.
+ 31 2 .
5 + .1
4
1
.
+ %4 .
.
%
D5 6 . 5 E>0
. & . D5 6 . 5
%1
1 .
*4
*
5 . / -0 . 1 ! ++
.
&
G
++
.
H( . = .1F
"
&
*+ $
&
# '
H(.
4
….
! IG H&
.
! H(. > 3 .1
!
4 J .5.1
!
4 J .5.1
)
!
+
! * 5 -.
!
*.
.
!
* 6 .
!
. .1
(%
! H(.
! H(.
.' .1
. 11
#,-./,-
/1
@
*4
5 5
"
. (5 .6
4
4
"
(
"
#
! / -0 . 1 ! ++
5
4
.%
++
(;
5
6 .,
.,
*4
*
45
;
<
,
<
4
E
H(.
2
5
+
5 / -! .
; +
5+
5 / -!'
;' K < * +
. +
.
*
4
+
+
+ 6. 5
< 5 .+
4 5 / -!
(
+
5 / -!
.
. .5
1 ,
+
5 1
. +. +
5 / -0 . 1
*
( . .5
D (6 .
5
(6 . 5
(6 .
1
8
.
5
. 6.
6
66 .
. .1 5 1
. * 5 (. ( 1
%.6 . +
(.
.% . 5 / -0 . 1 L
+
51
. 5 1 ( . * 5 . % 1 (. 5 1
.
5 + .1 1
5
K ++
( 5
. . ;+
( %
D
.6 5 %
++
( 5
1.
5 . 8
.<
.6 ( 5 1 .
. ; 11 <L
+
51
(. . 9
M ! . ! .1
5 . 4.
+
5+
6 . ++
+
5
(
( 2
/ -0 . 1
.%1 6 .
•
•
•
•
•
4+ .5 .
5+
.
+C
5 .
5
.
(6 .
.
5 D
4 5
6 .,
µG
6 . ++
(5 %
5
.2
5 µG ++
' K + B ( +C µG
4 5
6.
4 ++
5
. .+
.%1
+ 1.
+
E
5 µG
(
4 5
. 5
4 . 5 1 (. *
5 1. + 5
.6 .
5 4 !M ;µG <
5%
.
5 .
1 . ., .
9 .6
.
5 µG ( .
4
.
. 1.
.
5
+ 8 + .6
6 .<
+
.
;
&<
.
+C4
6 . 5 µG ++
++
( ( 1.
( .
5 +
++
(
( .
D
5
.6
(
+,
;
(
*. 5
5
%
% (
'K . .
5 .4 4
6 . 5 1. +
'K
(
(< +
1. ' K ; 9 .5 +
+ %* 5 1
. .5
*+ 4
5 .%1
1
:
%.6 . 5
6.
.
5
+
.
5 +
* + . . :4
5
.
µG <
+ 1 5 1 (.
;+ .1 11 5
K
F<
1
4 5% ; 9 .6 .
5 µG
5 (.
+ 1 5
41
(
4 . ++
(
( 5 1 (.
55
5
5 +
;+
5
5
,
4
F<
.+
( 5 1 (. ( . 1
5 / -0 . 1 4 . . .5
5 1 (. .
51
4 .
6. ; 5
( µG <
5
6 .5
4 ;- ..1
(
% <
(
5
.
4 ++
( 5 µG + B1
4 5 85 1
. 2 .
. 4.
5 / -0 . 1
+ + 5
(
++
#
++
(
(
.6 . ( . 5 +
0
?.
* + .
.
+C
4
2
+
6
6
.
4 5 . .. 4 5+
4 . .
..
. '
4
!* 5
+
5 / -! .
; + (
H( .
E
< 5 (. +
. .
4 .9 .
.5(5 . . * 5!4 4 K
(. 4 . .
(
5 .! 4 5
(8 .
* 5!4 4 K( .
. . . 85 .
++ 6 . 1 % ;/4 . < * + 4
:+
5 / -0 . 1 5 4 .
.. 4 .
( 5 :4 .
+
5 / -!'
;' K
µG ++
(< +
. +
4 +
.
:. (.
5 .
+
'K +
4 ; .9 .
' K 2%.6 . 4 .
:1 . 5 / -0 . 1
4 55
6 . ++
(< @
.%1 6 .
.
. .
4
+
. 4
( ;
/ -! .
*
/ -!'
< (2 .
+
'K
+.
5
6. %
%
4 *.
0
+ . 4+ 4 . ( 9
+
H(. E
'K< + . 4
4 + 5 &!
.+
5 4
+
5 .6 6
66 .
•
•
•
N = O.
. OPPPPPPPP
N = O= 5K
'
1.
(6
+
.
.
•
' 1. ..
.
+
6
6 ,
•
: (6 . 5 +
.
.
.
5 . . 4 5 &!
*4
*4
*4
*4
.
NO.
* +
*4
.
55
(
. +
6
6 ,
:
.6 5
(8
:
.6 5
( 8+ 1.
5 + : (6 . 5
(65
' .%1
5
&!
@=O.
5
5 :4 . / -0 .1 ;
++ 6 . 5
N @ "
4
4 ! * 55
N @ 
4 .! * 5
(
. +
6
6 ,
+4 5 4
5 .+
: (6 .
5+
:
.;
(
+:5
++
.
3 +
++
(6
5 .%
(
55
( .
4
.
..
+ (
6
6
.!4 5
<
.
*
. !* 5
5
&!
.
.
Q1. *5! * 5 +
.
5 .
.. 5
6 .!
4
. .
9
( 4
11 5 *
5 +
. ..
. 3 55
( * 4 .5 . . 4 5 & !
. ++
(
,
•
' OPPPPPPPP
( . 5 %.
. &!
. +
1.
(6
++
(
N @  2 . '!0 .
1* +
6
66 . 5 ++ 6 .
.
( 4 !+
4 !* 5
*
'! ' ( ++ 5 ?
,
(
. + 4 . 0
%7 .5 "
;P@ '! P .5 5
@ - 3 ( ' 31 < 2
5
9
+ % 4 5 ( ++ +
+ 31 / -0 . 1
(
. +
. &( 8 6
6 +
. ((
. .% 5 + .1
"
A .5 1. +
5
/ -0 . 1 ! ++
.
. .4 .! * 5 .+ 5
. ! * 5; . +
* 5; . + 1. ..
.
(<
%1
1 .
. . 5 .+
.5 . +
1. (6
'<
N @  +
.+ 5 *5!
N @ 
MAIN thread
- stderr banner
- read .ini configuration
Applicazione KerNet
- build services table
- call KSRV_Initiate (XParam)
KSRV_Initiate (XParam)
- initialize transactions
call Init_XXXXXXXXs ()
- starts up Listeners for all
services
- call KSRV_Ready ()
KSRV_Ready ()
KSRV_Shutting ()
- sleep (∞
∞)
KSRV_Terminate ()
- on Process termination
- call KSRV_Shutting ()
- stop Listeners for all services
call LSNR_Terminate ()
LSNR_Initiate (SvcName, XParam)
- terminate transactions
call Term_XXXXXXXXs ()
LSNR_Terminate ()
- call KSRV_Terminate ()
TASK_Initiate (SvcName, XParam
LISTERNER thread
TASK_Terminate ()
- task initialization
- call LSNR_Initiate (SvcName, XParam)
- create listener socket
{
- infinite loop
- accept calls on listener socket
Init_XXXXXXXX ()
- starts up Child task for connected
socket
Term_XXXXXXXX ()
CHILD threads (server)
Proc_XXXXXXXX ()
- task initialization
- call TASK_Initiate (SvcName, XParam)
{
- infinite loop
Corpo della
Applicazione
- Receive_First on child socket
- handle application transaction
call Proc_XXXXXXXXs ()
- call TASK_Terminate (SvcName)
/1
" ! ++ 6 . N @ , +
;+ 5 N @ 5 & !
$
6. 5
. ++
(8
(<
01
+
5 / -! .
* 5N @ 
+ %*
* 5. .+
.
/ -!'
; + (
+C * 5 . . +
.
55
6
6.
.
+,
* ( 1.
:
H(
. 4 J .5 5 :
H(. <L
"
H( .
E
'K<
( 14 . 5
( 85
(8 5
.
. 45
.4
;9
%!
* ( 1.
(65 5
+ 1
* 55
6
6.5 . +
4
. 4 5 4 . 6 . . ! * 5; K.* <
+
00
+
5
5 / -! .
.
9
/ -!'
+54
,
.
"#
.
1. +
"
1
..
.1
5 %. ;
"#
++ 5 +
*
(
25.
4 . .
45 4
; + (
H( . E
. 4 5 4 . 6 .,
', 9
4
.
++
( <L
.
, .+
1. . 5 5
* 5
1
+
4
. 4 +B
+ L
'K<
5 :4
..
.
+
4 . .
. N @ 
. .
5 ++
(
+
+
1.
.
*
?. 11
K
.* + 4
5 . * 5+ 5
;
< 5+
.4
11 5 (
.* 5
. 4
;
< .
+ 514
* 5
. . 2+ .
(
4
11
* 5
+
R 1.
* 5 * 5 ( .(
.4
11
, 9 .5 .
11
K
.* 2%.6 . 4 . . 5 5 * 5; . .5 4
11<
"
; .<
%
"
; (<
"
; .<
3
%
4
&
(
%
"#
, + 1. ++ 5 +
.
5
..
. '5
++
1
5 ++ 5 * 55 5
.4 5
* 1. +
+
.
.% . 5 + .
4
. * 4
( L * 5 . + 5. 4
4 * 55 (6 . . ; . . K
.* 5 5
<
4.
* 5 ( 2 . * 5! *5N @ 
.+
5 (6
'
"
"#
"
%
%
"
#
#
)
&
%!
#
,
6
6
(4 . . ( / -!'
' K + : (6 .
6.
4. 5 µG
++
(
4
.4 5 Q
. * 54 4 K5 5
+ 1. µG
%1
1 .
4 . 6 .1
. !+
5 . / -0 . 1 ! ++
4 . 6 . ' * 5!4 4 K
<
;
5 +
. 4.
. .
4. 5
*+ $
*+ $
*+ $
04 K
04 K
04 K
! IG H&
.
&
!
+
! * 5 -.
!
*.
.
!
* 6 .
!
. .1
H(.
4
….
"
'
"
! H(.
! H(.
! H(. > 3 .1
!
4 J .5.1
!
4 J .5.1
.' .1
. 11
!
..
.
'
..
.
' -.
Q
* 50 4 K
(6 . '
/1
!
5
4 . 6 . 5 . / -0 . 1 ! ++
.
5
%6
@ D4
5 D *
/ -0 . 1
4. S 4D( .
6
6 + .5
+ .1 1 5 5 %.6 . 5
( 8 ..
1
. 5 . (.
D
. . 5
+
E
(.
(
. * 5 . . 55
1
. 5 1. .1
(. ++
(
%4 5
4
?.
..
1
7(
5.%
4
. 5 . + % (.
Q1. (.
( 5 +
.%1 6 . 5 .
+
+
E
11
5
. . E
?.
+ 4
•
•
•
•
•
+
;
H( .
=H 0
++
. 6 . 5 5 %.6 . 5
(. 5 9
1.
+
+ 1
. (.
( Q1. * 5
!
4!0 *. <
E
45.
+
( . * 55 5
4
.
++
1
+ 1
.
5 . 4
D( .
+
=H 0 2 .( 4 .
5 5 %.
4 . 5 D(. .
. (.
4. 5,
+ 4
1 .4
(
.1
9 .6 5 M 5
1
+ 1
D(.
4 - ..1 +
.
5%
5
9 .6 5 µG
51
%
4 - ..1
1
2 +
.
4+ 5
+
Par1,
5
+
+
=H 0
stream test, version = 3.35, "Stream Test" [ Par0,
5
.
*. (
1. 5
4 0 *. ; 0<
6
6
D
. . 5 +
E
. "
.
(. 1
5
11
1.
5
4+
1.
. 1. * 5
44 . .
4
0 .+ +
.
=H 0
1
E
.
1
(8
Par2 ];
setvar var[1] = "pippo";
setvar var[2] = "pappo";
setvar var[3] = "peppo";
putenvparam var[1] = var[2] in var[3];
setvar var[1] = "rippo";
setvar var[2] = "rappo";
setvar var[3] = "reppo";
getenvparam var[1] = var[2] from var[3];
/* primo job */
setvar var[2] = "hello";
if (Par1 == "1")
if (Par2 >= "2")
opmsg ("attenzione: par2 maggior di 1 !!!");
exit (1);
endif;
job myjob1 (par0=$Par0, par1="parametro-1", par2=$Par2);
opmsg ("myjob1 eseguito!!!");
setvar var[1] = "fine";
else
setreg reg[2] = 22;
setvar var[1] = "hello";
job myjob2 ( par1=$Par2, par2="parametro-2" );
opmsg ("myjob2 eseguito!!!");
endif;
+
.
5
=H 0 .
+ ( 5
if (exitcode < 0)
opalarm (0x9B1c, "errore!!!");
exit (255);
endif;
/* secondo job */
if (var[1] == var[2])
job myjob3 ( par1=$Par2, par2="parametro-2" );
opmsg ("myjob3 eseguito!!!");
exit (0);
else
if (var[1] == "next")
job myjob4 ( par1=$Par2, par2="parametro-2" );
opmsg ("myjob4 eseguito!!!");
exit (0);
endif;
endif;
if (exitcode < 0)
opalarm (0x9B1c, "errore!!!");
exit (255);
endif;
end stream;
8#
,
* 5 6 . 5 µG
4 5 / -!'
. +
1 4
* + 4
5 5
(
4 ++
(
'
5
1
5 'K +
. 4 5 5. 4
E
1 4 5 . 4. '
5 5!%
* 5 .1
+ (
6.
5 %
5
5 .µG %
%
.% 5 .%1 6 .
..15
4
5
.1 µG
5 1 (.
(.
* .µG * . 4. 5
4 +
( 5
%
++
(; 5
4+
5 + . 85 . + %
+ % 9
. .8
.
. + 1 5 ..
.5
<
Q1. +
'K
* +
4 1 . 5 / -0 . 1
++
( (.
.%1
. + 4
+ % 5 + +
+
% 9 .6 5 +
4 +
( %
5
* + %* 9 + % *
..
.
<
4 5
4
+
++
6.
; + 5
Q1. µG
1
5 / -0 . 1 ( . .%1
5
/ -0 .E> . 4.
5%
5
4 5 ' *T 1. µG 25 . 4 5 5
6 . 5% *
.
5 . 4 5
5 ; .1
. 85
6 . ++
(<
+
H(.
*
*5 :
6. 5 .
4 ; 9 .5 5 µG
< 2 .1 5 5
4
.4
5
55 .% 5
;. 4
5 *+ 5
.1* 6
65 %
5
.
54 . . 4 5 5 . . 8
(
5 5
/ -0 .E><
5
45 5
6 . 5 . .1
5; 4 4 +
5
5
/ -0 .E><
A .5 +
•
•
•
E
(
.4
5 .8
4+ 4 5 5
.
9 .5 5 (
5 µG ;5
( * µG 5 (
6 . 5 1. . 8
*
6 . 5 .µG
:
*
4+
5
.
' +
.% 4 4 . .
+
E
5
.+
. . 5
5%
%
1. (
+ . 5 .6 5
. µG
. 5
4
4 +
.
4
. 5
:1
4+
5
6
6
4 '
,
;. 4
5 * + @ 4J +<
(; 4 4 +
40 <
1. ' K
(
+
E
.
( 5 +.
U9 .5 .1 5 5
6.
.
(
(
%
% .
++
4.
. (.
( *
5 µG
%1
1 .
* 5 6 . 5 .µG
.
<
+
(
1
;#
*5
5 +
5
.
4
E
5!%
5
++
( ;' K <
*
5 µG
+ %
%
* 5 .1
( 5
4 ++
( ;' K <
.5!
. .
9
4. . 'K
(
5 ' K +C 5 . . .
+ .5
+
4 'K
. .
. .+ B
*5
+ .5 + . 85 . ' K 5
* 55
4 * *
*
:
6.
+ .5 + . 4 !
+ 5 %.
.5< 5 + 5 *
. :
6.
. 9 .5
6
6
4 !9
5
1
5 5 µG ;
4< * . . .
+ .5 + . 85
++
( 51
Q1. µG
.5 .
. 4+ 4 4 ; .%1
/ -0 .E>< 5 + 5 * 1 .
.
4 + .5 + . 85
4
"
µ+ $
# '
:
5
1
. .5!
.<
9+ $
;
EG
4
'K
@ 4J +
. 4
H.5 4
= 4
@ &G A
:
9# '
@ - 3
@4
.%
7 3.1
:
9 $+ $
G @4
E
+ .
/ @4
@ 4' 0 .5
@ 4' Q+
' 4@ 4
K (
'? / 9 .K Q
K . .
5/
40
0 & 4 / H&
9+ $
&
EG
4
'K
@ 4J +
. 4
H.5 4
= 4
@ &G A
9# '
' K @4
@ 5 ;. - 3.%<
5' K
K 4 K
+
. 4
@ 4H& G
G
9+ $
45
G @4
9'
'
K>
9 '&
5/
.
5/
. '?
/ 9 .K
K .%1.
K .%1
. '?@ 4
Q
Q@4
/1
%1
+
!'
1 .
E
*5
5
.
45
5!%
* 5 .1,
6. + 5
6 . ++
µ+ $
5
6 . 5 µG
( ;' K < 5 µG
( . *
.
6.
@ 4J + V 4 0
µ+ $
%
µ+ $
µ+ $
@ 4J + V 4 0
# ' /
µ+ $
@ 4J + V 4 0
# ' 1
44
"
!
!H
µ+ $
@ 4J + V 4 0
@ 4J + V 4 0
"
/1
%
µ+ $
@ 4J + V 4 0
# '
@ 4J + V 4 0
µ+ $
%
"
!
6 . 5 µG , ( . 5 E
!
5 'K
5 µG
.
6.
;
&
4 / -0 . 1
;
&<
•
•
•
•
•
*+ 4
6
6
5
.+ +
.%1
:
%.6 . 5
6.
+ 1 5 1 (.
;+ .1
1
4 5% ; 9 .6 .
+ 1 5
41
(
( 5 1 (.
5
/ -0 .E>2 1 4 .
6.
•
•
•
•
•
•
•
"
%
H @OH H@
H @OJQ E
H @O'=Q Q Q
H @O Q?@ H=
H @OQW
H @OQW / H
H @O@Q H
H @O JH NE>
6.
•
•
•
•
•
55
5
.%1
6.
,
.
11 5
5 µG
4.
5
K
5 (.
++
(
.9
6 .,
;
F<
F<
. + % F<
51
. 5 / -0 . 1
5 + % %.6 .
5 %.6 .
5
6 . + %!%.6 .
5
6.
. !+ %
51
5 1.5 +
4'K
.%1 6 .
1
. 5 1 (. 1
5 .%1 6 . 5 1 (.
5 .%1 6 . 5 1 . % (
5 . 4.15 % .
6
6
5
.
5.
6
66 .
5.
6
66 . 5 1 (.
(
5 15 % .
6
6
5 1. 6 . . 4
5( % ;
6
6 5 * 54 5 +
/ -0 . 1 +
( % 5 ..
.<
5
.%1 6 . 1
E =O =H 0
E =O =H 0
?
E =O =H 0 QW
E =OG
Q>
E =OG
Q> QW
6.
•
•
•
•
•
•
•
•
•
5
5
1
&<
.%1 6 . 5 1
' O? H=
' O'=Q/ H
' O/?@ Q@
' O'=Q/ H/?@ Q@
' O? H='=Q/ H
'O H H
' O' H=
6 . (%
•
•
•
•
•
•
•
•
5
1 .6
6
<
.
51
5 .%1 6 . 5 1
5
51
4
5 15 : ( 85 1
5 .%1 6 . 5 µG
5 15 µG
1
5
0O =0
0O =0
Q@
0O
Q@
0O
Q@? H=
0O
Q@? H= EE=H
0OEH @ Q@
0OEH @ Q@? H=
0O =0 QW
0O =0 QW Q0
.%1 6 .
1
. 51
4 5 µG
4
4
4
5 .%1 6 . 5 1
4
5 .1 5
.5 1
4
5
6 .5
.5 1
4
51
. 5 .
51
4
5 1 .5 6
6 . 51
4
5 5 . 6 . 51
4
5
6 . 5 .6 .
.
5 15 1
4
(
1
5 15 1
4
(
5
Scarica

FlowManager