ÑàíêòÏåòåðáóðãñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò
Ôóíäàìåíòàëüíûå èíôîðìàòèêà è èíôîðìàöèîííûå òåõíîëîãèè
Ìàòåìàòè÷åñêîå è ïðîãðàììíîå îáåñïå÷åíèå âû÷èñëèòåëüíûõ ìàøèí,
êîìïëåêñîâ è êîìïüþòåðíûõ ñåòåé
Âëàñîâà Êñåíèÿ Àíäðååâíà
Ìàãèñòåðñêàÿ äèññåðòàöèÿ
Ìóëüòèàãåíòíûé ïîäõîä ê
ìîäåëèðîâàíèþ ýïèäåìèé â îáëàêå
Íàó÷íûé ðóêîâîäèòåëü:
ä.ô.-ì.í., ïðîô.
Òåðåõîâ À. Í.
Ðåöåíçåíò:
âåäóùèé áèçíåñàíàëèòèê
Åð¼ìóøêèíà Ñ. Þ.
Ñàíêò-Ïåòåðáóðã
2016
SAINT-PETERSBURG STATE UNIVERSITY
Fundamental Computer Science and Information Technologies
Software of Computers, Complexes and Networks
Vlasova Kseniia
0
Master s Thesis
Epidemics modelling using cloud-based
multi-agent systems
Scientic supervisor:
Ph. D., professor Andrey Terehov
Reviewer:
Lead business analyst,
postgraduate Eremushkina Svetlana
Saint-Petersburg
2016
Ñîäåðæàíèå
Ñîäåðæàíèå
1
1. Ââåäåíèå
3
2. Îáçîð ñóùåñòâóþùèõ ðåøåíèé
5
2.1.
Ðåàëèçîâàííûå ñèñòåìû ïðîãíîçèðîâàíèÿ ýïèäåìèè
2.2.
Âèðóñ Ýáîëà
2.2.1.
. . . . .
6
. . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Ìîäåëü ïðîòåêàíèÿ çàáîëåâàíèÿ SEIRFD
. . . . . . .
3. Îïèñàíèå ðåøåíèÿ
3.1.
3.2.
3.3.
8
8
Ìîäåëèðîâàíèå ýïèäåìèé ñ ïîìîùüþ ìóëüòèàãåíòíîé ñèñòåìû
8
3.1.1.
Àãåíòíûé ïîäõîä . . . . . . . . . . . . . . . . . . . . .
8
3.1.2.
Êîíòåéíåðíûé ïîäõîä
. . . . . . . . . . . . . . . . . .
9
3.1.3.
Âîçðàñòíûå êàòåãîðèè . . . . . . . . . . . . . . . . . .
10
Âûáîð òåõíîëîãèé
. . . . . . . . . . . . . . . . . . . . . . . .
10
3.2.1.
Akka.Net . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2.2.
Orleans . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.2.3.
Java, Jade
11
. . . . . . . . . . . . . . . . . . . . . . . . .
Îïèñàíèå ïðîãðàììíîé ðåàëèçàöèè
. . . . . . . . . . . . . .
3.3.1.
C#, Microsoft Azure, Service Bus
3.3.2.
Àðõèòåêòóðà ñèñòåìû
12
. . . . . . . . . . . .
12
. . . . . . . . . . . . . . . . . .
14
3.3.3.
Äîïîëíåíèå ñèñòåìû áàëàíñèðîâùèêîì íàãðóçêè . . .
17
3.3.4.
Îñíîâíûå âèäû àëãîðèòìîâ áàëàíñèðîâêè íàãðóçêè
.
18
3.3.5.
Àëãîðèòìû áàëàíñèðîâêè íàãðóçêè
. . . . . . . . . .
18
3.3.6.
Íà÷àëüíàÿ áàëàíñèðîâêà
. . . . . . . . . . . . . . . .
20
3.3.7.
Áàëàíñèðîâêà âî âðåìÿ ðàáîòû ñèñòåìû . . . . . . . .
21
3.4.
Ýêñïåðèìåíòû
. . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.
Îãðàíè÷åíèÿ èññëåäîâàíèÿ
. . . . . . . . . . . . . . . . . . .
23
3.6.
Äàëüíåéøèå ïóòè ðàçâèòèÿ
. . . . . . . . . . . . . . . . . . .
23
1
21
4. Çàêëþ÷åíèå
24
Ñïèñîê ëèòåðàòóðû
25
2
1. Ââåäåíèå
Ýïèäåìèîëîãè÷åñêèå óãðîçû ïîñëåäíèõ ëåò òðåáóþò äëÿ ñâîåãî ðåøåíèÿ íå òîëüêî ìåäèêàìåíòîçíûõ, íî è îðãàíèçàöèîííûõ ìåð. Íåîæèäàííîå âîçíèêíîâåíèå ýïèäåìèé ìîæåò ïðèâåñòè ê íåãàòèâíûì ïîñëåäñòâèÿì â
ñëó÷àå íåïðîäóìàííûõ äåéñòâèé ñïåöèàëèñòîâ ðàçëè÷íûõ ñëóæá (îðãàíîâ
çäðàâîîõðàíåíèÿ, àäìèíèñòðàöèè, àïòå÷íûõ ñåòåé è ò.ä.). Ïðè îñóùåñòâëåíèè êà÷åñòâåííîãî ïðîãíîçà îæèäàåìîãî óðîâíÿ çàáîëåâàåìîñòè è âîçìîæíûõ ïîñëåäñòâèé, ñòàíîâèòñÿ âîçìîæíûì òàêæå çàðàíåå âûÿâèòü ïðèáëèæåíèå ýïèäåìèè. Ïðîãíîçèðîâàíèå äèíàìèêè ðàñïðîñòðàíåíèÿ çàáîëåâàíèÿ, ïîëó÷åííîå â ðåçóëüòàòå ïîñòðîåíèÿ èìèòàöèîííîé ìîäåëè, ïîçâîëèò
ñïåöèàëèñòàì çàáëàãîâðåìåííî ïðîäóìàòü ìåðû áîðüáû ñ ýïèäåìèåé.
Èìèòàöèîííîå ìîäåëèðîâàíèå ýòî ïîäõîä, äëÿ êîòîðîãî õàðàêòåðåí ïåðåâîä ïðîöåññîâ ðåàëüíîãî ìèðà â íåêîòîðîå ìàòåìàòè÷åñêîå îïèñàíèå èëè óïðîù¼ííîå ôèçè÷åñêîå ïðåäñòàâëåíèå [1, 2]. Îäíèì èç âèäîâ
èìèòàöèîííîãî ìîäåëèðîâàíèÿ ÿâëÿåòñÿ ïîñòðîåíèå ìóëüòèàãåíòíûõ ñèñòåì. Ìóëüòèàãåíòíûå ñèñòåìû ïðåäñòàâëÿþò ñîáîé ñîâîêóïíîñòü âçàèìîäåéñòâóþùèõ àãåíòîâ äëÿ ðåøåíèÿ îïðåäåë¼ííîé çàäà÷è. Àãåíò ýòî íåêîòîðàÿ ñóùíîñòü, êîòîðàÿ îáëàäàåò àêòèâíîñòüþ, àâòîíîìíûì ïîâåäåíèåì,
ìîæåò ïðèíèìàòü ðåøåíèÿ â ñîîòâåòñòâèè ñ íåêîòîðûì íàáîðîì ïðàâèë,
ìîæåò âçàèìîäåéñòâîâàòü ñ îêðóæåíèåì è äðóãèìè àãåíòàìè [15].
Äëÿ òîãî ÷òîáû ìîäåëü ðàñïðîñòðàíåíèÿ ýïèäåìèè áûëà íàèáîëåå
òî÷íîé, íåîáõîäèìî ìíîæåñòâî ðàçëè÷íûõ ïàðàìåòðîâ, òàêèõ êàê âîçðàñò
àãåíòîâ, âåðîÿòíîñòü èõ ïðåáûâàíèÿ â òîé èëè èíîé ëîêàöèè â çàâèñèìîñòè
îò âîçðàñòà è âðåìåíè ñóòîê è ò. ä., ÷òî âëå÷¼ò çà ñîáîé óâåëè÷åíèå âû÷èñëèòåëüíûõ ðåñóðñîâ. Âû÷èñëèòåëüíàÿ ìîùíîñòü êîìïüþòåðà, íà êîòîðîì
ïðîèçâîäèòñÿ çàïóñê ìîäåëè, ÿâëÿåòñÿ îäíîé èç îñíîâíûõ ïðè÷èí, ïî êîòîðîé äåòàëèçèðîâàíèå ìîäåëè ñòàíîâèòñÿ âåñüìà íåöåëåñîîáðàçíûì. Äëÿ
ïðåîäîëåíèÿ ýòîãî îãðàíè÷åíèÿ õîðîøèì ðåøåíèåì ÿâëÿåòñÿ èñïîëüçîâàíèå äëÿ âû÷èñëåíèé îáëà÷íûõ òåõíîëîãèé. Îáëà÷íûå âû÷èñëåíèÿ ïîäõîä
3
ê ðàçðàáîòêå ïðèëîæåíèé, â êîòîðîì îáùèå ðåñóðñû, äàííûå è èíôîðìàöèÿ õðàíÿòñÿ íà ìîùíûõ ìàñøòàáèðóåìûõ êëàñòåðàõ è ïðåäîñòàâëÿþòñÿ
ïî òðåáîâàíèþ êîìïüþòåðàì è äðóãèì óñòðîéñòâàì. Êàê ñëåäóåò èç îïðåäåëåíèÿ, îäíèì èç ãëàâíûõ ïðåèìóùåñòâ îáëà÷íûõ âû÷èñëåíèé ÿâëÿåòñÿ
ìàñøòàáèðóåìîñòü, ïîçâîëÿþùàÿ ïðè íåîáõîäèìîñòè áûñòðåå âû÷èñëÿòü
ñëîæíûå çàäà÷è ïî ñðàâíåíèþ ñ ïåðñîíàëüíûì êîìïüþòåðîì.
Ïðîãðàììíûé êîìïëåêñ íà îñíîâå ìóëüòèàãåíòíûõ ñèñòåì â îáëàêå
ïîçâîëèò ïîñòðîèòü ïðîãíîç ðàçâèòèÿ ýïèäåìèîëîãè÷åñêîé îáñòàíîâêè â
ãîðîäå, à òàêæå êîëè÷åñòâåííî îöåíèòü ìàñøòàáû ïîòåðü.
Öåëü ðàáîòû çàêëþ÷àåòñÿ â ìîäåëèðîâàíèè ýïèäåìèé íà ïðèìåðå ëèõîðàäêè Ýáîëà [9] ñ ïîìîùüþ ìóëüòèàãåíòíîé ñèñòåìû ñ ó÷¼òîì ðàñïðåäåëåíèÿ âû÷èñëèòåëüíîé íàãðóçêè â îáëàêå.
Äëÿ å¼ äîñòèæåíèÿ áûëè ñôîðìóëèðîâàíû ñëåäóþùèå çàäà÷è:
•
ðåàëèçîâàòü ìóëüòèàãåíòíóþ ñèñòåìó, ìîäåëèðóþùóþ ðàñïðîñòðàíåíèå ýïèäåìèè;
•
•
àäàïòèðîâàòü ñèñòåìó ê ðàçìåùåíèþ â îáëàêå, à èìåííî:
ðàçäåëèòü ñèñòåìó íà ìàñøòàáèðóåìûå ìîäóëè;
ðàñïðåäåëèòü âû÷èñëèòåëüíóþ íàãðóçêó;
îðãàíèçîâàòü ñáîð ðåçóëüòàòîâ.
ïðîèçâåñòè áàëàíñèðîâêó âû÷èñëèòåëüíîé íàãðóçêè ïåðåä çàïóñêîì
ìîäåëè è âî âðåìÿ å¼ ðàñ÷¼òà.
4
2. Îáçîð ñóùåñòâóþùèõ ðåøåíèé
Äëÿ
óòî÷íåíèÿ
îñîáåííîñòåé
çàáîëåâàíèÿ
áûëà
âûáðàíà
ìîäåëü
SEIRFD, êàê íàèáîëåå ñîîòâåòñòâóþùàÿ ðåàëüíîñòè è ïîäõîäÿùàÿ äàííîìó çàáîëåâàíèþ [4]. Îíà ïðåäñòàâëåíà íà ðèñóíêå 1 â âèäå êîíå÷íîãî
àâòîìàòà.
Ðèñ. 1. Êîíå÷íûé àâòîìàò ìîäåëè SEIRFD.
Äàííàÿ ìîäåëü ÿâëÿåòñÿ ìîäèôèêàöèåé ìîäåëè SIR [19], ÿâëÿþùåéñÿ
óïðîù¼ííûì ñïîñîáîì îïèñàíèÿ ïåðåäà÷è èíôåêöèîííûõ çàáîëåâàíèé [13].
Ñîãëàñíî ìîäåëè SEIRFD, êàæäûé àãåíò ìîæåò íàõîäèòüñÿ â îäíîì
èç øåñòè ñîñòîÿíèé.
•
S (Susceptible) - âîñïðèèì÷èâûå ê çàðàæåíèþ;
•
E (Exposed) çàðàæ¼ííûå, íàõîäÿùèåñÿ â èíêóáàöèîííîì ïåðèîäå;
•
I (Infectious) çàðàæ¼ííûå;
•
F (Funeral) ì¼ðòâûå, íî ïî-ïðåæíåìó ÿâëÿþùèåñÿ èñòî÷íèêîì çàðàæåíèÿ;
•
D (Died) ïîãðåá¼ííûå;
•
R (Recovered) âûçäîðîâåâøèå.
Çàäà÷à ìîäåëèðîâàíèÿ ýïèäåìèé àêòóàëüíà ñ äàâíèõ âðåì¼í, è å¼ ïû-
òàëèñü ðåøèòü íåîäíîêðàòíî. Ñóùåñòâóþò òðàäèöèîííûå ìîäåëè ðàñïðîñòðàíåíèÿ çàáîëåâàíèé, êîòîðûå, îäíàêî, òðåáóþò ðàçëè÷íûõ äîïóùåíèé
(îäíîòèïíîñòü èíäèâèäóóìîâ, èõ íåïðåðûâíîå ðàâíîìåðíîå ïåðåìåøèâàíèå íà ìîäåëèðóåìîé òåððèòîðèè), âñëåäñòâèå ÷åãî ÿâëÿþòñÿ íåäîñòàòî÷íî
5
òî÷íûìè [3].
 ðàáîòå [3] ðàçðàáàòûâàåòñÿ ìîäåëü ðàñïðîñòðàíåíèÿ ãðèïïà
