Министерство образования и науки Украины

Донецкий национальный технический университет

МАГИСТЕРСКАЯ ДИССЕРТАЦИЯ

Тема: "Сравнительный анализ эффективности различных классов программных продуктов для платформ Java и .NET"

Руководитель: доцент, к.т.н. Аноприенко А.Я.

  1. Актуальность темы
  2. Цель и задачи исследования
  3. Методы исследований
  4. Научная новизна
  5. Практическая ценность
  6. Содержание работы
  7. Выводы и перспективы исследования
  8. Проблема выбора аппаратной платформы, языка программирования, и среды исполнения всегда оставалась одной из основных проблем разработчика программного продукта.

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

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

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

    В работе рассмотрены преимущества и недостатки некоторых подсистем Java и .NET, а также возможные пути решения рассмотренных проблем.

    Целью работы является исследование производительности виртуальной машины и подсистемы сериализации Java и .NET с целью выбора наиболее эффективной платформы для разработки конкретных приложений

    Методом исследования программных платформ является эксперимент, а также анализ исходных кодов программных платформ.

    Научная новизна работы состоит в получении численных характеристик, описывающие процессы, происходящие внутри среды исполнения Java и .NET, а также предложение по оптимизации некоторых подсистем .NET.

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

    Одними из современных технологий быстрой разработки распределённых систем широкого пользования (приложений электронной коммерции и различных web-порталов) являются программная платформа и язык Java, а также альтернативная ей платформа Microsoft.NET.

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

    Одной из исследуемых подсистем данных программных платформ является подсистема сериализации. Точно так же, как производительность персонального компьютера определяется не только его компонентами, но и производительностью его системной шины, так и производительность распределённой системы определяется эффективной передачей данных между её компонентами (в данном случае, между клиентом и сервером).

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

    Очевидно, что эффективность обмена данными между компонентами распределённой системы определяется как временем, затрачиваемым на сохранение структуры данных в поток байт, так и размером данных. При постоянной пропускной способности канала данных время, затрачиваемое на пересылку данных, зависит именно от размера данных.

    Презентация сравнения размера служебных данных в Java и .NET:

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

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

    • среды разработки приложения
    • системы помощи
    • пакета прикладных программ для разработчика