Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Средства создания программ, выполняемых на стороне сервера

Содержание:

ВВЕДЕНИЕ

В настоящее время современный человек не может представить свою жизнь без телевизора, радио, сотового телефона, а главное без компьютера. В современном мире персональный компьютер играет главную роль во всех сферах деятельности, во всех странах мира. Конечно, можно отметить, что еще несколько десятилетий назад, никто не пользовался ПК и при этом не имели никаких удобств, но мир не стоит на месте и необходимо идти «в ногу со временем».

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

Веб-приложения – это приложения, которые запускаются в веб-браузере, и именно поэтому они популярны из-за повсеместности веб-браузеров. Это также удобно из-за того, что не нужно устанавливать программное обеспечение или приложение на десятки, сотни или даже тысячи компьютеров, что в свою очередь упрощает обслуживание приложения. В этом и заключается актуальность данной работы.

Целью данной работы является анализ средств разработки программ, выполняемых на стороне сервера.

В рамках работы необходимо решить следующие задачи:

  • раскрыть понятие «веб-разработка»;
  • изучить особенности серверного программирования;
  • провести анализ языков программирования используемых на сервере и систем управления базами данных.

1. Анализ предметной области

1.1 Веб-разработка

Веб-разработка в целом относится к задачам, связанным с разработкой веб-сайтов для их размещения в сети Интернет. Процесс веб-разработки включает в себя веб-дизайн, разработку веб-контента, сценарии на стороне клиента и серверной стороне, а также настройку сетевой безопасности.

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

Веб-разработка варьируется от создания простых текстовых страниц до сложных веб-ресурсов, приложений для социальных сетей и электронных бизнес-приложений. [9]

Иерархия веб-разработки выглядит следующим образом:

  • кодирование на стороне клиента;
  • кодирование на стороне сервера;
  • технология баз данных.

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

Некоторые из этих приложений имеют большую часть своей логики, живущих на веб-сервере, который создает HTML, CSS и JavaScript для создания сайта.

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

Однако, независимо от того, как осуществляется веб-разработка, основные технологии одинаковы: HTML, JavaScript, CSS.

Веб-разработчики используют все основные языки программирования для создания веб-приложений. Это возможно, потому что пользовательский интерфейс веб-приложения – это, по существу, HTML, CSS и JavaScript, которые могут быть сгенерированы любым языком программирования, способным создать текст.

JavaScript используется для управления так называемой DOM (Document Object Model), которая представляет собой веб-страницу в браузере для прямого изменения пользовательского интерфейса отображаемого в браузере, без прямого создания нового кода HTML или CSS.

Ранняя веб-разработка состояла в основном из создания статических HTML-страниц, а навигация осуществлялась исключительно гиперссылками.

Раньше веб-разработчик в реальности не создавал «приложение». Он создавал набор статических веб-страниц, которые использовались для передачи информации и, возможно, нескольких изображений, все связанные с гиперссылками.

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

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

Затем появились основные принципы веб-разработки, которые были разработаны для упрощения CGI и динамической генерации HTML.

ColdFusion или ASP были некоторые из ранних веб-фреймворков, которые упростили веб-разработку. [7]

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

В конечном счете, с развитием технологий браузера и быстрым ростом компьютеров, а также растущим спросом на более сложные приложения – JavaScript начал использоваться для расширения возможностей многих веб-приложений.

Кроме того, в это время также появился CSS, чтобы упростить стилизацию веб-приложений, предоставив HTML роль определения контента и CSS для определения макета и стиля этого контента.

Рендеринг всего на сервере был слишком медленным и не чувствовал себя отзывчивым, поэтому были созданы технологии, такие как AJAX (асинхронный JavaScript и XML), чтобы позволить динамически обновлять веб-страницы без обновления страницы.

В конце концов, все веб-приложения были построены динамически без обновления любой страницы. Эти типы веб-приложений известны как SPA или Single Pages Applications. Они позволяет динамически изменять веб-страницу, не обновляя ее.

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

Фактически это стало настолько справедливым, что Google создал веб-ОС под названием Chrome OS, в которой в качестве ОС используется браузер Chrome. В будущем все будет размещено в Интернете, потому что браузеры будут достаточно мощными, чтобы запускать все. Уже все движется в этом направлении, поскольку все больше и больше развиваются облачные технологии.

За последние годы некоторые вещи изменились, но основные функциональные возможности Интернета и ее основополагающих технологий в основном остались прежними.

Основные парадигмы веб-браузеров следующие:

  • веб-браузер способен анализировать и преобразовывать HTML и CSS в видимый формат, который называют веб-страницей;
  • веб-браузер также способен выполнять JavaScript для исполнения различных действий, включая изменение базовой структуры веб-страницы.
  • веб-браузер должен отправить запрос на веб-сервер, чтобы получить веб-страницу для рендеринга.

Это делается через протокол, известный как HTTP, или протокол передачи гипертекста. [6]

