Научная статья на тему 'Особенности проектирования серверного и клиентского программного обеспечения web-сайта с использованием rest-архитектуры'

Особенности проектирования серверного и клиентского программного обеспечения web-сайта с использованием rest-архитектуры Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1293
136
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
API / REST / КЛИЕНТ-СЕРВЕРНАЯ АРХИТЕКТУРА / ПРОТОКОЛ HTTP / МЕТОДЫ HTTP / GET / POST / PUT / DELETE / HTML / CSS / JAVA SCRIPT / СУБД / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / WEB-САЙТ / CLIENT-SERVER ARCHITECTURE / HTTP PROTOCOL / HTTP METHODS / DBMS / SOFTWARE / WEBSITE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дроздов Сергей Анатольевич, Луканина Василиса Евгеньевна

Рассматривается особенности клиент-серверной архитектуры и API интерфейса при проектировании серверного и клиентского программного обеспечения web-сайта.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Дроздов Сергей Анатольевич, Луканина Василиса Евгеньевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FEATURES OF THE SERVER AND CLIENT SOFTW ARE DEVELOPMENT OF WEB-SITE USING THE REST ARCHITECTURE DESIGN

This paper considers the features of the client-server architecture and the API in the design of server and client software of web-site.

Текст научной работы на тему «Особенности проектирования серверного и клиентского программного обеспечения web-сайта с использованием rest-архитектуры»

УДК 004

ОСОБЕННОСТИ ПРОЕКТИРОВАНИЯ СЕРВЕРНОГО И КЛИЕНТСКОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ WEB-САЙТА С ИСПОЛЬЗОВАНИЕМ REST-АРХИТЕКТУРЫ

Дроздов Сергей Анатольевич

доцент кафедры прикладной математики и моделирования систем, кандидат физико-математических наук Московский государственный университет печати имени Ивана Федорова 127550 Россия, г. Москва, ул. Прянишникова, д. 2А sergcuxi@rambler.ru

Луканина Василиса Евгеньевна

студентка института принтмедиа и информационных технологий Московский государственный университет печати имени Ивана Федорова 127550 Россия, г. Москва, ул. Прянишникова, д. 2А velukanina@gmail. com

Аннотация. Рассматривается особенности клиент-серверной архитектуры и API интерфейса при проектировании серверного и клиентского программного обеспечения web-сайта.

Ключевые слова: API, REST, клиент-серверная архитектура, протокол HTTP, методы HTTP, GET, POST, PUT, DELETE, HTML, CSS, Java Script, СУБД, программное обеспечение, web-сайт.

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

Любой web-сайт делится на две обширные составляющие: клиентскую и серверную части, на основе которых возникает клиент-серверная архитектура — общая организация работы сети, при которой сервер обеспечивает хранение и обработку данных, отправляемых по запросам клиента.

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

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

Первый этап представляет собой логическую разметку с использованием языка разметки web-страниц HTML (Hyper Text Markup Language). С его помощью можно задать расположение элементов на странице, а также создать связь страниц между собой посредством ссылок.

Второй этап — презентационная разметка. На данном этапе посредством использования каскадных таблиц стилей CSS (Cascading Style Sheets) определяется набор правил, указывающий параметры элементов HTML-разметки.

На третьем этапе осуществляется программная анимация объектов HTML, или canvas, т.е. изменение параметров визуальных объектов через код приложения посредством использования JavaScript — прото-типно-ориентированного сценарного языка программирования. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение он находит в браузерах как язык сценариев для придания интерактивности веб-страницам [2]. JavaScript реализует динамическое взаимодействие с пользователем: осуществляет проверку введенных данных, отвечает за корректное отображение диалоговых окон, добавление и сокрытие html-элементов.

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

Система управления базами данных (СУБД) — это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования баз данных многими пользователями. Современная СУБД содержит в своем составе программные средства создания баз данных, средства работы с данными и сервисные средства [3.] Выделяют несколько видов структур СУБД: иерархическую, сетевую и реляционную. Наиболее распространенным типом реализации баз данных является реляционная СУБД, представляющая собой совокупность взаимосвязанных таблиц.

