Проблема выбора аппаратной платформы, языка программирования, и среды исполнения всегда оставалась одной из основных проблем разработчика программного продукта.
В данной работе рассматриваются программные платформы Java и .NET, являющиеся конкурирующими платформами для кроссплатформенной разработки приложений различных типов.
Основная идея программных платформ заключается в компиляции исходного программного кода на языке высокого уровня в некоторый промежуточный код, который, после просмотра специализированным программным модулем, адаптированным под конкретную аппаратную платформу (виртуальной машиной), преобразуется в машинный код.
Поскольку платформы Java и .NET являются сходными платформами, выбор Java или .NET для разработки конкретного приложения является проблемой для архитекторов и разработчиков ПО, т.е. обе платформы нуждаются в сравнительных оценках производительности, определяющих ту или иную платформу как более эффективную для разработки конкретного приложения.
В работе рассмотрены преимущества и недостатки некоторых подсистем Java и .NET, а также возможные пути решения рассмотренных проблем.
Цель и задачи исследования
Целью работы является исследование производительности виртуальной машины и подсистемы сериализации Java и .NET с целью выбора наиболее эффективной платформы для разработки конкретных приложений
Методы исследований
Методом исследования программных платформ является эксперимент, а также анализ исходных кодов программных платформ.
Научная новизна
Научная новизна работы состоит в получении численных характеристик, описывающие процессы, происходящие внутри среды исполнения Java и .NET, а также предложение по оптимизации некоторых подсистем .NET.
Практическая ценность
Практическая ценность состоит в реализации алгоритма сохранения табличных данных в поток, являющегося оптимальнее с позиции размера сохраняемых данных, чем алгоритм сериализации .NET.
Содержание работы
Одними из современных технологий быстрой разработки распределённых систем широкого пользования (приложений электронной коммерции и различных web-порталов) являются программная платформа и язык Java, а также альтернативная ей платформа Microsoft.NET.
По сравнению со средствами разработки, ориентированными на одну платформу (например, Visual Basic), Java и .NET являются кроссплатформенными, что позволяет архитектору распределённой системы более гибко выбирать аппаратное обеспечение и операционную систему компонентов распределённой системы в зависимости от их производительности, стоимости и надёжности.
Одной из исследуемых подсистем данных программных платформ является подсистема сериализации. Точно так же, как производительность персонального компьютера определяется не только его компонентами, но и производительностью его системной шины, так и производительность распределённой системы определяется эффективной передачей данных между её компонентами (в данном случае, между клиентом и сервером).
Задачей подсистемы сериализации в распределённой система является представление любых структурных данных в виде последовательности байт с целью дальнейшего использования данной структуры другим процессом (либо серверным, либо клиентским).
Очевидно, что эффективность обмена данными между компонентами распределённой системы определяется как временем, затрачиваемым на сохранение структуры данных в поток байт, так и размером данных. При постоянной пропускной способности канала данных время, затрачиваемое на пересылку данных, зависит именно от размера данных.
Презентация сравнения размера служебных данных в Java и .NET:
Выводы и перспективы исследования
В магистерской работе проведено исследование некоторых основных подсистем программных платформ и определены численные зависимости, позволяющие судить об эффективности применения той или иной платформы для построения того или иного приложения.
Перспективами являются дальнейшее расширение исследования с целью исследования других особенностей равно как программных платформ, так и сопровождающих разработку приложения: