ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ОписаниС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π²Π΅Π±-прилоТСния

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ процСсс ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ изобраТСния являСтся достаточно Π΄ΠΎΠ»Π³ΠΈΠΌ ΠΏΡ€ΠΈ большой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ сСрвСра ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, взаимодСйствиС ASP.net прилоТСния ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Ρ SRCNN осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ сообщСний RabbitMQ. Π”Π°Π½Π½Ρ‹ΠΉ Π±Ρ€ΠΎΠΊΠ΅Ρ€ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярным бСсплатным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» для ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ сообщСний Advanced Message Queuing Protocol (AMQP), Π° Ρ‚Π°ΠΊΠΆΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ОписаниС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π²Π΅Π±-прилоТСния (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ физичСски Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° 2 части. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ прСдставляСтся собой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π΅Π±-интСрфСйс, написанный Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ских тСхнологиях JavaScript, CSS3 ΠΈ HTML5. Для написания клиСнтской Π»ΠΎΠ³ΠΈΠΊΠΈ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° соврСмСнная рСвизия языка JavaScript — ECMAScript 6. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡΠΌΠΈ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ тСхнология управлСния асинхронными опСрациями Promises. Данная вСрсия языка поддСрТиваСтся ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ соврСмСнных ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² послСдних вСрсий.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π²Π΅Π±-прилоТСния Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Ρ„Π°ΠΉΠ»Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ запуск процСсса ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ изобраТСния, с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ структурного ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Model-View-ViewModel ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° VueJS. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ являСтся Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Model-View-Controller ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, модСль Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° 3 нСзависимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° VueJS инкапсулируСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ двустороннСй привязки Π΄Π°Π½Π½Ρ‹Ρ… (Model) ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΉ (View) Ρ‡Π΅Ρ€Π΅Π· Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡƒΡŽ прослойку (ViewModel), с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²Π·Π°ΠΈΠΌΠ½Ρ‹ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ состояния.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ данная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° являСтся достаточно ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ, ΠΎΠ½Π° Π²ΠΎΠ±Ρ€Π°Π»Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π°ΠΊΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠ°ΠΊ AngularJS, React ΠΈ jQuery, прСдоставляя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΎΡ‡Π΅Π½ΡŒ простой API для Ρ€Π°Π±ΠΎΡ‚Ρ‹. ИмСнно Π·Π° ΡΡ‡Π΅Ρ‚ агрСгирования ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΈ Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ своСй простоты Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Вторая Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного Π²Π΅Π±-прилоТСния Ρ‚Π°ΠΊ ΠΆΠ΅ физичСски Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° 2 части. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π΅ запросы ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΡΡ‰Π΅Π΅ Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Π±-страницу систСмы, ΠΈ Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ свСрхточной Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти SRCNN. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±Ρ‹Π» вынСсСн Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠΌΠΈΠΌΠΎ Π²Π΅Π±-интСрфСйса (GUI) Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (CLI), поэтому привязка ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ модуля Π±Ρ‹Π»Π° нСдопустимой.

БСрвСрная Ρ‡Π°ΡΡ‚ΡŒ Π²Π΅Π±-прилоТСния Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ ASP.net Core, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Π΅Π±-прилоТСния ΠΊΠ°ΠΊ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… стандартного для Windows Π²Π΅Π±-сСрвСра IIS, Ρ‚Π°ΠΊ ΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… собствСнного процСсса (ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ саморазвёртываСмый Π²Π΅Π±-сСрвСр для прилоТСния). Π’Π°ΠΊ ΠΆΠ΅ для возмоТности развСртывания прилоТСния Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Linux всС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ написаны для сборки Π½Π° Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.net Core.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ процСсс ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ изобраТСния являСтся достаточно Π΄ΠΎΠ»Π³ΠΈΠΌ ΠΏΡ€ΠΈ большой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ сСрвСра ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, взаимодСйствиС ASP.net прилоТСния ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Ρ SRCNN осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ сообщСний RabbitMQ. Π”Π°Π½Π½Ρ‹ΠΉ Π±Ρ€ΠΎΠΊΠ΅Ρ€ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярным бСсплатным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» для ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ сообщСний Advanced Message Queuing Protocol (AMQP) [22], Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.net Core, Ρ‡Ρ‚ΠΎ являлось основной ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠ΅ΠΉ Π²Ρ‹Π±ΠΎΡ€Π° RabbitMQ для Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ SRCNN, обрабатывая ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, сколько позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСрвСра. Π’Π°ΠΊ ΠΆΠ΅ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΡ€Π°ΠΉΠ½Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Π΅Π± интСрфСйс, прСдставлСнный Π½Π° Π ΠΈΡΡƒΠ½ΠΊΠ΅ 3.3:

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ RabbitMQ.

Рисунок 0.1. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ RabbitMQ.

ΠŸΡ€ΠΈ нСобходимости Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ (ΠΌΠΎΠ΄ΡƒΠ»ΠΈ SRCNN) для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π΅ΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π΅ΠΌ самым увСличивая ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ всСго прилоТСния. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ сообщСний ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ бСзопасным способом Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ASP.net ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΠ½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡΡ‚Π°ΠΈΠ²Π°Π΅Ρ‚ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ окончания ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°Π΄Π°Ρ‡ΠΈ (Ρ‚ΠΈΠΊΠ΅Ρ‚), с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ клиСнтскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π±Ρ€ΠΎΠΊΠ΅Ρ€ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ изобраТСния.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ асинхронной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ получСния ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ изобраТСния Π² Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅ сообщСний RabbitMQ создано Ρ‚Ρ€ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ: ImageInput, ImageProgress ΠΈ ImageOutput. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ изобраТСния ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Asp.net ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ сообщСния для ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, помСщая само ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² Ρ‚Π΅Π»ΠΎ сообщСния (Body) ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Guid, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прикрСпляСтся ΠΊΠΎ Π²ΡΠ΅ΠΌ сообщСниям, связанным с Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡΠΌ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ статуса процСсса ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ изобраТСния ΠΈΠ»ΠΈ ΠΊ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сообщСния, ΠΎΠ½ΠΎ помСщаСтся Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ImageInput, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ской части прилоТСния возвращаСтся Ρ‚ΠΈΠΊΠ΅Ρ‚, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΎ пСриодичСски ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Asp.net ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΡΡ‚оянии Π·Π°Π΄Π°Ρ‡ΠΈ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ SRCNN ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ImageInput, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· Π½Π΅Π³ΠΎ Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚ процСсс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ этапа ΠΈΠ»ΠΈ статуса Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ SRCNN Ρ‚Π°ΠΊ ΠΆΠ΅ асинхронно отправляСт сообщСниС с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ статусС Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ImageProgress, прикрСпляя ΠΊ Π½Π΅ΠΌΡƒ сохранСнный Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°Ρ‡Π°Π»Π΅ Ρ‚ΠΈΠΊΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ. Π”Π°Π½Π½Ρ‹Π΅ сообщСния ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Asp.net, ΠΊΠΎΠ³Π΄Π° ΠΊ Π½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ запрос Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ послСднСго Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ состояния Π·Π°Π΄Π°Ρ‡ΠΈ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΎΠΌ. ΠŸΡ€ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Asp.net ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ImageOutput. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ для процСсса ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ изобраТСния прСдставлСна Π² ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ B. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ с ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ сообщСний, Ρ‚Π°ΠΊ ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. ПослСднСС использовалась для провСдСния ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… тСстов, описанных Π΄Π°Π»Π΅Π΅. Π’ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ C ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов модуля ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

Алгоритм ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‚Π°ΠΊ ΠΆΠ΅ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсиСй, описанной Π² Ρ€Π°ΠΌΠΊΠ°Ρ… курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°ΡΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ²Π°Π½ΠΈΠΈ процСссов ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ изобраТСния, ΠΏΡƒΡ‚Π΅ΠΌ раздСлСния изобраТСния Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…. Π’Π°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для этих Ρ†Π΅Π»Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Task Parallel Library, входящая Π² Ρ‡ΠΈΡΠ»ΠΎ стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.net, позволяСт Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сразу нСсколько ядСр процСссора. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅Ρ€Π½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… процСсс Π±ΡƒΠ΄Π΅Ρ‚ выполнятся Π΅Ρ‰Ρ‘ быстрСС. Одним ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… достиТСний примСнСния ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ сообщСний ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ распараллСлСнного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° являСтся прСвращСния прилоТСния Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ систСму. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ пропускной способности Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π½Π° Π±Π°Π·Π΅ клиСнтского Javascript-прилоТСния. АрхитСктура прилоТСния прСдставлСна Π½Π° Π ΠΈΡΡƒΠ½ΠΊΠ΅ 3.4:

АрхитСктура прилоТСния.

Рисунок 0.2 АрхитСктура прилоТСния.

К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΎΠ² являСтся ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ количСства ΡƒΠ·Π»ΠΎΠ² систСмы, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ для взаимодСйствия ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