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

УДК 004.3 РАЗРАБОТКА

УНИВЕРСАЛЬНОГО МОДУЛЯ ИМПОРТА ДАННЫХ В ИНФОРМАЦИОННУЮ СИСТЕМУ УЧЁТА

СЕЛЬСКОХОЗЯЙСТВЕННЫХ ЖИВОТНЫХ

А.Т. Грушко, А.Е. Мищенко, П.И. Кучеров

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

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

возможные конфликты, влияющие на целостность данных. Ключевые слова: программно-аппаратные комплексы,

UDC 004.3

DEVELOPMENT OF A UNIVERSAL DATA IMPORT MODULE IN ^ THE ACCOUNTING INFORMATION SYSTEM OF FARM ANIMALS

Grushko A.T., Mischenko A.E., Kucherov P.I.

Federal State Budgetary Scientific Institution "All-Russian Research Institute of Sheep and Goat Breeding"

The article describes the functional capabilitis of the module for importing data from text files into the information system of accounting, collection,

consolidation and analysis of data. The work of the import module is demonstrated using the example of automated loading of data characterizing the main measurements of sheep. The algorithm of data loading is presented, the main problems that users may encounter while working with the system are indicated. There are demonstrated the approaches allouwing to prevent possible conflicts that affect the integrity of the data. Key words: software and hardware complexes, integration, software as a service, free software, web

интеграция, программное

обеспечение как услуга, свободное programming, object-oriented программное обеспечение, web- programming, open source, DSV, программиро-вание, объектно- delimiter-separated values ориентиро-ванное программирование, open source DSV, значения, отделённые ограничителем

Одной из задач в рамках проводимых научных исследований была

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

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

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

- получаем данные с.-х. предприятия, к которому привязан пользователь;

- делаем проверку обязательных полей на наличие данных, при их отсутствии открываем для пользователя форму для ввода недостающих данных;

- делаем выборку всех животных, принадлежащих данному хозяйству, ЕСЛИ RFID-номер в НД и файле TSV совпадают, то выполняем операцию «update» для полей № левого уха и № правого уха, ЕСЛИ они не равны NULL;

- Если RFID не совпадает, делаем проверку по полям № левого уха и № правого уха, если данные в обрабатываемой строке соответствуют обоим номерам на 100%, то выполняем операцию «update» поля RFID;

- Если RFID не найден и поля № левого уха и № правого уха, также не обнаруживаются среди животных этого хозяйства, то применяется операция добавления «insert», то есть происходит создание новой карточки животного;

- производим вставку данных в учетную форму в соответствии с идентификационными данными животного.

При импорте файла TSV в базу данных возникает резонный вопрос: "в каком случае необходимо выполнять операцию insert, а в каком update?" - другими словами, в каком случае необходимо создать новую карточку и записать в неё данные, а в каком найти животное в базе и при необходимости провести обновление одного или нескольких значений.

Для того чтобы ответить да данный вопрос, рассмотрим более подробно структуру выходного файла TSV, который, в нашем конкретном случае, всегда содержит три части: часть 1 - это идентификационные данные животного; часть 2 - это данные, соответствующие какой-либо "Отчетной форме в БД";

часть 3 - системные данные.

В качестве примера будет рассмотрена загрузка данных,

характеризующих основные промеры овец. Здесь к идентификационным данным (часть 1) относится информация, находящаяся в следующих полях:

- RFID-номер;

- № левого уха;

- № правого уха;

- дата рождения;

- тип (вид животного);

- пол.

Часть 2 соответствует учетной форме «Основные промеры» овец. При этом следует учитывать, что информация учетной формы «Основные промеры» подразделяется на два раздела по однородности данных - «Промеры» и «Живая масса», которые представлены следующими полями: раздел «Промеры»:

- высота в крестце, см;

- высота спины, см;

- высота в холке, см;

- длина корпуса, см;

- обхват пясти, см;

- ширина груди за лопатками, см;

