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


МЕТОДЫ РАЗРАБОТКИ И ПРОЕКТИРОВАНИЯ ВЫСОКОНАГРУЖЕННЫХ ПРИЛОЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ELIXIR / RUBY

Работа №62849

Тип работы

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

Предмет

информатика

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

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


ВВЕДЕНИЕ 3
1. БАЗОВЫЙ ПРОЕКТ 5
1.1. Elixir 5
1.2. Phoenix 7
1.2.1. Mix 11
1.2.2. Plug 11
1.2.3. Ecto 12
1.2.4. Views 13
2. ОПТИМИЗАЦИЯ КОМПОНЕНТОВ СИСТЕМЫ 14
2.1. База данных 14
2.2. Веб-сервер 17
2.3. Front-end 20
2.4. Взаимодействие с Ruby 23
3. DOCKER 26
ЗАКЛЮЧЕНИЕ 30
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 31
ПРИЛОЖЕНИЕ

В эпоху информационных технологий, когда у большинства людей есть свои персональные компьютеры, создается чрезвычайно много программного обеспечения. Начиная с простых текстовых редакторов и заканчивая масштабными платформами для ведения бизнеса. Менялись и способы предоставления программ конечным пользователям.
В 90-х годах одно приложение могло уместиться на дискете. Но шло время, функционал усложнялся, и размер программ увеличивался.
В начале 2000-х ПО в основном распространялось на CD-дисках. Для пользователей это был довольно удобный способ получения и использования программ, однако создателям и разработчикам приходилось тратить внушительное количество средств на заказ и производство самих CD-дисков. Также приходилось придумывать средства защиты от подделки лицензий.
В годы, когда сеть Интернет развивается семимильными шагами, очень распространенным способом продажи программного обеспечения является продажа через Интернет. Пользователь может скачать программу с сайта производителя с урезанным функционалом, а для разблокировки главных функций необходимо приобрести лицензию. Сделать это можно с помощью электронных платежей, которые на сегодняшний день отлично защищены. Этот способ упрощает распространение ПО, но не обеспечивает должной защиты от пиратства. Лицензионный ключ можно выложить в публичный доступ, и миллионы человек получат продукт бесплатно.
Самым современным форматом программ является веб-приложение. Веб¬приложение - клиент-серверное приложение, где клиент - это браузер, а сервер - веб-сервер.
У такого ПО есть ряд преимуществ:
• не нужна установка программы непосредственно на компьютер. Нужен лишь браузер;
• нет необходимости в создании несколько версий одного продукта для разных операционных систем;
• не занимает память на жестком диске компьютера;
• пользователь всегда получает последнюю версию;
• доступ с различных устройств (смартфоны, планшеты и т.д.).
Но также есть и минусы:
• необходим доступ к сети Интернет;
• персональные данные хранятся на удалённых серверах;
• нет возможности создать веб-приложение, которое бы напрямую взаимодействовало с системой пользователя, например утилиту для форматирования дисков или очистки системы от «мусора».
Сегодня достаточно просто создать своё веб-приложение. Для различных языков программирования существует огромное количество фреймворков и инструментов. Так для Java есть Spring. Для Python есть Django. Для Ruby есть Ruby on Rails. Все эти ЯП относятся к классу императивных языков, имеющих свои недостатки. Другое класс - функциональные ЯП, например Haskell, Lisp, Clojure. Они редко используются для создания веб-приложений. В основном их применяют для организации сложных математических вычислений и обработки больших данных.
Актуальность данной дипломной работы обусловлена тем, что в настоящее время разработчик тратит большое количество времени для запуска всех компонентов системы, необходимых для работы веб-сервиса. Помимо этого нужно уделить немало времени для первоначальной настройки этих компонентов в режиме высоких нагрузок.
Целью дипломной работы является:
• создание базового проекта на основе языка программирования Elixir и фреймворка Phoenix;
• исследовать наиболее уязвимые в плане производительности части приложений;
• анализ различных конфигураций системы и подбор наиболее оптимальных;
• создание Docker-контейнера для быстрого и удобного запуска.


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

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

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


Язык программирования Elixir активно развивается и становится всё более популярным среди разработчиков. Он использует все преимущества виртуальной машины Erlang в совокупности с достаточно простым синтаксисом, похожим на Ruby, что позволяет разрабатывать высоконагруженные системы.
В ходе работы были проанализированы различные варианты конфигураций основных компонентов системы, необходимых для базового проекта. Данный базовый проект позволит любому программисту быстро и без особых усилий начать разработку проекта, способного выдерживать высокие нагрузки.

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



1. Официальный сайт языка Elixir [Электронный ресурс]. URL: https://elixir- lang.org (дата обращения: 03.02.2017).
2. Официальный сайт языка Erlang [Электронный ресурс]. URL: https://www.erlang.org (дата обращения: 04.02.2017).
3. Официальный сайт фреймворка Phoenix [Электронный ресурс]. URL: http://www.phoenixframework.org (дата обращения: 05.02.2017).
4. Оптимизация и масштабирование Web-приложений [Электронный ресурс]. URL: https://ruhighload.com (дата обращения: 10.03.2017).
5. Официальный сайт библиотеки React [Электронный ресурс]. URL: https://facebook.github.io/react (дата обращения: 15.04.2017).
6. Официальный сайт Docker [Электронный ресурс]. URL:
https://www.docker.com (дата обращения: 20.04.2017).
7. Взаимодействие Elixir и Ruby [Электронный ресурс]. URL:
https://blog.fazibear.me/elixir-ruby-dont-fight-talk-d83d5abc8898 (дата
обращения: 01.05.2017).
8. Высоконагруженные системы [Электронный ресурс]. URL:
https://habrahabr.ru/company/plarium/blog/217151 (дата обращения:
10.02.2017).
9. Документация PostgreSQL [Электронный ресурс]. URL:
https://www.postgresql.org/docs (дата обращения: 11.03.2017).
10. The difference between Virtual DOM and DOM [Электронный ресурс]. URL: http://reactkungfu.com/2015/10/the-difference-between-virtual-dom-and-dom (дата обращения: 16.04.2017).
11. The Docker Ecosystem [Электронный ресурс]. URL:
https://www.digitalocean.com/community/tutorials/the-docker-ecosystem-an- introduction-to-common-components (дата обращения: 21.04.2017).


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




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