Когда запрос на определенный ресурс или URL (Унифицированный Идентификатор Ресурса) отправляется на веб-сервер, этот веб-сервер находит запрашиваемый контент, если он существует, и отправляет ответ в браузер.

Затем браузер анализирует и отображает этот ответ, который видит конечный пользователь в веб-браузере.

Теперь, очевидно, на фронтенде происходит гораздо больше, но основная идея заключается в том, что веб-браузер делает запрос, и веб-сервер отвечает, возвращаясь из HTML, CSS и JavaScript.

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

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

Для веб-приложений вам необходимо обойти тот факт, что базовый протокол HTTP не имеет статуса.

Нужно иметь некоторый способ управлять состояниями между запросами и отслеживать отдельных пользователей, которые используют веб-приложение одновременно.

Теперь, очевидно, существуют рамки и шаблоны, которые делают это проще, но важно понять, что веб-разработка сильно отличается от других видов развития из-за HTTP и постоянных взаимодействий с клиентским сервером.

В самой простой модели веб-разработки все веб-страницы отображаются на сервере, а HTML, CSS и JavaScript этой страницы отправляются в веб-браузер, где он анализируется и отображается пользователю. Подтверждение на стороне сервера просто означает, что страницы полностью построены логикой на сервере. Таким образом, при рендеринге на стороне сервера логика приложения практически полностью зависит от сервера.

Сегодня такие технологии, как ASP.NET или PHP, по-прежнему в основном используют эту модель, хотя с использованием различных фреймворков JavaScript даже для серверной технологии рендеринга можно использовать для рендеринга сторону клиента.

Клиентский рендеринг просто означает, что содержимое веб-страницы создается в браузере через JavaScript, а не на сервере.

Благодаря рендерингу на стороне клиента можно практически почти думать о том, что веб-сервер предоставляет «приложение» браузеру, и браузер выполняет это приложение внутри себя, и в итоге отображает страницы, создает навигацию и запрашивает любые дополнительные данные с сервера.

За кулисами JavaScript используется для создания и управления элементами DOM и даже для создания HTML или CSS, который является частью веб-страницы или в данном случае веб-приложения. Рендеринг на стороне клиента выглядит более плавным для конечного пользователя, потому что нет необходимости возвращать запросы на сервер для отображения новых страниц, а только запросы на дополнительные данные, которые затем «подключаются», веб-страницы динамически.

Вот почему некоторые приложения на стороне клиента называются SPA. Обычно есть только одна страница, и содержимое этой страницы динамически обновляется. [2]

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

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

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

Веб-программирование – это частный случай программирования клиент-серверного приложения. Клиент-серверное приложение – это вид распределенной информационной системы. Двигаясь от частного к общему, получаем, что веб-программирование – это частный случай программирования распределенной информационной системы. Теперь попытаемся двигаться в обратном направлении, с целью определить, чем именно характерен этот самый частный случай. [9]

Понятие «веб-сервер» может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.

С точки зрения «железа», «веб-сервер» – это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Он подключен к сети Интернет и может быть доступен через доменное имя.

С точки зрения ПО, веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум – это HTTP-сервер. HTTP-сервер – это часть ПО, которая понимает URL’ы (веб-адреса) и HTTP (протокол, который ваш браузер использует для просмотра веб-станиц).

На самом базовом уровне, когда браузеру нужен файл, размещенный на веб-сервере, браузер запрашивает его через HTTP-протокол. Когда запрос достигает нужного веб-сервера («железо»), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке 404) и отправляет обратно, также через HTTP. [7]

Чтобы опубликовать веб-сайт, необходим либо статический, либо динамический веб-сервер.

Статический веб-сервер, или стек, состоит из компьютера («железо») с сервером HTTP (ПО). Его называют «статикой», потому что сервер посылает размещенные файлы в браузер «как есть».

Динамический веб-сервер состоит из статического веб-сервера и дополнительного программного обеспечения, чаще всего сервера приложения и базы данных. Его называют «динамическим», потому что сервер приложений изменяет исходные файлы перед отправкой в ваш браузер по HTTP.

Серверные программы делятся на следующие четыре вида:

  1. Исполняемые программы, работающие через интерфейс CGI (Common Gateway Interface – общий интерфейс обмена), так называемые CGI-npoграммы. Эта разновидность серверных программ – самая старая, однако отнюдь не устаревшая.
  2. Расширения веб-сервера (приложения формата ISAPI, NSAPI, модули расширения Apache и т. п.). Новый способ, позволяющий встраивать серверные программы в сам веб-сервер, делая их его составными частями. Впервые был предложен фирмой Microsoft для их сервера Microsoft Internet Information Server (интерфейс ISAPI) и разработчиками популярного бесплатного веб-сервера Apache.
  3. Активные серверные страницы (ASP, JSP и др.). Фактически это обычные статические веб-страницы сохраненные в файлах, которые кроме обычного HTML-кода включают в себя команды обрабатываемые либо самим веб-сервером, либо его расширением. Также новый способ, впервые предложенный Microsoft для того же Internet Information Server.
  4. Серверные сценарии, написанные на интерпретируемом языке (Perl, Python, VBScript, JavaScript и др.). Обычные сценарии, работающие через интерфейс CGI или ISAPI на стороне сервера.

