Здавалка
Главная | Обратная связь

Багатопотокові клієнти



З метою підвищення прозорості розподілу розподілені системи, які працюють у глобальних мережах, потребують маскування значних затримок повідомлень, які курсують між процесами. Цикл затримки у глобальних мережах може досягати сотень мілісекунд або і секунд.

Традиційний спосіб приховати затримки зв’язку – ініціювавши взаємодію, відразу розпочати виконання другого завдання.

Приклад.Типовим прикладом використання цієї методики є web-браузери. Здебільшого web-документ у файлі формату HTML містить окрім тексту набір зображень, значків тощо. Для отримання елементів web-документа браузер відкриває з’єднання TCP/IP, читає дані, що надходять, і перетворює їх у компоненти візуального представлення. Встановлення з’єднання, як і читання даних, є блокуючою операцією. У разі роботи з повільними комунікаціями відчуваються незручності, пов’язані з тим, що час, потрібний для завершення кожної операції, може бути досить тривалим.

Web-браузер зазвичай спочатку отримує сторінку HTML-коду, а потім показує її. Для того, щоб приховати затримки зв’язку деякі браузери починають показувати дані у міру їх отримання. Коли текст з механізмами прокрутки стає доступним користувачеві, браузер продовжує отримувати останні файли, необхідні для правильного відображення сторінки, зокрема картинки. Таким чином, щоб побачити сторінку, користувачу не потрібно чекати отримання всіх її компонентів (рис.5).

У результаті, web-браузер виконує декілька завдань одночасно. Розробка браузера у вигляді багатопотокового клієнта дуже спрощує роботу з ним. Як тільки отримано основний файл HTML, активізуються окремі потоки виконання, які відповідають за дозавантаження інших частин сторінки. Кожен з потоків виконання створює окреме з’єднання із сервером і отримує від нього дані. Встановлення з’єднання і читання даних з сервера може бути запрограмоване з використанням стандартних (блокуючих) системних викликів. У цьому разі блокуючі виклики не можуть припинити основний процес завантаження сторінки. Код кожного з потоків виконання однаковий і переважно нескладний. У результаті користувач, хоча і помічає затримку в показі картинок, може переглядати документ.

 

 

Рис.5. Поетапне завантаження елементів сторінки Web-браузером

 

Використання багатопотокових web-браузерів, які відкривають декілька з’єднань, дає також й іншу перевагу. У попередньому прикладі були створені декілька з’єднань з одним і тим самим сервером. Якщо цей сервер сильно завантажений або просто повільний, то не можливо суттєво підвищити продуктивність порівняно з послідовним завантаженням файлів.

Проте здебільшого web-сервери можуть бути реплікованими на декілька машин, а кожен сервер міститиме однаковий набір web-документів. Репліковані сервери перебувають в одному місці й мають одне ім’я. Під час активації запиту на web-сторінці цей запит передається одному із серверів, зазвичай з використанням алгоритму циклічного обслуговування або іншого алгоритму вирівнювання навантаження.

За наявності багатопотокового клієнта з’єднання можуть бути встановленими з різними репліками, що потребує паралельної передачі даних, а це сприятиме тому, що web-документ буде показаний повністю значно швидше, ніж у разі нереплікованого сервера. Цей підхід спрацьовує лише якщо клієнт має змогу обробити реально паралельні потоки вхідних даних. У цьому разі потоки виконання ідеально підходять для обробки потоків даних.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.