🔍 Поиск готовых работ

🔍 Поиск работ

РЕАЛИЗАЦИЯ СПЕКУЛЯТИВНОГО HTML-ПАРСЕРА В ПОБОЧНОМ ПОТОКЕ ДЛЯ ПЛАТФОРМЫ SERVO

Работа №202471

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы39
Год сдачи2016
Стоимость4390 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
10
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 5
1. АНАЛИЗ ЛИТЕРАТУРЫ И СУЩЕСТВУЮЩИХ РЕШЕНИЙ 8
1.1. Синтаксический анализ 8
1.2. Обзор существующих решений 14
1.2.1. Проект Университета Беркли 14
1.2.2. Браузерный движок ZOOMM 15
1.2.3. Браузерный движок Servo 16
2. ПРОЕКТИРОВАНИЕ 20
2.1. Диаграмма деятельности 20
2.2. Диаграмма последовательности 21
3. РЕАЛИЗАЦИЯ 23
3.1. Выбор языка и платформы разработки 23
3.2. Диаграмма классов 25
4. ТЕСТИРОВАНИЕ 31
ЗАКЛЮЧЕНИЕ 36
ЛИТЕРАТУРА 37


Веб-обозреватель или веб-браузер - прикладное программное обеспечение для просмотра веб-страниц, содержания веб-документов, компьютерных файлов и их каталогов, управления веб-приложениями, а также для решения других задач. В глобальной сети браузеры используют для запроса, обработки, манипулирования и отображения содержания вебсайтов.
Функциональные возможности браузеров постоянно расширяются и улучшаются благодаря конкуренции между их разработчиками и высоким темпом развития и внедрения информационных технологий. Несмотря на то, что браузеры разных изготовителей базируются на разных технологических решениях, подавляющее большинство современных браузеров придерживается международных стандартов и рекомендаций W3C (World Wide Web Consortium) в области обработки и отображения данных.
Актуальность проблемы
На сегодняшний день повсеместно используются так называемые последовательные браузеры, т.е. браузеры, в которых процессы исполняются в некой последовательности (рис. 1). Такая концепция сформирована, по большей части, исторически, ввиду архитектур SISD- процессоров.
Процесс загрузки страницы происходит следующим образом. Браузер получает код HTML, CSS и JS, после этого осуществляет синтаксический анализ (парсинг, помимо структуры HTML анализируются стили CSS и скрипты JavaScript) и формирует объектную модель документа (DOM), после чего применяет стили. Далее создается дерево отображения (flow tree), после этого происходит разметка страницы (layout) на составные блоки, называемые списками отображения. После этого происходит отрисовка на слои (рендеринг), после чего слои компонуются в окончательный результат для вывода [6, 7].

Рис. 1. Стадии обработки веб-страницы и ее промежуточные представления в браузере

Концепция параллельных браузеров предполагает
распараллеливание операций обработки веб-страницы: синтаксический анализ, разметку страницы, применение стилей, параллельное исполнение скриптов.
Есть несколько иной подход в параллелизации работы браузера, состоящий в инстанцировании этих служб для каждой отдельной вкладки в браузере (tab). Но такой вариант не является в полной мере параллельным решением, поэтому отдельно рассматриваться не будет.
Выгода распараллеливания операций заключается в увеличении быстродействия и повышении энергоэффективности работы браузера, что достаточно актуально для мобильных устройств [10, 12].
Согласно исследованиям [10, 12], задачи по синтаксическому
анализу занимают достаточное количество времени, чтобы встал вопрос об оптимизации их решений.
Internet Explorer 8 выполняет синтаксический анализ примерно 310 % времени от общей готовности страницы для использования пользователем, Firefox, согласно измерениям авторов исследования, проводит до 40 % общего времени именно в синтаксическом анализе. Поэтому существенное ускорение работы синтаксического анализатора, которое можно будет достигнуть за счет распараллеливания операций, положительно скажется на общем времени загрузки страницы.
Цель и задачи исследования
Целью данной работы является реализация спекулятивного HTML- парсера, работающего в побочном потоке в браузерном движке Servo.
Для достижения цели необходимо выполнить следующие задачи:
1) провести обзор литературы по теме работы и анализ существующих парсеров в веб-браузерах;
2) разработать спекулятивный парсер;
3) реализовать и провести тестирование разработанного анализатора.
Структура и объем работы
Работа состоит из введения, 4 разделов, заключения и списка литературы. Объем работы составляет 38 страниц, объем списка литературы - 22 наименования.
Содержание работы
В первом разделе, «Обзор существующих решений», изложено описание основных существующих на рынке решений и разработок.
Во втором разделе, «Проектирование», определены функциональные требования к разрабатываемому парсеру, описаны основные алгоритмы работы.
В третьем разделе, «Реализация», представлен перечень используемых средств и технологий разработки, приведены основные алгоритмы работы парсера и его компонентов.
В четвертом разделе, «Тестирование», приведены результаты тестирования, подтверждающие корректность работы парсера.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Целью данной работы являлась реализация спекулятивного HTML- парсера, работающего в побочном потоке в браузерном движке Servo.
В ходе выполнения выпускной квалификационной работы магистра были решены следующие задачи:
1) проведен обзор литературы по теме работы и анализ существующих парсеров в веб-браузерах;
2) разработан спекулятивный парсер;
3) реализован и протестирован разработанный анализатор.
В процессе работы по проектированию и реализации парсера активно велась переписка с одним из членов команды Servo Джошуа Мэттьюсем (Josh Matthews).
Результаты работы будут непосредственно использованы в проекте Servo.



