Выбор аппаратных и программных средствдля разработки программного комплекса — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Выбор аппаратных и программных средствдля разработки программного комплекса

2017-12-12 469
Выбор аппаратных и программных средствдля разработки программного комплекса 0.00 из 5.00 0 оценок
Заказать работу

Исходя из поставленной задачи разработки веб-комплекса, его внедрение подразумевает использование веб-сервера. Веб-сервером выступает программное средство позволяющее принимать запросы и отправлять ответы по HTTPпротоколу. Это программное средство, в свою очередь, располагается на сервере.На сегодняшний день, любые медицинские учреждения (поликлиники, больницы) уже имеют в своем распоряжении сервера для хранения баз данных сотрудников, привязанных к учреждению клиентов и различной бухгалтерской информации.Размещение веб-сервера, а точнее программного средства, как правило, не мешает работе других программныхпродуктов, если соблюдаются рекомендуемые системные требования.Для полноценнойработы веб-комплекса рекомендуется 2Гб оперативной памяти, 5-20Гб свободного дискового пространства (зависит от количества сотрудников и клиентов), и процессор 3,2ГГц.

Среди существующих веб-серверов преимущественным выбором является Node, так как данная программная платформавыполняет задачу веб сервера и одновременнопредставляет среду для выполнения кода на JavaScript основанной на движке ChromeV8. Еще одним преимуществом Node в отличие от остальных средств, таких как, например PHP или.NETэто событийно-ориентированный подход к программированию, который позволяет осуществить неблокирующий ввод/вывод. Другими словами, во времяожидания выполнения какой-либо операции сервер не блокируется и позволяет работать с другими запросами, тем самым увеличивая возможность одновременных подключений и скорость ответов на запросы пользователей. Тогда как синхронный подход подразумевает обработку запросов последовательно, то есть, выполнение следующего запроса начнется после выполнения предыдущего. Это оказывает неэффективное распределение вычислительных ресурсов и большую часть времени сервер попросту простаивает. Основной недостаток Nodeзаключается в сложности проектирования серверной части программного средства. Необходимо позаботиться об очистке памяти после обработки каждого запроса, в противном случае произойдет утечка и потребуется перезагрузка сервера.

На текущий момент программная платформаNodeактивно развивается, для нее разработана масса библиотек и фреймворков, которые позволяют не только избавиться от недостатков, но и предоставляют дополнительные возможности в разработке. Nodeподдерживает язык программирования – CoffeeScript.Данный язык представляет собой обертку языка JavaScript (JS). CoffeeScriptимеет упрощенный синтаксис, чтоулучшает читаемость кода, уменьшает его размеры изаменяет сложные в реализации задачи на чистом JSна простые.Поэтому использование этого языка отлично подойдет дляреализации серверной части приложения.

В состав Nodeвходит установщик пакетов NPM. Пакет в Nodeэто набор JavaScriptфайлов, которые организуют различные инструменты для разработки программного средства. Одним из таких инструментов является фреймворк Express. Его использование дает такие возможности как удобство работы с запросами,структурированная маршрутизация, ориентированность на высокую производительность и диспетчер задач, который способен перезапустить веб-сервер в случае его отказа [7].

Фреймворк Expressв своей архитектуре использует шаблонМодель-Вид-Контроллер (MVC). Подход MVCподразумевает разделение структуры программного средства на три компонента: модель данных, управляющая логика и пользовательский интерфейс. Модель данных это сами данные и правила для работы над ними. Контроллер занимается обработкой HTTPзапросов и работает с соответствующей моделью. Представление обеспечивает отображение данных полученных из модели. Однако формирование представления на серверной части веб приложения, сказывается отрицательным образом на его производительности и отзывчивости интерфейса. Поэтомурольинтерфейса (Frontend) возьмет на себя технология «Приложение одной страницы» (SPA). Архитектура SPA заключается в работе веб приложения на одной странице. При заходе на сайт происходит загрузка всего интерфейса, всех разделов и модулей в виде JavaScriptи CSSфайлов. Тем самым результаты запросов исключают генерацию и передачу с сервера целых HTMLдокументов, авсе последующие запросы выполняются с использованием веб-службы REST, которая доставляет данные в формате JSON. Еще одним преимуществом использование SPAэто возможность кеширование JavaScriptфайлов в большинстве браузеров, за счет чего при повторной загрузке веб-приложения браузер загружает только новые файлы и использует уже загруженные,что ускоряет загрузку страницы и уменьшает нагрузку на сервер.