CGI-программы представляют собой обычные исполняемые файлы, написанные на любом языке программирования и откомпилированные в машинный код процессора. Они не имеют интерфейса пользователя (как и все серверные программы), а работают с веб-сервером, получают от него входные данные и ему же пересылают результаты своей работы. Запускаются они самим веб-сервером, когда в них возникает нужда (когда необходимо обработать полученные от пользователя данные), и работают под управлением операционной системы серверного компьютера. При этом, если веб-серверу поступает одновременно несколько запросов на обработку данных от пользователей, он запускает соответствующее количество копий CGI-программы. [4]

К достоинствам CGI-программ можно отнести легкость создания (многие среды разработки программ поддерживают создание таких приложений, в частности, очень популярный Borland Delphi начиная с версии 3) и простоту отладки. Также, поскольку CGI-приложения представляют собой независимые программы, они выполняются отдельно от веб-сервера (как говорят программисты и системные администраторы, выполняются в другом адресном пространстве). Это значит, что при сбое в CGI-программе завершается только она – сам веб-сервер остается «на плаву». А недостаток у CGI-программ всего один: большой расход системных ресурсов, поскольку для обработки каждого набора данных запускается отдельная копия серверной программы. И если веб-серверу поступит слишком много запросов на обработку данных, серверный компьютер может и зависнуть.

Расширения веб-сервера – более новая разновидность серверных программ. Они представляют собой обычные библиотеки DLL, в которых реализована вся логика серверной программы. Такие библиотеки как бы встраиваются в программу веб-сервера и работают как ее неотъемлемая часть. Поскольку библиотеки DLL работают только в среде Windows, для того чтобы создавать расширения в иных операционных системах, были придуманы и другие форматы. В частности, модули расширения сервера Apache не являются библиотеками DLL,

Именно в виде библиотек DLL создаются расширения веб-серверов Internet Information Server фирмы Microsoft и Netscape Web Server фирмы Netscape. В первом случае расширения имеют формат ISAPI (Internet Server Application Programming Interface – интерфейс программирования приложений интернет-сервера), а во втором – NSAPI (Netscape Server Application Programming Interface – интерфейс программирования приложений сервер Netscape). Формат модулей расширения Apache так и называется – модули Apache.

Достоинство у расширений веб-сервера одно: бережный расход системных ресурсов. Дело в том, что для обработки всех наборов данных пользователя запускается всего один экземпляр расширения, который отнимает существенно меньше ресурсов, чем уйма запущенных CGI-программ. Однако расширения труднее создавать и отлаживать, к тому же они не так безопасны.

Как CGI-программы. Поскольку они работают как часть веб-сервера, любая ошибка в расширении приведет к зависанию сервера.

Оба описанных выше вида серверных программ обладают одним огромным недостатком. Прежде чем они смогут работать, они должны быть написаны на языке программирования и откомпилированы в машинные коды процессора, что отнимает много времени, особенно при отладке. Конечно, откомпилированные программы работают быстрее интерпретируемых, т. е. тех, где каждая инструкция читается, расшифровывается и обрабатывается специальной программой-интерпретатором. Но у интерпретируемых программ есть и свои преимущества, главными из которых являются простота и быстрота написания.

Как уже говорилось, активные серверные страницы – это обычные веб-страницы, включающие в себя особые серверные сценарии, выполняемые самим веб-сервером или специальной серверной программой (CGI-приложением или расширением веб-сервера). В частности, ASP (Active Server Pages – активные серверные страницы), поддерживаемые Microsoft Internet Information Server, и JSP (Java Server Pages – серверные страницы, написанные на JavaScript), поддерживаемые рядом других веб-серверов, работают именно таким образом. Серверные страницы ASP пишутся на языках JavaScript и VBScript, a JSP – только на JavaScript.

Достоинства активных серверных страниц: легкость и быстрота написания, и простота отладки. Кроме того, поскольку активные серверные страницы это обычные веб-страницы с «вкраплениями» программного кода, их написание легко освоят все, кто знаком с HTML. Недостаток: относительная медлительность и повышенные требования к системным ресурсам. [3]

Серверные сценарии подобны активным серверным страницам тем, что являются интерпретируемыми, однако представляют собой «чистый» программный код, без HTML-«примесей». Интерпретатор практически всегда представляет собой CGI-программу, однако ничто не мешает разработать его в виде расширения веб-сервера. Сценарии обычно пишутся на языке программирования Perl, специально предназначенном для обработки текста; также используются языки Python, JavaScript, VBScript и даже (как говорят) язык командных файлов MS-DOS. Фактически писать сценарии можно на любом языке программирования, для которого есть интерпретатор.

