Научная статья на тему 'Подход к разработке масштабируемых веб-приложений'

Подход к разработке масштабируемых веб-приложений Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ганин Е. А.

В данной статье рассматривается один из подходов к разработке мас­штабируемых веб-приложений. Предлагается концепция операций, основанная на шаблоне объектно-ориентированного проектирования «ко­манда». Особое внимание уделено развитию данной концепции в рамках принципа CQRS. Также в статье рассматриваются облачные технологии.

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

Текст научной работы на тему «Подход к разработке масштабируемых веб-приложений»

Формирование многозадачности АСУ гостиничного комплекса диктуется постоянно повышающимся запросам гостей, а также естественным желанием руководящего состава сократить время на операционную деятельность персонала и повысить уровень контроля.

Среди зарубежных АСУ наиболее известной являются системы Fidelio и Opera, разработка компании MICROS-FIDELIO Software, используемые в основном сетевыми отелями или крупными гостиничными комплексами также на рынке АСУ предлагают свои разработки такие компании как Lodg-ingTouch, Proteta многие другие. К настоящему времени появился и функционирует ряд разработок отечественных фирм, обеспечивающих автоматизацию управления гостиничным комплексом.

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

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

Список литературы:

1. Медлик С., Инграм Х. Гостиничный бизнес // Гостеприимство. - М.: Юнити-Дана, 2005. - 182 с.

2. Браймер Р.А. Основы управления в индустрии гостеприимства / Пер.с англ. - М.: Аспект Пресс, 1995.

3. Котлер Ф., Боуэн Дж., Мейкенз Дж. Маркетинг. Гостеприимство и туризм / Пер. с англ.; под ред. Р.Б. Ноздревой. - М.: ЮНИТИ, 1998.

4. Папирян Г.А. Менеджмент в индустрии гостеприимства. - М., 2000.

5. Гостиничный портал «Prohotel» [Электронный ресурс]. - Режим доступа: http://prohotel.ru.

ПОДХОД К РАЗРАБОТКЕ МАСШТАБИРУЕМЫХ ВЕБ-ПРИЛОЖЕНИЙ

© Ганин Е.А.*

Уральский федеральный университет им. первого Президента России Б.Н. Ельцина, г. Екатеринбург

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

* Магистрант кафедры Интеллектуальных информационных технологий.

нованная на шаблоне объектно-ориентированного проектирования «команда». Особое внимание уделено развитию данной концепции в рамках принципа CQRS. Также в статье рассматриваются облачные технологии.

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

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

В выше описанном подходе серверная часть отвечает за выполнение запросов к данным и команд. Каждую команду или запрос можно расценивать в качестве отдельной операции. Такая операция в какой-то степени представляет реализацию шаблона объектно-ориентированного проектирования «команда», она принимает определённые параметры, проверяет их на корректность, выполняет логику и возвращает результат. Операция может порождать выполнение других операций. Если операция использует ресурсы, для которых необходимо освобождение, например соединение с СУБД или файловую систему, то она должна корректно освобождать такие ресурсы после своего выполнения. Для модульного тестирования операции - достаточно подменить реализации, порождаемых операций, и проверить результат выполнения, используя входные параметры для всех тестируемых случаев. Для удобства использования операций следует ввести исполнитель операций, который отвечает за сокрытие жизненного цикла операции. Под жизнен-

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

Command Query Responsibility Segregation (CQRS) - это новый подход к созданию масштабируемых приложений. Применяемая в нем архитектура может выглядеть непривычно, но она опирается на проверенные временем принципы и решения, нацеленные на достижение масштабируемости. В переносном смысле, CQRS - не более чем заявление о разделении обязанностей, но в контексте программной архитектуры оно зачастую обозначает набор связанных шаблонов. Другими словами, термин CQRS может иметь два значения: шаблон и архитектурный стиль. Терминология CQRS уходит своими корнями в язык с объектно-ориентированным шаблоном. Команда - это операция, изменяющая состояние чего-либо, а запрос - операция, извлекающая информацию о состоянии. Поэтому команды фактически являются операциями записи, а запросы - операциями чтения. Шаблон CQRS просто утверждает, что операции чтения и записи нужно моделировать явным образом как раздельные обязанности. Запись данных - это одна обязанность, а их чтение - другая. Очевидно, что данные, которые записывает приложение, должны в конечном счёте стать доступными для чтения. В шаблоне CQRS ничего не говорится о том, как это должно происходить, но в простейшей реализации системы чтения и записи могли бы использовать одно и то же нижележащее хранилище данных. Операции чтения и записи строго разделяются; операции записи никогда не возвращают данные. Это утверждение открывает широкие возможности для создания приложений с высокой масштабируемостью. CQRS отлично сочетается с использованием облачных технологий.

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

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

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

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

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

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

Список литературы:

1. Cloud Computing: Principles, Systems and Applications / Nick Antono-poulos, Lee Gillam. - 2010.

2. CQRS [Электронный ресурс] / Мартин Фаулер. - 2011. - Режим доступа: http://martinfowler.com/bliki/CQRS.html.

3. Command Query Separation [Электронный ресурс] / Мартин Фаулер. -2005. - Режим доступа: http://martinfowler.com/bliki/CommandQuerySeparati-on.html.

4. CQRS в Windows Azure [Электронный ресурс] / Марк Симанн. - 2011. -Режим доступа: http://msdn.microsoft.com/ru-ru/magazine/gg983487.aspx.

ИССЛЕДОВАНИЕ ПРОИЗВОДСТВЕННЫХ ПРОЦЕССОВ ПО ПРИЕМУ РЕГИСТРИРОВАННЫХ

ПОЧТОВЫХ ОТПРАВЛЕНИЙ И ОЦЕНКА ПОКАЗАТЕЛЕЙ КАЧЕСТВА РАБОТЫ СИСТЕМЫ

© Кочарская Е.А.*

Московский технический университет связи и информатики, г. Москва

Статья посвящена актуальной на сегодняшний день проблеме отрасли почтовой связи - передачи информации о регистрируемых почтовых отправлениях от отделений почтовой связи в главный вычислительный центр (ГВЦ). На основании проведенного анализа существующей системы передачи информации, а также представления в виде модели системы массового обслуживания реинжиниринговой системы, выявлена вероятность безотказной работы системы при принятых условиях на 7 %.

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

- анализ существующих производственных процессов по приему регистрируемых почтовых отправлений;

- приведена схема информационных и физических потоков по приему регистрируемых почтовых отправлений;

- анализ объема исходящих регистрируемых почтовых отправлений за 12 месяцев;

- формирование методологии проектирования и разработка технологии эффективной передачи данных;

- повышение надежности передачи информации от отделений почтовой связи в автоматизированный сортировочный центр;

- анализ передачи информации на примере набора элементарных человека -машинных систем;

- приведена упрощенная схема элемента системы человек-оператор;

- осуществлен расчет надежности человеко-машинной системы, точность и надежность работы оператора;

* Магистрант.

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