Автоматизированная система мониторинга физического местоположения мобильного устройства на базе GPS
Программное средство должно обеспечивать получение текущей информации о местоположении мобильного устройства, его скорости и времени приема, обеспечивать передачу информации пакетами гарантированной передачи данных (TCP-IP) на удаленный хост, обеспечивать занесение полученной информации в хранилище, расположенное на стороне сервера; программа должна обеспечивать выборку данных из хранилища… Читать ещё >
Автоматизированная система мониторинга физического местоположения мобильного устройства на базе GPS (реферат, курсовая, диплом, контрольная)
- 1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
- 1.1 Основания для разработки
- 1.2 Назначение разработки
- 1.2.1 Функциональное назначение ПО
- 1.2.2 Эксплуатационное назначение ПО
- 1.3 Требования к программе
- 1.3.1 Требования к функциональным характеристикам
- 1.3.2 Требования к надежности
- 1.3.3 Условия эксплуатации
- 1.3.4 Требования к составу и параметрам технических средств
- 1.3.5 Требования к информационной и программной совместимости
- 1.4 Требования к программной документации
- 1.5 Стадии и этапы разработки
- 1.6 Порядок контроля и приемки
- 2. ВНЕШНЯЯ СПЕЦИФИКАЦИЯ
- 2.1 Наименование и шифры программного обеспечения
- 2.2 Краткое описание программного обеспечения
- 2.3 Результирующие компоненты программного обеспечения
- 2.4 Цели
- 2.5 Соглашения относительного представления материала
- 2.5.1 Обозначения
- 2.5.2 Терминология
- 2.5.3 Синтаксис
- 2.6 Генерируемое программное обеспечение
- 2.7 Системное программное обеспечение
- 2.8 Ограничения на совместимость
- 2.9 Программные ограничения
- 2.10 Аппаратные ограничения
- 2.11 Внешние ограничения
- 2.11.1 Стандарты
- 2.11.2 Внешние характеристики
- 2.12.1 Функция подписки на текущее состояние GPS
- 2.12.1.1 Результаты
- 2.12.1.2 Процессы обработки
- 2.12.1.3 Входы
- 2.12.1.4 Эргономические характеристики
- 2.12.2 Функция подписки на входящие сообщения на GPS порт
- 2.12.2.1 Результаты
- 2.12.2.2 Процессы обработки
- 2.12.2.3 Входы
- 2.12.2.4 Эргономические характеристики
- 2.12.3 Функция проверки текущего состояния подключения к сети передачи данных
- 2.12.3.1 Результаты
- 2.12.3.2 Процессы обработки
- 2.12.3.3 Входы
- 2.12.3.4 Эргономические характеристики
- 2.12.4 Функция записи в хранилище
- 2.12.4.1 Результаты
- 2.12.4.2 Процессы обработки
- 2.12.4.3 Входы
- 2.12.4.4 Эргономические характеристики
- 2.12.5 Функция авторизации пользователя
- 2.12.5.1 Результаты
- 2.12.5.2 Процессы обработки
- 2.12.5.3 Входы
- 2.12.5.4 Эргономические характеристики
- 2.12.3 Функция отправки параметров запроса на сервер
- 2.12.3.1 Результаты
- 2.12.3.2 Процессы обработки
- 2.12.3.3 Входы
- 2.12.3.4 Эргономические характеристики
- 2.12.3 Функция вывода результатов запроса пользователю
- 2.12.3.1 Результаты
- 2.12.3.2 Процессы обработки
- 2.12.3.3 Входы
- 2.12.3.4 Эргономические характеристики
- 3. ВНУТРЕННЯЯ СПЕЦИФИКАЦИЯ
- 3.1 Архитектура функций/процедур
- 3.2 Формализация логики выполнения этапов программой
- 3.3 Внутренние ограничения
- 4. ИСПОЛЬЗУЕМЫЕ МАТЕРИАЛЫ
- 4.1 Блок-схемы программного средства
- 4.2 Контрольные примеры
- 4.3 Система массового обслуживания
- 1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
1.1 Основания для разработки
1) «Приказ о закреплении темы курсовой работы», Балтийская Государственная Академия РФ;
2) «Закон о высшем образовании в редакции 2002 года», Министерство образования Российской Федерации.
1.2 Назначение разработки
1.2.1 Функциональное назначение ПО
Разрабатываемое программное средство должно обеспечивать получение мобильным устройством в реальном времени данных о своем местоположении, текущей скорости и времени; программное средство должно обеспечивать передачу данных на удаленный хост, обеспечивать запись переданной информации в хранилище, и выборку данных из хранилища через критерии, определяемые пользователем на разработанном параллельно веб-ресурсе.
1.2.2 Эксплуатационное назначение ПО
Разрабатываемое программное средство может эксплуатироваться любым рядовым пользователем мобильного устройства, отвечающего программным и аппаратным ограничениям проектируемого программного обеспечения
1.3 Требования к программе
1.3.1 Требования к функциональным характеристикам
Программное средство должно обеспечивать получение текущей информации о местоположении мобильного устройства, его скорости и времени приема, обеспечивать передачу информации пакетами гарантированной передачи данных (TCP-IP) на удаленный хост, обеспечивать занесение полученной информации в хранилище, расположенное на стороне сервера; программа должна обеспечивать выборку данных из хранилища согласно критерию, заданному пользователю с помощью веб-ресурса, а так же обеспечивать корректный вывод выбранных данных конечному пользователю.
Исходными данными для функционирования программного средства является текстовый файл настроек, хранящийся на стороне сервера, и считываемый при запуске программного средства. Выходными данными является графическая информация — результат выборки из базы данных по параметрам, определенным пользователем.
1.3.2 Требования к надежности
Программное средство в реальном времени должно обеспечивать проверку состояния всех сетевых подключений (связь со спутниками GPS, подключение к мобильной сети передачи данных) и реагировать на изменение их состояния. Так же разрабатываемый продукт должен выдавать сообщения об ошибках при неверно заданных параметрах, поддерживать диалоговый режим в рамках представляемых пользователю возможностей.
1.3.3 Условия эксплуатации
Программное средство должно корректно функционировать при стандартных условиях среды, для обслуживания и поддержания программных средств дополнительных ресурсов не требуется. Программный продукт должен быть рассчитан на рядового пользователя мобильного устройства, владеющего основными принципами работы с мобильными операционными системами.
1.3.4 Требования к составу и параметрам технических средств
Для правильной работы приложения необходимо мобильное устройство (смартфон, поддержка планшетных компьютеров не предусмотрена) с поддержкой технологии GPS и TCP/IP каналов передачи данных по каналам мобильной связи (3G, EDGE и др.).
1.3.5 Требования к информационной и программной совместимости
Для корректной работы разрабатываемого программного средства необходимо мобильное устройство на базе операционной системы Android 2.0 или выше (предыдущие версии не имеют API поддержки функций работы с GPS сигналами). Базовый язык программирования — Java.
1.4 Требования к программной документации
Состав программной документации должен включать в себя:
1) Техническое задание
2) Описание процесса разработки
3) Методики испытаний
4) Приложение
Программная документация, сопровождающая проектируемое программное средство должна отвечать следующим требованиям и стандартам:
— ГОСТ 19.001−77 ЕСПД. Общие положения;
— ГОСТ 19.101−77 ЕСПД. Виды программ и программных документов (переиздан в ноябре 1987 г с изм.);
— ГОСТ 19.102−77 ЕСПД. Стадии разработки;
— ГОСТ 19.103−77 ЕСПД. Обозначение программ и программных документов;
— ГОСТ 19.104−78 ЕСПД. Основные надписи;
— ГОСТ 19.105−78 ЕСПД. Общие требования к программным документам;
— ГОСТ 19.106−78 ЕСПД. Требования к программным документам, выполненным печатным способом;
— ГОСТ 19.201−78 ЕСПД. Техническое задание. Требования к содержанию и оформлению;
— ГОСТ 19.202−78 ЕСПД. Спецификация. Требования к содержанию и оформлению;
— ГОСТ 19.301−79 ЕСПД. Программа и методика испытаний;
— ГОСТ 19.401−78 ЕСПД. Текст программы. Требования к содержанию и оформлению;
— ГОСТ 19.402−78 ЕСПД. Описание программы;
— ГОСТ 19.404−79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению;
— ГОСТ 19.501−78 ЕСПД. Формуляр. Требования к содержанию и оформлению;
— ГОСТ 19.502−78 ЕСПД. Описание применения. Требования к содержанию и оформлению;
— ГОСТ 19.503−79 ЕСПД. Руководство системного программиста. Требования к содержанию и оформлению;
— ГОСТ 19.504−79 ЕСПД. Руководство программиста;
— ГОСТ 19.505−79 ЕСПД. Руководство оператора;
— ГОСТ 19.506−79 ЕСПД. Описание языка;
— ГОСТ 19.508−79 ЕСПД. Руководство по техническому обслуживанию. Требования к содержанию и оформлению;
— ГОСТ 19.604−78 ЕСПД. Правила внесения изменений в программные документы, выполняемые печатным способом;
— ГОСТ 19.701−90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения;
— ГОСТ 19.781−90. Обеспечение систем обработки информации программное.
1.5 Стадии и этапы разработки
Разработка программного средства должна выполняться по следующим этапам:
1) Разработка, согласование и утверждение технического задания.
Результатом выполнения данного этапа должна быть подготовленное техническое задание, на основании которого будет вестись дальнейшая разработка. Техническое задание содержится в 1 главе данной пояснительной записки.
2) Создание алгоритма программного средства.
Результатом выполнения данного этапа являются блок-схемы алгоритма проектируемого приложения. Блок-схемы приведены в главе 4.
3) Написание программного кода.
Результатом выполнения данного этапа должны быть и исходные тексты приложения и рабочий программный модуль, соответствующий предъявленным требования.
4) Защита курсовой работы.
На данном этапе проверяется соответствие разработанного приложения техническому заданию, на основе которого оно было разработано. По окончанию данного этапа выставляется оценка за защиту курсовой работы.
1.6 Порядок контроля и приемки
Объектом испытаний является проектируемое программное средство «Автоматизированная система мониторинга физического местоположения мобильного устройства на базе GPS». Целью испытаний является проверка надежности функционирования программы. Функционирование программы не должно приводить к сбою (фатальному нарушению работы системы). Организация диалога должна предусматривать защиту от ввода некорректных данных. Программа должна выдавать диагностику состояния системы и сообщения о любых возникших ошибках.
Для проведения испытаний предлагаются контрольные примеры, описание и результаты обработки которых представлены в Приложении 2.
2. ВНЕШНЯЯ СПЕЦИФИКАЦИЯ
2.1 Наименование и шифры программного обеспечения
Полное название разрабатываемого программного продукта — «Автоматизированная система мониторинга физического местоположения мобильного устройства на базе GPS», в тексте пояснительной записки может быть заменено понятиями — «программный продукт», «проектируемое программное средство» .
2.2 Краткое описание программного обеспечения
На проектируемое программное средство не распространяются законы об авторском праве, программный продукт несет чисто учебный характер и коммерческих целей не имеет.
2.3 Результирующие компоненты программного обеспечения
Результирующими компонентами проектируемого программного обеспечения являются: 1. Модуль для работы на мобильном устройстве на базе Android. 2. Веб-ресурс на удаленном хосте для обеспечения работы с пользователем.
2.4 Цели
Программное средство разрабатывается на основе поставленного технического задания в качестве учебного продукта для получения навыков разработки и ведения программной документации, отвечающей основным стандартам, принятым в Российской Федерации.
2.5 Соглашения относительного представления материала
2.5.1 Обозначения
Для обозначения используемых в работе программы функций приняты специальные символьные обозначения, которые должны отображать суть семантики определенной функции. В качестве обозначения форматов времени и даты используются стандарты: DD, DDDD° (к примеру — N56.28 969° E44.6 246°), DD°MM, MMMM' (к примеру — N56°17.381' E44°03.748'), DD°MM'SS, SSS" (к примеру — N56°17'22.9″ E44°03'44.9″).
2.5.2 Терминология
1) «Автоматизированная система мониторинга физического местоположения» — информационная система, позволяющая в реальном времени контролировать процесс перемещения мобильного устройства в пространстве.
2) «Физическое местоположение» — полная информация о местонахождении в пространстве конкретного мобильного устройства, включает в себя данные о координатах, скорости и текущем времени.
2.5.3 Синтаксис
Для ввода пользователем критериев выборки из базы данных используется стандартный формат даты — YYYY.MM.DD. Для схематического представления архитектуры функций приняты следующие обозначения:
1) Прямоугольник с надписью — функция;
2) Стрелка — связь между функциями по переменной или по вызову.
2.6 Генерируемое программное обеспечение
Генерируемое программное обеспечение является вспомогательным и порождается системным программным обеспечением, приведенным в следующем пункте
2.7 Системное программное обеспечение
Системное программное обеспечение (см. Таблица № 2.1) классифицируется как основное, поскольку оно генерирует программное обеспечение предыдущего пункта.
Таблица № 2.1 «Системное программное обеспечение»
Производитель | Название | Состав | Объем | |
Open Handset Alliance (Google Inc.) | AndroidOS 4.0 «Ice-Cream Sandwich» | |||
Microsoft | Microsoft Internet Explorer 9.0 | 37.000 Kb | ||
2.8 Ограничения на совместимость
С другими версиями программное средство не совместимо, имеет обособленный характер. Использует в свой работе стандартизированные форматы построения кода (Java 1.5+) передачи (TCP-пакеты) и вывода данных (международный формат отображения координат и скорости). Поэтому может быть совместимо с другими программными средствами, имеющими похожие форматы обработки данных. Стандартизированный формат отображения и передачи координат позволяет использовать в выводе данных такие программные средства, как Google Maps (Google Inc.), Яндекс карты (Яндекс (c)) и другие.
2.9 Программные ограничения
Мобильное устройство для стабильной и адекватной работы приложения должно иметь операционную систему Android 2.0 (Предыдущие версии не имеют API поддержки функций работы с GPS сигналами).
2.10 Аппаратные ограничения
Для правильной работы приложения необходимо мобильное устройство (смартфон, поддержка планшетных компьютеров не предусмотрена) с поддержкой технологии GPS и TCP/IP каналов передачи данных по каналам мобильной связи (3G, EDGE и др.)
2.11 Внешние ограничения
2.11.1 Стандарты
Решение поставленной задачи основано на использовании следующих стандартов и технических спецификаций ETSI:
1) Digital cellular telecommunications system (Phase 2+), Location Services (LCS), Broadcast network assistance for Enhanced Observed Time Difference (E-OTD) and Global Positioning System (GPS) positioning methods (3GPP TS 44.035 version 10.0.0 Release 10;
2) Digital cellular telecommunications system (Phase 2+) (GSM), General Packet Radio Service (GPRS), Mobile Station (MS).
2.12.1 Функция подписки на текущее состояние GPS
2.12.1.1 Результаты
Результатом функции является подписка на событие onGpsStatusChanged (event), где event — константа изменения статуса GPS. В зависимости от изменения состояния GPS статуса, мы можем получить следующие константы:
1) GPS_EVENT_STARTEDсистема GPS запущена;
2) GPS_EVENT_STOPPEDсистема GPS остановлена;
3) GPS_EVENT_FIRST_FIX — первое изменение системы после запуска;
4) GPS_EVENT_SATELLITE_STATUS — периодично получаемое состояние спутника GPS.
Для получения списка текущих спутников GPS может использоваться функция getSatellites ().
2.12.1.2 Процессы обработки
2.12.1.3 Входы
Функция addGpsStatusListener (Listener) имеет единственный параметр — «Listener» — обязательный параметр, имя обработчика события onGpsStatusChanged, на которого мы подписываемся.
2.12.1.4 Эргономические характеристики
Функция предусматривает обработку всех возможных состояний состояния GPS системы. При отсутствии текущего подключения обработчик вернет нам константу GPS_EVENT_STOPPED. Имя задаваемого обработчика должно удовлетворять правилам задания строковых переменных в среде Java.
Функция не требует серьезных затрат ресурсов памяти и времени для своего выполнения. Подписка на обработчик изменения состояний происходит при любом состоянии системы.
Функция не является критичной в плане нестабильности работы, поэтому для ее проверки можно использовать единственный контрольный пример, который будет отражать правильность выполнения подписки на изменение состояния GPS подключения. В качестве проверки мы будем проверять константу ListenerAdded на значение TRUE (подписка проведена успешно) или FALSE (подписка не произведена).
2.12.2 Функция подписки на входящие сообщения на GPS порт
2.12.2.1 Результаты
Для корректной работы функции необходимо наличие запущенного сервиса, встроенного в стандартную прошивку Android 2+ для обработки и работы с GPS сигналами. Так же заранее должен быть создан обработчик грядущих сообщений от GPS спутников — Manager.
Результатом возвращения является подписка на менеджера обработки данных [Manager], который будет обрабатывать метод OnLocationChanged (Location), где Location — заданный заранее формат отображения координат, он может принимать значения следующих констант:
— FORMAT_DEGREES (DD, DDDD° - к примеру — N56.28 969° E44.6 246°);
— FORMAT_MINUTES (DD°MM, MMMM' - к примеру — N56°17.381' E44°03.748');
— FORMAT_SECONDS (DD°MM'SS, SSS" - к примеру — N56°17'22.9″ E44°03'44.9″);
Все известные сервисы отображения координат на картах используют формат десятичных градусов, поэтому нам необходимо использовать константу FORMAT_DEGREES.
2.12.2.2 Процессы обработки
2.12.2.3 Входы
Функция RequestLocationUpdate (Manager, [Time], [Distance]) имеет следующие параметры:
1) Manager — обязательный параметр, имя обработчика сигналов OnLocationChanged (Location), на которого мы подписываемся.
2) Time — необязательный параметр, период времени, через каждое прошествие которого будут сниматься данные с обработчика, по умолчанию равен 1 секунде.
3) Distance — необязательный параметр, минимальное изменение дистанции, при котором обработчику стоит передавать нам информацию о местоположении.
2.12.2.4 Эргономические характеристики
2 из 3 параметров являются необязательными, их отсутствие никак не скажется на стабильности работы функции, при задании имени создаваемого обработчика должны соблюдаться правила создания строковых переменных в среде Java.
Функция является однократно выполняемой в течение конкретного сеанса работы программы. Подписка на обработчик изменения состояний происходит при любом состоянии системы.
Функция не является критичной в плане нестабильности работы, поэтому для ее проверки можно использовать единственный контрольный пример, который будет отражать правильность выполнения подписки на сообщения от GPS порта. В качестве проверки мы будем проверять константу ListenerAdded на значение TRUE (подписка проведена успешно) или FALSE (подписка не произведена).
2.12.3 Функция проверки текущего состояния подключения к сети передачи данных
2.12.3.1 Результаты
Для корректной работы функции необходима запущенная и активная служба «Передачи данных в мобильной сети», которая предоставляет приложению список возможных путей передачи данных внутри сети мобильной связи.
Результатом функции является подписка на события обработчика ConnectivityManager, функцией которого является мониторинг всех имеющихся сетевых соединений, отправка сообщений слушателю при изменении состояния активного подключения, попытка переключения на другое активное подключение при обрыве текущего и т. д.
Метод GetAllNetworkInfo объекта ConnectivityManager возвращает текущее состояние и тип всех возможных сетей (Mobile или Wi-Fi):
1) getTypeName () — Wi-Fi или Mobile;
2) isConnected () — true если подключен, false если нет.
В этой функции используется проверка на наличие активного текущего подключения, это обеспечивает стабильность и корректность выполнения функции.
2.12.3.2 Процессы обработки
2.12.3.3 Входы
Для подписки на ConnectivityManager используется функция getSystemService с передаваемой в нее Android константой CONNECTIVITY_SERVICE.
2.12.3.4 Эргономические характеристики
Функция подписки на обработку входящих сообщений происходит при любом состоянии системы. Сам обработчик предусматривает обработку всех типов входящих сообщений, это обеспечивает максимальную надежность работы данной функции. Функция является однократно выполняемой в течение конкретного сеанса работы программы.
Функция не является критичной в плане нестабильности работы, поэтому для ее проверки можно использовать единственный контрольный пример, который будет отражать правильность выполнения подписки на изменение состояния подключения к мобильной сети передачи данных.
2.12.4 Функция записи в хранилище
2.12.4.1 Результаты
В нашем случае в роли хранилища выступает SQL база данных, для записи в нее нам сначала необходимо использовать функцию подключения к определенной базе данных:
$db=mysql_connect («host» ," login" ,<" password" >);
где host — хост, на котором находится хранилище данных; login/password — комбинация имени пользователя и пароля доступа к хранилищу. Оба этих параметра читаются из файла настроек, хранимого на сервере.
mysql_select_db («Database» ,$db);
где Database — имя хранилища данных (этот параметр так же читается из файла настроек). Функция записи не имеет отображаемых результатов своей работы. Для проверки правильности занесения данных в функции использовано условие на равенство переменной запроса значению TRUE — «If ($result)» .
2.12.4.2 Процессы обработки
2.12.4.3 Входы
Формат данных, в котором информация вносится в базу данных, представляет собой следующую структуру, все поля которой обязательны для заполнения:
Info ([idInfo], [idDevice], [Date], [Attitude], [Longitude], [Speed]),
Поля структуры Info имеют следующие форматы данных:
1)idInfo — целочисленный идентификатор;
2)idDevice — целочисленный идентификатор;
3)Date — информация о текущей дате и времени, полный международный формат времени — DD.MM.YYYY HH: MM:SS;
4)Attitude — координата X, вещественное число с 5 знаками после запятой;
5)Longitude — координата Y, вещественное число с 5 знаками после запятой;
6)Speed — текущая скорость, вещественное число с 5 знаками после запятой;
Параметрами функции $result=mysql_query («$zapros», $db) являются:
1) SQL запрос на добавление данных в хранилище данных;
2) Переменная-идентификатор хранилища для занесения;
2.12.4.4 Эргономические характеристики
Хранилище информационной системы устроено таким образом, что к нему в один момент времени может осуществляться лишь одно подключения (будь оно на выборку или на занесение), поэтому функция является однопоточной, другие запросы на исполнение функции будут ставиться в очереди и выполняться по мере освобождения хранилища. Время выполнения может занять разный период времени, в зависимости от того, попадет ли запрос в очередь или нет.
При неправильном указании любого из параметров функции mysql выдаст ошибку:
Notice: Undefined variable: in on line ;
Функция является восприимчивой к переданным ей параметрам, поэтому необходимо провести 3 контрольных примера. Первый из них — введение неполного набора параметров (отсутствие одного из переданных параметров), второй — введение неправильного формата данных, третий — на невозможность подключения к указанной базе данных.
2.12.5 Функция авторизации пользователя
2.12.5.1 Результаты
Функция является стартовой в модуле работы с веб-ресурсом. Для корректной работы функции необходимо наличие активного подключения к сети Интернет у пользователя для осуществления передачи клиент/сервер.
Функция будет переводить пользователя к основному содержанию ресурса в случае успешного выполнения авторизации, и выводить ссылку на повторную авторизацию при неудаче.
2.12.5.2 Процессы обработки
2.12.5.3 Входы
При попытке доступа к веб-ресурсу, пользователю будет выведена форма для авторизации. Схематично она будет иметь следующий вид:
$result=mysql_query («$zapros'», $db);
$myrow=mysql_fetch_array ($result);
где $zapros — SQL запрос на выборку данных с параметрами авторизации, введенными пользователем.
2.12.5.4 Эргономические характеристики
При неправильном указании любого из параметров SQL запроса, MySQL выдаст следующую ошибку:
Warning: mysql_fetch_array () expects parameter to be resource, boolean given in on line
Для проверки правильности введенных данных будет использоваться следующая конструкция: Будет создана, специальная переменная, хранящая в себе количество результатов выполненного запроса, если количество этих результатов равно 0, то пользователь ввел неправильные данные, в случае если количество результатов равно 1, то пользователь ввел правильные данные.
$NumRows=mysql_num_rows ($result);
if ($NumRows==0)
{
// Переход на страницу авторизации
}
else
{
// Успешная авторизация пользователя
}
Информационная система поддерживает до 30 одновременных подключений к веб-ресурсу, соответственно, функция авторизации является многопоточной. Скорость выполнения зависит от нагрузки на хранилище, к которому обращается функция. При стандартных условиях скорость выполнения минимальна.
Функция является восприимчивой к переданным ей параметрам, поэтому необходимо провести 2 контрольных примера. Один из них — введение неполного информации (отсутствие логина или пароля, либо отсутствие и того и того), второй — введение данных, не занесенных в базу (неправильная комбинация логина-пароля).
2.12.3 Функция отправки параметров запроса на сервер
2.12.3.1 Результаты
Для корректной работы функции требуется наличие активного Интернет-подключения на стороне клиента.
Отправка параметров, выбранных пользователем, будет осуществляться с помощью метода POST (метод передачи данных через формы).
2.12.3.2 Процессы обработки
программный хост пользователь веб
2.12.3.3 Входы
2.12.3.4 Эргономические характеристики
При неправильном вводе пользователем данных (несоблюдении формата данных), Php вернет пользователю сообщение о неправильности введенных данных. В случае правильного ввода данных, параметры пользователя поступят на сервер, где будет выполнен запрос на выборку из базы данных. Формат даты, необходимый для ввода — «YYYY.MM.DD» .
Хранилище информационной системы устроено таким образом, что к нему в один момент времени может осуществляться лишь одно подключения (будь оно на выборку или на занесение), поэтому функция является однопоточной, другие запросы на исполнение функции будут ставиться в очереди и выполняться по мере освобождения хранилища. Время выполнения может занять разный период времени, в зависимости от того, попадет ли запрос в очередь или нет.
Стабильность данной функции довольно велика, поскольку пользователь ограничен форматом вводимых данных, и отсутствие введенных данных так же не повлияет на корректность выполнения функции, этот случай предусмотрен по умолчанию, результатом будет вывод на экран всей имеющейся информации по данному устройству, без критериев.
2.12.3 Функция вывода результатов запроса пользователю
2.12.3.1 Результаты
После выполнения запроса с переданными параметрами на стороне сервера, запускается функция выборки данных из хранилища и вывода результатов запроса пользователю. Входами данной функции будут являться параметры, переданные клиентской частью через метод POST на сервер.
Результатом возвращения функции будет отображение маршрута передвижения мобильного устройства согласно заданному пользователю критерию на географической карте мира.
Для вывода информации выбираются следующие поля табличной структуры: [Date], [Attitude], [Longitude], [Speed].
2.12.3.2 Процессы обработки
2.12.3.3 Входы
Информация, по которой осуществляется выборка, хранится в базе данных в следующей табличной структуре:
Info ([idInfo], [idDevice], [Date], [Attitude], [Longitude], [Speed])
$result=mysql_query («$zapros», $db);
$myrow=mysql_fetch_array ($result);
где $zapros — SQL запрос на выборку информации из базы данных;
$db — идентификатор базы данных.
2.12.3.4 Эргономические характеристики
При неправильном указании любого из параметров SQL запроса, MySQL выдаст следующую ошибку:
Warning: mysql_fetch_array () expects parameter to be resource, boolean given in on line
При случае, когда пользователь не выбрал никаких параметров, выводятся все результаты по соответствующему идентификатору пользователя мобильному устройству. В случае отсутствия информации о передвижении пользователя согласно критериям пользователя — выводится предупреждение об отсутствии необходимой информации и карта не подгружается.
Функция является многопоточной, поскольку информационная система веб-ресурса поддерживает одновременную работу до 30 пользователей. Скорость выполнения зависит от нагрузки на сервер и по умолчанию является минимальной.
Функция является критичной в плане нестабильности работы, ее выполнение может быть нарушено неправильным набором параметров или отсутствием искомой информации в базе данных. Необходимо привести контрольный пример, рассматривающий ситуации, когда запрос на выборку не вернул искомую информацию.
3. ВНУТРЕННЯЯ СПЕЦИФИКАЦИЯ
3.1 Архитектура функций/процедур
Архитектура функций в представленном проектируемом программном средстве «Автоматизированная система мониторинга физического местоположения мобильного устройства на базе GPS» может быть представлена в виде схемы:
Так же стоит отметить, что в работе некоторых функций используется последовательно-параллельный принцип, т. е., например, после получения данных о местоположении устройства, обработчик входящих сигналов не прекращает свою работу, в то время как полученные данные передаются на обработку и занесение в хранилище. После того как данные были переданы серверу и занесены в базу, эти функции не прекращают свою работу, а продолжают обработку поступающих данных.
3.2 Формализация логики выполнения этапов программой
Формализация логики выполнения этапов программой представлена в виде схемы-алгоритма, представленного в формате IDEF0.
3.2 Внутренние ограничения
Разрабатываемое программное средство не гарантирует корректной и правильной работы на мобильных устройствах на базе операционной системы Android версии 2.0 или ниже. Так же не гарантируется правильная работа модуля веб-ресурса в браузерах версий, выпущенных до 2008 года.
4. ИСПОЛЬЗУЕМЫЕ МАТЕРИАЛЫ
4.1 Блок-схемы программного средства
Основная цель нашего программного средства — автоматизация мониторинга физического местоположения мобильного устройства, конечной целью нашей работы является доступ пользователя к данным о перемещении мобильного устройства в комфортной для этого форме. Получение физических данных будет происходить с помощью мобильного устройства на базе мобильной операционной системы Android.
Условно всю работу требуемой автоматизированной системы можно разделить на 2 отдельных сегмента — непосредственно получение, обработка и пересылка данных о местоположении; и работа с пользовательской подсистемой (веб-ресурсом), т. е. обеспечение доступа пользователя к данным, полученным и переданным в первом сегменте.
Рассмотрим подробнее первый сегмент (см. Рисунок 5.2) нашей автоматизированной системы. Первоначально перед нами стоит задача определить порт, который работает с GPS. Причем в этом случае существует два варианта дальнейшей работы — первый, при котором мы будем обращаться к обработчику (драйверу) GPS информации; и второй, при котором мы будем работать непосредственно с портом. После того, как будет определен порт для работы с GPS-сигналом, мы должны обеспечить синхронное получение данных в определенном режиме (следует учесть частоту обновления, она выбирается вручную). На следующем этапе осуществляется поиск активного подключения к Интернету, для передачи полученной информации на подсистему «Удаленный хост». Затем, в зависимости от наличия активного подключения выполняется либо передача информации о местоположении, либо (при отсутствии) запись этой информации в локальный кэш. В дальнейшем, при обнаружении любого активного подключения, автоматизированная система сначала передаст на удаленный хост всю накопленную в кэше информацию, а уже потом приступит к передаче текущей информации. Передача на удаленный хост осуществляется пакетами TCP с гарантированной передачей, то есть при передаче информации программное средство будет ожидать ответа от получателя. Теперь рассмотрим второй сегмент (см. Рисунок 5.3) нашей автоматизированной системы — работу с пользовательским веб-ресурсом. Пользователь при доступе к веб-ресурсу должен будет пройти авторизацию, ввести свои данные, и запрос на сервер преобразует эту информацию в идентификатор пользователя, который в дальнейшем будет использоваться программой для работы с хранимыми данными. Когда идентификатор пользователя получен, система просмотрит список всех хранимых устройств и выберет из них все, связанные с данным идентификатором. На следующем этапе пользователь определяет ту информацию, которую он хочет получить — маршрут, дата, скорость. Тем самым он формирует параметры для запроса, хранимого на стороне сервера. После получения параметров запрос выполняется и отправляет результат на веб-ресурс и требуемая информация выводится на экран. После этого пользователь может закончить работу, либо повторить формирование запроса.
Рисунок № 5.1 «Схема алгоритма работы программного средства»
Рисунок № 5.2 «Схема алгоритма работы модуля на мобильном устройстве»
Рисунок № 5.3 «Схема алгоритма работы модуля веб-ресурса»
4.2 Контрольные примеры
1) Контрольный пример 1. Проверка функции подписки на изменение состояния GPS подключения.
Передадим функции addGpsStatusListener параметр Listener = «Listener_status_GPS». Функция в результате выполнения своей работы присвоит системной константе ListenerAdded значение «TRUE» .
2) Контрольный пример 2. Проверка функции подписки на входящие сообщения GPS порта.
Передадим функции RequestLocationUpdate параметр Manager = «Listener_GPS». Функция в результате выполнения своей работы присвоит системной константе ListenerAdded значение «TRUE» .
3) Контрольный пример 3. Проверка функции подписки на входящие сообщения GPS порта.
Передадим функции getSystemService в качестве параметра встроенную системную константу CONNECTIVITY_SERVICE. Функция в результате выполнения своей работы присвоит системной константе Service_Connected значение «TRUE» .
4) Контрольный пример 4. Проверка на отсутствие подключения.
Если при запуске функции проверки текущего подключения к сети, этого подключения не будет обнаружено, то менеджер сетевых подключений ConnectivityManager присвоит переменной EXTRA_NO_CONNECTIVITY значение «TRUE» .
5) Контрольный пример 5. Проверка на невозможность подключения к указанной базе данных.
$db=mysql_connect («host» ," login" ,<" password" >);
Если хост базы данных будет указан неверно, то в лог ошибок, хранящийся на сервере, будет записана следующая строчка:
Warning: mysql_connect (): php_network_getaddresses: getaddrinfo failed:
Если будет указана неверная комбинация имени пользователя и пароля для входа в MySQL, то в лог ошибок будет записана следующая строчка:
Warning: mysql_connect (): Access denied for user 'USER'@'HOST'
где USER — имя пользователя, через которое не получилось осуществить доступ, HOST — имя хоста, через который была произведена попытка подключения.
$result=mysql_query («insert into Table values ()», $db);
Если будет неправильно указано название таблицы или значения для записи, то в лог ошибок будет записана следующая строчка:
Warning: function () expects parameter Х to be resource, boolean given
где function () — функция, в которой произошла ошибка, Х — номер неправильно указанного параметра.
6) Контрольный пример 6. Проверка функции записи в хранилище на неполный набор параметров.
Передадим функции занесения данных в хранилище неполный набор полей структуры Info (не указано поле Speed):
Info ([1], [1], [08.06.2012 10:45:11], [N56.28 969°], [E44.6 246°], [])
Функция при обработке полученного запроса выдаст предупреждение:
Warning: mysql_fetch_array () expects parameter $result to be resource, boolean given.
что означает неправильность переданных параметров в запрос.
7) Контрольный пример 7. Проверка функции записи в хранилище на неправильный формат введенных данных.
Передадим функции занесения данных в хранилище структуру Info с неправильном форматом данных одного из полей (в данном случае Date):
Info ([1], [1], [АБВ], [N56.28 969°], [E44.6 246°], [1.2345])
Функция при обработке полученного запроса выдаст предупреждение:
Warning: mysql_fetch_array () expects parameter $result to be resource, boolean given.
что означает неправильность переданных параметров в запрос.
8) Контрольный пример 8. Проверка функции записи в хранилище на неправильный формат введенных данных.
Передадим функции занесения данных в хранилище структуру Info с неправильном форматом данных одного из полей (в данном случае Date):
Info ([1], [1], [АБВ], [N56.28 969°], [E44.6 246°], [1.2345])
Функция при обработке полученного запроса выдаст предупреждение:
Warning: mysql_fetch_array () expects parameter $result to be resource, boolean given.
что означает неправильность переданных параметров в запрос.
9) Контрольный пример 3. Проверка правильности введенного пароля Введем в качестве комбинации логина-пароля для авторизации пользователя значения «1» и «2» соответственно (значения не присутствуют в базе). Программа отреагирует следующим образом:
10) Контрольный пример 10. Отсутствие выбранных пользователем параметров На окне выбора параметров выборки не выберем никакого временного промежутка (оставим поля пустыми). Программа отреагирует выводом всей имеющейся информации этого устройства.
11) Контрольный пример 11. Отсутствие информации в базе согласно выбранным параметрам Выберем в качестве параметров выборки данных из хранилища следующий временной промежуток: с «12.05.2007» по «13.05.2007». Программа отреагирует выводом сообщения о невозможности вывода искомой информации:
4.3 Система массового обслуживания
В качестве базового описания системы мы будем принимать модель массового обслуживания. Алгоритмическая схема работы программного средства в нашем случае будет выглядеть следующим образом.
В первом случае (см. Рисунок 4.3), мы рассматриваем модуль занесения информации в хранилище данных. Обработчиком сообщений GPS модуля телефона генерируется 1 заявка в 5 секунд, она попадает в очередь на обслуживание хранилищем, и, в зависимости от условия Х (наличия Интернет-соединения), либо обрабатывается прибором Cache, либо прибором Baza.
Во втором случае (см. Рисунок 4.4), мы будем рассматривать модуль для выборки данных из хранилища данных и вывода их пользователю. Пользователями генерируются заявки с периодичностью n. Эти заявки поступают в очередь на обработку сервером и затем поступают на сам сервер, где выполняются в течение определенного времени и затем полученный результат обработки выводится пользователю.
Алгоритм математической модели представлен в виде кода, реализованного в программном средстве GPSS World. В качестве параметров приняты следующие данные: длина времени симуляции — 1 час, периодичность поступления транзактов, в первом случае — 2 минуты, во втором — условно так же принято значение в 2 минуты (частота поступления транзактов во 2 случае определяется активностью пользователей). Ниже представлен непосредственный листинг реализации математической модели, а так же результаты моделирования.
GENERATE 7200
TRANSFER .5,kcache
QUEUE KBD
SEIZE BD
DEPART KBD
ADVANCE 0.3,0.2
RELEASE BD
TERMINATE
kcache QUEUE KCAC
SEIZE CACHE
DEPART KCAC
ADVANCE 0.3,0.2
RELEASE CACHE
TERMINATE
GENERATE 7200
QUEUE KBD
SEIZE BD
DEPART KBD
ADVANCE 0.2,0.1
RELEASE BD
TERMINATE
GENERATE 3600
TERMINATE 1
START 1
Из результатов моделирования можно сделать вывод, что при предполагаемой нагрузке на приемник транзактов (бд), очередей на выполнение возникать не будет, это говорит нам о том, что принятые параметры проектирования информационной системы выбраны верно.