Достоинства и недостатки серверных сценариев те же, что у активных серверных страниц. Однако сценарии потребляют исключительно много системных ресурсов, даже больше, чем CGI-приложения. Ведь для обработки каждого набора данных пользователя запускается своя копия интерпретатора, а интерпретатор, в свою очередь, расходует много ресурсов на обработку сценария. И все же, несмотря на это, сценарии – самый популярный способ создания серверных программ.

2. Обзор серверных технологий

2.1 Серверные языки программирования

2.1.1 PHP

Причиной популярности PHP является его несколько преимуществ. PHP наиболее подходит для веб-разработки.

К его основным достоинствам относятся:

  1. Кроссплатформенность.

Все приложения на базе PHP могут работать на разных типах платформ. Поддержка PHP поддерживается большинством операционных систем, некоторые из которых включают Solaris, UNIX, Windows и Linux. Указанные платформы могут использоваться для написания кодов на PHP, а также просмотра веб-страниц или запуска приложений на базе PHP.

PHP легко взаимодействует с MySQL и Apache. Легкая интеграция PHP может быть выполнена с использованием различных других технологий, таких как Java, и главное нет необходимости в повторном использовании. Поэтому, экономия времени и денег, придает ему большое преимущество.

  1. Простое подключение к базе данных.

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

PHP имеет встроенный модуль, который помогает легко подключаться к базе данных. Поэтому PHP пользуется большим спросом в области веб-разработки, где должен быть разработан веб-сайт, ориентированный на данные. PHP значительно сокращает время, необходимое для разработки веб-приложения, которое нуждается в эффективной системе управления базами данных.

  1. Легко использовать.

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

PHP не требует интенсивного изучения или руководства для его использования. Командные функции PHP легко понятны, так как пользователь может легко понять из названия самих команд, что он делает. Человек, который только начал изучать PHP, уже может легко программировать, потому что синтаксис несколько похож на С, поэтому проще создавать и оптимизировать приложение с помощью PHP.

Скорость – это основная потребность в веб-разработке. Есть люди, которые сталкиваются с проблемой медленного подключения к Интернету и медленной скоростью передачи данных. Кроме того, сайты с быстрой загрузкой всегда предпочитают люди по всему миру. По сравнению с другими языками программирования, PHP является самым быстрым языком программирования.

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

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

  1. Открытый исходный код.

Одним из важных преимуществ PHP является то, что это Open Source проект. Поэтому PHP легкодоступен и полностью свободен. В отличие от других языков сценариев, используемых для веб-разработки, которые требуют от пользователя оплаты файлов поддержки, PHP открыт для всех, в любое время и в любом месте.

Новичок в PHP не должен беспокоиться о поддержке, поскольку PHP поддерживается и развивается большой группой разработчиков PHP, которая помогает создавать сообщество поддержки PHP, которое помогает людям в реализации и манипулировании PHP.

Но есть у него и недостатки. Каждый язык программирования имеет свой собственный набор преимуществ и недостатков. PHP имеет свой собственный набор недостатков, к таковым относятся следующие:

  1. Безопасность.

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

  1. Плохая обработка ошибок.

Разработчики считают, что у PHP плохое качество обработки ошибок. PHP не хватает средств отладки, необходимых для поиска ошибок и предупреждений. У PHP меньше средств отладки по сравнению с другими языками программирования.

2.1.2 Экосистема Java

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

Одним из основных преимуществ Java в разработке программного обеспечения и приложений является то, что это кроссплатформенный инструмент. Благодаря виртуальной машине JVM (Java Virtual Machine) среда выполнения Java может переводить код в машинный код, совместимый с собственной операционной системой, будь то Windows, iOS или Linux. Эта универсальность, и в особенности кроссплатформенная функциональность, сразу же делает ее мощным инструментом для крупных организаций, занимающихся разработкой программного обеспечения. [2]

Java является языком программирования на основе C, который позволяет разработчикам легко его изучить, если они работали с другими языками на основе C.

Наиболее часто на сервере Java используется в связке с фреймворком Spring.

