Значительный парк техники и огромное количество полей и возделываемых культур требуют постоянного мониторинга. В сельском хозяйстве большое количество информации имеет геопространственную привязку, применение геоинформационных систем являются эффективным средством консолидации и обработки информации.
Принципиальная схема работы системы:
- на транспортное средство устанавливается бортовое оборудование, которое по сигналам спутников системы GPS определяет местоположение, скорость, направление движения объекта, время движения, а также контролирует состояние датчиков и записывает их в энергонезависимую память.
- собранные данные кодируются и через каналы передачи данных сети GSM и интернет поступают на диспетчерское место. Передаваемая информация включает в себя сведения о точном местоположении, текущем времени с указанием дня, месяца и года, а также кислотность почвы, содержание элементов азота, фосфора и калия. Схема представлена на рисунке 2.2.
Обмен данными между блоком управления и диспетчерским центром производится дистанционно при помощи комбинации ресурсов сетей GSM и Internet. В основе этой технологии лежит предоставление GSM-сетью услуги прямого доступа к почтовым серверам сети Internet с использованием технологии GPRS. При использовании GPRS информация собирается в пакеты и передаётся через неиспользуемые в данный момент голосовые каналы, такая технология предполагает более эффективное использование ресурсов сети GSM.
Рисунок 2.1 - Схема движения данных
Существует несколько способов передачи данных по каналам GSM:
- SMS(ShortMessageService) - служба коротких сообщений;
- CSD(CircuitSwitchedData) - канальная передача данных(стандартный голосовой канал);
- GPRS (GeneralPacketRadioService) - пакетная передача данных по каналам CSD.- самый старый вид передачи байтов по сети беспроводного телефонного оператора. Разрабатывалась специально для передачи коротких сообщений, можно даже сказать команд - размер одной посылки не может превышать 160 символов. В случаях использовании языка, отличного от английского, количество допустимых символов снижается в два раза ввиду использования другой кодировки (одной, где на один символ тратится 2 байта, вместо другой, где на символ - 1 байт). Можно использовать при небольшом объеме и числе информационных посылок, например, раз в смену/день/сутки оператор удаленно снимает состояния датчиков системы. Особый минус - отсутствие гарантии 100-процентной доставки сообщения, что не позволяет ее использовать для оперативно-критических бизнес-приложений. Особенно это очевидно в «час-пик» - например, в первые часы нового года.. Канальный режим. Голосовой канал без участия GPRS. Режим в 90% случаев представлен в виде HSCSD технологии - высокоскоростной передачи данных с коммутацией каналов. Принцип работы такой: строится надежное соединение(канал) «пир-ту-пир»(точка-точка) между клиентом и базовой станцией, осуществляется передача любого объема информации. Скорость по такому каналу без мультиплексирования составляет 9600 Кбит/с. При мультиплексировании может достигать 19 200 Кбит/с и выше. Первая реализация WAP, и по сей день работает. Минус - дороговизна стоимости передачи полезной информации по каналу, плюс накладные расходы на установление соединения(от 2 до 20 секунд), причем тарификация - посекундная.. Пакетный режим. В отличии от обычного канального (голосового), здесь используется виртуальный канал, который базируется на свободных в данный момент каналах. Ввиду того, что при передаче данных не монополизируется целый канал, тарификация идет по объему передаваемых данных. Следует учесть, что предпочтение всегда отдается голосу, т.е. если абонент пытается сделать звонок, то базовая станция выделит ему свободный канальный, если такое возможно, для реализации звонка вне зависимости используется ли он в пакетном режиме. При этом базовая станция будет искать/выжидать свободный/освободившийся, чтобы продолжить передачу данных в пакетном режиме. В такой ситуации неизбежны задержки. Технология GPRS использует GMSK-модуляцию. В зависимости от качества радиосигнала, данные, пересылаемые по радиоэфиру, кодируются по одной из 4-х кодовых схем (CS1-CS4). Каждая кодовая схема характеризуется избыточностью кодирования и помехоустойчивостью, и выбирается автоматически в зависимости от качества радиосигнала. Диспетчерская станция должна иметь доступ к сети Internet для получения электронной почты [6].
Теоретически скорость передачи данных в пакетном режиме равна 170 Кбит/с. В реальности - 50-90 Кбит/с в зависимости от загрузки станции.
Такжестоитотметитьтехнологию EDGE(Enhanced Data rates for GSM Evolution). EDGE может работать как с CSD(+HSCSD), так и GPRS. Существенное преимущество - это скорость передачи данных. В сетях GRPS может достигать до 474 Кбит/с. В реальности - зависит от множества причин и ее реализации у оператора связи.
С точки зрения обеспечения режима «реального времени» и экономии средств, способ e-mail через GPRS передачи данных является самым практичным.
Полученные данные анализируются и выдаются диспетчеру в
текстовом виде или с использованием картографической информации.
Технология взаимодействия, в которой одна программа запрашивает выполнение какой-либо совокупности действий ("запрашивает услугу"), а другая ее выполняет, называется технологией "клиент-сервер". Участники такого взаимодействия называются соответственно клиентом (client) и сервером (server). Достаточно часто клиентом (или сервером) называют компьютеры, на которых функционирует то или иное клиентское (или серверное) программное обеспечение.
Разрабатываемое программное обеспечениебудет использовать трёхзвенную архитектуру (рисунок 2.3). Такая архитектура включает следующие звенья:
- сервер баз данных (DB Server). БД используется для хранения всех данных приложения. В качестве сервера баз данных используется MySQL;
- сервер приложений (web-сайт);
- клиенты.
Клиентский уровень занимает броузер, на уровне сервера находится сервер БД, а на промежуточном уровне располагаются Web-сервер и программа расширения сервера. Такое архитектурное решение позволяет уменьшить сетевой трафик, делает компоненты взаимозаменяемыми и повышает уровень безопасности. Однако такая архитектура также затрудняет обработку транзакций БД ввиду природы протокола HTTP, не запоминающего состояния (этот протокол использует для передачи данных между броузером и сервером БД).
Броузер посылает Web-серверу запросы на доставку
Web-страниц или данных. Web-сервер обслуживает заявки на Web-страницы, а
запросы отправляет программе-расширению серверной части. Последняя принимает
передаваемые ей запросы, преобразует их в форму, понятную серверу БД, и
передает их серверу БД.
Рисунок 2.2 - Трехуровневая архитектура
Затем сервер БД выполняет работу по обслуживанию запроса и возвращает результат программе-расширению серверной части. Наконец та преобразует результаты в формат, приемлемый для броузера, и передает их web-серверу, а тот в свою очередь - браузеру.
Для обеспечения масштабируемости и отказоустойчивости звена сервера приложений это звено может исполняться в виде нескольких серверных инстанций. Обычно каждая инстанция запускается на отдельном узле. При подключении клиента к серверу приложений сервисная инфраструктура автоматически выбирает доступные инстанции и балансирует нагрузку между ними.
В рамках каждой инстанции исполняется определённый администратором системы набор модулей. Модули системы взаимодействуют по протоколу SOAP, поэтому могут взаимодействовать как модули, запущенные в рамках одной инстанции, так и модули разных инстанций.
Основные преимущества трехуровневой архитектуры на основе:
- высокая производительность системы;
- высокая нагрузочная способность;
- масштабируемость;
- защищенность БД от несанкционированного доступа, т.к. внешний пользователь соединяется не напрямую с базой данных;
- поддержка работы системы в режиме 24 часа 7 дней в неделю;
- поддержка сетевых протоколов: TCP IP, IPX, NamedPipes;
- активный двунаправленный обмен
управляющими воздействиями между клиентом и сервером приложения [7].
Учет сельскохозяйственных угодий и их мониторинг базируется на привязке данных полученных с бортовых терминалов техники к полю с помощью картографических сервисов, таких как yandexmap, OpenStreetMap, maps.rambler. Все они имеют собственную среду разработки для программистов.
На основе проведенного анализа, был выбран картографический web-сервис Google maps с собственной API, так как он наиболее документирован, прост в использовании, постоянно совершенствуется, имеет наиболее подробную карту не только Беларуси, но и всего мира, чего нельзя сказать о других сервисах, предоставляющих информацию об ограниченном количестве стран.
Карты Google - набор приложений, построенных на основе бесплатного картографического сервиса и технологии, предоставляемых компанией «Google». Сервис представляет собой карту и спутниковые снимки всего мира. С сервисом интегрирован бизнес-справочник и карта автомобильных дорог, с поиском маршрутов, охватывающая США, Канаду, Японию, Россию, Гонконг, Китай, Великобританию, Ирландию (только центры городов) и некоторые районы Европы. Доступ к данным несколько ограничен навигацией и максимально упрощен. Для просмотра данных никакого специального программного обеспечения не требуется. Удобство навигации обусловлено использованием технологии AJAX, позволяющей обновлять содержимое страницы без ее перезагрузки, таким образом осуществляется изменение масштаба и перемещение по карте без каких-либо задержек.
Существует возможность использовать сервис Google Maps в качестве основы для своих сторонних сервисов. Google создали API для Google Maps с целью привлечь разработчиков к интеграции Google Maps в их веб-сайты с их геоданными.
API Карт Google предоставляет разработчикам несколько способов встраивания Карт Google в веб-страницы, с обширными возможностями по настройке. Существует несколько API Карт: для JavaScript, для Flash, API статических карт. Кроме того предлагаетсяAPIмапплетов, позволяющий создавать мини-приложения, выполняющиеся внутри Карт Google. В зависимости отпотребностей, вы можете использовать один из этих API, или их комбинацию.
Авторы и клиенты могут локально дополнять карту своими данными. Несложные команды позволяют добавить на карту собственные контуры, маркеры, интерактивные подсказки и всплывающие окна. Данные для отображения могут находиться как непосредственно в коде web-страниц, так и во внешних файлах. В систему управления поведением карты включены стандартные возможности навигации и анимации. Имеется возможность создавать тематические слои непосредственно в режиме просмотра web страницы, подобно заполнению формы.
Используя Google Maps API, возможно включить любую
карту из Google Maps на внешнем сайте, управляя этой картой через JavaScript, например, для
добавления маркеров географических точек, приближения или удаления при
просмотре карт [8].
Для выполнения поставленной задачи был выбран скриптовый язык программирования динамических web-сайтов - PHP. В области программирования для Сети PHP - один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т.п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя.поддерживает работу с ODBC и большое количество баз данных: MySQL, MSQL, Oracle, PostgreSQL, SQLite и др.
Язык программирования PHP, особенно в связке с популярнейшей базой данных MySQL - оптимальный вариант для создания интернет-сайтов различной сложности.
Язык PHP постоянно совершенствуется, и ему обеспечено долгое доминирование в области языков web-программирования [9].
Для хранения информации выбран MySQL - быстрый многопоточный, многопользовательский надежный SQL-сервер баз данных. (SQL - язык структурированных запросов). Сервер MySQL предназначен для разнообразных систем - от маленьких сайтов до крупных интернет-проектов. Сейчас это самый распространенный сервер баз данных в сети интернет. MySQL - это система управления реляционными базами данных. В реляционной базе данных данные хранятся в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой, есть возможность объединять при выполнении запроса данные из нескольких таблиц.
Для работы SQL-сервера используется Apache - это самый популярный и распространенный в интернете web-сервер. Это программа, которая осуществляет прием запросов по протоколу http, их обработку и передачу посетителю сервера ответа в виде запрошенных им html-документов, картинок и файлов.
Apache настраивается через файл конфигурации (httpd.conf), в который администратор помещает инструкции, управляющие функционированием web-сервера.
Как правило, администраторы сервера не допускают программистов, создающих на сервере сайты, к настройкам httpd.conf. Тем более, невозможно это на серверах хостинговых компаний.
Но веб-программист все-таки может настроить сервер для нужд своего сайта. В Apache есть великолепная возможность децентрализованного управления конфигурацией с помощью использования специальных файлов, которые помещаются на диске прямо в веб-пространстве виртуального сервера. Эти файлы называются.htaccess (обязательно первый символ в названии файла - точка). Администратор сервера может менять имя таких файлов по своему желанию с помощью директивы AccessFileName в главном файле конфигурации, но это, как правило, не делается.
Действие директив из файла.htaccess распространяется и на подкаталоги того каталога, в котором этот файл размещен. Но если в каталоге есть свой.htaccess, то его директивы перекрывают действие директив файла из внешнего каталога. Файл.htaccess перечитывается при каждом обращении к веб-серверу, так что изменения, внесенные в этот файл, вступают в силу немедленно. Сервер не надо перезапускать, а настройки.htaccess никаким образом не затрагивают другие виртуальные сервера.
Синтаксис файлов.htaccess аналогичен синтаксису файла конфигурации httpd.conf. Однако, администратор может ограничивать с помощью директивы AllowOverride для пользователей доступ к тем или иным директивам в htaccess. Так, на хостингах, как правило, запрещают изменять с помощью.htaccess директивы категории limit - например, максимальный срок выполнения php-скриптов (30 сек.) и максимальный размер загружаемого файла (2 Мб).
Поскольку файл.htaccess является служебным, то он не должен быть доступен web-пользователю из браузера. По умолчанию сервер конфигурируется именно так, но если администратор решил переименовать.htaccess во что-то другое, то невозможность его просмотра через браузер администратору придется настраивать отдельно.
Считается, что использование файла.htaccess тормозит работу сервера и замедляет выдачу сайта пользователю. Это действительно так, но это замедление принебрежимо мало, а в сравнении с той пользой, которую приносит использование этого файла, столь ничтожным "торможением" можно и вовсе принебречь.
Ошибка в файле.htaccess вызывает код ответа 500 - InternalServerError.
На всех серьезных хостингах использование файла.htaccess разрешено, как правило, лишь с небольшими ограничениями. К сожалению, на небольших серверах в различных организациях администраторы очень любят запрещать использование.htaccess. Хотя, при грамотных настройках httpd.conf и самого.htaccess его использование совершенно безопасно и очень здорово расширяет возможности сайта.
База данных должна:
- хранить информацию о параметрах полей, их характеристиках, сведения полученых с бортового оборудования;
- быть открытой к расширению, дополнению и редактированию;
- обеспечивать получение оперативных сводок;
- обеспечивать поиск данных по заданным параметрам (номер поля, история операций, параметры сельскохозяйственных культур).
Для программного доступа к объектам приложений предназначен JavaScript- объектно-ориентированный скриптовый язык программирования.обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обусловливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам - функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания - что придаёт языку дополнительную гибкость.
Для взаимодействия JavaScript с картами Google создали API для Google Maps с целью привлечь разработчиков к интеграции Google Maps в их web-сайты с их геоданными. Это бесплатная служба, на сегодняшний день, не содержащая рекламы.