Существует множество JavaScriptфреймворков для реализации пользовательскогоSPA интерфейса, среди которых наиболее популярны: React, Angularи Backbone. Последние два используют MVCархитектуру, тогда как Reactотвечает только за визуализацию и применяет компонентнуюконцепциюв разработке. Суть этой концепции заключается в разделении интерфейса на самодостаточные компоненты (модальные окна, кнопки, поля и другие). Такие компоненты можно делать шаблонными, тем самым уменьшая дублирование программного кода. С помощью встроенной в React библиотеки VirtualDOMможно добиться высокой производительности приложения. Reactвместо воздействия на DOMнапрямую, работает с ее виртуальной копией. Работа с DOM происходит в три этапа:

1. Внесение определенных изменений в виртуальную копию DOM

2. Сравнение виртуальногоDOM-дерева с настоящим и определение разницы

3. В случае выявления разницы, происходит перерисовка измененных компонентов

Из этого следует, что происходит не глобальная перерисовка страницы, а частичная, то есть перерисовка только тех областей, где есть изменения, из-зачего увеличивается отзывчивость и производительность пользовательского интерфейса.

У компонентного подхода в Reactесть существенный недостаток. Передача данных происходит от компонента родителя к потомку. При этом если два компонента не связаны отношением родитель-потомок, и разработчик пытается установить взаимодействие между ними, это приводит к ошибкам и считается антипаттерном. Решением этой проблемы является архитектура Flux. К Reactпредставлению добавляются еще две дополнительные части: диспетчер (dispatch) и хранилище данных (store). Диспетчер в этой архитектуре выступает как ядро, которое управляет потоками данных, а хранилище содержит состояние приложения и его логику (функции, методы). Механизм работы Flux представлен на рисунке 2.1

Рисунок 2.1. Схема работы Flux

Глобальное хранилище регистрирует в диспетчере функции для изменения состояния и когда диспетчер получает событие действия, он вызывает метод внутри хранилища. После того как хранилище изменится, генерируется событие, которое сообщает подписанным на него представлениям что произошло обновление, а они в свою очередь перерисовывают компонент.Данный подход реализует библиотека Redux, которая помогает организовать хранилище и предоставляет инструменты для работы с ним. Данная библиотека разрабатывалась специально для React, не смотря на то, что ее можно использовать и в других фреймворках. СReduxвсе компоненты могут хранить свое состояние в глобальном хранилище. А действия, которые вызывают компоненты, так же отправляются в хранилище. Таким образом, компонент только инициирует изменение и не задумывается о компонентах, которые должны получить его. Разница взаимодействия компонентов на чистом Reactи на ReactcReduxхорошо отражена на рисунке 2.2.

Рисунок 2.2. Разница c использованием Redux

Такой подход уменьшает путаницу в программном коде и исключает возникновение ошибок при взаимодействии компонентов. Поэтому Reduxразумно использовать вместе с Reactпри разработке интерфейса.

Еще одна важнаячасть полноценного веб-комплекса это база данных (БД). Так какпланируется использоватьNodeдля серверной части приложения, то MongoDBбудет отличным выбором в ролиСУБД.Это обусловлено тем, что в Nodeесть инструменты направленные особенным образом именно на взаимодействие с этой СУБД.MongoDBэто документно-ориентированная система управления базами данных, которая отличается от привычных реляционных БД.Хранение данных осуществляется в бинарном формате JSON (BSON) что ускоряет работу с данными, быстрее выполняются обработка и поиск. Инструменты Nodeпозволяют с легкостью десериализовать данные БД из BSONформата в привычный для JavaScriptформат JSON. Помимо этого MongoDBне требует синхронизации схемы БД, и имеет динамические базы и коллекции. Поэтому в приложении нет необходимости знать структуру базы, что дает возможность ее легкой масштабируемости.

Обобщая результат выбранных технологий, для разработки веб-комплекса будут использованы следующие программные инструменты:

2. MongoDBкак СУБД программного средства

3. Серверная часть приложения на базе Node на языке CoffeScriptcфреймворком Expressв роле архитектуры REST

4. Интерфейс приложения – React Redux

 

 


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.