Структура Spring поддерживает большинство функциональных возможностей инфраструктуры приложений Enterprise. Ниже приведены некоторые основные преимущества Spring Framework:

  1. Spring позволяет разработчикам разрабатывать корпоративные приложения, используя POJO (обычный старый Java-объект). Преимущество разработки приложений с использованием POJO заключается в том, что не нужно иметь корпоративный контейнер, такой как сервер приложений, но есть возможность использовать надежный контейнер сервлетов. [5]
  2. Spring упрощает процесс разработки, используя абстракцию существующих технологий, таких как сервлеты, jsps, jdbc, jndi, rmi, jms и Java mail и т.д.
  3. Spring поставляется с некоторыми из существующих технологий, таких как ORM-инфраструктура, структура ведения журнала, J2EE и JDK-таймеры и т. Д. Поэтому не нужно явно интегрировать эти технологии.
  4. Spring WEB framework имеет хорошо продуманную веб-структуру MVC, которая обеспечивает отличный альтернативный интерфейс веб-фреймворка.
  5. Spring может исключить создание одноэлементных и заводских классов.
  6. Spring обеспечивает последовательный интерфейс управления транзакциями, который может уменьшаться до локальной транзакции и масштабироваться до глобальных транзакций (с использованием JTA).
  7. Spring Framework включает поддержку управления бизнес-объектами и предоставление их услуг компонентам уровня представления, так что веб-приложения и настольные приложения могут обращаться к тем же объектам.
  8. Spring Framework использует наилучшую практику, которая была доказана на протяжении многих лет в нескольких приложениях и формализована как шаблоны проектирования.
  9. Приложение Spring может использоваться для разработки приложений различного типа, таких как автономные приложения, автономные графические приложения, веб-приложения и апплеты.
  10. Spring поддерживает как xml, так и аннотационные конфигурации.
  11. Spring Framework позволяет разрабатывать автономную, настольную, двухшинную архитектуру и распределенные приложения.
  12. Spring предоставляет встроенные средства промежуточного программного обеспечения, такие как объединение пулов, управление транзакциями и т.д.
  13. Spring обеспечивает легкость, которая может быть активирована без использования веб-сервера или сервера приложений.
  14. Более того, Spring Framework состоит из функций, организованных примерно в 20 модулей, эти модули сгруппированы в Core Container, Data Access/Integration, Web, AOP (аспектно-ориентированное программирование), Instrumentation and Test.

2.1.3 Ruby on Rails

Rails – это платформа разработки веб-приложений, написанная на языке программирования Ruby. Он призван облегчить программирование веб-приложений, сделав ставку на то, что каждый разработчик должен суметь легко начать на нем писать. Это позволяет писать меньше кода при сравнении с большим количеством других языков и фреймворков.

Rails – это надежное программное обеспечение.

Одна из ключевых характеристик Ruby заключается в том, что это объектно-ориентированный язык программирования. В отличие от некоторых языков, которые функционируют, предоставляя компьютеру список выполняемых задач, объектно-ориентированный язык программирования позволяет разработчику создавать виртуальные объекты в своем коде. Каждый объект может иметь свои собственные специфические атрибуты и способности и может взаимодействовать с другими объектами для выполнения действий. Затем группам объектов могут быть даны инструкции на основе этих атрибутов и то, как они соотносятся друг с другом. Если думать об объектах, подобных виртуальным строительным блокам, группу блоков A можно использовать для построения башни, а группе блоков B можно дать указание создать шаги, ведущие к вершине башни. Объектно-ориентированный язык делает разработку менее сложной, предоставляя структурам программистов работать с тем, что напоминает здание в реальном мире. Объекты также могут быть легко использованы в будущих программах.

Философия Rails включает в себя два основных руководящих принципа:

  • «не повторяйся» или DRY - это принцип разработки программного обеспечения, в котором говорится, что «у каждой части знаний должно быть одно, недвусмысленное, авторитетное представление внутри системы». Не повторяя одну и ту же информацию снова и снова, код более удобен в обслуживании, более расширяемый и менее подвержен ошибкам;
  • «конец конфигурации» – Rails имеет мнение о наилучшем способе делать много вещей в веб-приложении и по умолчанию использует этот набор соглашений, вместо того, чтобы требовать, чтобы указывались всякие мелочи через бесконечные файлы конфигурации. [1]

Другими словами, веб-инфраструктура Rails не только сокращает время повторного кодирования повторяющихся задач, но с помощью Rails-кода разработчики сохраняют свою общую работу более чистой, менее подверженной ошибкам (плохой, неэффективный код), и легче устраняют проблемы, когда те возникают.

Таким образом, мы знаем, что Rails – это платформа, которая позволяет Rails-разработчикам использовать язык Ruby для разработки веб-сайтов.

2.1.4 Python и Django

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

Python – один из самых популярных языков высокого уровня для программистов, разработанных в конце 80-ых.

Функция поиска популярной поисковой системы «Google» основана на C ++ и Python. Даже «YouTube» использует часть Python.

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

  1. Простота использования.

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

  1. Создание больших функций с меньшим количеством строк кода.

Веб-разработка Python является надежной и эффективной. Язык прост в изучении, потому что его синтаксис напоминает псевдокод. Можно быстро что-то сделать, не тратя слишком много времени и сил на кривую обучения.

Поскольку это просто и понятно, изучение языка поощряет позитивные черты программирования. Некоторые страны уже начали распространять обучение в Python в университетах и школах.

  1. Легко создавать прототипы.

