Выбор программной и облачной платформы

Выбор программной платформы

Для реализации веб-сервисов и их компонентов были рассмотрены существующие программные платформы. Были выделены следующие характеристики для сравнения платформ:

  • 1. Поддерживаемые языки программирования.
  • 2. Среда выполнения.
  • 3. Доступные объектно-реляционные отображения.
  • 4. Механизмы подключение к реляционным базам данных.
  • 5. Каркас веб-приложений.
  • 6. Реализация освобождения памяти.
  • 7. Внутренние компоненты.
  • 8. Клиентские компоненты.
  • 9. Поддержка XML.
  • 10. Служба сообщений для межпроцессорной коммуникации.
  • 11. Серверы для развертывания веб-приложений.
  • 12. Веб-сервисы.
  • 13. Пользовательский интерфейс.
  • 14. Реализация Remoting.
  • 15. Модульное тестирование.
  • 16. Асинхронные вызовы.

Платформа «.NET Framework».

Программная платформа «.NET Framework» включает в себя общеязыковую среду выполнения и библиотеки классов. Среда выполнения является агентом, который управляет кодом во время исполнения и предоставляет основные службы. Библиотека классов является комплексной объектно-ориентированной коллекцией, которая допускает повторное использование типов.

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

Платформа «Java»

Программная платформа «Java» позволяют разрабатывать и запускать программы, написанные на языке программирования Java. Данная программная платформа не является специфической для какого-либо определенного процессора или операционной системы. Однако компилятор с набором библиотек и механизм выполнения реализованы для различного аппаратного обеспечения и различных операционных систем, чтобы программы, написанные языке Java, могли работать везде одинаково.

Итоги сравнения подведены в таблице 3.1. Благодаря полученным сравнениям решено использовать платформу «.NET Framework», т.к. данная платформа имеет большее количество преимуществ.

аннотация текстовый программный процессор

Таблица 3.1. Программные платформы

Характеристика

.NET Framework

Java

Поддерживаемые языки программирования

C#, VB.NET, C++.NET, Scala, F# и другие.

Java, Scala, Groovy, и другие.

Среда выполнения

CLR

JVM

Доступные объектно-реляционные отображения

Entity Framework, NHibernate

Hibernate

Механизмы подключение к реляционным базам данных

ADO.NET

JDBC

Каркас веб-приложений

ASP.NET MVC, Spring.NET

Spring

Реализация освобождения памяти

Автоматическая

Автоматическая

Внутренние компоненты

.NET, COM

EJBs

Клиентские компоненты

.NET классы

Компоненты Java (JavaBeans)

Поддержка XML

System.XML

JAXP

Служба сообщений для межпроцессорной коммуникации

MSMQ

JMS

Серверы для развертывания веб-приложений

IIS

От различных поставщиков

Веб-сервисы

WCF/Asmx, ASP.NET

JAX-WS/Axis, JSF

Пользовательский интерфейс

Windows Forms, WPF

AWT/Swing

Remoting

SOAP, HTTP, DCOM

RMI

Модульное тестирование

Microsoft Unit Testing Framework, NUnit

JUnit

Асинхронные вызовы

COM+QC

EJB Message Beans

Выбор облачной платформы.

Для развертывания облачного хранилища и веб-сервисов были рассмотрены существующие облачные платформы. Были выделены следующие характеристик для сравнения платформ:

  • 1. Вычислительные мощности виртуальных машин:
  • 1.1. Память хранилища (ГБ).
  • 1.2. Память оперативная (ГБ).
  • 1.3. Процессоры (количество).
  • 1.4. Операционные системы.
  • 2. Хранилище данных:
  • 2.1. BLOB хранилище.
  • 2.2. Табличное хранилище.
  • 2.3. Реляционное хранилище.
  • 3. Разработка решений:
  • 3.1. Портал разработчика.
  • 3.2. Eclipse Tools.
  • 3.3. Visual Studio Tools.
  • 3.4. Java SDK.
  • 3.5. Мобильное SDK.
  • 3.6. PHP SDK.
  • 3.7. Python SDK.
  • 3.8. Ruby SDK.
  • 3.9. .NET SDK.
  • 4. Мониторинг.
  • 5. Ценообразование.
  • 6. Пробное использование.

Платформа «Amazon EC2».

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

Платформа «Google App Engine».

Платформа «Google App Engine» - это сервис хостинга сайтов и web-приложений на серверах «Google». Приложения, разворачиваемые на базе «Google App Engine», должны быть написаны на программных языках: «Python», «Java», «Go» или «PHP». Среда исполнения «Python» включает в себя полную реализацию возможностей самого языка «Python», большинство функций стандартной библиотеки языка, ограниченную версию «Django», и т.д.

Платформа «Microsoft Azure».

Платформа «Microsoft Azure» разработана для обработки самых различных рабочих нагрузок, от небольших проектов по разработке и тестированию до запуска глобальных продуктов. В основе работы платформы «Microsoft Azure» лежит запуск виртуальной машины для каждого экземпляра приложения. Разработчик определяет необходимый объём для хранения данных и требуемые вычислительные мощности (количество виртуальных машин), после чего платформа предоставляет соответствующие ресурсы.

Итоги сравнения подведены в таблице 3.2. Благодаря полученным сравнениям решено использовать платформу «Microsoft Azure».

Таблица 3.2. Облачные платформы

Характеристика

Amazon EC2

Google App Engine

Microsoft Azure

Память хранилища (ГБ)

4 до 48 000.

Нет ограничений.

4 до 64 000.

Память оперативная (ГБ)

1 - 244.

3,75 - 208.

0,768 - 448.

Процессоры (количество)

1 - 40.

1 - 32.

1 - 32.

Операционные системы

Linux(CentOS, Debian, SUSE и т.д.), Windows Server.

Linux(CentOS, Debian, SUSE и т.д.) Windows Server.

Linux (CoreOS, CentOS, SUSE, ORACLE), Windows Server.

Реляционное хранилище.

Максимальный размер 64 ТБ.

Максимальный размер 500 ГБ.

Максимальный размер 500 ГБ.

BLOB.

Не могут превышать 5 Тб. Ограничений на общий объем данных и количество объектов нет.

Максимальный размер объекта составляет 2 ГБ, но каждый вызов API может обрабатывать только максимум 1 МБ.

Блочный BLOB не превышает 200 ГБ. Страничный BLOB не превышает 1 ТБ. Одна учетная запись может содержать до 500 ТБ.

Табличное хранилище.

Таблицы организуются в “домены”, размер которых не может превышать 10 Гб. На количество “доменов“ ограничений не существует.

Для сохранения одной сущности выделяется до 1 ГБ памяти, количество операций чтения и записи являются неограниченными.

Запись может иметь до 255 полей и не может превышать 1 Мб размере. Размер объектов в одном аккаунте не может превышать 500 Тб.

Портал разработчика

Да.

Да.

Да.

Eclipse Tools

Да.

Да.

Да.

Visual Studio Tools

Да.

Да, но только Python.

Да.

Java SDK

Да.

Да.

Да.

Мобильное SDK

iOS, Android, Fire OS.

iOS, Android.

iOS, Android, Windows Phone.

PHP SDK

Да.

Да.

Да.

Python SDK

Да.

Да.

Да.

Ruby SDK

Да.

Нет.

Да.

.NET SDK

Да.

Нет.

Да.

Мониторинг состояния сервисов

Amazon CloudWatch.

Диагностическое API.

Диагностическое API.

Ценообразование

Плата производиться по факту использования.

Плата производиться по факту использования.

Плата производиться по факту использования.

Пробное использование

12 месяцев, 750 часов/месяц на виртуальную машину, BLOB хранилище на 5 Гб, 20000 запросов на получение и 2000 на отправку. База данных NoSQL размером 25 Гб и 200 миллионов запросов в месяц.

Дается 300 долларов на любые службы Google app engine в течение 60 дней.

Дается 10 000 рублей на любых служб Azure в течение 30 дней. По программе «BizSpark» можно получить 750 $ на 5 разработчиков в течение 3 лет. А также необходимо программное обеспечение от компании «Microsoft».

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

 
< Пред   СОДЕРЖАНИЕ   Загрузить   След >