- ширина в маклоках, см;

раздел «Живая масса»:

- вес, кг.

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

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

Количество импортируемой информации составляет 20 строк, каждая из которых соответствует одному животному экспериментального стада. При этом RFID-номера четырех животных отсутствуют в системе, такие как: 999000003200348; 999000032000376; 999000032000644; 999000032000702.

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

999000032000644; 999000032000702.

Для импорта данных в базу пользователю предоставляется окно для выбора соответствующего TSV - файла (рис. 1).

J I «»steHtatfiri/pd' к

f С Qisttlcodinlciyj.ib.|:<l'»!p<lriflarl.ntnüciicd<:ry

i" Сек» * i:c*n«ii ф Q >r>u« i/i lyyi. м Ixtntciimix. Ij/ '¿fWanw. ¿buecc fWrni. Q ^ / NuwilCOii. / НктаимЮ*:. •

Рис. 1 - Форма для выбора TSV - файла для импорта

После выбора соответствующего файла и нажатия кнопки «загрузить» пользователю показывается вспомогательное окно для корректировки данных обязательных полей и вывода на экран результатов импорта (рис. 2).

Импортировать Миш с ycipotciu

.о.-ичосто iHjmpivpow-MUT crpo« 18

tHnnog rociutM^e ддплыс

ЛУ. 06844, ПУ . RflD 9>Э0О000ОЭ0СО45й д p 2013 ЛУ 2S5, ПУ. , RTID. 9ЭХС1007ВИЕ23. л p 2013 ЛУ 0Ь&8/. ПУ RFID ЭЭ9аЭ1007в42771.др 2013 ЛУ IT/ liS WHO 9^00030000000/. Д p 2013

ЛУ 260 ГТУ , RFID 99SOOOOOVOOJ48. д p 201) _"

No 1"е«ое V» о Лсаог у>о Дгг» из 1»п»л»этчзгз Поп Bucntintnj! Рьггпслг-ь

995000032000644 oseu 01 012013 061*1 64 65

S0COX032C00702 252 OdLkJ 64 66

« 3 >

Ргдзгт&овзт»

Hcnpaar«wtu< данмде

Рис. 2 - Форма корректировки результатов импорта

Как видно из рисунка 3, в соответствии с алгоритмом, описанным выше, для животных с номерами 999000003200348 и 999000032000376 была вызвана операция «insert» (добавления новой карточки). В результате данной операции в базе данных создалась соответствующая запись, после чего учетные данные были занесены в соответствующую форму. Кроме того, из рисунка 3 видно, что животные с номерами 999000032000644 и 999000032000702 не были импортированы, так как у них не заполнены обязательные поля. Эти животные были помещены в раздел «Некорректные данные». Пользователю предоставлена возможность внести соответствующие изменения и импортировать данные, характеризующие животных. Как показано на рисунке 3, для этого необходимо выбрать некорректную строку и нажать кнопку «редактировать».

><1/»!р(1 герогт^е™ репс<1ю?у

Иигюрт^оплт*. дхныо с устрсйсты

• с С ТОО яихртурэюлш» стро«

к

ГУ 0БЫ1 ПУ НПО 999000000X0496 д р гоп

лу 265 ПУ .ятю 5«со100Ш1а20.ар 2013 лу се.«? пу нио у/юоогаат. д |> го«з

ПУ ГС/ 25Э. И=Ю «КОООООООМО/, Л р 2013 ЛУ 2со ПУ , ипо к<уаюэозаз:ш др 2013

Рис. 3 - Вызов редактирующей формы для корректировки данных

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

О С о: Ш , -) 181 С 1С1С

Рис. 4 - Форма редактирования классификатора «Карточка животного»

После внесенных изменений и сохранения результатов пользователю предоставляется возможность продолжить импорт данных нажатием на кнопку «Импортировать данные» (рис. 5]

I