A
íà
îñíîâå àãåíòíîãî ïîäõîäà ïðè ïîìîùè ñðåäû AnyLogic [3]. Ìîäåëü ó÷èòûâàåò íåñêîëüêî ôàêòîðîâ ñíèæåíèÿ èíôåêöèîííîé çàáîëåâàåìîñòè è ðàññ÷èòûâàåò ïðîãíîç íà ìåñÿö âïåð¼ä.
Äðóãàÿ ðàáîòà [4] ðåàëèçóåò ìîäåëü ðàñïðîñòðàíåíèÿ ýïèäåìèè Ýáîëà
íà îñíîâå ìóëüòèàãåíòíîãî ïîäõîäà. Ìîäåëèðîâàíèå ïðîèñõîäèò òàêæå ñ
ïîìîùüþ ïðîãðàììíîãî èíñòðóìåíòà AnyLogic.
Ïåðâûé íåäîñòàòîê îáåèõ âûøåóïîìÿíóòûõ ìîäåëåé çàêëþ÷àåòñÿ â
îãðàíè÷åíèè íà êîëè÷åñòâî àãåíòîâ ðàññìàòðèâàåìîé ëîêàöèè, à çíà÷èò, è
ïëîùàäè òåððèòîðèè, íà êîòîðîé îíè ðàñïîëàãàþòñÿ. Âòîðîé íåäîñòàòîê
çàòðóäíèòåëüíîñòü äåòàëèçàöèè ìîäåëè èç-çà îãðàíè÷åííûõ âîçìîæíîñòåé
ïðîöåññîðà ìàøèíû, íà êîòîðîé âûïîëíÿåòñÿ ìîäåëèðîâàíèå.
2.1. Ðåàëèçîâàííûå ñèñòåìû ïðîãíîçèðîâàíèÿ
ýïèäåìèè
Íà äàííûé ìîìåíò ñóùåñòâóåò ñèñòåìà, ìîäåëèðóþùàÿ äèíàìèêó
ðàçâèòèÿ ýïèäåìèé, âûçâàííûõ îñîáûìè ïàòîãåíàìè [17], ðàçðàáîòàííàÿ
â Ðîññèéñêîì Ãîñóäàðñòâåííîì íàó÷íîì öåíòðå âèðóñîëîãèè è áèîòåõíîëîãèè. Ìîäåëü âêëþ÷àåò â ñåáÿ ðÿä ïðîòèâîäåéñòâèé: ïðîôèëàêòèêó, íåîòëîæíóþ ìàññîâóþ âàêöèíàöèþ, âàêöèíàöèþ ãðóïï ðèñêà, êàðàíòèí è äðóãîå. Âîçìîæíî ïðîâåäåíèå ìîäåëèðîâàíèé òàêèõ ýïèäåìèé êàê ãðèïï, íàòóðàëüíàÿ îñïà, Ýáîëà, õîëåðà è äðóãèå, äàþùåå ñðàâíèòåëüíî õîðîøèé ðåçóëüòàò. Ìîäåëü ðàñïðîñòðàíåíèÿ ýïèäåìèè îòíîñèòñÿ ê êëàññó SEmInRF
(S âîñïðèèì÷èâûå, E, m, In ðàçíîâèäíîñòè èíôèöèðîâàííûõ, R
âûçäîðîâåâøèå, F ì¼ðòâûå), îäíàêî â ñîñòîÿíèè F çàðàæåíèÿ íå ïðîèñõîäèò, à ñ ó÷¼òîì îñîáåííîñòåé ìîäåëèðóåìîé òåððèòîðèè ýòî ñóùåñòâåííî.
Ñòîèò îòìåòèòü, ÷òî ìîäåëü íàõîäèòñÿ â çàêðûòîì äîñòóïå è êàê ñëåäñòâèå
íå ïðåäïîëàãàåò äåòàëèçàöèè.
6
Èìååòñÿ òàêæå îñíîâà äëÿ ðåêîíñòðóêöèè äèíàìèêè ðàçâèòèÿ ýïèäåìèé FRED (A Framework for Reconstructing Epidemiological Dynamics). Ýòî
ñèñòåìà ìîäåëèðîâàíèÿ ñ îòêðûòûì èñõîäíûì êîäîì, èñïîëüçóþùàÿ àãåíòíîå ìîäåëèðîâàíèå, îñíîâàííîå íà èñêóñòâåííî ñôîðìèðîâàííûõ ãðóïïàõ
íàñåëåíèÿ, ïîñòðîåííûõ íà äàííûõ ïåðåïèñè íàñåëåíèÿ, êîòîðûå ñîäåðæàò
äåìîãðàôè÷åñêîå è ãåîãðàôè÷åñêîå ðàñïðåäåëåíèÿ ïîïóëÿöèè. Íåäîñòàòêîì ìîäåëè ÿâëÿåòñÿ íåâîçìîæíîñòü ïðîâîäèòü ìîäåëèðîâàíèå íà äðóãîé
ìåñòíîñòè, ïîñêîëüêó âñòðîåííûå äàííûå ïðåäíàçíà÷åíû òîëüêî äëÿ òåððèòîðèè ÑØÀ [16].
Öåíòð ïî êîíòðîëþ è ïðîôèëàêòèêå çàáîëåâàíèé ÑØÀ îïóáëèêîâàë
èññëåäîâàíèå íà òåìó ìîäåëèðîâàíèÿ ðàñïðîñòðàíåíèÿ âîçäåéñòâèÿ áîëåçíåé è âìåøàòåëüñòâà. Ìîäåëü ïîçâîëÿåò îöåíèòü ÷èñëî ñëó÷àåâ çàáîëåâàíèÿ âèðóñîì Ýáîëà, îäíàêî íå âåäåòñÿ ñòàòèñòèêà ñìåðòíîñòè [18].
2.2. Âèðóñ Ýáîëà
Áîëåçíü, âûçâàííàÿ âèðóñîì Ýáîëà, îñòðàÿ âèðóñíàÿ èíôåêöèÿ,
ÿâëÿþùàÿñÿ ÷àñòî ñìåðòåëüíîé, ñ êîýôôèöèåíòîì ñìåðòíîñòè, äîñòèãàþùèì
90%. Ïîðàæàåò ëþäåé è íåêîòîðûå âèäû æèâîòíûõ [9]. Ïî ïîñëåäíèì
äàííûì ÷èñëî æåðòâ Ýáîëû ñîñòàâëÿåò ïðèìåðíî îäèííàäöàòü òûñÿ÷ [10].
Ïåðâûå âñïûøêè áîëåçíè, âûçâàííîé âèðóñîì Ýáîëà, ïîÿâèëèñü â äåðåâíÿõ Öåíòðàëüíîé Àôðèêè, îäíàêî ñàìûå ïîñëåäíèå âñïûøêè â Çàïàäíîé
Àôðèêå îõâàòèëè êðóïíûå ãîðîäà è ñåëüñêèå ðàéîíû [11].
Èññëåäîâàíèåì âèðóñà Ýáîëà çàíèìàþòñÿ ìèðîâûå íàó÷íûå îðãàíèçàöèè, è ñòàòèñòè÷åñêèå äàííûå ïî äàííîìó çàáîëåâàíèþ áûëè âûëîæåíû â îòêðûòûé äîñòóï [29]. Íàñ èíòåðåñîâàëà ñòàòèñòèêà çàðàæåííûõ è
óìåðøèõ ëþäåé ñ
23
ìàÿ
2014
ãîäà. Èññëåäîâàíèÿ ïðîâîäèëèñü ïî ãîðîäó
Êàéëàõóí, êàê íàèáîëåå ïîñòðàäàâøåìó îò ýïèäåìèè.
7
2.2.1. Ìîäåëü ïðîòåêàíèÿ çàáîëåâàíèÿ SEIRFD
 ìîäåëè, êàê è â ðåàëüíîé æèçíè, îñíîâíàÿ ÷àñòü àãåíòîâ íàõîäèòñÿ â ñîñòîÿíèè