До недавнего времени функционал обращения к базе данных проектировался отдельно внутри каждого компонента. Например, при наличии системы, состоящей из сайта интернет-магазина, сайта администратора и мобильного приложения, все операции над данными в реляционной СУБД (получение, редактирование, удаление и добавление записей) происходили напрямую от каждого из модулей, что существенно отягощало код серверной части, а также замедляло работу всей системы. В данный момент большинство web-разработчиков использует API (Application Programming Interface) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах [4]. Данный интерфейс обращается к базе данных, в то время как сайт, приложение и функционал администратора направляют свои запросы непосредственно к API и пользуются полученными от него структурированными данными. Таким образом, исключаются лишние действия по обращению каждого из модулей к данным базы. Осуществление данного взаимодействия производится при помощи использования методов GET, POST, PUT и DELETE протокола HTTP (сетевого протокола, позволяющего браузерам загружать web-страницы), которым соотносят четыре вида запросов — получение ресурса, его отправление, обновление и удаление. Структурная схема серверной части web-сайта представлена на рис. 1.

СУБД

API

Основные методы протокола HTTP

GET POST PIT DELETE

Сайт Web-сайт Мобильное

администратора приложение

Рис. 1. Структурная схема серверной части web-сайта

Более четко регламентированный модуль API, использующий в своей работе методологию CRUD (Create — Read — Update — Delete), основанную на вышеперечисленных методах HTTP-протокола, называется REST-архитектурой. Передача состояния представления (Representational State Transfer (REST)) — это стиль архитектуры программного обеспечения для распределенных гипермедиасистем, подобных Всемирной паутине.[5]

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

тектуры придерживается принципов KISS (Keep it small and simple), т.е. принципов максимальной доступности и простоты представления информации как для разработчиков, так и для клиентов — пользователей. Иными словами, Restful API позволяет реализовать более сложные, глубокие вещи серверного web-программирования, подойти к решению проблем с нетривиальной точки зрения, углубиться в предметную область при создании нестандартных запросов и операций.

Еще одним положительным моментом RESTful API является его доступность — любой пользователь, обладающий браузером, имеет возможность использовать данную архитектуру без какого-либо дополнительного программного обеспечения.

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

Описанные в статье методы были реализованы в выпускной квалификационной работе по созданию системы интернет-поддержки розничных продаж однотипной продукции (на примере интернет-магазина часов «Хронограф»). На данный момент система включает в себя сайт интернет-магазина и сайт администратора, но в дальнейшем планируется внедрение дополнительных модулей — мобильных приложений для платформ Android и IOS. Поскольку серверная часть системы спроектирована с использованием архитектуры RESTful API, внедрение подсистем и их привязка к базе данных не потребует много времени и трудозатрат.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Что такое верстка? [Электронный ресурс]. — URL: http://ac-u.ru/arts/cho-takoe-verstka (дата обращения: 25.05.16).

2. JavaScript [Электронный ресурс] — URL: https://ru.wikipedia.org/wiki/JavaScript (дата обращения: 25.05.16).

3. Системы управления базами данных [Электронный ресурс] — URL: http://www.bseu.by/it/tohod/ lekcii5.htm (дата обращения: 25.05.16).

4. API [Электронный ресурс]. — URL: https://ru. wikipedia.org/wiki/API (дата обращения: 25.05.16).

5. Архитектура REST [Электронный ресурс]. — tektura-REST (дата обращения: 25.05.16).

URL: http://html-templates.info/blog/znakomtes-arhi-

FEATURES OF THE SERVER AND CLIENT SOFTW ARE DEVELOPMENT OF WEB-SITE USING THE REST ARCHITECTURE DESIGN

Sergey Anatolievitch Drozdow

Moscow State University of Printing Arts 127550 Russia, Moscow, Pryanishnikova st., 2А

Vasilisa Evgenievna Lukanina

Moscow State University of Printing Arts 127550 Russia, Moscow, Pryanishnikova st., 2А

Annotation. This paper considers the features of the client-server architecture and the API in the design of server and client software of web-site.

Keywords: API, REST, client-server architecture, HTTP protocol, HTTP methods, GET, POST, PUT, DELETE, HTML, CSS, Java Script, DBMS, software, website.

i Надоели баннеры? Вы всегда можете отключить рекламу.