Рис. 5 - Возобновление импорта данных Как видно из рисунка, значение поля «Количество импортированных строк» поменялось с 18 на цифру 19, а одна строка из поля «Некорректные данные» переместилась в лог поля «Исправленные данные».

В результате выполнения операции по импорту данных в учетную форму «Основные промеры овец» были автоматически добавлены данные как в раздел «промеры» (рис. 6), так и в раздел «живая масса» (рис.7).

>!р(1 4X4/1.94.11431

вОС - (и«й

- О» Эа »14

Тестовые данные 999000003200348 999000032000376 999000032000644 999000032000702

I 1X2 1ЛУ 05ви (У/ В^гЭ д р МЧ

• IX? I ?1'ч .1у гг» ими тансссос«л др язи

' 1ЭШ 1 - ЛУ ГН И' О МШХХЯОМлг др IV) I I гш - .ТУ го гт/ кпп хо 71*1

? 1 ш • Яг <ысо п/ шо »лихалсизть д Р я* з

• »эт? < г*» лу <ули вяг («ошшош к ян 1IX? Iпу г1? но тоеюсотса ар л"<

1 -»22 »• ЛУ 0К22 П/ . ВЛ0 «г5»ХОХ«0ООП л р М*) I !Х? I >М - .ТУ 0Ы20 ти ЙГЮ тшшохп д р Я'4

«40

«40 [" СЮ

«о :

«)0 по

72 Ь

ио

«о ко «о »10 по МО »10 И0

•ЙО «'О 420 «7 0 ПО «0 «О

о! -I ц $ » С г

Рис. 6 - Данные раздела «Промеры»

/ А г**«  ^ ^ жУ л г лги ж

у 1

НКфЫМ V i.-fJKb»«« - Ctffi«»J> - » I5ÖC • OWM« Ca г»рцч» тс -pjrr«i

Ctxuu >|<WVW с««ц »hJ«i»,4ia

Г. в10С2М И 0»K»15

Km« unit

у IMMMViUWk ('ИМ у'СваЫм^Ч OtuwWk

мои t 1С€3-Гг/ X¿ ГУ Pf С KíCCIüüTai-ÜJ ар ICH 4J0

t tau i to*j-nv (тли m- но iwmimiUM яр 30» q

"0Wt?Jt9 rv fifO МОШШШ) ар ли ио

• IHR t 7VI w otwr. ПУ . FTKJ а P гоп iJ q < •002 t2W1-ÍV 26Q ГУ fifO KíCaXOMWW! dp »13 uo ' IUC I №U1 № ШОШШ1М AP »13 4,0 "rtW 1 гу.1 r,f &АЧ fif ID Э*0ХЛ<Жтм A P К1У 4/ n

• нил?лз-гг/ л? uro mxccsjvcciu дР ли 4,а » 'OOS 1 »T Г/ 05522 г/ BFO «ЭДСГОТОте?* др 201> иа

« и 1 € íC Í С'1 " -"КУР

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

Проми»

Тестовые данные 999000003200348 999000032000376 999000032000644 999000032000702

о О

Список литературы:

1. Астапов, В.А. Изучение жизненного цикла документов, оказывающих влияние на отраслевые бизнес-процессы / В.А. Астапов, Д.Е. Белов, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 2. -№ 6 (1). -С. 279-285.

2. Белов, Д.Е. Сопоставление реляционной модели данных и принципов объектно-ориентированного программирования для разработки информационно-вычислительных систем / Д.Е. Белов, А.Ф. Шалин, В.А. Астапов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 2.- № 6 (1). -С. 293-300.

3. Белов, Д.Е. Инновационные аспекты в кормлении сельскохозяйственных животных / Д.Е. Белов, Ю.Д. Квитко, Б.Т. Абилов, Н.Ю. Скабелкина // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2011. -Т. 1. -№ 4-1. -С. 68-70.

4. Белов, Д.Е. Исследование и интеграция библиотек, реализующих математические методы оптимизации / Д.Е. Белов, А.Ф. Шалин, А.Е. Мищенко, А.Т. Грушко, П.И. Кучеров, Т.С. Поддубная, А.А. Иванников // Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. -2016. -Т. 1.- № 9. -С. 364-367.

5. Белов, Д.Е. Исследование интеграционных возможностей свободного программного обеспечения / Д.Е. Белов, А.Ф. Шалин, А.Е. Мищенко, А.Т. Грушко, П.И. Кучеров, Л.В. Нарвыш // Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. -2016. -Т. 1. -№ 9. -С. 357-360.

Белов, Д.Е. Исследование юридических аспектов использования программных библиотек в составе коммерческого продукта / Д.Е.Белов, А.Ф.Шалин, А.Е. Мищенко, А.Т.Грушко, П.И.Кучеров, И.Н. Воронкина //Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. -2016. -Т.1. -№ 9. -С. 367-370.

Белов, Д.Е. Обзор программного обеспечения Business Intelligence and Reporting Tools (BIRT) project / Д.Е. Белов, А.Е. Мищенко // Сборник научных трудов

6.

Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 2. -№ 6 (1). -С. 348-353.

8. Белов, Д.Е. Разработка кросс-платформенного, кросс-браузерного модулей ввода информации в базу данных / Д.Е. Белов, А.Ф. Шалин, И.Н. Воронкина // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 2. -№ 6 (1). -С. 307-315.

9. Белов, Д.Е. Разработка модуля авторизации пользователей и разграничения прав доступа к данным / Д.Е. Белов, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 2. -№ 6 (1). -С. 325-338.

10. Белов, Д.Е. Разработка модуля генерации отчетности, позволяющего экспортировать данные в форматы pdf, xls, doc / Д.Е. Белов, А.Ф. Шалин, И.М. Кузнецов, М.В. Макеев // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т.

2. -№ 6 (1). -С. 315-325.

11. Белов, Д.Е. Реализация базы данных, характеризующей потребление питательных веществ сельскохозяйственными животными в реляционной модели / Д.Е. Белов, А.Ф. Шалин, А.Е. Мищенко, А.Т. Грушко, П.И. Кучеров, Л.В. Нарвыш // Сборник научных трудов Всероссийского научно-исследовательского института овцеводства и козоводства. -2016. -Т. 1. -№ 9. -С. 360-364.

12. Белов, Д.Е. Технологии разработки систем управления информацией с открытым исходным кодом, проблемы внедрения в животноводстве России / Д.Е. Белов, В.В. Абонеев, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2011. -Т. 1. -№ 4-1. -С. 96-100.

13. Белов, Д.Е. Экономические факторы, определяющие стоимость владения программным обеспечением / Д.Е. Белов, А.Ф. Шалин, К.И. Костюков, А.А. Щеголев, Р.У. Салпагаров // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т.

3. -№ 6. -С. 346-350.

14. Воронкина, И.Н. Интеграция "Open Source" - продуктов с операционной системой, позволяющих достигать эффект кросс-платформенности и кросс-браузерности / И.Н. Воронкина, Д.Е. Белов, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 2. -№ 6 (1). -С. 300-307.

15. Евдокимов, И.В. Применение свободных лицензий для разработки программного обеспечения в России / И.В. Евдокимов, А.С. Михайлев, О.С. Новиков, А.В. Суханова // Международный журнал прикладных и фундаментальных исследований. -2017. -№6-1. -С. 33-36.

16. Иванников, В.П. Что такое СПО / В.П. Иванников // Механика, управление и информатика. -2011. -№5. -С. 105-109.

17. Квитко, Ю.Д. Применение математических методов для оптимизации рационов сельскохозяйственных животных // Ю.Д. Квитко, Б.Т. Абилов, Д.Е. Белов, Т.В. Ефимова, А.Ф. Шалин // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2012. -Т. 2. -№ 1. -С. 257-260.

18. Корнеев, Н.В. Анализ IaaS, PaaSи SaaS моделей облачных услуг / Н.В. Корнеев, В.А. Гончаров // Информационные технологии. Проблемы и решения. -2015. -№1-2. -С. 159-165.

19. Лавров, Д.Н. От императивного к объектно-ориентированному программированию вместе с Java и NetBeans: объектная декомпозиция и инкапсуляция / Д.Н. Лавров // Математические структуры и моделирование. -2009. -№20. -С. 178-190.

20. Лыкошин, А.С. Веб на чистой Java. Изучаем Vaadin - крутой фреймворк для создания веб-приложений / А.С. Лыкошин // Хакер. -2015. -193. -С. 90-97.

21. Макеев, М.В. Настройка Linux с организацией защищенного соединения по протоколу HTTPS. Экспериментальное внедрение программного обеспечения /

М.В. Макеев, А.Ф. Шалин, Д.Е. Белов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 2. -№ 6 (1). -С. 338-348.

22. Максимов, Д.Б. Современный инструментарий программной инженерии / Д.Б. Максимов, А.П. Трацевская, А.С. Михалев // Новая наука: Опыт, традиции, инновации. -2016.- №12-3(119). -С. 149-151.

23. Микляева, Т.В. Серверное программное обеспечение для Java-приложений / Т.В. Микляева // Научная перспектива. Изд. Инфинити (Уфа). -2014. -№ 9. -С. 59-60.

24. Назаров, И.Р. Применение методологии разработки программного обеспечения "Архитектура, управляемая моделью" / И.Р. Назаров, А.В. Аникин // Сборник научных трудов Новосибирского государственного технического университета. -2016. -№2 (84). -С. 107-115.

25. Рогозов, Ю.И. Анализ и перспективы развития разработки программного обеспечения / Ю.И. Рогозов, А.С. Свиридов, А.А. Дегтярев // Информационные технологии. -2011. -№12. -С. 16-21.

26. Романов, В.П. Основные тенденции развития корпоративных информационных систем / В.П. Романов, А.В. Коряковский, А.О. Варфоламеева // Инициативы XXI века. -2012. -№4. -С. 50-52.

27. Рудакова, Г.М. Разработка метрик сложности кода модуля тестов / Г.М. Рудакова, Д.О. Кожевников // Образовательные ресурсы и технологии -2017. -2 (июнь). -С. 33-36.

28. Уваров, А.Н. Инверсия управления и внедрение зависимостей / А.Н. Уваров // Символ науки. -2016. -10-1 (октябрь).-С. 28-32.

29. Харитонов, Д.И. Формализация иерархии имён в языках объектно-ориентированного программирования / Д.И. Харитонов, Г.В. Тарасов, Р.В. Парахин, Е.А. Голенков, Д.В. Леонтьев// International Scientific Review -2016. -18 (ноябрь). -С. 36-39.

30. Шалин, А.Ф. Возможности интеграции веб-приложений с системой облачных вычислений Google App Engine / А.Ф. Шалин, Д.Е. Белов, К.И. Костюков, А.А. Щеголев, И.М. Кузнецов, М.В. Макеев // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 3. -№ 6. -С. 360-362.

31. Шалин, А.Ф. Вопросы радиочастотной идентификации животных на основе «пассивных» электронных меток / А.Ф. Шалин, Д.Е. Белов, С.Ф. Силкина, А.А. Пикалов, И.М. Кузнецов, М.В. Макеев, К.И. Костюков, А.А. Щеголев // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 3. -№ 6. -С. 362-365.

32. Шалин, А.Ф. Описание системы целевых индикаторов, характеризующих сельскохозяйственное производство и позволяющих осуществлять поддержку оперативного управления / А.Ф. Шалин, Д.Е. Белов, А.Е. Мищенко, А.А. Пикалов // Сборник научных трудов Ставропольского научно-исследовательского института животноводства и кормопроизводства. -2013. -Т. 2. -№ 6 (1). -С. 285293.