”Susceptible”.
Ïðè íåïîñðåäñòâåííîì êîíòàêòå ñ áîëüíûì
(”Infectious”) èëè íåïîãðåá¼ííûì (”Funeral”) àãåíòîì, ïîÿâëÿåòñÿ âîçìîæíîñòü ñ îïðåäåë¼ííîé âåðîÿòíîñòüþ çàðàçèòüñÿ. Åñëè çàðàæåíèå ïðîèçîøëî, íàñòóïàåò èíêóáàöèîííûé ïåðèîä (”Exposed”), â êîòîðîì àãåíò ìîæåò íàõîäèòüñÿ îò 8 äî 12 äíåé. Ïî èñòå÷åíèè ýòîãî ñðîêà àãåíò ñ÷èòàåòñÿ
çàáîëåâøèì (ñîñòîÿíèå
”Infectious”)
è ñòàíîâèòñÿ ñïîñîáíûì ïåðåäàâàòü
ñ íåêîòîðîé âåðîÿòíîñòüþ èíôåêöèþ. Èç ñòàäèè
ïîïàñòü ëèáî â ñîñòîÿíèå
ñòîÿíèå
”Recovered”
”Funeral”
(÷åðåç
20
(÷åðåç
10
”Infectious”
àãåíò ìîæåò
äíåé), ëèáî â êîíå÷íîå ñî-
äíåé).  ïåðâîì ñëó÷àå ñîõðàíÿåòñÿ ñïî-
ñîáíîñòü ïåðåäàâàòü áîëåçíü äî ìîìåíòà ïîãðåáåíèÿ òåëà (îêîëî
ïîñëå ÷åãî àãåíò ïåðåõîäèò â êîíå÷íîå ñîñòîÿíèå
”Died”.
4
äíåé),
Âî âòîðîì ñëó-
÷àå ó àãåíòà âûðàáàòûâàåòñÿ íà âñþ æèçíü èììóíèòåò ê âèðóñó Ýáîëà.
Ñðåäíÿÿ äëèòåëüíîñòü âñåõ ñîñòîÿíèé, âåðîÿòíîñòè çàáîëåâàíèÿ â ñëó÷àå
âîçíèêíîâåíèÿ êîíòàêòà ñ àãåíòàìè â ñîñòîÿíèÿõ
”Infectious”
è
”Funeral”,
ñîãëàñîâàíû ñ äàííûìè èç èññëåäîâàíèé [14] è äîïîëíèòåëüíî ïîäñòðîåíû ïîä íàøó ìîäåëü. Òàêàÿ ìîäåëü ïðîòåêàíèÿ çàáîëåâàíèÿ ïîäîéäåò äëÿ
ìîäåëèðîâàíèÿ äðóãîãî òèïà èíôåêöèè âõîäíûå ïàðàìåòðû ìîãóò áûòü
áûñòðî è ýôôåêòèâíî ñêîððåêòèðîâàíû.
3. Îïèñàíèå ðåøåíèÿ
3.1. Ìîäåëèðîâàíèå ýïèäåìèé ñ ïîìîùüþ
ìóëüòèàãåíòíîé ñèñòåìû
3.1.1. Àãåíòíûé ïîäõîä
 ìîäåëè àãåíò ïðåäñòàâëÿåò ñîáîé àíàëîã ÷åëîâåêà, êîòîðûé ìîæåò
áûòü áîëåí, è ïðè âûïîëíåíèè íåêîòîðûõ óñëîâèé ìîæåò çàðàæàòü äðóãèõ.
8
Àãåíòû ôîðìèðóþò ïîïóëÿöèþ, êàæäûé àãåíò îáëàäàåò èíäèâèäóàëüíûìè ñâîéñòâàìè, íàïðèìåð, ïðèíàäëåæíîñòüþ ê âîçðàñòíîé ãðóïïå. Â ìîäåëè îïðåäåëåííûì îáðàçîì îïèñûâàåòñÿ ïðîòåêàíèå çàáîëåâàíèÿ ó êàæäîãî
àãåíòà, íàïðèìåð, íà îñíîâå ñîñòîÿíèé, ïðåäëîæåííûõ â ìîäåëè SEIRFD.
3.1.2. Êîíòåéíåðíûé ïîäõîä
 äàííîé ìîäåëè èñïîëüçóåòñÿ êîíòåéíåðíûé ïîäõîä íàáîð ðàçëè÷íûõ ëîêàöèé, â êîòîðûõ ìîæåò íàõîäèòüñÿ àãåíò, ïðåäñòàâëÿåò ñîáîé
êîíòåéíåðû, ðàçëè÷àþùèåñÿ ïëîùàäüþ è ïëîòíîñòüþ. Êàæäûé àãåíò ìîæåò ïåðåäâèãàòüñÿ èç îäíîé ëîêàöèè â äðóãóþ, òî åñòü ïåðåìåùàòüñÿ èç
îäíîãî êîíòåéíåðà â äðóãîé.
Ðèñ. 2. Êîíòåéíåðíûé ïîäõîä.
Çàäàíî ñåìü òèïîâ êîíòåéíåðîâ: Äîì, Áîëüíèöà, Òîðãîâûé öåíòð, ßñëè, Îôèñ, Øêîëà, Óíèâåðñèòåò. Â ðàññìàòðèâàåìîé ðåàëèçàöèè íà îñíîâå äàííûõ, ïðåäîñòàâëåííûõ Óïðàâëåíèåì ïî êîîðäèíàöèè ãóìàíèòàðíûõ
âîïðîñîâ Ñîäðóæåñòâà Íàöèé [12] è äåìîãðàôè÷åñêîé ñòàòèñòèêè Ñüåððà
Ëåîíå, ïðèñóòñòâóåò ñëåäóþùåå êîëè÷åñòâî êîíòåéíåðîâ:
•
Øêîëû: 23;
•
Áîëüíèöû: 4;
•
Îôèñû: 500;
9
•
Äîìà: 10000;
•
Òîðãîâûå öåíòðû: 5;
•
ßñëè: 2;
•
Óíèâåðñèòåò: 1.
 ñèñòåìå ïðèñóòñòâóåò ìíîæåñòâî êîíòåéíåðîâ êàæäîãî òèïà. Ñòîèò îòìåòèòü, ÷òî â êàæäûé ìîìåíò ìîäåëüíîãî âðåìåíè àãåíò íàõîäèòñÿ â îäíîì
