Автор: Пользователь скрыл имя, 19 Декабря 2011 в 10:16, курсовая работа
На протяжении многих лет компьютерная индустрия следовала по пути постоянного наращивания вычислительной мощности. Программное обеспечение приходящее на смену старому, требовало все более мощных процессоров и больших объемов памяти. Затраты на дата-центры растут с той же скоростью.
С появлением подхода web 2.0, ориентированного на социальную составляющую информационной среды, начала бурно развиваться «философия» софта по запросу. Она основывается на том, что пользователь или компания платит только за те ресурсы, которые потребляет. Причем количество доступных ресурсов зависит от нагрузки, это достигается путем масштабирования платформы.
Целью данной работы является изучения перспектив развития облачных вычислений, выделение видов и подходов при их разработке. Изучение особенностей разработки облачного программного обеспечения, анализ рисков связанных с безопасностью информации и надежностью технологии, а так же рациональная составляющая такой технологии.
Введение 6
1 Теоретические основы 7
1.1 Основные виды 7
1.2 Терминология 7
1.3 История развития 8
1.4 Распределенный подход и облака 9
1.5 Коммунальный подход и облака 10
1.6 Самоуправляемые системы 11
2 Достоинства и недостатки 12
2.1 Достоинства. 12
2.2 Недостатки. 13
3 Безопасность 15
3.1 In-the cloud-безопасность 15
3.2 Вопрос необходимости 15
3.3 Преимущества безопасности in-the-cloud 16
3.4 Двусторонняя связь 17
3.5 Недостатки in-the-cloud-безопасности 17
4 Обзор популярных облаков 19
5 Разработка облачного приложения 21
Заключение 23
Список использованных источников 24
Интересен результат Microsoft, т.к. от Amazon S3 он отстает не сильно, но при этом использует реляционную SQL Azure, а не Windows Azure Storage Table (аналог S3), которые в исследовании участия не принимал (по причине отсутствия полной транзакционости).
Разработка веб-приложения для «облака» мало чем отличается от обычного веб-приложения. Для демонстрации технологии была выбрана платформа Windows Azure. Приложение, написанное на ASP.NET, переписывалось для работы в облаке, для чего был установлен Azure SDK. В Visual Studio появился новый вид проектов Windows Azure Project. Приложение запускалось на эмуляторе облака, однако, стоит учесть, что разработка на эмуляторе несколько отличается от использования облачного окружения.
В
структуру полученного проекта (Рисунок
5) добавлена аппликация (TestProjectAzure), которая
отвечает за «облачную» составляющею
проекта.
Рисунок 5 Структура приложения
Рассмотрим конфигурационные файлы:
ServiceConfiguration.
Рисунок
6 ServiceConfiguration.cscfg
ServiceDefinition.csdef – определяет какие сервисы, являются частью аппликации, и если есть внешний доступ, то конфигурацию протоколов и портов сервера.
Также
в конфигурационном файле можно указать
какую конфигурацию виртуальной машины
должно использовать приложение. Этот
параметр задается в настройках веб-роли.
Конфигурация виртуальной машины в Windows
Azure зависит от цены за час использования
(Таблица 1).
Таблица 1-Цены на виртуальные машины
Размер «облака» | CPU | Memory | Instance Storage | I/O Производительность | Цена за час |
Extra Small | 1.0 GHz | 768 MB | 20 GB | Low | $0.05 |
Small | 1.6 GHz | 1.75 GB | 225 GB | Moderate | $0.12 |
Medium | 2 x 1.6 GHz | 3.5 GB | 490 GB | High | $0.24 |
Large | 4 x 1.6 GHz | 7 GB | 1,000 GB | High | $0.48 |
Extra large | 8 x 1.6 GHz | 14 GB | 2,040 GB | High | $0.96 |
В Windows Azure есть три типа сервисов хранения данных блобы, таблички и очереди. Каждая из них может быть использована для разных нужд. К примеру, в табличках мы можем хранить статистические данные, которые необходимы для создания отчета, или же мы можем там хранить информацию о товарах в магазине; в очереди мы можем хранить строчки, собственно хранением это назвать тяжело – скорее пересылкой сообщения от роли к роли; блобы – самые большие, объемные и больше всего подходящие под хранение файлов, музыки, видео, и другого медиа-контента. Именно блобы лучше использовать как аналог файловой системы для всего приложения.
Blobs (далее блобы) – это аббревиатура от Binary Large OBjects. В самом начале блобы появились в реляционных базах данных, и использовались для хранения файлов в табличке, собственно с такой же идеей они и перекочевали в Azure. Блобы находятся в контейнерах, на аккаунте может быть создано любое количество контейнеров. Контейнер создается следующим кодом:
SetConfiguration();
CloudStorageAccount account = CloudStorageAccount.
CloudBlobClient blobClient = account.CreateCloudBlobClient(
CloudBlobContainer container = blobClient.
container.CreateIfNotExist();
Добавить
файл в блоб можно следующим кодом:
var blob = container.GetBlobReference("
blob.UploadFile(@"c:\NHL.jpg"
Можно использовать следующие методы:
Максимальный объем блоба – 1 терабайт. Если пользоваться для загрузки библиотекой – то если блоб будет более 64 мегабайт – он будет разбит на блобы по 4 мб. В случае если нужно создавать видеохостинг и предоставлять потоковое видео это идеальное решение.
В остальном разработка приложения ничем не отличается от обычного. Так же стоит отметить, что у разработчика есть возможность определить из кода, где запущено приложение, на «облаке» или на локальном сервере, это позволяет писать универсальные библиотеки в зависимости от места где запущено приложение.
Из исследований практической стороны вопроса разработки приложения, предназначенного для работы в «облаке», можно сделать выводы:
Для конечного пользователя можно выделить весомые плюсы облачных услуг
по технологии «программное обеспечение как сервис»:
При
изучении теоретической части
Перспектива развития облачных вычислений идет к тому, что на смену существующим видам технологии появится объединенная структура «*aaS» (Everythig as a Service), когда абсолютно все, что может понадобиться для работы, станет доступно через «облако» в качестве услуги. Однако вряд ли эта технология когда-либо станет безальтернативным решением, всегда найдутся области применения собственных центров обработки данных и персональных систем.