1. Anderson B. Experience Report: Developing the Servo Web Browser Engine using Rust. / B. Anderson, L. Bergstrom, D. Herman, et al. // [Электронный ресурс] URL: http://arxiv.org/abs/1505.07383 (дата обращения: 22.02.2016)
2. Blandy J. Why Rust? - USA: O’Reilly Media, 2015. - 62 p.
3. Bodik R. Fast and parallel webpage layout. / R. Bodik, L. Meyerovich. // WWW’10 Proceedings of the 19th international conference on World wide web. - USA: ACM New York, 2010. - P. 711-720.
4. Cascaval C. ZOOMM: A Parallel Web Browser Engine for Multicore Mobile Devices. / C. Cascaval, S. Fowler, O. Montesinos, et al. // ACM SIGPLAN Notices - PPoPP '13, volume 48, issue 8, August 2013. - P. 271-280.
5. Design of HTML5 parser in Servo. [Электронный ресурс] URL: https://github.com/servo/html5ever/wiki/Design (дата обращения: 2.03.2016).
6. Garsiel T. How browsers work. [Электронный ресурс] URL: http://taligarsiel.com/Projects/howbrowserswork1.htm (дата обращения: 19.02.2016).
7. Grosskurth A. A Reference Architecture for Web Browsers. / A. Grosskurth, M. Godfrey. // ICSM'05. Proceedings of the 21st IEEE International Conference. - IEEE, Software Maintenance, 2005. - P. 661-664.
8. Grune D. Parsing Techniques: A Practical Guide 2nd ed. - USA: Springer, 2007. - 662 p.
9. HTML parser threading. [Электронный ресурс] URL: https: //developer. mozilla. org/en- US/docs/Mozilla/Gecko/HTML_parser_threading (дата обращения: 16.03.2016).
10. Jones C.G Parallelizing the Web Browser. / C.G. Jones, R. Liu, L. Meyerovich, K. Asanovic, R. Bodik. // HotPar ’09 Proceedings of the First USENIX Conference on Hot topics in Parallelism, 2009. - P. 7-13.
11. Kegler J. Parsing: a timeline. [Электронный ресурс] URL: http://j effreykegler. github. io/Ocean-of-Awareness- blog/individual/2014/09/chron.html (дата обращения: 16.02.2016).
12. Mai H. A case for parallelizing web pages. / H. Mai, S. Tang, S. King, C. Cascaval, P. Montesinos. // HotPar ’12 Proceedings of the USENIX Conference on Hot topics in Parallelism, 2012. - P. 2-8.
13. Meyerovich, L. Parallel schedule synthesis for attribute grammars. / L. Meyerovich, M. Torok, et al. // Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, - USA: ACM PPoPP ’13. - P. 187-196.
14. Meyerovich L. Parallel Layout Engines: Synthesis and Optimization of Tree Traversals. - Dis. Ph. D. / UC Berkeley, 2013. - 161 p.
15. Off-main thread speculative HTML parsing. [Электронный ресурс] URL: https://github.com/servo/servo/issues/3847 (дата обращения: 05.01.2016).
..22


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