îïðåäåë¼ííîì êîíòåéíåðå.
3.1.3. Âîçðàñòíûå êàòåãîðèè
Ñïåöèàëèñòàìè ÍÈÈ ãðèïïà [3] áûëî ïðåäëîæåíî ñëåäóþùåå ðàçäåëåíèå íà âîçðàñòíûå êàòåãîðèè:
•
äåòè äî
•
ïîäðîñòêè
5
•
ìîëîäåæü
15
•
âçðîñëûå
•
ëþäè ïðåêëîííîãî âîçðàñòà îò
4
ëåò;
25
14
ëåò;
24
54
ãîäà;
ëåò;
55
ëåò.
Âîçðàñòíàÿ ãðóïïà ÷åëîâåêà ïîçâîëÿåò íàèáîëåå òî÷íî îïðåäåëèòü
âåðîÿòíîñòü çàáîëåâàíèÿ ñ ïîìîùüþ âåðîÿòíîñòè ïðåáûâàíèÿ â òîé èëè
èíîé ëîêàöèè. Äëÿ êàæäîé âîçðàñòíîé ãðóïïû çàäàí îïðåäåë¼ííûé íàáîð
ïðàâèë, ñîñòîÿùèé èç âðåìåííîãî èíòåðâàëà ïðåáûâàíèÿ â îïðåäåë¼ííîì
êîíòåéíåðå, òèïà êîíòåéíåðà è âåðîÿòíîñòè ïðåáûâàíèÿ â í¼ì.
3.2. Âûáîð òåõíîëîãèé
Ðàññìîòðèì àëüòåðíàòèâû.
3.2.1. Akka.Net
Akka.Net íàáîð èíñòðóìåíòîâ äëÿ ïîñòðîåíèÿ ïàðàëëåëüíûõ, ðàñïðåäåë¼ííûõ è îòêàçîóñòîé÷èâûõ ïðèëîæåíèé, óïðàâëÿåìûõ ñîáûòèÿìè.
10
Îñíîâíûìè îáúåêòàìè ÿâëÿþòñÿ àêòîðû. Àêòîðû ïðåäñòàâëÿþò ñîáîé îáúåêòû, ñïîñîáíûå ñîâåðøàòü îïðåäåë¼ííûé íàáîð äåéñòâèé è îáùàòüñÿ ìåæäó ñîáîé ïóò¼ì îáìåíà ñîîáùåíèÿìè. Akka.Net ìîæíî çàïóñòèòü íà îäíîé
Worker-ðîëè, îäíàêî íà íåñêîëüêèõ çàòðóäíèòåëüíî, ïîñêîëüêó ñèíõðîíèçèðîâàòü è îðãàíèçîâûâàòü ïåðåäà÷ó ñîîáùåíèé ïðèä¼òñÿ âðó÷íóþ.
3.2.2. Orleans
Orleans ïëàòôîðìà, îðèåíòèðîâàííàÿ íà ïîñòðîåíèå ðàñïðåäåë¼ííûõ êðóïíîìàñøòàáíûõ âû÷èñëèòåëüíûõ ïðèëîæåíèé áåç íåîáõîäèìîñòè
èçó÷àòü è ïðèìåíÿòü ñëîæíûé ïàðàëëåëèçì èëè äðóãèå ìîäåëè ìàñøòàáèðîâàíèÿ. Ñèñòåìà, ïîñòðîåííàÿ íà îñíîâå Orleans, ñîñòîèò èç íàáîðà ëåãêîâåñíûõ àãåíòîâ (grains), ðàñïîëîæåííûõ íà âèðòóàëüíûõ ìàøèíàõ (silos).
Ñîçäàíà ïîäðàçäåëåíèåì Microsoft Research è ïðåäíàçíà÷åíà äëÿ èñïîëüçîâàíèÿ â îáëà÷íûõ ïðèëîæåíèÿõ íà ïëàòôîðìå .NET [7]. Ãëàâíîå ïðåèìóùåñòâî äàííîé ïëàòôîðìû õîðîøàÿ ìàñøòàáèðóåìîñòü. Îñíîâíûì
å¼ íåäîñòàòêîì ÿâëÿåòñÿ íåâîçìîæíîñòü áàëàíñèðîâàòü àãåíòîâ âî âðåìÿ
ðàáîòû ñèñòåìû.
3.2.3. Java, Jade
Jade (Java Agent Development framework) îäèí èç ðàñïðîñòðàíåííûõ èíñòðóìåíòîâ äëÿ ñîçäàíèÿ ìóëüòèàãåíòûõ ñèñòåì. Íàïèñàí íà Java,
ïîýòîìó ÿâëÿåòñÿ êðîññïëàòôîðìåííûì, ìîæåò ðàáîòàòü íà áåcïðîâîäíûõ
ìîáèëüíûõ óñòðîéñòâàõ, ïîääåðæèâàåò ñòàíäàðòû FIPA è ðàñïðîñòðàíÿåòñÿ áåñïëàòíî ïî ëèöåíçèè LGPL [20]. Ñóùåñòâóåò ðåàëèçàöèÿ îáëà÷íîé
ìóëüòèàãåíòíîé ïëàòôîðìû íà îñíîâå Jade â îáëà÷íîì ñåðâèñå Google App
Engine [8]. Îñíîâíûì íåäîñòàòêîì äàííîé ðàáîòû ÿâëÿåòñÿ îòñóòñòâèå áàëàíñèðîâêè íàãðóçêè àãåíòîâ. Äëÿ íàøåé çàäà÷è íàëè÷èå áàëàíñèðîâêè
ÿâëÿåòñÿ îáÿçàòåëüíûì: àãåíòû ìîãóò ïåðåõîäèòü èç êîíòåéíåðà â êîíòåéíåð, èç-çà ÷åãî ìîæåò ïðîèçîéòè ïåðåãðóçêà óçëîâ.
11
3.3. Îïèñàíèå ïðîãðàììíîé ðåàëèçàöèè
3.3.1. C#, Microsoft Azure, Service Bus
 êà÷åñòâå ðåøåíèÿ áûë âûáðàí ñëåäóþùèé ñòåê òåõíîëîãèé: C#,
