Title: Analyzing dynamic properties of parallel program in ParJava Environment
1??????????? ???????????? ???????????. ???????
????????? ? ????????
????????? ?????? ????????, ???????? ??????????
???????????????? ??? (??? ???) ivan_at_ispras.ru http
//ispras.ru/
16 ?????? 2012 ????
2????????? ???????????? ??
??????? ??? ?????? (106 LOC) ?????? ???????
Windows 3.1 1992 3
Windows NT 3.5 1994 10 300
Windows NT 4.0 1996 16 800
Windows 2000 1999 30 1400
Windows XP 2001 45 1800
Linux Kernel 2.6.0 2003 5,7
Open Solaris 2005 9,7
Mac OS X 10.4 2006 86
Windows Vista 2007 gt 50
??? ???????? ??? (???????? ? ????????) 2007 1000
??????????? Debian 5.0 2009 323
3?????????? ??????
- ?????????? ?????? ?? 1000 ????? ???? (??
????????????) ???????? ??????????? ?????????? ??
30 ???
??????????? ??????? ????? ?????? ?? 1000 ????? ????
Microsoft (?? ????????????) 10-20
NASA JPL (?? ????????????) 6-9
??????? ?? ????????? (????????) 6-30
Linux 7
Microsoft (????????) 0.5
NASA JPL (????????) 0.003
4??????????? ? ?????????????? ???????????? ????????
- ??????? ?????? ? ????????? ????? ???????? ???????
?????????? - ?????????? ??????????? ???????????? ????????
?????????? ?????? ? ??????????? ??????????????
???????????? ???????? - ????? ????????? ?????????????? ????????????
???????? ??? ???????? ?????????? ???????????
??????????
5?????????? ???????????
- ??????????
- ???????????? (???????????? ?????????)
- ????????????? ???????????
- ??????????? ??????
- ??????????????? ???????
6??????????
- ????? ??????, ?????? ? ?????? ??????? ??
????????? (?????? ?????? 2-5 ???????) - ???????
- ?????? ?????? ??????????? ? ???????? ??????
- ????????? ??????????
- ?????????????????? 100-150 ????? / ???
- ?? ????? 2-3 ????? ? ????
- ?????????? ?????????? 50-90 ??????
(?????????????? ?? ??? ????? ????? ??) - ????? ????????? ????????, ???????????? ? ?????
??? 10-?????? ?????? ????? ??????????? ???? ???
???????????
7????????????
- ?????? ???????????? ??????? ?? ?? ?????? ?
????????? ?????????, ? ????????????? ??????? - ???????
- ??????? ?????????, ??????? ? ??????????
- ?????? ?????? ?? ????????? ?????????? ??? ??????
- ?????????????????? ?????? ??????? ?? ?????,
???????, ????? ? ??. - Microsoft ?????????????????? ?????????? ??????
? ???????????? ???????? ????? ??, ??? ?
?????????? ????, 10 ?????/??? - ?????????? ?????????? 30-80 ??????
- ????? ???????????? ????????? ????????, ???
???????????? ??????????? ?? ????????
8?????? ?????? DMS (??? ???)
- ?????????? ?????? ??? ?? ??????????? ???????????
Nortel Networks ? ?????????????? ??????????
??????? - ?????? ??????? 250 000 ?????, 230 ????????????
??????? - ???????????? 10 ????????-???
- ??????????
- ???????? ????? ????????????? ??? ???????? ????
????? ?????? ?? - gt 300 ?????? ? ??????? ? ?????????? ???????????
99.9999 - 12 ??????, ????????? ????????? ????????
- 50 ???? ?????? ??????? ? ???? ??????????
- ????????? ???????? ???????, ???????????????? ??
?????????? ???????????? ? ??????????? ?? ??
????????
9?????????? ???????? ????????????
- ??????? ????????? ????????
- ???????????????? ????????? ? ??????????
- ????????? ???? ?????, ?????????, ??????????
??????? ? ?????????? - ??? ?????????? ?????? ????? ????????? ??????????
?????? - ??????? ???????????? ????????? ????????
- ??????? ???????????? ?? 15-20 ????????? ? ????
- ????????? ?? 60-80 ????????? ? ????
- ????? ?? ???? ?????????? ??????? 70-80
????????? ? ???? - ????????????? ??????????? 100 ????????? ? ????
10????????????? ???????????
- ?????????? ???????? ????????? ????????? ?
?????????? ? ?????????????? ?????????? ?????????? - ???????
- ????? ?????? (??????????? ?????)
- Provers, solvers, ????????????? ???????????
- ???????????
- ??????? ?????? PVS, Isabelle/HOL, Frama-C
- ??????? ?????????? ???????????????, ????
???????????? ??????? seL4 - ???? ??? ??? ????????? ?? ??????????? ? ???????
Frama-C ( 100 ????????-????? ?? ?????????
???????? ??????? 100 ?????)
11?????? ??????????? ???? ?? seL4
- ???? ?????????? ?? seL4
- 8700 ????? ?? C, 600 ????? ?? ??????????
- ??? ?????????? 2.5 ????????-????
- ???????????
- 200 000 ????? ?????????? ??????
- ?????????? Isabelle/HOL
- ???????????? 20 ????????-??? (12 ???.)????????
10000 ????
12?????????????????????????
13?????????? ??????
- f(char p)
- char s6
- strcpy(s,p)
-
- main1 ()
- f(hello)
-
- main2 ()
- f(privet)
-
???? ????? ?????????? ??????? f, ????????? ??
main1
???? ????? ?????????? ??????? f, ????????? ??
main2
?? ????? ?????? main2 ???????? ?????? ????
????? main1
????? ????????
\0
\0
t
o
e
l
v
? ?????? main2 ????? ???????? ????????????? ?
?????????? ????? ???????? ?? ?? main2, ? ??
?????? ??????? ????
?????? s
l
i
e
r
h
p
14???????????? ???????
- ????????????
- ???????? ??????? ??????????
- ??????????? ?????? ?????????
- ?????????
15???????????? ????????
f(char p) char s10 strcpy(s,p)
f(char p) char s10 if (strlen(p)lt10) str
cpy(s,p)
f(char p) char s10 strncpy(s,p,10)
- ????? ???????????? ??????????? ??????? ?
??????????????? ??????????? ?????????????
?????? ?? ????? ???????????? ??????????.
????????, ?????? strcpy(a,b) ????????????
strncpy(a,b,n), ??? n-???????????? ??????????
?????????????? ???????? - ??????? ???????? ????????????? ??????????????
????????? ???? ? ??? ??? ????? ???????? ??????
?????????????? ?? ???? ???????????? ???????
??????, ??????????????????? ??? ????? ???????? ??
??????? ????????? ?????????
16?? ???????????? ?????? ? ???????????? ???????????
- ???? ? ?????? ??????????? ?????????? ????????
??????????????????? ??? ???????? ???????
????????? ????????? - ????? ??????????? ???????? ????? ???????????,
?? ???? ???, ??????? ????????? ???????? ????????
??????? - ?????????? ?????????? ?????????? ? ??????
????????? ?????? ?? ?????, ? ???????
????????????? ???????? ????????? ??????? ??????
17???? ???????????? ??????? ????????? ???????? ?
??????????
- ??????? (???????? ? ???????? ????) ?????
????????? ? - ??????????? ? ??????
- ?????? ???????????? ?????? ?????????
- ??????????? ?????? (security vulnerability)
?????? ? ?????? ?????????, ??????? ?????????
???????????? ??? ????????? ?????????
????????????? ????????? ???????? ????????
????????????? ???? ??????? ????????? ??? ??, ?
??????? ????????? ???????????.
18??????????????? ???? ????????
- ???????????? ??????
- Format string ????????????? ???????? ??????????
??? ????????????? ??????? ????????? printf/scanf - Tainted input ???????????? ?????????????
????????????? ?? ???????????? ????????????????
?????? - ????????????? ???????? ?????????
- ?????? ??????
- ????????????? ???????????????????? ??????
19???????????? ???????????? ???????
- ?????????????? ?????? ?????? ????? ??????????
???????????? - ??????????? ????????, ????????????? ?????? ??
?????? ????? ??????????, ??? ?? ????????? ???????
?????? (??????? ????? ???? ???????????
??????????????? ? ???????? ?????) - ??????????? ??????? ?? ???????? ?????? ????????
?????? - ?????????? ????????? ???????? ?? ????? ??????????
?????????
20?????? ????????? ????????????
- Flowfinder, ITS4, RATS, Pscan (????????????????
?????????) - CodeSurfer (?????????? ??? ???????????
??????????? ?? ???? CodeSurfer? ??????????) - FlexeLint (????????? ?? ?????), Splint
(???????????????? ?????????)
21?????????? ??????? ?????????
- ??????? ????? ?????? ???????????? 90 ? ????
- ??????? ???????? ???????????
- ?????????? ?????? ???????? ??????????? ??????,
??????? ??????? ??????????? ???????????? ????????
(????????????, ???????, ?????????)
22??????????? ???????????
- Coverity Prevent
- Klockwork Insight
- Svace
23??? ??????
- ??? ??????????? ??????????? ?? ??????????
????????? ????????? - ?????????????? data-flow ?????? ? ?????????? ??
????????????????? ?????? - ?????? ??????????
- ?????? ?????????? ? ???????? ?????????????
???????? - ??????????-????????? (???????????? ??????????????
??????? ????????? ??? ?????? ????? ??????) ??????
24????????????? ?????? ?? ?????? ??????????
void f(int i) char p5 int a if
(igt0) a4 else a3 pa0
igt0
yes
no
a4
a3
Value(a)3
Value(a)4
Value(a)3..4
pa0
- ??? ??????????
- ????? ?????????????? ??????? ????????? ????????
????????? ??????????? ?????????? ? ????????
????????????? ????????? ???????? ?????????
(???????? ??????????, ?????? ??????? ? ?.?.) - ??? ?????? ? ?????? ?????????????? ?????????????
????????, ??? ?????? ???????? ?????????? ??????
???????????
25?????????? ?????????????? ??????? ??????????
void f(int i) char p5 int a,b,c if
(igt0) a0 else a1 ba4 cb-a pc0
Size(p)5
igt0
yes
no
a0
a1
Value(a)1
Value(a)0
Value(a)0..1
ba4
Value(a)0..1 Value(b)4..5
Value(a)0..1 Value(b)a4
- ?????? ???????? ? ????????? ???????.
- ?????????? ?????????? ? ?????? ????? ???????????
? ?????? ??????? ?? ?????? ?????????? ? ?????????
?????????? ??????? ????? ?????????? ??????
??????????.
cb-a
Value(a)0..1 Value(b)4..5 Value(c)3..5
Value(a)0..1 Value(b)a4 Value(c)4
pc0
Value(c) ????? ???? ?????? Size(p) gt ??????
??????
Value(c)ltSize(p)
26????????????? ??????????????? ???????
- f(char p, char s)
- strcpy(p,s) // ?????????? ??????????? 6 ????,
??????? //????? ?????? -
- main()
- char p
- pmalloc(5)
- f(p,hello)
-
- ? ??????????? ??????? ????????? ?? ??????
???????? 5 ???? ?????????? ? ??????? f, ???????
??? ??????????????? ??????? ??? ??????????
??????? ??????? ?? ??????? ?? ???? ?????? ???????
strcpy ? ?????? ?? ?????????????
27????????????? ??????? ??????????
-
-
- char a10
- char p
- pa
- p100
-
-
- ??? ??????? ??????? ? ?????? ?????????? ???????
?????????? ?????????? ??????? ???????
????????????? ? ??????? ???????, ?? ???????
????????? p ?, ?????????????, ??????????
?????????? ??????? ??????
28???????????? ?????????
- char strcpy(char dst, const char src)
- char d1 dst//dst ? src
- char d2 src// ???????????????? ? ???????
-
- //?????????? ????????? ?? ???????????? src
- //(? ?????? ????????????????? ?????)
- sf_set_trusted_sink_ptr(src)
- //?????????? src ?????????? ? dst
- sf_copy_string(dst, src)
- //???????????? ??????? ????????
- return dst
-
?????????? ??????????? ?????????????? ???????
29????? ?????? Svace
??????? ??????-?????
??????-????? ???????????? ?????????
??????-????? ??? ???????? ??????
?????????? LLVM-GCC ??? CLANG
????????????????
?????????? ????????? ??????
??????-????
??????-?????
?????????? ???????????? ???????
?????????????? ???????
???????? ???
????????? ??????
?????????
?????? ??????????? ??????????
????????????? ?????????
???????? ???
??????? ??????
????? ? ???????? ?????
??????-????
?????? ? ???????????? ??????? ????? ?????????
Eclipse
???????????????-?????
30?????????? ?????????
???????????? ???????????? ??????? ?? ????? ??
?????????? LLVM-GCC ??? CLANG
?????????
??????
??????? ????????????
??????-????? ???????????? ?????????
??????
?????? ?????? ???????
?????????? ????? ???????
??????? ????????????? ?????????
??????-????? ??? ???????? ??????
?????? ????????? ???????
????? ????????????
????? ????????????
31?????????????? ??????? ????????? ???????
???? ??????? ???????
???????? ????????? ???????????? ???????
main
printf
prinf
q
w
strcpy
c
a
b
strcpy
?????????????? ?????? (????????????, tainted,
??????? ??????????, ??????? ? ??.)
?????????? ??????????????? ??????? ???????
??????? ???????
a
b
c
q
w
main
?????? ??????? c
?????????
a
q
b
31
32????? ???????
?????? ????? ?? ? ?? ???? ????? ??????? ????? ? ???????
libxml 5245 39 ? 134
gperf 6516 33 ? 197
aide 13945 58 ? 240
ffmpeg 75521 1 ? 20 ? 944
gstreamer.0.10 101954 2 ? 43 ? 625
qtiplot 158771 5 ? 07 ? 517
openssl 240264 19 ? 51 ? 202
postgresql-8.4 503815 23 ? 38 ? 355
firefox 2862047 2? 35 ? 40 ? 306
android 11 ???. 13 ? 58 ? 218
?? ??????????? ????? ?????????? ???????
33????????? ? Coverity Prevent
??? ?????????????? ???????? ???????????? Svace ???????? ???????????? Prevent ?????????????? ???????? ???????????? Prevent,
???????????? ?????? 60 10 100
?????? ? ??????????? ?????????? ??????? 50 70 20
????????????? NULL 70 60 50
??????????? ???? 70 70 80
???????????????????? ?????? 60 40 50
???????????? ????? ???????????? ???????? 60 90 30
????????? ????? 90 90 80
???????? ?? ???????? 100 100 100
?????? (????? 30) 50 70 30
34??????? ?????????
- ?????? ???????? ?? ??\??.
- ?????????? ?? ???????? ???? ?????????? ??? ??????
??????????? LLVM-GCC (??? CLANG) - ??? ??????????? ?? ?????? ????????? (????????
????????????????) - ????????? ?????????????? ??????
- ????????? ???????????????? ???????????? ???????
- ????? ???????????? ??????????? ????????????
??????? (??, Linux) - ????? ????????? ?????? ????????? ????????
(???????????? ??????, ????????????? ????????
????????? ? ??.) - ????? ????????? ?????? ???????? ?????????
- ??????????? ???????????????? ?????????,
????????????? ? ???? ?????????? ????? Eclipse
35Avalanche ??????????? ?????? ??? ??????
????????????? ???????
36???????????? ? ??????????? ?????? ????
- ???????????? ?????? - ?????? ????????? ?? ?????
?????????? - ??????????? ?????? - ?????? ??? ??????????
?????????
37??????????? ?????? ??? ?????? ??????? ????????
- ???????????? ??????
- ????????? ????? ??????? ?????? ?/??? ?????
?????????? - ??????? ?????????? ? ????????
- ??????? ???????? ???????????
- ??????????? ??????
- ???????? ?? ???????? ??? ???????? ????
- ?????? ??????????? ??????
- ??????? ????????????????
- ?????? ????????????
38Valgrind
- ????????? ???????????? ??????????????
- ?????????????? ??????
- ?????? ??????
- ?????? ?????? ? ???????????? ???????
- ??????????????????? ??????
- ?????? ? ????????????? ??????????
39Valgrind ????? ????? ??????
?????????? ????????????? ?????? Valgrind
??????????? RISC ??????
40?????? ?????????? ?????????
41?????? ?????????? ?????????
42?????? ?????????? ?????????
43?????? ?????????? ?????????
44?????? ? ???? ???????
- EXE tool, Stanford University - ?????????????
?????????? - SAGE framework, Microsoft Research - white-box
fuzz testing - KLEE, LLVM project
45??????
char names one, two, ... char
buf3 fread(buf, 3, 1, f) // ?????? 3-? ????
?? ????? if (buf0 1) // ????????? 1
int index if (buf1 buf2 gt 0) //
????????? 2 index ... name
namesindex // index ?? ???????????????
// ????? ?? ??????? ??????? ... else
...
46??????
fread(buf, 3, 1, f)
x1, x2, x3 byte x1 1 x2 x3 gt 0
buf0 1
buf1 buf2 gt 0
x1 1 x2 100 x2 200
47??????
fread(buf, 3, 1, f)
??????? ????????? x1, x2, x3 byte (x1 1)
buf0 1
buf1 buf2 gt 0
???????
x1 2
48??????
fread(buf, 3, 1, f)
??????? ????????? x1, x2, x3 byte x1 1 (x2
x3 gt 0)
buf0 1
buf1 buf2 gt 0
???????
x1 1 x2 0 x3 0
49Avalanche
- ??????????? ????? ?????????? (????????????
???????) ?????? - ???????? ??????? ??????, ????? ??????????????
??????, ??? ?????? ????? ????? ????????? - ???????????? ??????????? ?????? - ?????????????
???????? ?????????, ??????? ?? ????,
???????????????????? ??????, ?????? ?????? ?
??????? - ?????????? ????? ??????? ?????? ??? ??????
????????? ??????
50Avalanche ????????
???????
??????????? ??????
??????????? ??????
Tracegrind
??????
Covgrind
??????????? ??????
??????????? ??????
??????? ??????
??????? ??????
??????
??????? ??????
\
??????????? ??????
???????
STP
51??????????? ?????? Avalanche
- ??????????? ?????? ?????? ???????????
- ????? ????????? ????? ?????????? ?????????,
?????????????? ??????? - ????????? ????????????? ? ??????????????? ???????
52Tracegrind
- ??????????? ????? ?????????? ?????? ? ?????????
- ??? ?????? ??????????? ?? ??????? ??????????
(?????, ??????? ??????, ????????? ??????????
??????, ?????????? ?????????) - ????????? ?????? ?????????? ? ????????? ???????
(STP ???????????)
53Tracegrind
- ?????????? ??????????? ??????, ???????? ?
????????? ?????????? ??? ?????? ???-???????? - ?????????? ???????? ??? ?????? ???????? ?
??????????? STP
54Covgrind
- ?????????? ??????? ???????? ???? ?????????
(?????????? ????? ?? ???????? ?? ???????
????????) - ???????? ???????? (??????????? ???????????
??????) - ??????????? ?????? ?????? ? ??????? ??? ??????
Memcheck - ??????????? ??????????? ?????? ??? ??????
?????????
55STP - Simple Theorem Prover
- SAT ???????? (??????? ?? MiniSat)
- ?????? ? ???????? ???????? ?????
- ???????????? ???-???????, ??????? ????? ????????
56??????
- ??????????? ?? Google Codehttp//code.google.com/
p/avalanche - ????????
- Valgrind ? Memcheck - GPL v2
- STP - MIT license
- ??????? Avalanche, Tracegrind, Covgrind - Apache
license
57Avalanche ???????????
- ????????? ?????????? ??????? ???????
- ????????? ?????????? ????????? ? ??????????
?????????? ?????? - ????????? ???????? ?86/Linux ? amd64/Linux,
ARM/Linux, Android - ????????? ????????????? ? ??????????????? ???????
58??????????
- ????? 15-?? ?????? ?? ???????? ? ????????
???????? ????? - ?????? ???????????? ?/??? ??????????
??????????????
?????? ??? ??????
mencoder NPD
wget NPD
swtool NPD
libmpeg2 DBZ
gnash UE
audiofile IL
libsndfile DBZ
libjpeg DBZ
libmpeg3 NPD
libquicktime NPD, IL
libwmf NPD
mono NPD
parrot NPD, IL
llvm NPD
Null Pointer Dereference (????????????? ????????
?????????) NPD Division By Zero (??????? ??
????) DBZ Unhandled Exception (??????????????
?????????????? ????????) UE Infinite Loop
(??????????? ????) IL
59????? ?? ???????
- ????????? ?????????????????
- ????????? ????? ?????????? ??????? ??????
(????????? ??????? ??????, ? ?. ?.) - ????????? ????? ????? ?????? (?????????????
??????????)
60UniTESK
61?????????? ????? ??-????????
- ?????? ???????????? ????????? ???????
- ????????? ????? ??????? (????????) ??????
- ????????? ????????? ????????? ??? ??????? ??
???????? ?????? ? ???? ??? ?????? ???
??????????, ???????? ??? ??????? random() ? - ????????? ???? ? ?????? ?? ???????? ??????,
??????????? ????????? ? ????????? - ??????? ??????? ? ??????????? ??? ??????????
???????????? ? ????? ???????? ?????????? ?
62?????????? ????? ??-???????? (2)
- ?????? ???????????? ?????? ???????,
??????/???????, ?????? ? ??????????? ????????????
(?????? ???? ?????????? ????????? ? ????????
??????) - ????????? ????? ??????? (????????) ?????? ???
?????? ??????? - ????????? ????????? ????????? ??? ??????? ??
???????? ?????? ????? ???????? ??? ??????
???????? ??????? - ??????? ?????? ??????? ? ?????? ?? ????????
?????? ? ????????? ?????????? ??????, ???????????
????????? ? ?????????????? ????????? ???????
??????????, ??? ?????? ? ?????? ?????????
(????????? ???????? ??????????????????), ????
???????? ?????? ????????? ??????????? - ??????? ??????? ? ??????????? ??? ??????????
???????????? ? ????? ???????? ?????????? ?
63???????? ??????? ???????? ???????
- ???? ?? Linux (LTP)
- 18 Mbyte (??? ???? ????????? ????? ????????
????? ????) - ?????????? ????????? OS Linux (LSB)
- ????? 100 ????? ?????????
- ????? 80 Mbyte
- ??? ??????????? C (????????, ACE ??? Perennial)
- ????? 40-80 ????? ?????????
- ????? 1 Gbyte
?? ???????????, ??? ?? ???????????? ?????????
???????????? ???? ?????? (? ??????????? ?????
70), ? ??????? ????????? ??????, ???????
????????? ?????????? 2-3 ?????? ?? 1 ??????
????? ????.
64??????? UniTESK
- ???????? ????? ?????????? ????? ????????????
???????????? ????????? ? ????? ????- ?
????-??????? - ????- ? ????-??????? ?????????? ???????? ???????
? ???????? ??????? ???????? - ???????? ?????????????????? ?????????????? ??
???????, ? ?? ?????? ????????????? ?????? ????? - ??????? ??????????? ???????????? ? ??????
????????????????
65???????????? ??????????
- ????????? ?????????? ?????????
- ???????? ??????????? ????????? ????????
- ??????????? ?????? ??????? ???????????
- ??????????? ?????? ???????? ??????????? ??
?????????? ?????? ???????? - ?????????? ??????????? ??????????? ??????,
????? ????? ???? ????- ? ??????????? - ??????????????? ????? ????????? (???? ?????)
66??????? ?????? ???????????? ? JavaTESK
- public specification class SqrtSpecification
- public specification double sqrt(double x)
- pre return x gt 0
- post
- branch SingleCase
- return sqrt sqrt x
-
-
- public specification int sqrt(int x)
- pre return x gt 0
- post
- branch SingleCase
- return sqrt sqrt lt x
- (sqrt 1) (sqrt 1 ) gt x
-
-
-
67????? ????? ????????????
??????????????
???????? ???????
???????????????????,???????????????
??????
68????? ?????. ??????, ??????, ????????
????-???????,?????????
????-???????
69????? ?????. ???????? ????????
????????
??????????????
???????? ???????
- ???????? ? ??????? ?? ??????
???????????????????,???????????????
??????
70????? ????? UniTESK
?????????
???????? ?????????
????????? ??????
??????? ????????
???????????-???????
??????????? ???????
?????? ?????????
???????
???????????
??????
??????
71?????????? UniTESK
- ???????????? ???????
- ???? ?? ?????????? ??????? 1994-1997
- Linux Standard Base 2005-2010
- ???????? ????? ??? ?? 2000 (?????) 2005-...
- ?????????
- IPv6 Microsoft Research 2000-2001
- ????????? IPv6 (? Windows CE 4.1) 2002-2003
- IPv6 ????? 2002
- ???????? ????? ??? IPsec 2004-2008
- ???????? ????? ??? SMTP 2010
- ???????????? ???????????? Intel 2001-2003
- ??????????? ?????????? ??????????? ??????? 2005
- ?????????????? ???????
- ?????????? CRM-??????? 2004
- ??????????? ??????? ? EAI 2005-
- ???????????????
- ?????????? ?????? 64 (?????) 2006-...
- ?????????? ??????????? ? ??? (????) 2010-...
72???????!