Разработка элементов пользовательского интерфейса для облачной системы взаимодействия с кластером
Информационные технологии в области высокопроизводительных вычислений. Структура вычислительного кластера. Преимущества кластерной архитектуры, требования к ней. Разработка программ для параллельных вычислительных систем. Особенности облачных технологий.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 02.08.2015 |
Размер файла | 2,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Российский химико-технологический университет имени Д.И. Менделеева
Факультет информационных технологий и управления
Кафедра информационных компьютерных технологий
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА БАКАЛАВРА
по направлению "Информационные системы и технологии"
на тему:
"Разработка элементов пользовательского интерфейса для облачной системы взаимодействия с кластером"
Москва
2015
Оглавление
- Введение
- 1. Литературный обзор
- 1.1 Анализ информационных технологий в области высокопроизводительных вычислений
- 1.2 Доступ к технологиям высокопроизводительных вычислений
- 1.3 Структура вычислительного кластера
- 1.3.1 Преимущества кластерной архитектуры
- 1.3.2 Требования к кластерной архитектуре
- 1.4 Облачные вычисления
- 1.4.1 Использование суперкомпьютеров в образовании и промышленности
- 1.4.2 Характеристики облачных вычислений
- 1.5 Обзор существующих подходов к созданию облачных платформ для вычислений
- 1.5.1 Аппаратно-программный комплекс "NanoCloud"
- 1.5.2 "Персональный виртуальный компьютер"
- 1.5.3 Многопрофильная инструментально-технологическая платформа CLAVIRE
- 2. Теоретическая часть
- 2.1 Выбор оптимальной OC
- 2.2 Веб-сервер Apache
- 2.3 Фреймворк программной системы
- 2.3.1 Концепция PHP-фреймворков
- 2.3.2 Случаи использования PHP-фреймворка
- 2.3.3 Обзор современных фреймворков
- 2.3.4 Преимущества использования фреймворка
- 2.3.5 Обоснование выбора фреймворка
- 2.4 Выбор СУБД
- 2.4.1 Реляционная СУБД MySQL
- 2.5 Организация системы контроля версий
- 2.5 Набор инструментов "Bootstrap"
- 2.6 Библиотека "Highcharts"
- 3. Практическая часть
- 3.1 Интерфейс для регистрации пользователей
- 3.2 Интерфейс для модерации пользовательских учетных записей и задач
- 3.3 Визуализация результатов
- 4. Описание программы
- 4.1 Общие сведения
- 4.2 Функциональное назначение
- 4.3 Описание логической структуры
- 4.4 Используемые технические средства
- 4.5 Вызов и загрузка
- 4.6 Входные и выходные данные
- 5. Руководство программиста
- 5.1 Назначение и условия применения программы
- 5.2 Характеристика программы
- 5.3 Обращение к программе
- 5.4 Входные и выходные данные
- Список использованной литературы
- Приложение
Введение
Разработка программ для параллельных вычислительных систем (ПВС) является сложной задачей. Одним из вариантов ее упрощения является применение предметно-ориентированных пакетов прикладных программ (ППП) со встроенной поддержкой параллельных вычислений. Однако, такие пакеты сложны в установке и администрировании. Пользователи, как правило, не могут установить, настроить и поддерживать работоспособность этих пакетов самостоятельно. Дополнительную сложность представляет перенос программ, подготовленных в таком пакете, с персонального компьютера пользователя на ПВС и ее запуск в параллельном режиме.
Облачные технологии позволяют решить перечисленные выше проблемы с использованием пакетов прикладных программ. Вместо установки на персональные компьютеры пользователей, ППП устанавливаются в облачной платформе, и пользователи работают с ними удаленно. При этом установка ППП выполняется квалифицированными администраторами облачной платформы, а пользователи сразу получают доступ к установленным и настроенным пакетам.
Актуальной является задача создания облачной платформы, обеспечивающей возможность предоставлению пользователям ППП для параллельных вычислений, интегрированных с ПВС. Под интеграцией понимается возможность запуска задач на ПВС из графического интерфейса ППП и обработка с его же помощью результатов расчётов.
вычислительный кластер облачная технология
1. Литературный обзор
1.1 Анализ информационных технологий в области высокопроизводительных вычислений
Современные расчётные задачи, зачастую являются весьма ресурсоёмкими, и мощности обычных персональных ЭВМ может быть недостаточно при моделировании сложных процессов. Современные технологии позволяют упростить проведение сложных расчётов, задействовав удалённые вычислительные ресурсы [1]. Можно выделить несколько подходов, позволяющих облегчить жизнь рядовому пользователю:
облачные вычисления, рассматриваемые в качестве моделей предоставления услуг, в которых пользователь получает доступ к различным ресурсам в виде Интернет-сервиса [2];
веб-лаборатории или хабы (англ. hub), базирующиеся на технологии web 2.0 и направленные на организацию научных сообществ с предоставлением пользователям развитых средств коммуникации и взаимодействия.
1.2 Доступ к технологиям высокопроизводительных вычислений
К задачам, требующим проведения сложных расчётов (англ. Grand Challenges) по классификации правительства США [3], относят следующие:
механика сплошных сред;
прогнозирование погоды,
климата и изменений в атмосфере,
приборостроение;
генетика;
астрономия и др.
Подобные задачи, в которых необходимо использование высокопроизводительных вычислений, невозможно решать эффективно и зачастую невозможно решать вообще, без использования сверхмощных вычислительных ресурсов, предоставляемых "суперкомпьютерами". Благодаря этому становится реальным получение результатов расчетов до нескольких порядков быстрее. Тем не менее, к основным особенностям использования суперкомпьютерных систем относятся их высокая стоимость и большие затраты, связанные с их эксплуатацией.
Другой, не менее важной проблемой, становится нехватка прикладного программного обеспечения. Отсутствие открытых программных пакетов для моделирования вынуждает пользователей покупать их коммерческие аналоги.
В некоторых случаях стоимость программных решений и их дальнейшая поддержка сопоставима со стоимостью покупки такой системы, а иногда и значительно превышает ее.
На решение данных проблем, а также в связи с активным развитием технологии виртуализации и каналов связи, основной задачей последних лет стала попытка упрощения доступа к вычислительным кластерам и прикладному программному обеспечению. Это стало возможным в связи с последовательным развитием облачных вычислений (cloud computing) [4].
Также была разработана концепция виртуальных информационно-вычислительных веб-лабораторий или "хабов" [5], позволяющая организовывать предметно-ориентированные научные сообщества с предоставлением пользователям развитых средств коммуникации и взаимодействия, а также доступом к прикладным моделям данных.
1.3 Структура вычислительного кластера
Наибольшее распространение среди суперкомпьютерных архитектур для решения ресурсоемких задач получили вычислительные кластеры [6]. Это стало возможным благодаря их экономической эффективности при решении широкого класса вычислительных задач. В списке самых мощных вычислительных систем Топ-500 из суперкомпьютеров, представленных в 2013 году, 85% были построены по кластерной технологии [7].
Вычислительный кластер представляет собой набор взаимосвязанных автономных компьютеров (вычислительных узлов), которые работают совместно, как единый интегрированный вычислительный ресурс (рис.1.1).
Процессор вычислительного узла кластера работает только со своим локальным адресным пространством памяти, а доступ к удаленной памяти других узлов обеспечивается через механизм передачи сообщений. Такая организация вычислений исключает возникновение конфликтов при обращении к памяти и возникновение проблемы когерентности кэш-памяти.
Рисунок 1.1 Общая схема организации кластерных вычислительных систем с распределенной памятью.
В РХТУ им. Д.И. Менделеева на кафедре "Информационных компьютерных технологий" был создан научно-образовательный центр "Высокопроизводительные параллельные вычисления". Центр имеет мощный вычислительный кластер со следующими характеристиками:
вычислительный кластер из 24 четырехъядерных процессов Intel Xeon X5570, итого 96 вычислительных ядер, 144 GB RAM, 3.6 TB HDD
управляющий узел кластера: 2 четырехъядерных процессора Intel Xeon X5570, 24 GB RAM;
система хранения данных ReadyStorage NAS 3160, 12 TB;
вычислительная сеть (InfiniBand);
управляющая сеть (Gigabit Ethernet);
управляющий узел для Tesla: 2 четырехъядерных процессора Intel Xeon X5570, 12 GB RAM;
вычислительный ускоритель Tesla GPU S1070: 4 графических процессора, 960 вычислительных ядер [8].
1.3.1 Преимущества кластерной архитектуры
Преимущества кластерной архитектуры заключаются в:
эффективности: компоненты общего назначения, на базе которых создаются кластерные системы, а так же специальные мероприятия по настройке системного программного обеспечения позволяют добиться высокой эффективности кластерных вычислительных систем при решении широкого круга вычислительных задач;
масштабируемости: вычислительная система, построенная по кластерной архитектуре, состоит из одинаковых независимых вычислительных модулей, что позволяет строить системы самого широкого круга вычислительных 18 возможностей, от небольших кластеров рабочих групп до вычислительных систем масштаба группы предприятий;
стоимости владения: использование в основе кластера вычислительных компонентов общего назначения и распространенных свободных программных средств снижает совокупную стоимость владения кластерной вычислительной системой [9].
1.3.2 Требования к кластерной архитектуре
В зависимости от типа вычислительного кластера к его архитектуре могут накладываться специальные функциональные и не функциональные требования. Так, параллельные программы, на эффективное выполнение которых нацелены высокопроизводительные системы, характеризуются наличием частых обменов данными, эффективность выполнения которых и определяет общую эффективность выполнения программы. В связи с этим на компоненты и архитектуру высокопроизводительной кластерной системы накладываются специальные требования.
Высокопроизводительная кластерная система с распределенной памятью, предназначенная для решения параллельных задач, должна состоять из однородных вычислительных узлов, объединенных специализированной сетью и иметь централизованную точку доступа, администрирования и управления. При этом характеристики вычислительных узлов и сети должны быть согласованы.
1.4 Облачные вычисления
Облачные вычисления - это модель предоставления сервиса (услуги), при которой пользователь имеет возможность получить повсеместный, удобный доступ по требованию к пулу (англ. pool) разделяемых, конфигурируемых ресурсов (например, сетей, серверов, памяти, приложений), которые могут быть быстро предоставлены пользователю и с минимальными для пользователя усилиями по взаимодействию с сервис-провайдерами в процессе получения доступа к ресурсам [10].
1.4.1 Использование суперкомпьютеров в образовании и промышленности
Ввиду отсутствия для ряда отраслей промышленности открытых программных пакетов для моделирования пользователи вынуждены покупать их коммерческие аналоги. В некоторых случаях стоимость программных решений и их дальнейшая поддержка сопоставима со стоимостью покупки кластерной системы, а иногда и значительно превышает ее. Поэтому большинство компаний малого и среднего бизнеса, а также вузы, не могут позволить себе приобретение промышленного суперкомпьютера и необходимого программного обеспечения.
Таким образом, в связи с активным развитием технологии виртуализации и каналов связи, основной задачей последних лет стала попытка упрощения доступа к прикладному программному обеспечению и средствам его разработки. Это стало возможным в связи с последовательным развитием технологий облачных вычислений (cloud computing) [10].
1.4.2 Характеристики облачных вычислений
Национальным институтом стандартов и технологий США зафиксированы следующие обязательные характеристики облачных вычислений [11]:
самообслуживание по требованию (англ. self service on demand), при котором потребитель самостоятельно определяет и изменяет вычислительные 25 потребности, такие как серверное время, скорости доступа и обработки данных, объем хранимых данных без взаимодействия с представителем поставщика услуг;
универсальный доступ по сети, услуги доступны потребителям по сети передачи данных вне зависимости от используемого терминального устройства;
объединение ресурсов (англ. resource pooling), когда поставщик услуг объединяет ресурсы для обслуживания большого числа потребителей в единый пул для динамического перераспределения мощностей между потребителями в условиях постоянного изменения спроса на мощности; при этом потребители контролируют только основные параметры услуги (например, объем данных, скорость доступа), но фактическое распределение ресурсов, предоставляемых потребителю, осуществляет поставщик (в некоторых случаях потребители все-таки могут управлять некоторыми физическими параметрами перераспределения, например, указывать желаемый центр обработки данных из соображений географической близости);
"эластичность", когда услуги могут быть предоставлены, расширены, сужены в любой момент времени, без дополнительных издержек на взаимодействие с поставщиком, как правило, в автоматическом режиме;
учет потребления, когда поставщик услуг автоматически исчисляет потребленные ресурсы на определенном уровне абстракции (например, объем хранимых данных, пропускная способность, количество пользователей, количество транзакций) и на основе этих данных оценивает объем предоставленных потребителям услуг.
С точки зрения поставщика, благодаря объединению ресурсов и непостоянному характеру потребления со стороны потребителей, облачные вычисления позволяют экономить на масштабах, используя меньшие аппаратные ресурсы, чем требовались бы при выделенных аппаратных мощностях для каждого потребителя, а за счет автоматизации процедур и модификации выделения ресурсов существенно снижаются затраты на абонентское обслуживание.
С точки зрения потребителя эти характеристики позволяют получить услуги с высоким уровнем доступности (англ. high availability) и низкими рисками неработоспособности, обеспечить быстрое масштабирование вычислительной системы благодаря эластичности без необходимости создания, обслуживания и модернизации собственной аппаратной инфраструктуры.
Удобство и универсальность доступа обеспечивается широкой доступностью услуг и поддержкой различного класса терминальных устройств (персональных компьютеров, мобильных телефонов, планшетных ПК).
1.5 Обзор существующих подходов к созданию облачных платформ для вычислений
В настоящее время в России развивается несколько проектов по созданию облачных платформ для высокопроизводительных вычислений. Можно отметить следующие платформы:
· NanoCloud [12], создаваемая для нужд Национальной нанотехнологической сети под руководством "Курчатовского института".
· "Персональный виртуальный компьютер" - Южно-Уральского государственного университета [13].
· CLAVIRE, создаваемая Институтом информационных технологии механики и оптики, совместно с компанией Ай-Ти [14].
1.5.1 Аппаратно-программный комплекс "NanoCloud"
NanoCloud - это масштабируемый аппаратно-программный комплекс для виртуализации и динамичного управления вычислительными ресурсами и данными Национальной нанотехнологической сети (ННС) и суперкомпьютерного вычислительного комплекса Национального исследовательского центра "Курчатовский институт" на основе технологии облачных вычислений.
NanoCloud включает в себя базовую инфраструктуру облачных вычислений Infrastructure as a Service (IaaS), подборку готовых виртуальных машин Platform as a Service (PaaS), хранилище данных Data as a Service (DaaS), а также веб-приложения Software as a Service (SaaS), веб-сервисы Application as a Service (AaaS) и грид-сервисы Grid as a Service (GaaS).
Важность достижения и актуальность поставленной в проекте цели определяется необходимостью эффективного хранения, обработки и визуализации больших объемов данных в нано - и био-областях, в когнитивных исследованиях, а также необходимостью организации сложных многоступенчатых конвейеров для обработки экспериментальных данных на различных типах вычислительных системах.
Созданный аппаратно-программный комплекс позволяет решать эти проблемы с помощью виртуализации и интеграции различных вычислительных ресурсов в единую среду для хранения данных, расчетов и визуализации.
Целью проекта является создание для участников ННС масштабируемой среды NanoCloud для виртуализации вычислительных ресурсов и научных данных по технологии облачных вычислений, которая основана на новой модели сервисов, предоставляемых высокопроизводительным вычислительным центром.
Основными пользователями в этой модели являются не сами владельцы вычислительных ресурсов (суперкомпьютеров и центров данных), а внешние потребители информационных сервисов, получающие доступ к виртуальным "персональным компьютерам" и виртуальным "параллельным кластерам", а также к долгосрочной памяти, лицензиям на программные продукты и хостингу веб-приложений. При этом владельцы вычислительных ресурсов гарантируют качество базовых сервисов, масштабируемость среды виртуализации и суммарные объемы хранилищ. Они же предоставляют потребителям квоту (а в случае коммерциализации сервисов берут плату) в виде почасовой аренды процессоров, дисков, лицензий и за объем сетевого трафика без первоначальной премии за подключение, а не в виде долгосрочной (годовой, помесячной) подписки на пакет услуг.
Пользователи сервисов облачных вычислений получают доступ к базовым конфигурациям виртуальных машин, сети и дисковых хранилищ, которые они могут сами изменять и расширять, создавая на их основе многоуровневые веб-приложения, надежные масштабируемые сервисы и распределенные рабочие потоки для моделирования физических процессов и анализа экспериментальных данных. При этом пользователю не надо знать или непосредственно контролировать инфраструктуру самих суперкомпьютеров и центров данных, поддерживающих облачные вычисления на принципах IaaS (Infrastrucutre as a Services), SaaS (Software as a Service) и DaaS (Data as a Service), составляющих сегодня основные технологические тренды в области информационных технологий [12].
1.5.2 "Персональный виртуальный компьютер"
На сегодняшний день в Южно-Уральском государственном университете функционируют два суперкомпьютера: "СКИФ-Аврора ЮУрГУ" [15] и "СКИФ Урал" [16]. Для повышения качества инженерно - технического образования было принято решение о модернизации электронной образовательной среды вуза и переходе на инновационные технологии облачных вычислений. Для достижения этой цели на высокопроизводительных вычислительных кластерах ЮУрГУ с характеристиками, представленными в табл. 1, был реализован проект "Персональный виртуальный компьютер" (ПВК).
Табл. 1.1
Технические характеристики суперкомпьютеров ЮУрГУ.
В рамках системы для каждого студента первого курса создан персональный виртуальный компьютер на базе ОС Windows 7, доступ к которому осуществляется с домашнего компьютера, ноутбука, нетбука и др. В результате, в качестве компьютерного класса может быть использована любая учебная аудитория ЮУрГУ оборудованная Wi-Fi сетью и электрическими розетками.
Рис. 1.2 Принцип работы системы "Персональный виртуальный компьютер".
Система ПВК основана на виртуальной серверной инфраструктуре, построенной по технологии Microsoft Hyper - V. В решении использована выделенная система хранения данных, подключенная к узлам кластера по технологии iSCSI over InfiniBand. На виртуальной серверной инфраструктуре создана инфраструктура виртуальных рабочих столов по технологии Citrix XenDesktop VDI Edition. Принципы работы системы ПВК приведены на рис.1.2
Преимущества платформы ПВК:
эффективное использование учебных площадей (отпадает необходимость выделять отдельные и специально оборудованные помещения под традиционные компьютерные классы);
качественно иной уровень получения современных знаний по специальности - студенты получают возможность находиться в процессе обучения в любое время и в любом месте, где есть Интернет;
возможность быстро создавать, адаптировать и тиражировать образовательные сервисы в ходе учебного процесса;
возможность для студентов осуществлять обратную связь с преподавателем путем оценки и комментирования предлагаемых им образовательных сервисов;
гарантия лицензионной чистоты ПО, используемого в процессе обучения;
сокращение затрат на лицензионное ПО путем создания функционально эквивалентных образовательных сервисов на базе ПО с открытым кодом;
минимизацию количества лицензий за счет их централизованного использования;
централизованное администрирование программных и информационных ресурсов, используемых в учебном процессе;
эффективное использование кластерных вычислительных систем, имеющихся в вузе [13];
1.5.3 Многопрофильная инструментально-технологическая платформа CLAVIRE
Многопрофильная инструментально-технологическая платформа CLAVIRE (CLoud Application VIRtual Environment) обеспечивает создание, разработку и эксплуатацию публичных облачных сред второго поколения, предоставляя доступ к вычислительным ресурсам, прикладным пакетам и композитным приложениям в рамках моделей SaaS и AaaS. CLAVIRE обеспечивает:
эффективное управление вычислительными, информационными и программными ресурсами распределенных неоднородных вычислительных инфраструктур (включая суперкомпьютеры, ресурсы облачных провайдеров);
разработка предметно-ориентированных высокопроизводительных композитных приложений, функционирующих на основе облака распределенных прикладных сервисов, а также управление приложениями и предоставление сервисов доступа к ним;
построение корпоративных облачных инфраструктур, публичных инфраструктур с использованием ресурсов Грид-сред, инфраструктур центров компетенции в различных предметных областях, облачных инфраструктур в рамках парадигмы big data, а также распределенных систем поддержки принятия решений с интенсивным использованием вычислительных технологий.
Платформа CLAVIRE разработана в НИИ Наукоемких компьютерных технологий НИУ ИТМО в 2010 - 2012 гг. по заказу ЗАО "Фирма "АйТи”" [14].
2. Теоретическая часть
2.1 Выбор оптимальной OC
Linux - операционная система с открытым исходным кодом [17]. Она состоит из четырёх основных частей:
Ядро - это операционная система низкого уровня, обрабатывающая файлы, работающая с дисками, сетью и выполняющая другие необходимы операции
Программное обеспечение - включает в себя файловые менеджеры, текстовые редакторы, математические программы и другое программное обеспечение, работающее с различными форматами файлов.
Командный процессор - Пользовательский интерфейс для набора команд, их исполнения и отображения результатов.
"Х" - Графическая система, которая обеспечивает поддержку окон, меню, иконок, мыши и других элементов графического интерфейса пользователя.
Операционная система Linux является клоном Unix, в ней много заимствований, но она не является производной от исходного кода Unix. При возможности разработчики использовали свой подход, отличный от того, что используется в Unix.
В настоящее время существует множество различных версий Linux, построенных на основе единого ядра. Эти версии принято называть дистрибутивами (distributions, distros). Одними из самых известных дистрибутивов являются Mandriva, Xandros, Red Hat, SUSE. Но еще сотни версий уже существуют и появляются каждый день. Такое разнообразие возможно только благодаря идее свободного программного обеспечения. Созданием своих версий занимаются как энтузиасты-одиночки, так и крупные компании, спонсирующие написание и поддержание новых дистрибутивов. ОС Ubuntu сочетает в себе оба подхода. Её разработка спонсируется компанией Canonical Ltd., основанной в 2004 году Марком Шаттлвортом (Mark Shuttleworth), и поддерживается большим сообществом разработчиков и пользователей. Сама Ubuntu основана на дистрибутиве Debian, созданном коллективными усилиями [18].
Причины выбора операционной системы Ubuntu:
Доступ к исходным кодам. За проектом GNU, частью которого является ОС Linux (Ubuntu является разновидносьтю Linux), стоит целая философия, утверждающая, что "программное обеспечение должно быть общедоступным или свободно распространяемым". Хотя это чаще всего означает, что ПО должно быть бесплатным (хотя и не всегда, если судить по успешному продвижению на рынке основанных на Linux продуктов Red Hat и SUSE компании Novell), но гораздо важнее то, что процесс разработки системы открыт и общедоступен [19].
Гибкость - Бесплатное программное обеспечение. В любой точке, если есть доступ к компьютеру, возможно использовать все, что предлагается в качестве компонентов системы Ubuntu. И бесплатным является не только исходный загружаемый дистрибутив системы, но и все последующие ее обновления.
Быстрый доступ к обновлениям. Как только будет выпущена новая версия системы, Ubuntu сообщает и предлагает бесплатно обновить ее автоматически при условии наличия подключения к Интернету.
Круглосуточная техническая поддержка. Для домашних и частных пользователей разнообразная техническая поддержка предоставляется на Web-сайте Ubuntu и форумах в Интернете. Если возникла проблема, ответ приходит за несколько часов (а иногда и минут). Объясняется это тем, что Ubuntu написана добровольцами со всего света, которые постоянно поддерживают связь друг с другом через эти форумы и всегда рады помочь вам, чем могут.
Система может работать без установки. Возможно запустить Ubuntu с CD или DVD, или же с носителя флеш-USB, без необходимости предварительной установки системы на жесткий диск вашего компьютера.
В дистрибутив включены офисные приложения. Ubuntu поставляется с заранее установленным пакетом OpenOffice.org, поэтому можно сразу же заняться созданием документов, электронных таблиц и презентаций, совместимыми с пакетом Microsoft Office.
2.2 Веб-сервер Apache
Информация в Интернете организована с помощью архитектуры, определенной организацией Internet Society (ISOC). Это целеустремленная (хотя и управляемая комитетами) организация, которая поддерживает согласованную работу и операционную совместимость в Интернете [20].
Организация ISOC определяет три способа идентификации ресурсов: унифицированные идентификаторы ресурсов (Uniform Resource Identifier - URI), унифицированные указатели ресурсов (Uniform Resource Locator - URN) и унифицированные имена ресурсов (Uniform Resource Names - URN).
Как показано на рис. 2.1, по существу, унифицированные указатели и имена ресурсов представляют собой частный случай унифицированного идентификатора ресурсов.
Рис. 2.1 Классификация унифицированных идентификаторов ресурсов
Разница между ними заключается в том, что:
унифицированные указатели ресурсов сообщают, как найти ресурс, описывая его механизм первичного доступа (например, http://admin.com);
унифицированные имена ресурсов идентифицируют ("называют") ресурс без указания на него или сообщают, как получить доступ к нему (например, urn: isbn: 0-13-020601-6).
Если доступ к ресурсу возможен только через Интернет, то используется указатель URL. Если же доступ к ресурсу возможен не только через Интернет, но и с помощью других средств, то используется идентификатор URI.
Принцип работы HTTP
HTTP - это клиент-серверный протокол, не хранящий информацию о состоянии сеанса. Клиент запрашивает у сервера "содержимое" заданного URL-адреса. Сервер отвечает, передавая поток данных или возвращая сообщение об ошибке. Затем клиент может запросить следующий объект.
Поскольку протокол HTTP прост, можно легко подключиться к веб-браузеру с помощью утилиты telnet. Для этого достаточно подключиться к порту 80 выбранного веб-сервера. После установления соединения сервер готов принимать НТТР-команды.
Чаще всего используется команда GET, которая запрашивает содержимое документа. Обычно она задается в формате "GET /". В этом случае возвращается корневой документ сервера (как правило, начальная страница). Протокол HTTP чувствителен к регистру символов, поэтому команды следует набирать прописными буквами.
Генерирование содержимого
Помимо работы со статическими документами, HTTP-сервер способен выдавать пользователям страницы, формируемые "на лету". Например, если требуется отобразить текущие время и температуру, сервер вызывает сценарий, предоставляющий эту информацию. Такие сценарии зачастую создаются средствами CGI (Common Gateway Interface - единый шлюзовой интерфейс).
CGI является не языком программирования, а, скорее, спецификацией, описывающей обмен информацией между HTTP-сервером и другими программами. Чаще всего CGI-сценарии представляют собой программы, написанные на языке Perl, Python или РНР. В действительности подойдет практически любой язык программирования, который поддерживает операции ввода-вывода в режиме реального времени.
Встроенные интерпретаторы
Модель CGI обеспечивает высокую гибкость, благодаря которой разработчик веб-приложения может свободно использовать любой интерпретатор или язык сценариев. К сожалению, запуск отдельного процесса в каждом сценарии может стать весьма затруднительным для загруженного веб-сервера, обрабатывающего значительный объем динамического содержания.
Кроме поддержки дополнительных внешних сценариев CGI, многие веб-серверы определяют модульную архитектуру, позволяющую интерпретаторам сценариев, таким как Perl и РНР, самим встраиваться в веб-сервер. Это связывание значительно увеличивает производительность, поскольку веб-сервер больше не обязан запускать отдельный процесс, чтобы обрабатывать каждый запрос сценария. Архитектура, большей частью, скрыта от разработчиков сценариев. Как только сервер видит файл, имя которого заканчивается специфическим расширением (например,. pi или. php), он посылает содержимое файла встроенному интерпретатору для выполнения.
В настоящее время Apache HTTP Server представляет собой хорошо защищённый, высокопроизводительный сервер, предназначенный для обработки HTTP-запросов. Разработка сервера и некоторых смежных проектов поддерживается Apache Software Foundation. Код сервера имеет модульную структуру и, следовательно, может быть легко модифицирован к решению практически любых задач по организации виртуального общения между сервером и клиентом.
Потенциальные уязвимости Apache, как и любого другого программного обеспечения, могут использоваться для реализации атак на систему. Поэтому для повышения безопасности системы Apache может работать в защищённой среде "chroot-jail" [21].
2.3 Фреймворк программной системы
Фреймворк (англ. framework) - это набор всевозможных библиотек (инструментов) для быстрой разработки повседневных задач.
Фреймворк в информационных системах - структура программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. В отличие от библиотек, которые объединяют набор подпрограмм близкой функциональности, фреймворк содержит в себе большое количество разных по назначению библиотек. Употребляется также слово каркас, а некоторые авторы используют его в качестве основного, в том числе, не базируясь вообще на англоязычном аналоге.
Можно также говорить о каркасном подходе как о подходе к построению программ, где любая конфигурация программы строится из двух частей: первая, постоянная часть - каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнезда, в которых размещается вторая, переменная часть - сменные модули (или точки расширения).
2.3.1 Концепция PHP-фреймворков
PHP-фреймворки за последнее время приобрели популярность и стали базовой платформой для разработки веб-приложений. Другими словами, можно сказать, что они обеспечивают основную структуру приложения. Использование этих инструментов позволяет экономить большое количество времени, уменьшить нагрузку на процесс разработки, избавиться от проблемы повторяющегося кода и быстро создавать приложения. Без использования их становится гораздо сложнее создавать веб-приложения, сопровождать и модернизировать их.
Между тем, использование PHP-фреймворков делает процесс создания приложения гораздо более легким и функциональным.
Рис 2.2. Концепция PHP фреймворков.
Сейчас большинство PHP-проектов построены при помощи архитектуры Model View Controller (MVC). MVC - это архитектурный шаблон проектирования, который используется в большинстве языков программирования и позволяет отделить бизнес-логику от пользовательского интерфейса, а так же выделить область логики, которая производит обмен информации между базой данных и пользовательским интерфейсом.
Таким образом, можно изменить логику приложения, не затрагивая интерфейсной части, либо наоборот, что очень хорошо для дизайнеров и верстальщиков. Это позволяет избежать путаницы и упрощает весь процесс разработки.
Когда говорится о MVC, то имеется в виду: Model - та часть архитектуры, которая взаимодействует с базой данных, View - представляет ту часть, которую непосредственно видит пользователь, то есть графический интерфейс, и Сontroller - это область логики, которая контролирует и управляет всеми ее составляющими и данными. Большинство современных фреймворков берут за основу именно архитектуру MVC. Также в современном фреймворке используется шаблон проектирования Front Controller, который, в зависимости от запроса, перенаправляет его на нужный контроллер. Без Front Controller разработка с применением фреймворка не имела бы смысла [22].
2.3.2 Случаи использования PHP-фреймворка
Для того чтобы воспользоваться всеми возможностями данного инструментария, необходим немалый багаж знаний в разработке приложений. PHP-фреймворки могут помочь устранить очень частую ошибку при программировании приложений - повторение кода, а также систематизировать процесс разработки. Они являются мощным инструментом для быстроразвивающегося языка программирования как PHP, которые помогут организовать ваш код.
Каждый человек имеет различные предпочтения и потребности. Для одного разработчика использование фреймворков может помочь в ускорении процесса программирования, а для другого это может показаться пустой тратой времени. В большинстве случаев это зависит от уровня профессионализма, но, в целом, PHP-фреймворки предназначены, чтобы сэкономить время и абстрагироваться от рутинных задач.
2.3.3 Обзор современных фреймворков
С точки зрения удобства разработки, скорости, стабильности было выделено 6 популярных PHP-фреймворков, которые отвечают большинству требований.
Zend framework
Zend framework - это PHP-framework, созданный и поддерживаемый компанией Zend, сотрудники которой являются непосредственными авторами языка PHP. Поэтому он следует традициям и духу PHP - базируется на простоте, объектно-ориентированных принципах, дружественной лицензии и тщательно тестируемом коде с применением "agile" методов [23].
Основные особенности:
· все компоненты полностью ориентированы на PHP 5 и E_STRICT - совместимы;
· встроенный генератор кода;
· архитектура "используй только то, что необходимо" с минимальными зависимостями компонентов;
· использует легко расширяемый шаблон проектирования MVC, поддерживает макеты и PHP-скрипты представления по умолчанию;
· поддерживает множество различных баз данных, включая MariaDB, MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, and Informix Dynamic Server;
· специальные классы для создания, отправки, получения email с помощью mbox, Maildir, POP3 и IMAP4;
· гибкая подсистема кэширования с поддержкой множества хранилищ.
Недостатки:
· слишком большой;
· чересчур многослойный;
· очень медленный без кэширования;
· очень сложная архитектура, без глубокого понимания шаблонов проектирования сложен в освоении;
· слабое русскоязычное сообщество;
· много мелких недочетов;
· очень медленная скорость развития.
Фреймворк CakePHP
CakePHP является быстроразвивающимся фреймворком для PHP, который предоставляет расширяемую архитектуру для разработки, обслуживания и развертки веб-приложений. Использует известный шаблон проектирования MVC, как и в объектно-реляционных фреймворках.
Основной парадигмой CakePHP является увеличение продуктивности разработки и помощь программисту в написании кода. Изначально создавался как клон популярного языка Ruby on Rails, и многие идеи были заимствованы именно оттуда [24].
Особенности:
· компоненты для авторизации, ограничения доступа (ACL), управления сессиями, cookies, представления древовидной информации (в виде Nested Sets);
· хелперы (компоненты) для генерации и заполнения форм, деления на страницы (paginate), управления кэшем, JavaScript (в том числе и AJAX);
· механизм интернационализации для работы сайта на множестве языков;
· генерация SQL-запросов, в том числе для таблиц с отношениями один ко многим и многие ко многим, ORM;
· генерация CRUD-страниц для сущностей, Router:: mapResources c Put Delete Get Post;
· автогенератор кода Bake;
· миграции;
· консольная интеграция, класс Shell и задачи Task;
· плагины (как отдельные расширяемые приложения), компоненты и поведения;
· поддержка Simple Test;
· слои (layouts) и темы (Themes);
· низкий порог вхождения - быстрая разработка основана на соглашениях (взят курс на Ruby On Rails).
Недостатки:
· низкая производительность;
· слабая документация;
· нет сформированного русскоязычного сообщества;
· сложный в понимании ACL;
· строгие соглашения по именованию;
· низкая скорость развития.
Фреймворк Kohana
Проект "Kohana" был создан как ветвь PHP-фреймворка CodeIgniter под именем "Blue Flame". Главной причиной ответвления был переход к более открытой для общественности модели разработки, потому, что многие пользователи были недовольны скоростью разработки и исправления ошибок в CodeIgniter. Rick Ellis - создатель и владелец CodeIgniter подтолкнул новый фреймворк к созданию собственной документации и посоветовал переименовать проект. В июле 2007 "Blue Flame" был переименован в "Kohana", для того чтобы избежать проблем с авторскими правами в будущем [25].
Особенности:
· высокая безопасность;
· хорошо прокомментированный код и встроенные средства отладки и профилирования;
· простота в понимании;
· использует парадигму MVC;
· поддержка UTF-8;
· очень легко расширяем;
· распространяется по лицензии BSD, то есть полностью свободен как для коммерческого, так и бесплатного использования.
Недостатки:
· документация местами устаревшая, редко обновляется;
· слабая обратная совместимость между версиями;
· слаборазвитый форум, большинство разработчиков общается через IRC;
· нет никаких гарантий, что проект будет развиваться в будущем;
· нет сформированного русскоязычного сообщества.
Фреймворк CodeIgniter
CodeIgniter - популярный MVC фреймворк с открытым исходным кодом, написанный на языке программирования PHP, для разработки полноценных веб-систем и приложений. Разработан компанией EllisLab, а также Риком Эллисом (Rick Ellis) и Полом Бурдиком (Paul Burdick) [26].
CodeIgniter отличает простота, которая достигается благодаря следующим факторам:
· хорошая документация;
· развитое сообщество;
· фреймворк дает свободу программисту, не создавая каких-либо структурных ограничений и конвенций;
· программисту не требуется учиться пользоваться генераторами кода из командной строки;
· CodeIgniter работает практически на любом хостинговом плане, который имеет поддержку PHP версии 5.1 и выше;
· CodeIgniter считается одним из быстрых и не требовательных к ресурсам фреймворков;
· поддержка баз данных MySQL, PostgreSQL, MSSQL, SQLite, Oracle.
Недостатки:
· поддержка PHP4 тянет за собой лишний код;
· нет встроенной системы разделения прав;
· медленно развивается;
· неустойчивость к CSRF-атакам.
Фреймворк Symfony
Symfony - PHP фреймворк, имеющий большую библиотеку классов, который написан на PHP5. Архитектура имеет полезные компоненты и отличные инструменты, предназначенные для создания сложных веб-приложений. Symfony - свободный каркас, написанный на PHP5, который использует паттерн Model-View-Controller (MVC). Symfony предлагает быструю разработку и управление веб-приложениями, позволяет легко решать рутинные задачи веб-программиста. Symfony бесплатен и публикуется под лицензией MIT [27].
Особенности:
· поддерживает множество баз данных (MySQL, PostgreSQL, SQLite или любая другая PDO-совместимая СУБД);
· встроенные классы для работы с email;
· гибкая система шаблонов в представлении;
· встроенный кодогенератор;
· поддержка французского спонсора Sensio;
· очень гибок;
· высокая производительность.
Недостатки:
· сложен в освоении;
· подходит только для больших проектов;
· отсутствие русской документации;
· нет встроенной ORM;
· нет русскоязычного сообщества.
Фреймворк Yii
Yii - это высокоэффективный, основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс веб-разработки. Название фреймворка изначально значило "Yes It Is" [22].
Особенности:
· высокая производительность;
· интерфейсы DAO и ActiveRecord для работы с базами данных (PDO);
· поддержка интернационализации;
· кэширование страниц и отдельных фрагментов;
· перехват и обработка ошибок;
· ввод и валидация форм;
· использование AJAX и интеграция с jQuery;
· генерация базового PHP-кода для CRUD-операций (скаффолдинг);
· поддержка тем оформления для их лёгкой смены;
· возможность подключения сторонних библиотек;
· миграции базы данных;
· автоматическое тестирование;
· поддержка REST.
· активное русскоязычное сообщество.
2.3.4 Преимущества использования фреймворка
1. Гибкость разработки и развития проекта.
2. Эффективное использование ресурсов сервера.
3. Открытый код фреймворка.
4. Легкость и надежность веб-разработок. Фреймворк состоит из базовых, проверенных, отлаженных функций и операций. Построен на базе объектно-ориентированного программирования.
5. Постоянное развитие и совершенствование фреймворка.
6. Большой объем сопроводительной документации, примеров по разработке на разных языках.
7. Мировая популярность, большое количество разработчиков.
8. Легкость сопровождения проекта в дальнейшем, так как разработка с применением фреймворка основана на определенных соглашениях.
9. Фреймворк позволяет сконцентрироваться на решении архитектурных задач, а не базовых, как при разработке без его применения.
Фреймворк позволяет узко решать поставленную задачу.
Одно из главных преимуществ фреймворка - это удобная разработка нестандартных проектов. Ни один крупный нестандартный проект (например, twitter.com, фотобанк с онлайн покупкой фотографий, сайт знакомств и т.д.) не делают на готовой CMS - они для этого не предназначены. Все оригинальные проекты разрабатывают на фреймворках.
2.3.5 Обоснование выбора фреймворка
На основании сравнительного анализа ряда фреймворков выбор был сделан в пользу Yii.
Yii - очень быстрый, современный и гибкий фреймворк. Имеет множество плюсов:
· высокая скорость разработки;
· высокая скорость работы;
· поддержка модулей, компонентов и виджетов;
· интеграция с javascript фреймворком jQuery;
· удобная работа с базой данных: возможно использование как Data Access Objects, так и Active Record;
· удобная и гибкая система кеширования и ивалидирования кеша
· удобный встроенный генератор кода Gii;
2.4 Выбор СУБД
База данных является набором перманентных данных, используемых прикладными программными системами. Все данные находящиеся в БД зачастую логически взаимосвязаны между собой [28]. В зависимости от используемой базы данных для разработки проекта приходится выбирать тот или иной PHP-фреймворк.
Базы данных классифицируются по среде физического хранения.
· БД во вторичной памяти (традиционные): средой постоянного ранения является периферийная энергонезависимая память (вторичная память) - как правило, жёсткий диск. В оперативную память СУБД помещает лишь кэш-данные для текущей обработки;
· БД в оперативной памяти (in-memory databases): все данные находятся в оперативной памяти;
· БД в третичной памяти (tertiary databases): средой постоянного хранения является отсоединяемое от сервера устройство массового хранения (третичная память). Во вторичной памяти сервера хранится лишь каталог данных третичной памяти, файловый кэш и данные для текущей обработки; загрузка же самих данных требует специальной процедуры.
Универсальный язык программирования (SQL) применяется для управления данными в реляционных базах данных, основанных на реляционной алгебре. Самой популярной и открытой СУБД на сегодняшней день является MySQL. Основное внимание разработчиков MySQL всегда было направлено на эффективную реализацию самых распространённых функций.
2.4.1 Реляционная СУБД MySQL
MySQL - реляционная система управления базами данных.
Плюсы использования MySQL [29]:
· Размер и скорость. MySQL способна работать при малых ресурсах. Быстрая скорость извлечения информации.
· Лёгкость установки. MySQL прост и лёгок в установке. Более того, в некоторые дистрибутивы Linux он уже встроен.
· Соблюдение стандартов. MySQL является стандартной системой с обширными возможностями разработками.
· Реагирование на требования общества. Сотрудники MySQL A B расположены по всему земному шару, благодаря чему может своевременно реагировать на требования пользователей. Также программист всегда может посмотреть код программы для поиска и решения проблем.
· Простой интерфейс для связывания с другим программным обеспечением. MySQL можно использовать как часть более крупной системы, например, программы, которые будут напрямую взаимодействовать с СУБД MySQL.
Для работы с MySQL необходимы сервер и клиент. Сервером является программа mysql, представленная компанией MySQL AB и доступная в большинстве инсталляций MySQL. Также в дистрибутив включено приложение phpMyAdmin, которое является клиентом, позволяющее выполнять административные задачи на сервере.
2.5 Организация системы контроля версий
Система контроля версий (СКВ) - это система, регистрирующая изменения в одном или нескольких файлах с тем, чтобы в дальнейшем была возможность вернуться к определённым старым версиям этих файлов [30]
СКВ даёт возможность возвращать отдельные файлы к прежнему виду, возвращать к прежнему состоянию весь проект, просматривать происходящие со временем изменения, определять, кто последним вносил изменения во внезапно переставший работать модуль, кто и когда внёс в код какую-то ошибку, и др. При возникновении ошибки можно восстановить все изменения. Вдобавок, накладные расходы на всё, что вы получаете, будут очень маленькими.
Локальная СКВ с простой БД, в которой хранятся все изменения нужных файлов (рис. 2.3).
Рис. 2.3 Схема локальной СКВ
СКВ является системой централизованного типа. Она позволяет нескольким разработчикам работать над единым проектом. При этом данные хранятся на сервере, доступ к которому есть у каждого члена группы разработчиков. Серьёзным недостатком является необходимость наличия сервера, т.к. если доступа к нему не будет, то разработчики не смогут взаимодействовать, и работа будет остановлена.
Рис 2.4 Схема централизованной СКВ
Распределённые СКВ. В данной системе клиенты выгружают не последние версии файлов, а весь репозиторий, что обеспечивает некую защиту от выхода из строя сервера или жёстких дисков. Каждый раз, когда разработчик скачивает последнюю версию, он копирует последнюю версию репозитория.
Используя такую модель СКВ, можно работать с несколькими удалёнными репозиториями, что позволяет параллельно работать с несколькими группами людей по-разному, в рамках одного проекта, можно вести несколько типов рабочих процессов, что невозможно при централизованных системах.
Описание СКВ Git
Основное преимущество Git от других СКВ - это то, как Git воспринимает свои данные. Git считает хранимые данные набором слепков небольшой файловой системы. При внесении изменений в текущую версию проекта Git сохраняет слепок проекта в том виде, в котором они находятся в данный момент. Если файл не меняется, Git не сохраняет файл снова, а делает ссылку на ранее сохранённый файл.
Каждая СКВ имеет поддержку ветвления. Ветвление позволяет отклониться от основной линии разработки и продолжить работу, не вмешиваясь в основную линию.
Git как контенто-адресуемая система - это очень мощный инструмент, который можно использовать не только как систему контроля версий [30].
2.5 Набор инструментов "Bootstrap"
Bootstrap создан компанией Twitter, и сначала использовался для собственных продуктов и назывался "Twitter Bootstrap", а позже был запущен в свободное распространение, лишившись из названия бренда Twitter.
"Bootstrap" - это CSS/HTML фреймворк для создания сайтов. Другими словами, это набор инструментов для вёрстки. В нём есть ряд преимуществ, благодаря которым BS считается самым популярным среди себе подобных [31].
Преимущества Bootstrap
1. Скорость работы, благодаря множеству готовых элементов, вёрстка с Bootstrap занимает значительно меньше времени.
2. Масштабируемость: добавление новых элементов не нарушает общую структуру.
3. Лёгкая настраиваемость: редактирование стилей производится путём создания новых css-правил, которые исполняются вместо стандартных.
4. Огромное сообщество разработчиков.
5. Широкая сфера применения - Bootstrap используется в создании тем для практически любой CMS (OpenCart, Prestashop, Magento, Joomla, Bitrix, WordPress и любые другие), в том числе для одностраничных приложений.
Шаблоны в Bootstrap позволяют менять уже изменённые элементы под свои потребности. Множество разработчиков предлагают свои шаблоны (как платно, так и бесплатно). Подключить шаблон в Bootstrap очень легко: после подключения нужно только добавить вызов CSS пользовательского шаблона.
...Подобные документы
История и факторы развития облачных вычислений. Роль виртуализации в развитии облачных технологий. Модели обслуживания и принципы работы облачных сервисов. Преимущества облака для Интернет-стартапов. Применение технологии облачных вычислений в бизнесе.
реферат [56,6 K], добавлен 18.03.2015Роль распределенных вычислительных систем в решении современных задач. Инструментальная система DVM для разработки параллельных программ. Средства построения формальной модели графического интерфейса. Требования к графическому интерфейсу DVM-системы.
курсовая работа [2,7 M], добавлен 15.10.2010История развития вычислительной техники. Понятие высокой готовности и отказоустойчивости системы. Разработка функциональной схемы отказоустойчивого кластера и структурной схемы виртуального стенда. Технико-экономическое обоснование объекта проектирования.
дипломная работа [2,7 M], добавлен 26.02.2013Анализ применения информационных технологий в организации обучения. Особенности проектирования автоматизированных информационно-справочных систем. Обзор средств создания приложения. Разработка пользовательского интерфейса программы, ее тестирование.
курсовая работа [1,2 M], добавлен 09.04.2015Анализ структуры и содержания плана маркетинга компании. Рынок облачных вычислений и возможность их применения. Отбор источников информации и представление полученных результатов. Разработка программной инструментальной оболочки облачных вычислений.
дипломная работа [149,8 K], добавлен 12.11.2013Понятие вычислительных систем, их классификация по различным признакам. Модели параллельных вычислений PGAS и APGAS. Разработка программного продукта для анализа информационных обменов в параллельных программах на языке IBM X10. Расчёт его себестоимости.
дипломная работа [1,6 M], добавлен 10.06.2013Требования к метрологическому обеспечению. Разработка архитектуры пользовательского интерфейса. Требования к программному, математическому, информационному обеспечению. Функциональная схема автоматизации. Разработка схемы информационных потоков.
курсовая работа [343,1 K], добавлен 20.12.2013Анализ особенностей жанров и технологий видеоигр. Обзор средств разработки видеоигр. Требования к разрабатываемому программному обеспечению. Разработка архитектуры программы и пользовательского интерфейса. Бизнес-модель внедрения видеоигры на рынок.
дипломная работа [1,7 M], добавлен 25.06.2017Сущность облачных вычислений, основные направления развития, достоинства и недостатки. Сеть Интернет как платформа научных коммуникаций. Разработка портала студенческого научного общества. Проектирование интерфейса web-сайта, выбор программных средств.
дипломная работа [5,9 M], добавлен 18.07.2014Изучение методов создания диалоговой оболочки отладчика MPI-программ, который войдет в состав системы автоматизации разработки параллельных программ (DVM-системы). Основные подходы к параллельному программированию и созданию пользовательского интерфейса.
курсовая работа [1,5 M], добавлен 14.10.2010Отличительные черты компьютерных программ экспертных систем, их разработка. Составные части систем: база знаний, механизм вывода, система пользовательского интерфейса. Структура базы знаний экспертной системы для помощи медикам в постановке диагноза.
курсовая работа [325,0 K], добавлен 04.02.2011Области применения быстрых вычислений. Проблемы эффективности последовательных и параллельных программ. Отображение циклов с условными операторами на асинхронные архитектуры. Рассмотрение исследовательских университетских распараллеливающих систем.
презентация [833,3 K], добавлен 07.08.2015История возникновения компьютерной науки. Продукты компании Apple. Основные категории, отличительные особенности, уровни облачных сервисов. Характеристика публичных и частных облаков. Преимущества и недостатки облачных вычислений, перспективы их развития.
контрольная работа [1,6 M], добавлен 06.08.2013Знакомство с историей развития многопроцессорных комплексов и параллельных вычислений. Персональные компьютеры как распространенные однопроцессорные системы на платформе Intel или AMD, работающие под управлением однопользовательских операционных систем.
презентация [1,1 M], добавлен 22.02.2016Пакетный метод как основной способ выполнения коммуникационных операций, его содержание и предъявляемые требования. Оценка трудоемкости операции передачи данных между двумя узлами кластера. Этапы разработки параллельных алгоритмов (распараллеливания).
презентация [318,1 K], добавлен 10.02.2014Историческое развитие средств вычислений. Структурные схемы вычислительных систем. Развитие элементной базы и развитие архитектуры самих систем. Основные классы вычислительных машин. Каналы передачи данных. Требования к составу периферийных устройств.
реферат [48,7 K], добавлен 09.01.2011Создание и уровни реализации облачных вычислений. Достоинства и недостатки использования облачных технологий в организации единого информационного пространства. Оценка важности критериев методом "Попарного сравнения", "Тепловых карт", "Экспертных оценок".
дипломная работа [1,3 M], добавлен 08.04.2014Понятие облачных вычислений, их преимущества и недостатки; виды облаков. Сравнительный анализ рисков использования облачных сервисов в России и ЕС. Регуляторы в области информационной безопасности, их концепции, особенности и регулирующие органы власти.
курсовая работа [79,1 K], добавлен 14.05.2014Пути достижения параллелизма вычислений. Понятие и разновидности, а также сферы и особенности использования суперкомпьютеров. Параллельные вычисления как процессы решения задач, в которых могут выполняться одновременно несколько вычислительных операций.
презентация [8,3 M], добавлен 11.10.2014Роль структуры управления в информационной системе. Примеры информационных систем. Структура и классификация информационных систем. Информационные технологии. Этапы развития информационных технологий. Виды информационных технологий.
курсовая работа [578,4 K], добавлен 17.06.2003