Microsoft Azure, Servise Bus. Azure îáëà÷íàÿ ïëàòôîðìà îò Microsoft,
ïðåäîñòàâëÿþùàÿ âîçìîæíîñòü ðàçðàáîòêè è âûïîëíåíèÿ ïðèëîæåíèé è
õðàíåíèÿ äàííûõ íà ñåðâåðàõ, ðàñïîëîæåííûõ â ðàñïðåäåë¼ííûõ äàòàöåíòðàõ.
Îäíèì èç ñïîñîáîâ íàïèñàíèÿ ïðèëîæåíèé äëÿ Azure ÿâëÿåòñÿ ïðèìåíåíèå Cloud Servises Microsoft Azure. Îí ïðåäîñòàâëÿåò ðàçðàáîò÷èêó
ñëåäóþùèå ñïîñîáû ðàçâ¼ðòûâàíèÿ ÷àñòåé ïðèëîæåíèÿ:
Web-ðîëü ñëîé ïðèëîæåíèÿ, âûïîëíÿþùèé ðîëü âåá-èíòåðôåéñà, âçàèìîäåéñòâóþùåãî ñ ïîëüçîâàòåëåì.
Worker-ðîëü ñëîé ïðèëîæåíèÿ, âûïîëíÿþùèé ðîëü îáðàáîò÷èêà äàííûõ.
Microsoft Azure îáåñïå÷èâàåò ïîääåðæêó äâóõ òèïîâ ìåõàíèçìîâ î÷åðåäåé Azure Queues è Service Bus Queues. Äëÿ îáåñïå÷åíèÿ âçàèìîäåéñòâèÿ êîìïîíåíò áûëà âûáðàíà ñèñòåìà Microsoft Azure Service Bus (ñëóæåáíàÿ øèíà Microsoft Azure) (ðèñ. 3) ìíîãîïîëüçîâàòåëüñêàÿ îáëà÷íàÿ
ñëóæáà [28]. Ãàðàíòèÿ ñîõðàíåíèÿ î÷åðåäíîñòè ñîîáùåíèé ïîçâîëÿåò óïðîñòèòü êîä ïðîãðàììû è èçáåæàòü ðåàëèçàöèè äîïîëíèòåëüíûõ ìåõàíèçìîâ
ïîääåðæàíèÿ ïðàâèëüíîãî ïîðÿäêà ïîëó÷àåìûõ ñîîáùåíèé.
Äëÿ êàæäîãî ïîëüçîâàòåëÿ ñîçäà¼òñÿ ïðîñòðàíñòâî èì¼í è çàòåì
îïðåäåëÿþòñÿ íåîáõîäèìûå ìåõàíèçìû ñâÿçè. Âíóòðè ïðîñòðàíñòâà èìåí
ìîæíî èñïîëüçîâàòü îäèí èëè áîëåå ýêçåìïëÿðîâ ÷åòûðåõ ðàçëè÷íûõ ìåõàíèçìîâ ñâÿçè, êàæäàÿ èç êîòîðûõ ïî-ðàçíîìó ñâÿçûâàåò ïðèëîæåíèÿ.
Âîçìîæíû ñëåäóþùèå âàðèàíòû:
•
Î÷åðåäè (Queues): îáåñïå÷èâàþò îäíîíàïðàâëåííóþ ñâÿçü. Êàæäàÿ
î÷åðåäü âûñòóïàåò â êà÷åñòâå ïîñðåäíèêà, êîòîðûé õðàíèò îòïðàâëåííûå ñîîáùåíèÿ, ïîêà îíè íå áóäóò ïîëó÷åíû. Êàæäîå ñîîáùåíèå
ïðåäíàçíà÷àåòñÿ îäíîìó ïîëó÷àòåëþ.
12
Ðèñ. 3. Service Bus.
[28]
•
Òåìû (Topics): ïðåäîñòàâëÿþò îäíîíàïðàâëåííóþ ñâÿçü ñ èñïîëüçîâàíèåì ïîäïèñîê îäíà òåìà ìîæåò èìåòü íåñêîëüêî ïîäïèñîê. Êàê
è î÷åðåäü, òåìà âûñòóïàåò â êà÷åñòâå ïîñðåäíèêà, íî êàæäàÿ ïîäïèñêà ìîæåò äîïîëíèòåëüíî èñïîëüçîâàòü ôèëüòð. Òàêîé ïîäõîä ïîëåçåí â ñëó÷àå, êîãäà íåñêîëüêî ïðèëîæåíèé çàèíòåðåñîâàíî â îäíèõ è
òåõ æå ñîîáùåíèÿõ. Äîñòàòî÷íî îïðåäåëèòü ïðàâèëüíûé ôèëüòð, è
êàæäûé ïîäïèñ÷èê ñìîæåò ïîäêëþ÷èòüñÿ òîëüêî íà òó ÷àñòü ïîòîêà
ñîîáùåíèé, êîòîðóþ îí äîëæåí âèäåòü. Íàïðèìåð, íà ðèñóíêå 4 ïîêàçàí îòïðàâèòåëü è òåìà ñ òðåìÿ ïîäïèñ÷èêàìè, êàæäûé ñî ñâîèì
ñîáñòâåííûì ôèëüòðîì [28]:
Ïîäïèñ÷èê
1
ïîëó÷àåò òîëüêî òå ñîîáùåíèÿ, êîòîðûå ñîäåðæàò
ñâîéñòâî Ïðîäàâåö =
2
Ïîäïèñ÷èê
Ïðîäàâåö =
ïîëó÷àåò ñîîáùåíèÿ, êîòîðûå ñîäåðæàò ñâîéñòâî
”Ruby” è/èëè ñîäåðæàò ñâîéñòâî Amount, çíà÷åíèå
êîòîðîãî ïðåâûøàåò
Ïîäïèñ÷èê
”Ava”.
100000.
3 óñòàíîâèë ñâîé ôèëüòð íà ”True”, à ýòî çíà÷èò, ÷òî
îí ïðèíèìàåò âñå ñîîáùåíèÿ.
13
Ðèñ. 4. Ôèëüòðàöèÿ ïîäïèñîê.
[28]
•
Ïåðåêëþ÷àòåëè (Relays):
îáåñïå÷èâàþò äâóíàïðàâëåííóþ ñâÿçü. Â
îòëè÷èå îò î÷åðåäåé è òåì, ïåðåêëþ÷àòåëü íå õðàíèò ïåðåäàþùèåñÿ
ñîîáùåíèÿ. Âìåñòî ýòîãî îí ïðîñòî îòïðàâëÿåò èõ öåëåâîìó ïðèëîæåíèþ.
•
Event Hubs: ïðåäîñòàâëÿåò äîñòóï ê ñîáûòèÿì è òåëåìåòðèè â îáëàêî
â ìàññîâîì ìàñøòàáå, ñ íèçêîé çàäåðæêîé è âûñîêîé íàäåæíîñòüþ.
Microsoft ïðåäîñòàâëÿåò Servise Bus SDK äëÿ Java, JavaScript (Node.js)
è äðóãèõ ÿçûêîâ.
3.3.2. Àðõèòåêòóðà ñèñòåìû
Ñèñòåìà ñîñòîèò èç ñëåäóþùèõ êîìïîíåíò: íåñêîëüêèõ Cloud Simulation
(CS) è îäíîãî Global Descriptor (GD), îáùàþùèõñÿ ìåæäó ñîáîé (ðèñ 5).
Global Descriptor õðàíèò âñïîìîãàòåëüíóþ èíôîðìàöèþ, íåîáõîäèìóþ äëÿ
ðàáîòû ñèñòåìû. Cloud Simulations ñîäåðæàò êîíòåéíåðû ñ àãåíòàìè.
Âçàèìîäåéñòâèå ìåæäó Global Descriptor è Cloud Simulations ïîêàçàíî íà ðèñ 6 è ïðîèñõîäèò ñëåäóþùèì îáðàçîì:
Ïåðåä íà÷àëîì ðàáîòû ñèñòåìû êàæäûé Cloud Simulation îòïðàâëÿåò
Global Descriptor ðåãèñòðàöèîííîå ñîîáùåíèå ñî ñâîèì óíèêàëüíûì èäåí14
Ðèñ. 5. Êîìïîíåíòû ñèñòåìû.
òèôèêàòîðîì. Ïîñëå òîãî êàê ó Global Descriptor ïîÿâëÿåòñÿ ñïèñîê âñåõ
Cloud Simulation ñ èõ èäåíòèôèêàòîðàìè, îí ðàñïðåäåëÿåò ïî íèì êîíòåéíåðû ñ àãåíòàìè â ñîîòâåòñòâèè ñ àëãîðèòìîì Round-Robin è ïîñûëàåò
ñîîáùåíèå î ñòàðòå.
Âî âðåìÿ ðàáîòû, ñîãëàñíî êîíòåéíåðíîìó ïîäõîäó, ïðîèñõîäÿò ïåðåõîäû àãåíòîâ ìåæäó êîíòåéíåðàìè, â òîì ÷èñëå è êîíòåéíåðàìè, ðàñïîëîæåííûìè íà ðàçíûõ Cloud Simulation. Ïðèíöèï ïåðåõîäà ñëåäóþùèé:
àãåíò ïîñûëàåò Global Descriptor ñîîáùåíèå î ïåðåõîäå, ñîäåðæàùåå èíôîðìàöèþ î òèïå êîíòåéíåðà. Global Descriptor, â ñâîþ î÷åðåäü, íàõîäèò äëÿ
ýòîãî àãåíòà êîíòåéíåð òðåáóåìîãî òèïà íà êàêîì-ëèáî èç Cloud Simulations
è ïîñûëàåò ñîîáùåíèå î äîáàâëåíèè àãåíòà â íîâûé êîíòåéíåð.
Äëÿ îáåñïå÷åíèÿ êîððåêòíîñòè ïåðåõîäà àãåíòîâ ìåæäó êîíòåéíåðàìè, ðàñïîëîæåííûìè íà ðàçíûõ óçëàõ (Cloud Simulation), òðåáóåòñÿ ïîääåðæêà îäèíàêîâîãî âðåìåíè íà âñåõ óçëàõ. Äëÿ ýòîãî ïî èñòå÷åíèè êàæäîãî ìîäåëüíîãî ÷àñà ïðîèñõîäèò ñèíõðîíèçàöèÿ ñ ãëîáàëüíûì âðåìåíåì
ñèñòåìû.
Âî èçáåæàíèå ïîòåðè äàííûõ ïðè ñáîå ìîäóëÿ Global Descriptor, îíè
15
Ðèñ. 6. Âçàèìîäåéñòâèå êîìïîíåíò.
îòïðàâëÿþòñÿ â õðàíèëèùå BLOB-îáúåêòîâ Azure, ïðåäñòàâëÿþùóþ ñîáîé
ñëóæáó õðàíåíèÿ áîëüøîãî êîëè÷åñòâà íåñòðóêòóðèðîâàííûõ äàííûõ îáúåêòîâ. Ñîõðàíÿþòñÿ ñëåäóþùèå òèïû äàííûõ: ïðîìåæóòî÷íûå âî âðåìÿ
ñèíõðîíèçàöèè âðåìåíè; ðåçóëüòàòû èòåðàöèè ïîñëå èòåðàöèè; ðåçóëüòàò
ïî îêîí÷àíèè ðàáîòû ñèñòåìû.
Äëÿ îáåñïå÷åíèÿ áàëàíñèðîâêè âî âðåìÿ ðàáîòû ñóùåñòâóåò åù¼ îäèí
òèï ñîîáùåíèé ïåðåõîä êîíòåéíåðà ñ îäíîãî óçëà íà äðóãîé. Ïðîöåññ âûòåñíåíèÿ êîíòåéíåðîâ ðàññìàòðèâàåòñÿ íèæå â ðàçäåëå "Íà÷àëüíàÿ áàëàí16
ñèðîâêà".
3.3.3. Äîïîëíåíèå ñèñòåìû áàëàíñèðîâùèêîì íàãðóçêè
Áàëàíñèðîâêà íàãðóçêè ìåòîä ðàñïðåäåëåíèÿ çàäà÷ ìåæäó ôèçè÷åñêèìè èëè âèðòóàëüíûìè âû÷èñëèòåëÿìè. Çàäà÷à ëþáîãî àëãîðèòìà áàëàíñèðîâêè íàãðóçêè óâåëè÷èòü èñïîëüçîâàíèå íåçàãðóæåííûõ èëè ñëàáî çàãðóæåííûõ óçëîâ è óìåíüøèòü èñïîëüçîâàíèå óçëîâ ñ áîëüøîé íàãðóçêîé. Áàëàíñèðîâêà íàãðóçêè ïðîèçâîäèòñÿ äëÿ ñëåäóþùèõ öåëåé:
•
Ñîêðàùåíèå âðåìåíè âûïîëíåíèÿ è âðåìåíè îæèäàíèÿ çàäà÷
•
Ïîâûøåíèå äîñòóïíîñòè óñëóã
•
Îïòèìàëüíîå èñïîëüçîâàíèå äîñòóïíûõ ðåñóðñîâ
•
Ïîääåðæàíèå ñòàáèëüíîñòè ñèñòåìû (íàïðèìåð, ïðè ïîÿâëåíèè poison
message çàäà÷è, íàõîäÿùåéñÿ â î÷åðåäè, êîòîðóþ óçåë íå ìîæåò îáðàáîòàòü èç-çà îøèáîê) [21].
•
Àäàïòàöèÿ ê áóäóùèì èçìåíåíèÿì (â ñëó÷àå èçìåíåíèÿ ïóëà ðåñóðñîâ)
Äëÿ îöåíêè äîñòèæåíèÿ ýòèõ öåëåé èñïîëüçóþòñÿ ñëåäóþùèå ôîð-
ìàëüíûå êðèòåðèè êà÷åñòâà:
•
Íàêëàäíûå ðàñõîäû - ýòî ïîòðåáëÿåìûå ðåñóðñû áàëàíñèðîâùèêà íàãðóçêè. Ýòîò êðèòåðèé íåîáõîäèìî ìèíèìèçèðîâàòü.
•
Ó÷¼ò ãåòåðîãåííîñòè îáëàêà ñïîñîáíîñòü àëãîðèòìà àäàïòèðîâàòüñÿ ê óçëàì ñ ðàçíîé ïðîèçâîäèòåëüíîñòüþ. Íàëè÷èå äàííîãî ïðèçíàêà
ÿâëÿåòñÿ ïðåèìóùåñòâîì.
•
Ìàñøòàáèðóåìîñòü ñîõðàíåíèå êà÷åñòâà áàëàíñèðîâêè ïðè óìåíüøåíèè èëè óâåëè÷åíèè ÷èñëà óçëîâ.
•
Îòêàçîóñòîé÷èâîñòü ñïîñîáíîñòü ñèñòåìû ïðîäîëæàòü áàëàíñèðîâêó íàãðóçêè, íåñìîòðÿ íà ñáîé â óçëå.
•
Óòèëèçàöèÿ ðåñóðñîâ ñïîñîáíîñòü ñèñòåìû ðàñïðåäåëÿòü çàäà÷è
òàê, ÷òîáû ðåñóðñû (óçëû) íå ïðîñòàèâàëè. Ýòîò êðèòåðèé íåîáõîäèìî ìàêñèìèçèðîâàòü.
17
3.3.4. Îñíîâíûå âèäû àëãîðèòìîâ áàëàíñèðîâêè íàãðóçêè
Íà îñíîâàíèè èñïîëüçóåìîãî àíàëèçà òåêóùåãî ñîñòîÿíèÿ ñèñòåìû,
àëãîðèòìû áàëàíñèðîâêè íàãðóçêè ïîäðàçäåëÿþòñÿ íà äâà òèïà: ñòàòè÷åñêèå è äèíàìè÷åñêèå [23].
 ñòàòè÷åñêèõ àëãîðèòìàõ òåêóùåå ñîñòîÿíèå óçëîâ íå ó÷èòûâàåòñÿ. Âñå óçëû è èõ õàðàêòåðèñòèêè (íàïðèìåð, áûñòðîäåéñòâèå, ïðîïóñêíàÿ
ñïîñîáíîñòü ñåòåâîãî êàíàëà) èçâåñòíû çàðàíåå, è àëãîðèòì ðàáîòàåò íà îñíîâå ýòîãî ïðåäâàðèòåëüíîãî çíàíèÿ, âñëåäñòâèå ÷åãî ýòîò òèï àëãîðèòìîâ
ïðîùå â ðåàëèçàöèè.
Äèíàìè÷åñêèå àëãîðèòìû ó÷èòûâàþò òåêóùåå ñîñòîÿíèå ñèñòåìû è
ðàáîòàþò â ñîîòâåòñòâèè ñ èçìåíåíèÿìè ñîñòîÿíèé óçëîâ. Àëãîðèòì ñîáèðàåò òåêóùåå ñîñòîÿíèå óçëîâ â òàáëèöó ñîñòîÿíèé è ïîääåðæèâàåò òåêóùèé
ñòàòóñ âñåõ óçëîâ â îáëàêå. Äèíàìè÷åñêèå àëãîðèòìû ñëîæíû â ðåàëèçàöèè, íî êàê ïðàâèëî, áàëàíñèðóþò íàãðóçêó ýôôåêòèâíåå.
3.3.5. Àëãîðèòìû áàëàíñèðîâêè íàãðóçêè
 íàñòîÿùåå âðåìÿ ðàñïðîñòðàíåíû ñëåäóþùèå àëãîðèòìû áàëàíñèðîâêè íàãðóçêè â îáëàêàõ:
