lặp. \ ă 49
v oi d b o i n c _ a p p _ m o u s e _ b u t t o n C int X, int y, // c o o r d s o f c u r s o r int w h i c h , // \ v hi ch b u t t o n (0/1 2) int i s _ d o w n // t ru e i f f b ut to n is ncnv do\ \ n ); v oi d b o i n c _ a p p _ k e v _ p r c s s ( int, int // s y s t e m - s p e c i í ì c k e v e n c o d i n c s void b o i n c a p p k e v rclcase( int, int // s v s t e m - s p e c i l ì c k e y e n c o d i n g s
1.3.3 Giao tiếp tru y cu th ô n g với IIIIÍỊ (lụng chínli
Câc ứnR d ụ n g đ ô h ọ a sẽ phai n hậ n t h ô n s tin t ừ írim d ụ n e c h ín h dí hiín thị \'â thí hiện. M ộ t giai p h â p h i ệ u q u a lă s ứ đ ụ n e v ù n a n h ớ c hia sc. r h ư \ iện B O I N C cuim c ấp c â c h ă m đ í t h ực thi c â c c h ứ c n ă n g năy:
v o i d * b o i n c _ g r a p h i c s _ n i a k e _ s h m e n i ( c h a r * a p p n a n i e , int size); v oi d* b o i n c _ g r a p h i c s _ g e t _ s h m e m ( c h a r * a p p n a m e ) ;
bo i nc g r a p h i c s _ n i a k e _ s h m e m ( . . . ) (eọi từ c h ư ơ n g trình c h in h ) tao v ù n g n h ớ chia sẻ với kí ch tlur ớc lă si~e. a ppn am e lă tín c u a ứ n g d ụng.
b oi n c g r a p h i c s ơ e t _ s h m c m ( ) (Gọi t ừ ứ n s d ụ n g d ô h ọ a ) đ ỉ g â n l i í n k ẻ t vứi \UIVJ
n h ớ c h i a se dê t ồn tại c u a c h ư ơ n g trình chính.
N ộ i d u n g c ù a v ù n g n h ớ c h i a sc sẽ b ô m g ô m câc thu:ih p h a n sau:
s tr uct Ư C _ S H M E M !
double update_time: double fraction_đone; double cpu_t ime;
B O I N C S T A T Ư S s tatus:
};
c ấ u t rúc năy sẽ đ ư ợ c c h ư ơ n e t rì nh c h í nh c ậ p nhật i h ư ờ n e x u v í n sau mỗi iiiđ\ b ằn c
câch s ử dựng hăm b o i n c set t i me h a n t l k r ( ) Câ c t h ă n h p h ầ n t r o n a cău trúc có ý
nghĩa như sau:
u p d a t e t i m e T h ờ i đ i í m hi ện tại.
[Ti lí h o ă n t h ă n h c ôna \ iíc lân cuôi cùnii d ư ơ c thôim
fra c tio n (lonel
b â o bới c h ư ơ n g trình c h ín h
c p u t i m c
1
T h ờ i g i a n tinh toân cua b ộ x ứ !Ý ừ thời d i í m hiện tại
s . a . u s ■■■ ]
. . ...
Ch i t r ạ n g thâi hi ện tại cua p ro ịc ct
T a p ha i l uôn nhó' r ằ n g , có thí c ó n h i íu c h ư ơ i m trinh d ó h ọ a c ù n u c h a v m ộ t lúc. dí
t r â n h c â c ứ n g d ụ n g n ă \ s,hi d ữ l iẹu l ín v ù n g n h o c h i a se. n í u ta d ù n g M i n s n h ớ c h i a
sẻ đ ư ợ c l ưu t r o n e m ộ t c ấ u trúc thì ph ai sư d ụ n s s e m a p h o r e d ỏ n g bộ h ó a cac ứng d ụ n g đó.
1.4 T r i c k l e m e s s a g c A P i
1.4.1 G i ó i t h i ệ u
T r i c k l e m e s s a ơ c lă t h ône diệp s i a o liếp 2Ĩừa c o r e Client vă s e r v e r trong suót quâ trình c o r e Client t h ự c thi \ v o r k u n i t . T r i c k l c m e s s a g e đ ư ợ c su dụriL c h o câc ứn g đụne, c ó c â c \ v o r k u n i t c ó t h ời c i a n thụ'c thi lớn (C ó thô k c o dăi t r o n ă \ ă i n s ă v )
T ric k le message có thô dược iiưi từ co re clicnt tói server vă ‘ìgưcv lọi. Khưỏn đụn 2
của thông điệp ơ đ ạ n e xđu X MI .
a. Trickìe-up m e ss a g e s
T ric k le -u p niessagc đuợc truvỉn tù' ưnu đụnc chạ\ phía corc cliiMit tứi s e r\e r. cac
t h ô n g d i ệp t r i c k l e - u p di rọc s e r v o r liôp n h ặ n va x ư K bơi m ọ t (I;H:I110!1 !i tí'11'KIc
h a n d le r d iic n io n . C â c thônti d iệ p t r ic k l c - u p lả XÍ1U A \ l l . ch ư u nh ữ n g th o n g u n cu a
c h o c ô n g vi ệc , t r ạ n g thâi tính toân cua \ v o r k u n i t . . . . N h ă cỏ n h ư n e t h ò n e ;.:i ÙI t r i c k l e - u p m e s s a g e . s e r v e r sỉ ra n h ữ n g t h ỏ n a tin đi cu k h i ín h ợ p lv.
Đ í tạo ra t r i c k l e h a n d l e r d a e m o n . ch cần sua chư. 'ne 'rinh
s c h e d / t n c k l e _ h a n d l e r . C . tha\ ' h ă m ha ĩi đle _t ri cklc () b ũ n ° '’i ê \ u lv chùn-' !:). C uôi c ù n g lă d ă n g kí cỉaemon t r i e k l e h a n d l e r b ă n a c â c h i h ẽ m t h r r . c Ún văo tì lo
c o n í ì g . x m l .
b. T rickle-do \vn m e ssa g e s
Trickle-dovvn messages dược gừi từ phai server UM ! co re Client \ j c di.ih. Mồi
t h ò n g đ i ệ p t r i c k l e - d o \ v n m c s s a u e c h ứ a địa chi địa ch] cụ thí c u a m ộ t host \ a c dịnh.
đ ồ n g t h ờ i p h a i c h ứ a c ặ p t h e < r e s u l t n a m e > đ í XLÌC đ ị n h rò t ín c u a r e s u l t m ă
t rickle-dovvn đ ư ợ c e ưi đôn. N í u result văn đ a n e !iv: i2 q u â t ri nh x ư 1Ý. t ’ '11 l; diộp
tri ckl e-dovvn sẽ được cửi tói nó. Tr i c k I e - d o \ \ n m e s s a g e chưa t h ò n c diệp di ổ 11
k h ií n ch o p h ía c o r e C lie n t. \ í dụ như th ô n e đ iệ p v í ii cđu h ú y chư oiiLi tr !i dan.:
thực thi, hoặc lă thông điệp ví sô credit mă ne ưò i J' ne c ỏ d ư ợ c . . .
1.4.2 CHent-Side . 1 / 7
Đ í gửi t r i c k l e - u p n i e s s a g e vă nhận trickle-(J<)\\ n messi tgc. phiu Client sir dụnu CMC hăm:
int b o i n c _ s e n d _ t r i c k l e _ u p ( c h a r * v ar ie ty , cli ar* ( c \ t )
int b o i n c r e c e i v e t r i c k l e _ d o \ v n ( c h a r * buf, int l e n )
G i â trị tra về sẽ k h â c 0 n ế u đó lă một t h ò n g điệp.
1.4.3 S e r v e r - S id e A P I
S e r v e r c h ạ y t r i c k l c h a n d l c r d a e m o n đí n h ậ n \ a \U ]} t h ô n ° di ệp t r i c k l e - u p
rnessage. t r i e k l e h a n đ l e r cỉaemon đ ư ợ c viẽt từ ciiLitvn : irinh
s c h e d t ri ckl e h a n d l e r . c . ơ dỏ ta sỉ viết t h ỉ m Cck tỉ' 10 tâc x ư 1> t r o ng ha m h a n d l e t r i c k l c ( ). int h a n d l e _ t r i c k I c ( M S G _ F R O M _ H O S T &); s t r uc t M S G _ F R O M _ H O S T { int c r e a t e t i m c; int ho st id;
c h a r v a r i e t y | 2 5 6 Ị ; // p r o j e c t - d e f i n e d ; \ vhat k i nd o f m s g c h a r x m ! Ị M S G _ F R O M _ H O S T _ B L O B _ S l Z E ị ;
N ế u t r i c k l e m e s s a g e đ ư ợ c x ử lý t h ăn h côn g, h ă m h a n đ l e _ t r i c k ! e ( ) sò tra về iiki trị 0. T r ư ờ n g ‘h o s t i d ' x â c đ ị n h đ ị n h d a n h c ua host m ă t h ô n ” d i ệ p sỉ đ ư ơ c eưi don. Khi đ ư ợ c khới đ ộ ng , t r i c k l e h a n d l e r d a e m o n sẽ phai d ư ợ c t ru vc n một t h am sổ •-
varietv X" đí chi định rõ loại thông điệp mă d a e m o n sỉ xư K.
Đ e gưi một thông điệp t r k k i e - d o \ \ n m e s s a g e (Có thí tu t r i c k l e h a m l l e r d ac mo ỉi
ho ặ c c h ư ơ n g t ri nh k h â c ) , ta phai c hỉ n 1 b an ghi vă o hanti ' i n s u to h o s t ‘. l a có thô lăm v iệc đó n h ư sau:
D B M S G T O H O S T nith; mt h. c le ar () ; m t h . c r e a t e í i m e = t i m e ( 0 ) ; mt h. ho st i ti = h o s ti d; s p r i n t f ( m t h . . \ m l , " < t r i c k l e d o w n > \ n " " < r e s u l t _ n a m e > % s < / r e s u l t _ n a m e > \ n " " < / t r i c k l e _ d o \ \ n > \ n " , retval = n i th . i n s e r t ( ) ;
Đ í gửi thôrm diệp s l i c k I c - d o \ v n nicssíìgc thì trons í11 c can hình c o n f i o . \ i n l pỉìlII co thỉm thẻ:
1.5 I n t e r m e d i a t e U p i o a d
V ớ i n h ữ n g ứ n g d ụ n g có t hơi gi an t hục tỉ'; lđu. c h ư ơ n e irinh có thẻ u p l o a d tìic ouput t r ư ớ c khi t o ă n b ộ c ó n g vi ệc tính t oân d ư ợ c h o ă n tất. Dẻ kiv : tạp bât dầu u p l o a đ lìlc
output, ta ỉ>ẽ gọi hăm
e x t e r n int b o i n c _ u p l o a d _ f i l e ( s t d : : s t r i n g & n a n u Ị :
ở đđy, n a m e lă t í n l ogic c ua fi!c oủput. C h ư ơ n e trinh sẽ khỏni: s ưa d 'i bắt ki th. tin gì c ủ a iìle o u t p u t sa u khi h ă m boi nc_tjpl oacl_fil e() d ượ c ìi.
Đ í k i ể m tra t r ạ n g t hâi u p l o a d c ủ a li le '1,‘put. ta LỌÍ hăm:
e x t e r n int b o i n c _ u p l o a d _ s t a t u s ( s t i l : : st ri ng & naine);
n ế u g iâ trị trâ vẽ b ă n e 0 thi iìle o n t p u t dê đ ư ợ c u p lo ad t h ăn h CÔ1U
1.6 C â c h ă m thu v i ện k h â c
D ư ớ i đ đ y lă m ộ t sỏ h ă m t h ư ờ n a gặp khâc:
booỉ b o i n c _ n i c _ e x i s ( s í c o n s t c hai v path)
M ô t ả : K i ể m tra c h ứ c s ự t ôn tại cua íìlc có đ ư ò r m dăi! lă xđu p a l h
bool i s _ d i r ( c o n s t c h a r * pa t h)
M ô t ả : K i ể m tra x đ u p a t h có phai lă d ư ờ n e d ẫ n m ộ t t hư m ụ c k h ô ng ,
bo ol i s _ f i l e ( c o n s t e h a r * )
M ô t ả : K i ể m tra x đ u p a t h có pha i lă đ ư ờ n g d ẫ n cua m ộ t tìle k hô n g.
F IL E * b o i n c f c p e n ( c o n s t char* p a t h , c o n s t cha r* mode)
M ô t ả : M ỡ tìle c ó đ ư ừ n e d đ n lă p a t h o chí đ ộ r n o d e
int b o i n c _ c o p y ( c o n s t c h a r * orig, const c h a r * n t \ \ f )
M ô t ê : C o p y 1 file c ó d ư ừ n e dầ n la xđu o r i g tới lìlc có d ư ờ n g c ă n la m \ \ f. ( lia trị t r ả lại
--- , --- 7--- 7---— --- b ă n g 0 n í u t h ă n h c ô n g , k h â c 0 ní u lôi.
int b o i n c _ d e l e t e _ f í ! e ( c o n s t c h a i * p;.ih)
Mô t ả : xóa t ấ t cả c â c
path, n h ư n g k h ô n g xóa file xóa bị lồi q u y ể n
int b o i n c _ ĩ n a k e _ d i r s ( c o n s t c h a r * d i r p a t h , con ! c ha r * íìl cpatí i)
M ô t ả : T ạ o c â c t h ư m ụ c l ồ n e nhau, với t h ư m ụ c e ổc có đir; m d í n la d i r p a t h .
n i e p a t h lă đ ư ờ n g dẫn cùa thư mục con tính từ từ mục s ố c . \ ' i dụ như nếu íilcpath
c ó d ạ n g: “ / a ” h o ặ c ‘7 a b" thì h ă m sỉ tạo ra t h ư m ụ c c on có đ ư ờ n u da n la d i r p u t h / a h o ặ c d i r p a t h / a / b . G i â trị tră ví b a n a 0 nếu t h ă n h c ô n ” .
int b o i n c _ m k d i r ( c o n s t e h a r * patli)
M ô t ả : T ạ o t h ư m ụ c m ớ i n í u t h ư m ụ c c ó đ ư ớ n e d a n c h u a t(''•■■ tại ( lia trị t ra \ c
bằng 0 nếu thănh c ò n c .
int b o i n c _ r c n a m e ( c o n s t c h a r * old, const c h a r * n e \ ' D
M ô t ả : T h a y dổi t ín c u a file có d ư ờ n e dần l.i okl ( đ u ờ n g dan - lẻn lì le) sanii
thănh tín lă n e \ v f
int b o i n c _ r m d i r ( c o n s t c h a r * pa t h)
M ô t ả : X ó a t h ư m ụ c c ó đ ư ờ n e d an lă p a t h
int b o i n c _ t o u c h _ n i e ( c o n s t c h a r * pat h)
M ô t ả : N ế u íìle c ó d ư ờ n c d ầ n la p a t h cluru tôn tại 'hì tạo mới ille dó. ỉ ỉ a m tra \ ĩ gi â trị b ă n g 0 n ế u t h ự c thi t h ă n h c ô ng
int c l e a n _ o u t _ d i r ( c o n s t cli ar* patli)
M ô t ả : X ó a t h ư m ụ c c ỏ đ ư ờ r m dăn lù p a t h . h a o g ô m câc l i L '.ă cac i hu m ụ c con. H ă m t rả v ề e i â trị 0 n ẻ u t h ự c tlii thăn h công.
M ô tả: Trả v í đ ườ n g d đ n tuyệt đói t r o ng x đ u path c ua file. h ay t h ư m ụ c d ư ờ n c
dẫn tường đối lă r e l n a m e
2. Q u â trình căi đặt B O I N C 2.1 H ư ớ n g d ẫ n căi đậ t B O I N C s e rv e r
2.1.1 Cùi đ ặ t câ c g ó i cư ban
D ự a t rí n y í u c đ u về p h đ n m ề m c h u n e trín n en Un ix Li nux đe h iín dịch HOINC Đổi với D e b i a n 4 .0 cụ t hí ta phai căi câc 2Ói sau:
make a ut o co nf aut oma k el .9 g c c - 4 . 1 g++-4. 1 p kg -c onf íg libtool subversion vim Command: a p t-g e t m s to ìỉ m 4 m ake a u to c o n f au to m a ke ỉ . 9 g c c - 4 .1 g cc g - 4 .1 p kv-c o ii/ìg lib to o l su b v e rs io n rim
+ Căi đặt c â c s ó i c ầ n t hiết đỉ ch ạy sci \ c r B O IN C :
a pa che 2- mpm- pr ef or k l i b a p a ch e 2 - mo d- p hp 5 my sq l - c l i e n t - 5 . 0 m y s q l - se rv e r- 5. 0 p h p 5 - m y s q l 56
php5-cli php5-gd p h p m y ad m i n p y t h o n- m ys q l d b l i b m y s q l + + - d e v l ibssl-dev C o m m a n d :
a p t-g et in sta ỉl apciche2 -m pm -prefork ìib a p a c h e 2 -‘‘iod-php5 ni)'sql-clìt. n t - \ m y s q l-s e r v e r -5 .0 p h p 5 -n iy s q l p h p 5 -c li p h p 5 -g d p h p n n iKÌinii; p yth o n -m ysq ld h ỉib m y sq l+ + -d e v lìb ssl-d e v
+ K i í m tra h o ạ t d ộ n g c u a apacỉic s er vc r \ ă php:
T ạ o íìle p h p i n l o . p h p tronL [hư m ụ c ' v a r u u u có nội đurm: < ? p h p
p h p i n l b ( ):
? >
V ă c h ạ y t hứ:
h t t p : / / l o c a l h o s t / p h p i n f o . p h p
+ C ó t h ể căi đặt t h ỉ m c â c gói e i a o diện:
kdebase kde - gui da nc e synaptic icevveasel xserver-org Co mma nd: o p t - g € t i n s t ũ l / k d c b a s e k c ỉ c - í Ị i t i í ỉ ơ n c L ’ s Y H í i Ị t i c / c v u 't ơ s c l \ S C Ì ' \ ' C ) ' - ( ) Ì ' Í Ỉ 2.1.2 Cưu h ìn h s e r v e r + T ạ o a c c o u n t m ớ i c h o B O I N C
T ạ o a c c o u n t m ớ i m a n g tín: ' b o i n ^ a d m ' s au đó a dd User •\ vw\ v-d at a' \ ă o gr ou p ‘b o i n c a d m ’
$ u sera d d -m -s /b m /b a s h b o inca dm $ u se rm o d -G b o in c a d m \vw w -data
L o g o u t vă l o g i n t rơ lại với tăi kh' an ' b o i n c a d m ' + C ấ u h ì n h s er ve r M y S Q L :