Тип работы:
Предмет:
Язык работы:


Осуществление взаимодействия между сервером и аппаратными и программными ресурсами клиента

Работа №130591

Тип работы

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

Предмет

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

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

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


Введение 4
1. Постановка задачи 6
2. Обзор 7
2.1. Обзор альтернативных подходов и технологий 7
2.2. Инструментарий 8
3. Архитектура 10
3.1. Основной подход 10
3.2. Интерфейс веб-приложения 11
3.3. Локальное приложение 14
4. Реализация 17
4.1. Взаимодействие ReactJS и Redux 17
4.2. Dependency Injection 17
5. Тестирование 20
5.1. ’’Ручное” тестирование 20
5.2. Unit-тестирование 21
5.2.1. Серверное приложение 21
5.2.2. Клиентское приложение 22
Заключение 25
Список литературы 26

В настоящее время, веб-приложения, управляемые из браузера, по уровню производительности находятся на уровне настольных прило­жений, а в некоторых областях по функциональности и удобству ис­пользования опережают их. Однако остаются такие области, где веб­приложение имеет ряд существенных недостатков относительно при­ложения, работающего на локальном компьютере. Одним из главных недостатков является отсутствие доступа к программным и аппартным средствам на локальном компьютере.
Это обуславливается защитной технологией браузера, которая назы­вается песочницей1[1]. Данная технология накладывает серьезные огра­ничения на выполняемый программный код в браузере, в том числе и на доступ к программным и аппаратным средствам на локальном ком­пьютере. На текущий момент существуют технологии, которые позво­ляют преодолеть данное ограничение. Примером может служить про­дукт компании Oracle Java applets[2]. Несмотря на возможность работы с любым браузером, данный продукт имеет ряд серьёзных недостатков, главными из которых являются необходимость установки дополнитель­ного программного обеспечения, небезопасность и отсутствие поддерж- ки2. Таким образом, в настоящее время существует необходимость в оптимальном решении, удовлетворяющем требованиям безопасности, производительности и расширяемости.
Необходимо также упомянуть, что современные браузеры находят­ся на стадии развития и предлагают новые возможности для выпол­няемого кода. Однако эти возможности предоставляются только одним браузером, для другого браузера приходится искать новое решение. На­пример, разработчики браузера Chrome разработали технологию Native Messaging[3], предоставляющую API для общения браузерных приложе­ний и расширений с приложениями на локальном компьютере. Данная технология способна решить проблему по обеспечению доступа к про­граммным и аппаратным средствам на локальном компьютере. Однако данная технология не является стандартом, то есть она поддерживает­ся только в браузерах Chrome. Другие популярные браузеры, такие как Opera или Mozilla Firefox, данное решение не поддерживают. Для таких браузеров необходимо искать альтернативный подход. Возможно, дру­гие браузеры поддерживают свою технологию, позволяющую решить проблему по обеспечению доступа к программным и аппартным сред­ствам на локальном компьютере.
Разумеется, можно разработать отдельную реализацию для отдель­ного браузера. Однако разработка решения под конкретный браузер сильно ограничивает возможности приложения и приводит к резкому повышению трудозатрат на разработку, отладку и выпуск приложения при увелечении поддерживаемых браузеров с собственной реализацией под каждый. Это делает продукт менее конкурентноспособным за счет повышения трудозатрат и увеличения длительности разработки. По­этому для крупных компаний, которые создают сложные программные продукты, данное решение крайне невыгодно. Одной из таких компа­ний является Docsvision3, под руководством которой выполняется дан­ная работа.
Таким образом, целесообразно разработать решение, которое поз­волит получить ранее сказанное преимущество веб-приложений и при этом устранит наиболее серьезные недостатки, такие как отсутствие доступа к аппаратным и программным средствам на локальном ком­пьютере. Также установлено, что проблему необходимо решить с уче­том обеспечения кроссбраузерности и кроссплатформенности, стремясь минимизировать трудозатраты на разработку и обеспечение программ­ного продукта.

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

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

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


В ходе работы были достигнуты следующие результаты.
• Проведен обзор технологий HTML5, WebUSB, JavaApplets, Native Messaging. В результате обзора установлено, что ни одно из су­ществующих решений не способно решить поставленную цель с учетом требования кроссбраузерности.
• Разработана архитектура прототипа. В ходе решения данной за­дачи были подробно разработаны основные компоненты архитек­туры. Создан процесс их взаимодействия. Архитектура разраба­тывалась с использованием самых актуальных и передовых на мо­мент написания дипломной работы технологий - ReactJS, Redux, ASP.NET MVC5. Также разработка велась с учетом ограничений кроссплатформенности и расширяемости.
• Реализована архитектура прототипа с помощью таких техноло­гий, как ASP.NET, Redux, ReactJS. При реализации разработан­ной архитектуры возникло немало проблем. Основными из ко­торых были обеспечение взаимодействия технологий ReactJS и Redux, внедрение внешних зависимостей с целью разбиения ком­понент на независимые, хорошо тестируемые части.
• Проведено тестирование. В результате чего клиентское и сервер­ное приложения полностью ’’покрыты” тестами, это позволяет вно­сить изменения или добавлять новую функциональность без рис­ка, что ранее работающие функции окажутся неработоспособны. Успешно проведено ’ручное” тестирование.


[1] URL: https://en.wikipedia.org/wiki/ Sandbox_Ccomputer_security) (online; accessed: 24.05.2017).
[2] URL: http://www.oracle.com/technetwork/java/applets-137637.html (online; accessed: 24.05.2017).
[3] URL: https://developer.chrome.com/extensions/ nativeMessaging (online; accessed: 12.29.2016).
[4] URL: https://en.wikipedia.org/wiki/HTML5 (online; accessed: 12.29.2016).
[5] URL: https://wicg.github.io/webusb/ (online; accessed: 12.29.2016).
[6] URL: https://www.chromestatus.com/feature/5651917954875392 (online; accessed: 12.29.2016).
[7] Alexey Melnikov Ian Fette. The WebSocket Protocol.— 2011.— URL: https://tools.ietf.org/html/rfc6455 (online; accessed: 12.20.2016).
[8] Fenton Steve. Pro TypeScript. — 2014.
[9] Freeman Adam. Pro ASP.NET MVC 5. — 2013.
[10] Stefanov Stoyan. React: Up Running: Building Web Applications.— 2017.


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



Подобные работы


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