1) Àëãîðèòì Round-robin (öèêëè÷åñêîå îáñëóæèâàíèå) [5].
Ýòî
ñòàòè÷åñêèé àëãîðèòì áàëàíñèðîâêè íàãðóçêè; îí ñëó÷àéíûì îáðàçîì âûáèðàåò ïåðâûé óçåë è çàòåì ðàñïðåäåëÿåò çàäà÷è ïî âñåì óçëàì ïî êðóãó ñëåäóþùèì îáðàçîì: ïåðåä çàïóñêîì ñèñòåìû ñîçäà¼òñÿ óïîðÿäî÷åííûé
ñïèñîê óçëîâ è â õîäå ðàáîòû àëãîðèòìà çàäà÷è íàçíà÷àþòñÿ óçëàì â ñîîòâåòñòâèè ñ èõ ïîçèöèåé â ñïèñêå. Çàäà÷è áûñòðî ðàñïðåäåëÿþòñÿ ïî óçëàì è íå íàêàïëèâàþòñÿ â î÷åðåäè áàëàíñèðîâùèêà. Âðåìÿ ðàáîòû ëþáîãî
ïðîöåññà çàðàíåå íåèçâåñòíî, èç-çà ÷åãî îäíè óçëû ìîãóò îêàçàòüñÿ ïåðåãðóæåííûìè, à äðóãèå ñëàáî çàãðóæåííûìè. Ïî ýòîé ïðè÷èíå èñïîëüçîâàíèå ðåñóðñîâ ó àëãîðèòìà íèçêîå. Àäàïòèðóåìîñòè ê ãåòåðîãåííîìó
18
îáëàêó íåò íå ó÷èòûâàåòñÿ ïðîèçâîäèòåëüíîñòü óçëîâ, âñëåäñòâèå ÷åãî
çàäà÷è ñêëîííû ê ñêàïëèâàíèþ íà óçëàõ â îæèäàíèè ñâîåãî èñïîëíåíèÿ.
Íàêëàäíûå ðàñõîäû íèçêèå, ïîñêîëüêó áàëàíñèðîâùèêó íàãðóçêè òðåáóåòñÿ õðàíèòü ëèøü óïîðÿäî÷åííûé ñïèñîê óçëîâ. Âñëåäñòâèå íåîáõîäèìîñòè
ïðåäâàðèòåëüíîé íóìåðàöèè óçëîâ ìàñøòàáèðóåìîñòü ñðåäíÿÿ.
2) Âåñîâîé àëãîðèòì Round-robin (weighted round-robin) [5].
Ýòîò
ñòàòè÷åñêèé àëãîðèòì, â îòëè÷èå îò ïðåäûäóùåãî, ðàñïðåäåëÿåò çàäà÷è
ïî óçëàì áîëåå ýôôåêòèâíî. Ýòî äîñòèãàåòñÿ ñëåäóþùèì îáðàçîì: óçëó
ïðèñâàèâàåòñÿ íåêîòîðûé âåñîâîé êîýôôèöèåíò. Êàæäûé óçåë, íà îñíîâå
çàðàíåå çàäàííûõ èì âåñîâ, ïîëó÷àåò îïðåäåëåííóþ ÷àñòü çàïðîñîâ. Åñëè
íàçíà÷åííûå âåñà ðàâíû, êàæäûé óçåë ïîëó÷àåò ðàâíóþ ïîðöèþ âõîäÿùèõ
çàäà÷.
3) Îïïîðòóíèñòè÷åñêèé àëãîðèòì áàëàíñèðîâêè íàãðóçêè
(Opportunistic Load Balancing Algorithm) [24].
Ýòîò ñòàòè÷åñêèé
àëãîðèòì áàëàíñèðîâêè íàãðóçêè ïðåäíàçíà÷åí äëÿ ïîääåðæàíèÿ êàæäîãî
óçëà â çàíÿòîì ñîñòîÿíèè íåçàâèñèìî îò òåêóùåé íàãðóçêè êàæäîãî óçëà.
Ýòîò àëãîðèòì áûñòðî ðàçäàåò íåâûïîëíåííûå çàäà÷è â ñëó÷àéíîì ïîðÿäêå
òåêóùèì ñâîáîäíûì óçëàì, òåêóùàÿ çàãðóæåííîñòü óçëà íå âûñ÷èòûâàåòñÿ.
4) Àëãîðèòì áàëàíñèðîâêè íàãðóçêè min-min (Min-Min Load
Balancing Algorithm) [6].
 ýòîì ñòàòè÷åñêîì àëãîðèòìå áàëàíñèðîâ-