Это легкость доступа к языку, что делает его легким для достижения работы программы. Эта функция делает Pythons идеальным языком программирования для разработки прототипов, а также других специальных функций программирования. Более того, тот факт, что веб-разработка Python позволяет делать больше с меньшим количеством кода, также позволяет быстро создавать прототипы и идеи.

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

  1. Веб-разработка Python является гибкой.

Поскольку он не был создан для ответа на конкретную потребность, Python не управляется шаблонами или конкретными API. Python интегрирован с несколькими другими языками программирования, чтобы дать гибкость в использовании:

  • CPython – Python интегрирован с языком C;
  • JPython – Python интегрирован с Java;
  • PyObjc – Python, написанный с помощью наборов ObjectiveC;
  • RubyPython – Python в сочетании с Ruby.
  1. Веб-разработка Python является трендом для IoT.

Внедрение Internet of Things предоставляет бесчисленные возможности для программистов Python. Благодаря разработке платформы Raspberry Pi разработчики могут легко создавать свои захватывающие устройства, такие как камеры, телефоны и даже игры через Python. Python делает объекты в реальном мире подключенными к Интернету независимо и по низкой цене.

Наиболее часто Python используется в связке с Django. Основной принцип Django состоит в том, чтобы развить все основные встроенные функции. Он изначально разработан для систем управления контентом, но его богатые функции, включают: шаблоны, автоматическое создание баз данных, уровень доступа к базам данных DB, создание автоматического администрирования интерфейса – хорошо подходят для других видов веб-приложений. Предоставляет веб-сервер для использования в целях развития. Сериализация и валидация форм, система шаблонов с наследованием шаблонов, кэширование несколькими способами, интернационализация, сериализация в XML или JSON. Django предоставляет приложения для обслуживания: систему авторизации, динамическую систему администрирования, генераторы RSS и Atom, генератор Google Sitemaps и т.д. Django используется Instagram, Pinterest, The Washington Times, Disqus, Bitbucket и Mozilla.

После установки пакета, необходимо создать проект с помощью команды django-admin startproject myproject. Затем нужно настроить приложение, myproject/myproject/settings.py по крайней мере, для доступа к базе данных и шаблонам. Приложение Django всегда унифицировано по структуре. [10]

2.1.5 ASP.NET

Эта мощная инфраструктура была разработана Microsoft, название означает Active Server Pages .NET. В конечном счете, этот ценный инструмент программирования идеально подходит для программистов и разработчиков, которые хотят создать богатые веб-сайты и веб-приложения, которые полностью динамичны.

Чтобы в полной мере воспользоваться этой возможностью программирования, необходимо знать и понимать скомпилированные языки, такие как C # и VB.

Что касается моделей веб-разработки, у этого инструмента есть определенные преимущества.

Основные преимущества создания приложений на ASP.NET следующие:

  1. Рамочная технология сокращает время кодирования.

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

  1. Он работает лучше из коробки.

Эта структура имеет много преимуществ, потому что она использует такие вещи, как собственная оптимизация, раннее связывание, услуги кэширования и компиляция «точно в срок».

  1. Приложения, которые строятся на этой структуре, защищены.

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

  1. Структура для ASP.NET имеет дополнительный дизайн и богатый набор инструментов в виде Visual Studio.

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

  1. ASP.NET обеспечивает непрерывный мониторинг.

Еще одна причина выбрать эту структуру – постоянный и непрерывный мониторинг. Он будет продолжать отслеживать приложения, компоненты и страницы, на которых он запущен.

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

  1. Развертывание проще, чем когда-либо с ASP.NET.

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

  1. ASP.NET – это серверная технология.

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

  1. Легко писать и поддерживать страницы с ASP.NET.

Причина в том, что HTML и исходный код вместе. Кроме того, поскольку исходный код выполняется на сервере, он обеспечивает большую гибкость и мощь для веб-страниц. [3, 6]

  1. Общие задачи легко выполнять в этой структуре.

С этой основой простота – ключ, поскольку очень легко выполнять общие задачи. Некоторые простые задачи, которые легко выполняются, включают настройку сайта, развертывание, отправку формы и аутентификацию клиента, чтобы назвать несколько.

  1. Время выполнения ASP.NET тесно управляет и контролирует все процессы.

Если один процесс будет мертвым, новый будет немедленно создан на своем месте, так что обработка запросов всегда доступна.

2.2 Базы данных

2.2.1 MySQL

MySQL – это система управления базами данных, которая позволяет управлять реляционными базами данных. Это программное обеспечение с открытым исходным кодом, поддерживаемое Oracle. Это означает, что можно использовать MySQL бесплатно. Кроме того, если нужно, то можно изменить его исходный код в соответствии с потребностями.

Несмотря на то, что MySQL – это программное обеспечение с открытым исходным кодом, можно купить коммерческую лицензионную версию от Oracle, чтобы получить премиальные сервисы поддержки.

