Кафедра информационных технологий курсовая работа проектирование и реализация расширяемого поискового сервера


Универсальность кода под различные платформы


Download 70.69 Kb.
bet6/10
Sana20.06.2023
Hajmi70.69 Kb.
#1628198
TuriКурсовая
1   2   3   4   5   6   7   8   9   10
Bog'liq
kursovaya

3.5 Универсальность кода под различные платформы


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


4 Обоснование выбора инструментария разработки

4.1 Серверная часть


Для программной реализации серверной части выбор стоял между несколькими языками: Java, Goland, C++, Python. Каждый инструмент из списка имеет свои достоинства и недостатки, поэтому для оптимального выбора был проведен сравнительный анализ описанных языков. После изучения уже существующих систем были выявлены основные возможности языков программирования, которые максимально эффективно позволят построить поисковый сервер:

  1. Типизация;

  2. Ручное управление памятью;

  3. Определение типов в Runtime;

  4. Поддержка многопоточности;

  5. Удобство интеграции сторонних расширений.

Кроме того, следует учитывать удобство и скорость разработки, а также наличие инструментов тестирования и отладки программы или отдельной ее части. Результаты анализа приведены в сравнительной таблице.
Таблица 1 – Сравнение серверных языков программирования

Возможности

Языки

Java

Goland

C++

Python

Типизация

Статическая

Статическая

Статическая

Динамическая

Ручное управление памятью

Нет

Нет

Да

Нет

Определение типов в Runtime

Да

Нет

Нет/Да

Да

Поддержка многопоточности

Да

Да

Да

Да

Удобство интеграции сторонних расширений

Да

Нет/Да

Нет

Да

На основании описанных выше необходимых возможностей языка программирования был проведен сравнительный анализ и сделаны выводы на основании результатов, представленных в таблице выше.
Для программной реализации был выбрал язык программирования Java, так как он подходит для данной задачи лучше, чем остальные языки. Кроме того, для работы сервера необходима поддержка RestApi, а значит необходим удобный инструмент для внедрения сторонних зависимостей в проект.
Java поддерживает автоматические сборщики проектов, которые позволят использовать сторонние расширения максимально эффективно.
Для хранения и обработки запросов необходимо выбрать удобный тестовый формат для хранения данных. Был проверен сравнительный анализ среди самых популярных инструментов – JSON, XML, YAML, INI, Tree. Оценки характеристик ведутся по пятибалльной шкале.
Таблица 2 – Сравнение текстовых форматов хранения данных

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

Форматы

JSON

XML

YAML

INI

Tree

Человекопонятность

3

1

4

5

5

Удобство редактирования

3

1

4

5

5

Произвольная иерархия

3

3

3

1

5

Простота реализации

3

2

1

5

5

Скорость парсинга/сериализации

3

1

1

5

5

Размер в сериализованном виде

3

1

4

5

5

Поддержка поточной обработки

0

0

5

5

5

Бинарная безопасность

3

0

0

0

5

Распространённость

5

5

3

3

0

Поддержка редакторами

5

5

3

5

1

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

5

5

3

5

1

Заметим, что языки программирования Java и Python удовлетворяют всем необходимым требованиям, но Java помимо прочих характеристик имеет статическую типизацию, что обеспечивает более удобную отладку для исправления ошибок.
Для программной реализации поискового сервера нами выбран следующий инструментарий.
Java – сильно типизированный объектно-ориентированный язык программирования. Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре, с помощью виртуальной Java-машины.
JSON – текстовый формат обмена данными, основанный на JavaScript. За счет своей лаконичности по сравнению с XML, формат JSON может быть более подходящим для сериализации сложных структур.
MessagePack - это эффективный формат бинарной сериализации. Он также дает возможность обмена данными между множеством языков как JSON. Но быстрее и компактнее. Компактные числа кодируются как байт, и обычно короче, чем строковая запись и требуют лишь одного дополнительного байта для хранения в таком виде.
PostgreSQL – свободная объектно-реляционная система управления базами данных (СУБД). Базируется на языке SQL и поддерживает многие из возможностей стандарта.
Redis – сетевое журналируемое хранилище данных типа ключ-значения с открытым исходным кодом. Нереляционная высокопроизводительная СУБД, хранит базу данных в оперативной памяти, снабжена механизмами снимком и журналирования для обеспечения постоянного хранения на диске.

Download 70.69 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling