Файл: М инобрнауки россии федеральное государственное бюджетное образовательное учреждение высшего образования Национальный исследовательский университет мэи.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 631

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1.2 ФИАС и БД


ФИАС – это адресная система, обеспечивающая формирование, ведение и использование сведений об адресах РФ. Всю информацию о данной системе можно найти на официальном, государственном сайте налоговой.

Информационным продуктом ФИАС является БД со всеми адресными объектами РФ. В состав данного продукта входят актуальные и исторические данные. Изучив сайт налоговой, можно узнать, что база ведётся в двух форматах:

  1. КЛАДР;

  2. ГАР.

КЛАДР – это ведомственный классификатор ФНС РФ, созданный для разделения территорий между налоговыми инспекциями. Распространяется БД в виде набора DBF фалов, это стандартный формат хранения данных в системах управления данными последняя версия которого вышла в 1997 году. Поскольку формат КЛАДР имеет недочёты, например, неоднозначность, проявляющуюся в виде нескольких разных адресов, ссылающихся на один и тот же объект, то с 2013 года начался переход на классификатор ГАР.

ГАР – реестр, содержащий адреса объектов налогообложения: участки, дома, квартиры и др. Распространяется в виде набора XML файлов, этот современный формат предназначен для хранения структурированных иерархических данных, он имеет большое количество достоинств. ГАР содержит информацию аналогичную КЛАДР, основным отличием является изменённая структура данных и добавленный уникальный идентификатор, который решает проблему неоднозначности данных.

Поскольку структура данный отличается в ГАР и КЛАДР, то есть и разница в объёме файлов, из которых состоят БД. Современный формат выгрузки данных ГАР распространяется в заархивированном виде и представляет собой тридцать пять гигабайт информации в сжатом виде рис. 1.7, в распакованном виде размер БД будет более шестидесяти гигабайт. Формат КЛАДР обладает меньшим объёмом, сорок девять мегабайт, данный в сжатом виде рис. 1.8, разархивированная БД будет весить пятьсот мегабайт.


Рисунок 1.7 — Сайт ФИАС БД в формате ГАР



Рисунок 1.8 — Сайт ФИАС БД в формате КЛАДР

Таким образом можно сделать вывод, что иная структура данных формата КЛАДР даёт преимущество по сравнению с ГАР в объёме
занимаемого пространства, но современный формат является более прогрессивным решением, устраняющим проблемы предшественника. Но поскольку данная работа подразумевает разработку мобильного приложения, то вопрос объёма данных играет важную роль. Сейчас тенденция развития мобильных устройств ведёт производителей к увеличению минимального объёма накопителя до ста двадцати восьми гигабайт, что является довольно большим показателем, но поскольку БД в формате ГАР придётся разархивировать, чтобы достать данные, то только этот фактор приведёт к заполнению половины пространства устройства и такой размер информации не позволит владельцам смартфонов с меньшим объёмом накопителя пользоваться приложением. Стоит придать значение и вычислительной мощности устройств, поскольку смартфоны Android имеют широкий спектр процессоров, то желательно снизить нагрузку на железо, чтобы устройства с меньшей частотой смогли справиться с обработкой данных, для этого так же желательно работать с наименьшим объёмом данных. Итогом полученной информации является то, что наиболее благоприятным форматом для работы на мобильном устройстве является КЛАДР.

1.3 Обзор аналогов


Полностью аналогичных данному проекту решений найдено не было, но есть альтернативные варианты в виде API: ФИАС в облаке и DaData. Достоинствами данных решений является лёгкость интеграции и предоставление доступа к актуальной версии БД ФИАС. Недостатком DaData и ФИАС в облаке является то, что они выполнены в виде веб-сервисов это значит, что скорость работы и доступность зависят напрямую от наличия и скорости интернет-соединения.

Главной проблемой в использовании DaData и ФИАС в облаке является то, что бесплатное использование сервисов имеет ограничения: не приоритетная обработка запроса при большой нагрузке на сервера, наличие копирайта, ограничение частоты запросов и создания соединений. Стоимость же ФИАС в облаке является довольно существенной для простого пользователя представлена на рис. 1.9.





Рисунок 1.9 – Тарифы ФИАС в облаке

Данный же проект, предоставляя возможность использовать БД ФИАС в автономном режиме, что означает без наличия интернет-соединения, это позволит пользователям использовать БД в любой момент времени, а скорость работы будет зависеть только от мощности устройства, на котором используется мобильное приложение, актуальность же БД будет зависеть от пользователя, который сам решит, когда ему стоит обновиться. Пользователь не будет ограничен в использовании БД тем самым текущая работа превосходит аналоги в виде API DaData и ФИАС в облаке.

1.4 Инструментальные средства разработки


Официальными языками программирования для Android приложений являются Java и Kotlin, которые предполагается использовать совместно с интегрированной средой разработки Android Studio. Данные инструменты разработки активно развиваются и пользуются большим спросов в разработке мобильных приложений.

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

React Native это кроссплатформенный фреймворк созданный компанией Facebook. Для разработки приложений используется язык JavaScript и библиотеки React. Основной недостаток которого это присутствие в архитектуре моста, снижающего скорость работы с платформенной функциональностью и графическим окружением [5].

Xamarin это кроссплатформенный фреймворк разработанный компанией Microsoft. Данная разработка примечательна тем, что позволяет использовать популярную платформу .NET, что является преимуществом. Классический̆ Xamarin предоставляет полный̆ доступ к нативным API, то есть можно создавать нативные приложения IOS, Android с помощью C# без единой̆ строчки на Objective C и Java. Нативные библиотеки подключаются через механизм байндинга (Native Library Binding). Взаимодействие с ОС происходит через мост и механизм оберток (wrappers), однако нет необходимости сериализовать данные, так как осуществляется автоматический маршалинг и есть возможность прямой̆ передачи ссылок между средами Mono Managed и Native. Можно также использовать большое количество .NET библиотек из NuGet [5].

Flutter это недавно появившийся фреймворк разработанный компанией Google для кроссплатформенной разработки. Данный инструмент за короткий промежуток времени завоевал популярность в связи с тем имеет большое и активно развивающееся сообщество. Flutter в качестве моста в своей архитектуре для интеграции с операционной̆ системой̆ использует так называемые каналы платформы, которые позволяют передавать и обрабатывать сообщения между Dart – кодом и нативной частью. Фактически это общая шина данных, через которую отправляются сообщения. При этом стоит помнить
, что, как и любой̆ мост, каналы платформы также преобразуют данные, что может привести к потерям производительности при неумелом использовании [5].

Общая информация об инструментах разработки представлено на таблице 1.

Таблица 1

Общая информация




React Native

Flutter

Xamarin

Android Native

Год выхода

2015

2017

2011

2008

Дата последнего обновления

25.06.2022

15.10.2022

26.07.2022

13.07.2022

Язык

JavaScript, TypeScript

Dart

C#

Java, Kotlin


Стоит обратить внимание на годы выхода данных инструментов, Flutter является недавно появившимся фреймворком и использует молодой язык программирования Dart, это значит, что количество и разнообразие библиотек, созданных разработчиками, будет скуднее чем на более зрелых фреймворках. React Native так же относительно недавняя разработка, что может вызывать те же проблемы, что и у Flutter, таким образом наиболее зрелым кроссплатформенным инструментом является Xamarin.

Согласно опросу Developer Survey Results [6] проводимого StackOverflow за двадцать второй год рис. 1.10 большой популярностью пользуются языки программирования TypeScript, Java, C#, эта наглядно демонстрирует какие языки активно используются сообществом, это значит, что материалов по разработке на данных языках будет большое количество, что упростит процесс реализации проекта. Языки Kotlin, Dart напротив сильно отстают от остальных.



Рисунок 1.10 – Статистика популярности языков программирования

Если рассматривать на том же ресурсе статистику по различным фреймворкам [6] рис. 1.11, то можно заметить, что наибольшей популярностью пользуется платформа .NET, которая используется в Xamarin, второе место среди инструментов мобильной разработки занимает Flutter, а третье React Native.