MySQL довольно легко освоить по сравнению с другими базами данных, такими как Oracle Database или Microsoft SQL Server.

MySQL может работать на разных платформах UNIX, Linux, Windows и т.д. Можно установить его на сервере или даже на рабочем столе. Кроме того, MySQL надежный, масштабируемый и быстрый.

К преимуществам использования MySQL можно отнести следующие:

  1. Его легко использовать.

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

  1. Это Open-Source проект.

Покупка Oracle Sun Microsystems (и по ассоциации, MySQL) была встречена с некоторыми предубеждениями сообщества разработчиков. Общий страх заключался в том, что Oracle превратит инструмент в закрытую, запатентованную экосистему. Хотя Oracle несколько упростила контроль над MySQL, его все еще можно считать опцией базы данных с открытым исходным кодом, поскольку код по-прежнему доступен для бесплатного онлайн-использования. [3]

  1. Это очень дешевый вариант выбора.

В зависимости от того, для чего планируется использовать его, реализация MySQL может варьироваться в цене от бесплатных до 10 000 долларов США и более. В любом случае, это значительно дешевле, чем большинство других вариантов базы данных на рынке (кроме конкурентов с открытым исходным кодом MySQL). [6]

  1. Это промышленный стандарт.

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

К недостаткам использования MySQL можно отнести следующие пункты:

  1. У него есть несколько проблем со стабильностью.

Согласно Digital Ocean, MySQL, как правило, несколько менее надежна, чем его конкуренты. Эти проблемы стабильности связаны с тем, как он обрабатывает определенные функции (например, ссылки и транзакции). Хотя база данных, безусловно, все еще пригодна для использования в свете этих проблем, они, как правило, делают MySQL плохим выбором для определенных случаев использования.

  1. Он страдает от относительно низкого масштабирования производительности.

Хотя MySQL оснащен практически неограниченным объемом данных, он вызывает тревожную тенденцию к остановке, если он вынужден заниматься слишком большим количеством операций в данный момент времени. Это относительно низкое масштабирование производительности означает, что любой человек с высоким уровнем параллелизма должен, вероятно, искать альтернативу.

  1. Развитие не связано с сообществом – и, следовательно, отстало.

Поскольку Oracle заняла русло развития MySQL, прогресс, похоже, прерван, и за последние несколько лет только один крупный релиз. Компания не принимает разработанные сообществом исправления и не хочет предлагать пользователям какую-либо дорожную карту для разработки MySQL. Разработчикам не существует возможности обсудить систему управления базами данных с Oracle. [3]

  1. Его функциональность, как правило, сильно зависит от дополнений.

Хотя MySQL относительно легко настроить, он имеет меньше функциональности, чем многие другие системы баз данных на рынке. Некоторые функции, такие как текстовый поиск и соответствие ACID, зависят не от основного ядра, а от приложений и надстроек. Хотя верно, что существует множество хорошо продуманных приложений для MySQL, их отслеживание иногда может быть сложным и может заставить некоторых разработчиков просто выбрать альтернативу, которая, хотя и не так легко устанавливается, предлагает более оперативную функциональность.

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

2.2.2 PostgreSQL

PostgreSQL – это универсальная и объектно-реляционная система управления базами данных, самая передовая система баз данных с открытым исходным кодом. PostgreSQL был разработан на основе POSTGRES 4.2 в отделе компьютерных наук Беркли Университета Калифорнии.

PostgreSQL был разработан для работы на UNIX-подобных платформах. Тем не менее, PostgreSQL был также разработан так, чтобы быть портативным, чтобы он мог работать на различных платформах, таких как Mac OS X, Solaris и Windows.

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

PostgreSQL требует минимальных поддерживаемых усилий из-за его стабильности. Поэтому, если разрабатывается приложение на основе PostgreSQL, общая стоимость вхождения низкая по сравнению с другими системами управления базами данных. [8]

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

  • пользовательские типы;
  • наследование таблицы;
  • сложный механизм блокировки;
  • внешняя ключевая ссылочная целостность;
  • просмотры правил, подзапросов;
  • вложенные транзакции (точки сохранения);
  • управление параллелизмом нескольких версий (MVCC);
  • асинхронная репликация.

PostgreSQL – это первая система управления базами данных, которая реализует функцию контроля параллелизма нескольких версий (MVCC), даже до Oracle. Функция MVCC известна как изоляция моментальных снимков в Oracle.

PostgreSQL – это универсальная система управления объектно-реляционными базами данных. Он позволяет добавлять пользовательские функции, разработанные с использованием разных языков программирования, например, таких как C/C ++, Java и т.д.

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

Многие компании создали продукты и решения, используя PostgreSQL. Например, такие признанные компании, как Apple, Fujitsu, Red Hat, Cisco, Juniper Network и т.д.

Первоначальное имя PostgreSQL - Postgres, поэтому PostgreSQL иногда называют Postgres.