ùèê îáëàêà â ïåðâóþ î÷åðåäü âû÷èñëÿåò ñàìûå êîðîòêèå çàäàíèÿ è íàçíà÷àåò èõ ñàìûì ïðîèçâîäèòåëüíûì óçëàì. Íåäîñòàòêîì ýòîãî àëãîðèòìà ÿâëÿåòñÿ òî, ÷òî çàäàíèÿ, èìåþùèå ìàêñèìàëüíîå âðåìÿ âûïîëíåíèÿ, äîëæíû æäàòü íåîïðåäåë¼ííûé ïåðèîä âðåìåíè, ÷òî ìîæåò ïîâëå÷ü ñêîïëåíèå
çàäà÷ â î÷åðåäè. Òàêæå íåêîòîðûå óçëû ìîãóò ñòîÿòü íå ïîëíîñòüþ íàãðóæåííûìè: ìåëêèå çàäà÷è âûïîëíÿþòñÿ, à ñâîáîäíûõ ðåñóðñîâ, íåñìîò19
ðÿ íà èõ ïîòåíöèàëüíî áîëüøîå êîëè÷åñòâî, íåäîñòàòî÷íî äëÿ îáðàáîòêè
áîëüøèõ çàäà÷.
5) Àëãîðèòì áàëàíñèðîâêè íàãðóçêè max-min (Max-Min Load
Balancing Algorithm) [22].
Max-min àëãîðèòì ÿâëÿåòñÿ ñòàòè÷åñêèì è
ðàáîòàåò òàê æå, êàê min-min àëãîðèòì, çà èñêëþ÷åíèåì òîãî, ÷òî ïîñëå âûÿâëåíèÿ ìèíèìàëüíîãî âðåìåíè âûïîëíåíèÿ çàäà÷ áàëàíñèðîâùèê îáëàêà
çàíèìàåòñÿ çàäà÷àìè, èìåþùèìè ìàêñèìàëüíîå âðåìÿ âûïîëíåíèÿ. Àëãîðèòì âûáèðàåò çàäà÷ó ñ ìàêñèìàëüíûì âðåìåíåì âûïîëíåíèÿ è íàçíà÷àåò
å¼ óçëó, íà êîòîðîì äîñòèãàåòñÿ ìèíèìàëüíîå âðåìÿ å¼ çàâåðøåíèÿ. Ïîñëå
÷åãî âðåìÿ âûïîëíåíèÿ îñòàâøèõñÿ çàäà÷ äëÿ ýòîãî óçëà îáíîâëÿåòñÿ.
 îñíîâíîì íà ïðàêòèêå ó ïîïóëÿðíûõ îáëà÷íûõ ïëàòôîðì, òàêèõ êàê Microsoft Azure, Amazon EC2, Google Cloud Platform ïðèìåíÿþòñÿ ïðîñòûå ñòàòè÷åñêèå àëãîðèòìû èëè èõ íåçíà÷èòåëüíûå ìîäèôèêàöèè [25, 26, 27]. Ýòî ñâÿçàíî ñ òåì, ÷òî áóëüøóþ ÷àñòü íàãðóçêè ñîçäà¼ò áîëüøîå êîëè÷åñòâî ìåëêèõ çàïðîñîâ, õîðîøî áàëàíñèðóåìûõ òàêèìè
àëãîðèòìàìè êàê min-min, round-robin è îïïîðòóíèñòè÷åñêèì. Òàêæå ðàçðàáîò÷èêàìè îáëàêà ðåøàåòñÿ ïðîáëåìà îòñóòñòâèÿ îòêàçîóñòîé÷èâîñòè,
ïðèñóòñòâóþùàÿ âî âñåõ àëãîðèòìàõ. Äëÿ êàæäîãî îáëàêà ýòî äåëàåòñÿ
ïî-ñâîåìó, â îñíîâíîì àðõèòåêòóðíûìè ìåòîäàìè.
3.3.6. Íà÷àëüíàÿ áàëàíñèðîâêà
Äëÿ íà÷àëüíîãî ðàñïðåäåëåíèÿ êîíòåéíåðîâ ïî Cloud Simulation ïðèìåíÿåòñÿ àëãîðèòì round-robin.  íà÷àëå ðàáîòû ñèñòåìû àãåíòû ðàâíîìåðíî ðàñïðåäåëåíû ïî êîíòåéíåðàì òèïà Äîì, ïîýòîìó ïðèìåíåíèå ýòîãî
àëãîðèòìà ïðèâîäèò ê ðàâíîìåðíîìó ðàñïðåäåëåíèþ è àãåíòîâ ïî ðàçëè÷íûì êîíòåéíåðàì. Ïðèìåíåíèå ýòîãî àëãîðèòìà â äàííîì ñëó÷àå ïîçâîëÿåò
ýôôåêòèâíî è áûñòðî ïðîèçâåñòè ðàñïðåäåëåíèå.
20
3.3.7. Áàëàíñèðîâêà âî âðåìÿ ðàáîòû ñèñòåìû
 ïðîöåññå ðàáîòû ñèñòåìû àãåíòû ïåðåìåùàþòñÿ ìåæäó êîíòåéíåðàìè, òåì ñàìûì ïåðåõîäÿ ñ îäíîãî óçëà íà äðóãîé. Âñëåäñòâèå ýòîãî âîçíèêàåò íåîáõîäèìîñòü ïåðåðàñïðåäåëÿòü àãåíòîâ ìåæäó óçëàìè. Äëÿ ýòîãî ïðèìåíÿåòñÿ ìîäèôèöèðîâàííûé àëãîðèòì áàëàíñèðîâêè min-min, ðàñïðåäåëÿþùèé àãåíòîâ ïî ðàáîòàþùèì óçëàì. Ýòîò àëãîðèòì, â ñëó÷àå ïåðåãðóçêè êàêîãî-ëèáî óçëà, âûáèðàåò ìèíèìàëüíûé ïî êîëè÷åñòâó íàõîäÿùèõñÿ â
í¼ì àãåíòîâ êîíòåéíåð è ïåðåìåùàåò åãî íà ìèíèìàëüíî çàãðóæåííûé óçåë.
Òàêèì îáðàçîì, ìîæíî ñôîðìóëèðîâàòü ñëåäóþùèé àëãîðèòì âûòåñíåíèÿ
êîíòåéíåðîâ:
1. åñëè êîëè÷åñòâî àãåíòîâ íà êàêîì-ëèáî èç CS çíà÷èòåëüíî áîëüøå
ñðåäíåãî çíà÷åíèÿ, òîãäà ïðîèñõîäèò âûòåñíåíèå êîíòåéíåðà ñ ìèíèìàëüíûì êîëè÷åñòâîì àãåíòîâ.
2. íà GD îòïðàâëÿåòñÿ ñîîáùåíèå ñ êîíòåéíåðîì, èç CS êîíòåéíåð óäàëÿåòñÿ.
3. GD íàõîäèò ìèíèìàëüíî çàãðóæåííûé CS è îòïðàâëÿåò åãî òóäà. Èíôîðìàöèÿ, íåîáõîäèìàÿ äëÿ òðåòüåãî ïóíêòà, îòïðàâëÿåòñÿ âî âðåìÿ
ñèíõðîíèçàöèè âðåìåíè ñ CS íà GD.
Èìåííî àëãîðèòì min-min, âûáðàííûé çà îñíîâó, õîðîøî ïîäõîäèò
äëÿ íàøåé çàäà÷è: îñòàëüíûå àëãîðèòìû ñäåëàëè áû ïðîöåññ çàòðóäíèòåëüíûì, ïîñêîëüêó âûáðàííûé äëÿ ïåðåíîñà êîíòåéíåð ìîæåò îêàçàòüñÿ
ñëèøêîì áîëüøèì è åãî ïåðåìåùåíèå çàíÿëî áû î÷åíü áîëüøîå âðåìÿ (â
ñëó÷àå ñ round-robin èëè îïïîðòóíèñòè÷åñêèì), à ñ ïðèìåíåíèåì àëãîðèòìà
max-min ýòî ïðîèçîøëî áû ãàðàíòèðîâàíî.
3.4. Ýêñïåðèìåíòû
Íà ðèñóíêàõ 7, 8 ïðåäñòàâëåíû ñðàâíåíèÿ ðåçóëüòàòîâ ðàáîòû ìîäåëè
çà
20
äíåé ñ ðåàëüíûìè äàííûìè è ñ ðåçóëüòàòîì ìîäåëè [4]:
21
Ðèñ. 7. Ãðàôèê çàðàæ¼ííîñòè.
Ðèñ. 8. Ãðàôèê ñìåðòíîñòè.
Ðàçëè÷èÿ ñâÿçàíû ñ òåì, ÷òî ìîäåëü SERIFD ïðèíÿëà óñîâåðøåíñòâîâàííûé âèä: ïîñëå çàðàæåíèÿ àãåíòû òåïåðü óìèðàþò íå ñòðîãî íà äåñÿòûé
äåíü, à íà÷èíàÿ ñ âîñüìîãî äíÿ [30].
22
3.5. Îãðàíè÷åíèÿ èññëåäîâàíèÿ
Äëÿ ïðîâåäåíèÿ ìîäåëèðîâàíèÿ êðàéíå æåëàòåëüíî âûïîëíåíèå óñëîâèÿ îáîñîáëåííîñòè ðàññìàòðèâàåìûõ íàñåë¼ííûõ ïóíêòîâ â öåëÿõ óäîâëåòâîðåíèÿ êîíòåéíåðíîìó ïîäõîäó. Ïðè íåîáõîäèìîñòè ìîäåëèðîâàíèÿ
äðóãîãî çàáîëåâàíèÿ òàêæå ñòîèò ó÷åñòü, ÷òî îíî äîëæíî óäîâëåòâîðÿòü
ìîäåëè SEIRFD, òî åñòü èìåòü ÿðêî âûðàæåííûå ôîðìû ïðîòåêàíèÿ.
3.6. Äàëüíåéøèå ïóòè ðàçâèòèÿ
Äàííàÿ ìîäåëü ìîæåò áûòü ðàñøèðåíà íà äðóãèå çàáîëåâàíèÿ, óäîâëåòâîðÿþùèå SEIRFD. Òàêæå ìîæíî ïðîâåñòè ìîäåëèðîâàíèå íà ðàçëè÷íûõ òåððèòîðèÿõ ñ áîëüøåé ïëîòíîñòüþ íàñåëåíèÿ íà ýòî ñèñòåìà è
ðàññ÷èòàíà.  äîïîëíåíèå ê ýòîìó ÿâëÿåòñÿ âîçìîæíûì äîáàâëåíèå íîâûõ
óòî÷íÿþùèõ ïàðàìåòðîâ, ïîçâîëÿþùèõ íàèáîëåå òî÷íî îïèñàòü ìîäåëü.
23
4. Çàêëþ÷åíèå
Ïðè ñîçäàíèè ìîäåëè ðàñïðîñòðàíåíèÿ çàáîëåâàíèÿ áûë âûáðàí
àãåíòíûé ïîäõîä, ïîçâîëÿþùèé äåòàëèçèðîâàòü ìîäåëü, ó÷èòûâàòü ðàçëè÷íûå îñîáåííîñòè àãåíòîâ. Àäàïòàöèÿ ìóëüòèàãåíòíîé ñèñòåìû ê îáëà÷íîé
ñðåäå ñäåëàëà âîçìîæíûì ïðåîäîëåòü îãðàíè÷åíèÿ, ñâÿçàííûå ñ âû÷èñëèòåëüíîé ìîùíîñòüþ êîìïüþòåðà, à áàëàíñèðîâêà íàãðóçêè â íà÷àëå è â
ïðîöåññå ðàáîòû ïîçâîëèëà èçáåæàòü ïåðåãðóçêè âèðòóàëüíûõ ìàøèí è
ïðîèçâîäèòü âû÷èñëåíèÿ íàä¼æíåå è îïòèìàëüíåå.
Ìîäåëèðîâàíèå ýïèäåìèîëîãèè ïîçâîëèò âíåñòè ñâîé âêëàä â ðàçðàáîòêó è àíàëèç ýïèäåìèîëîãè÷åñêèõ èññëåäîâàíèé, îïðåäåëèòü òåíäåíöèþ,
ñäåëàòü îáùèå ïðîãíîç, à ýëàñòè÷íîñòü îáëà÷íîãî ðåøåíèÿ ïðè òàêîì ïîäõîäå ïîçâîëèëî íàéòè îïòèìàëüíóþ ïî ñîîòíîøåíèþ öåíà-êà÷åñòâî ìîäåëü.
24
Ñïèñîê ëèòåðàòóðû
1.
Ìàêàðîâ Â.Ë., Áàõòèçèí À.Ð. Êîìïüþòåðíîå ìîäåëèðîâàíèå èñêóññòâåííûõ ìèðîâ URL:
2.
Ïàðèíîâ
Ñ.È.
Íîâûå
http://www.xjtek.ru/file/212
âîçìîæíîñòè
èìèòàöèîííîãî
ìîäåëèðîâàíèÿ
ñîöèàëüíî-ýêîíîìè÷åñêèõ ñèñòåì. Ò. 2, 34. Ñ. 2661, 2007.
3.
Êîíäðàòüåâ Ì.À. Ðàçðàáîòêà ìîäåëè ðàñïðîñòðàíåíèÿ èíôåêöèîííûõ
çàáîëåâàíèé íà îñíîâå àãåíòíîãî ïîäõîäà â AnyLogic 2012 ã.
4.
Áûêîâà Þ.Ñ. ÌÀÑ â AnyLogic 2015 ã. URL:
se.math.spbu.ru/SE/
diploma/2015/s/544-Bykova-report.pdf
5.
Pooja Samal, Pranati Mishra. Analysis of variants in Round Robin
Algorithms for load balancing in Cloud Computing. Pooja Samal et al,
/ (IJCSIT) International Journal of Computer Science and Information
Technologies, Vol. 4 (3) , 2013 ã., 416 - 419 URL:
http://www.ijcsit.
com/docs/Volume%204/vol4Issue3/ijcsit2013040306.pdf
6.
Kokilavani T., Amalarethinam G. Load Balanced Min-Min Algorithm for
Static Meta-Task Scheduling in Grid Computing. International Journal of
Computer Applications (0975 8887) Volume 20 No.2,India. April 2011
URL:
http://www.ijcaonline.org/volume20/number2/pxc3873197.
pdf
7.
Bykov
S.,
URL:
Geller
A.,
Kliot
G.,
Larus
J.,
Pandya
R.,
Thelin
J.
http://research.microsoft.com/pubs/141999/pldi%2011%
20submission%20public.pdf
8.
Êóçíåöîâ Ê.Î. Îáëà÷íàÿ ìóëüòèàãåíòíàÿ ïëàòôîðìà íà îñíîâå JADE
è Google App Engine URL:
http://www.math.spbu.ru/ru/mmeh/
Magistr/2013/sp/kuznetsov_diss.doc
9.
Centers for Disease Control and Prevention URL:
http://www.cdc.gov/
vhf/ebola/
http://www.tvc.ru/news/show/id/67407
10.
URL:
11.
http://www.who.int/mediacentre/factsheets/fs103/ru/
25
12.
Sierra
Leone:
Kailahun
District
(3
Prole
2015)
December
http://reliefweb.int/sites/reliefweb.int/files/resources/
district_profile_kailahun_10_dec_2015am_0.pdf
13.
Brauer F., Castillo-Chavez C. Mathematical Models in Population Biology
and Epidemiology. Springer-Verlag New York, 2001.
14.
Rivers C.
on
an
M.,
Lofgren E. T.
Epidemic
of
Ebola
Modeling
in
Sierra
the Impact of
Leone
and
Interventions
Liberia.
URL:
http://currents.plos.org/outbreaks/article
15.
Áîðùåâ À. Â. Ïðàêòè÷åñêîå àãåíòíîå ìîäåëèðîâàíèå è åãî ìåñòî â
àðñåíàëå àíàëèòèêà // Exponenta Pro. Ìàòåìàòèêà â ïðèëîæåíèÿõ.
2004. 34. Ñ. 3847.
16.
Public
Health
Dynamics
Laboratory.
Epidemiological Dynamics. URL:
Framework
for
Reconstructing
http://fred.publichealth.pitt.
edu/
17.
Alexander G. Bachinsky and Lily Ph. Nizolenko, A Universal Model for
Predicting Dynamics of the Epidemics Caused by Special Pathogens,
BioMed Research International, vol. 2013, Article ID 467078, 7 pages, 2013.
doi:10.1155/2013/467078
18.
Centers for Disease Control and Prevention (U.S.). Generic Ebola response
(ER) : modeling the spread of disease impact intervention. URL:
https:
//stacks.cdc.gov/view/cdc/24900
19.
Brauer F., Castillo-Chavez C. Mathematical Models in Population Biology
and Epidemiology New York: Springer-Verlag New York, 2001. 448 p.
http://jade.tilab.com/
20.
Jade site URL:
21.
Poison message URL:
https://msdn.microsoft.com/en-us/library/
ms789028(v=vs.110).aspx
22.
Elzeki O., Reshad M., Elsoud M. Improved Max-Min Algorithm in
Cloud
Computing.
(0975
8887)
International
Volume
50
Journal
No.12,
of
Computer
Egypt,
July
Applications
2012
URL:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.
26
258.6082&rep=rep1&type=pdf
23.
Sandeep
Sharma,
Sarabjit
Singh,
Meenakshi
Sharma.
Performance
Analysis of Load Balancing Algorithms. World Academy of Science,
Engineering
and
Electrical,
Vol:2,
Technology
Automation,
No:2,
2008
International
Control
URL:
and
Journal
of
Information
Computer,
Engineering
http://waset.org/publications/5537/
performance-analysis-of-load-balancing-algorithms
24.
Che-Lun
Hung,
Balancing
Hsiao-hsi
Algorithm
for
Wang,
Cloud
Yu-Chen
Hu.
Computing
Ecient
Network
Load
URL:
http://onlinepresent.org/proceedings/vol2_2012/80.pdf
25.
Anand Chaudhari, Anushka Kapadia.Load Balancing Algorithm for Azure
Virtualization with Specialized VM's. India, June 2013 URL:
http://
ijiet.com/wp-content/uploads/2013/07/35.pdf
26.
Amazon EC2 Documentation
https://docs.aws.amazon.com/ElasticLoadBalancing/latest/
DeveloperGuide/how-elb-works.html#request-routing
27.
Google
Cloud
Platform
Documentation
https://cloud.google.
com/compute/docs/load-balancing/network/#load_distribution_
algorithm
28.
Azure
Servise
Bus
https://azure.
URL:
microsoft.com/en-us/documentation/articles/
service-bus-fundamentals-hybrid-solutions/
29.
The Liberia Ministry of Health. Data for the
Africa. URL:
30.
2014
ebola outbeak in West
https://github.com/cmrivers/ebola/
Centers for Disease Control and Prevention. Signs and Symptoms URL:
http://www.cdc.gov/vhf/ebola/symptoms/
27
Отзывы:
Авторизуйтесь, чтобы оставить отзыв