2.2.3 MongoDB

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

Основные преимущества использование MongoDB при разработке:

  1. Прежде всего, очень легко установить и настроить MongoDB. Самой основной особенностью MongoDB является то, что это база данных без схемы. Никаких миграций схемы больше нет. Поскольку MongoDB не является схемой, код определяет саму схему (шаблоны). [4]
  2. Возможность получения модели данных на основе документов является одним из наиболее привлекательных преимуществ MongoDB. Поскольку способ хранения данных в форме BSON (двоичный JSON) крайне удобен. Помогает хранить данные очень разные способами, имеет возможность хранить массивы и другие документы.
  3. Язык запросов документа, поддерживаемый MongoDB, играет жизненно важную роль в поддержке динамических запросов.
  4. Очень легко масштабируется.
  5. Из-за метода структурирования (формат BSON - ключевое значение) способ данных в MongoDB не требуется сложных объединений.
  6. Настройка производительности абсолютно проста по сравнению с любыми реляционными базами данных.
  7. Нет необходимости сопоставлять объекты приложения объектам данных.
  8. Позволяет быстрее получать доступ к данным из-за характера использования внутренней памяти для хранилища.
  9. Так как это база данных NOSQL, то она, очевидно, безопасна, потому что не может быть сделана SQL-инъекция.
  10. MongoDB также может использоваться в качестве файловой системы, что облегчает балансировку нагрузки.
  11. MongoDB поддерживает поиск по регулярному выражению и полям.
  12. MongoDB можно запускать как службу Windows.
  13. Имеется достаточная документация.
  14. MongoDB не требует запуска виртуальной машины.
  15. MongoDB следует за регулярным циклом выпуска своих новых версий.
  16. Поддержка Sharding является одной из его ключевых особенностей. Sharding – это процесс хранения данных на разных машинах и способность MongoDB обрабатывать данные, когда и когда размер данных растет. Это приводит к горизонтальному масштабированию. С окантовкой можно записывать и считывать больше данных, когда и когда увеличивается рост данных.

ЗАКЛЮЧЕНИЕ

В данной курсовой работе мною были исследованы средства создания программ, выполняемых на стороне сервера. Были рассмотрены основные этапы веб-разработки, проанализированы популярные языки веб-программирования и основные системы управления базами данных.

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

  • На их работе не сказывается программное и аппаратное обеспечение посетителя, все вычислительные процессы программы производятся на удаленном сервере.
  • Доступ посетителей к коду программы блокируется, что гарантирует стабильную работу и безопасность сервера. Пользователь видит лишь результат его функционирования, который выводится в браузер в виде HTML-страницы.
  • Серверные языки открывают на порядок больше возможностей, нежели клиентские. Используя их, можно обмениваться информацией с сервером, что невозможно себе вообразить в случае с применением клиентских языков.

Наибольшее распространение получил язык PHP, также стоит отметить Ruby, Java и Python которые используются программистами по всему миру. Серверные языки вводятся с помощью специального софта на сервере. Тут есть один важный момент – серверные языки предполагают взаимодействие с удаленным компьютером, а соответственно возникает целесообразность хранения результатов этого взаимодействия. Так, гостевая книга должна хранить сведения об имени пользователя и последних оставленных им уведомлениях. Если объем данных небольшой, то для их хранения сгодится текстовый документ. Но со временем любой сайт растет, вместе с чем возрастают и объемы хранимой информации. Для решения этой проблемы создается база данных.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Учебники и учебные пособия

  1. Майкл Хартл Ruby on Rails для начинающих. Изучаем разработку веб-приложений на основе Rails. – ДМК Пресс, 2017. – 574 с.
  2. Родли Джон Создание Java-апплетов.- The Coriolis Group,Inc.,1996, Издательство НИПФ «ДиаСофт Лтд.»,1996
  3. Робин Никсон Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5. – Питер, 2016. – 767 с.
  4. Тарасов С. СУБД для программиста. Базы данных изнутри. – СОЛОН-Пресс, 2015. – 322 с.
  5. Эферган Майкл Java: справочник.- QUE Corporation, 2012, Издательство «Питер Ком», 2012

Книги и статьи на иностранных языках

  1. Jeffrey A. Hoffer Modern Database Management. – Pearson, 2015. – 601 p.
  2. John R. Vacca Computer and Information Security Handbook. – Morgan Kaufmann, 2017. – 1280 p.
  3. Regina O. Obe , Leo S. Hsu PostgreSQL: Up and Running: A Practical Guide to the Advanced Open Source Database 3rd Edition. – O'Reilly Media, 2017. – 314 p.
  4. Laine Campbell Database Reliability Engineering: Designing and Operating Resilient Database Systems. – O'Reilly Media, 2017. – 294 p.
  5. Luciano Ramalho Fluent Python: Clear, Concise, and Effective Programming. – O'Reilly Media, 2015. – 792 p.