Научная статья на тему 'Выполнение распределенных запросов в среде мобильных устройств'

Выполнение распределенных запросов в среде мобильных устройств Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
93
28
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Выполнение распределенных запросов в среде мобильных устройств»

Выполнение распределенных запросов в среде мобильных устройств

К.А. Попова,

студентка 4-го курса, специальность «Информационные системы и технологии»

Е.Е. Мангушева,

студентка 4-го курса, специальность «Информационные системы и технологии»

Д.Н. Крюков,

студент 4-го курса, специальность «Информационные системы и технологии»

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

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

1. Описание задачи

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

Разработка ведется на основе мобильной версии базы данных фотографий.

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

41

- фотографии хранятся на сервере;

- ссылки на фотографии хранятся на мобильных устройствах;

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

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

- ответ пользователю должен прийти не позднее 10 секунд после запроса.

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

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

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

2. Протокол обработки информации

Взаимодействие устройств предполагает обмен пакетами данных (информацией) с сервером. Для решения поставленной задачи в качестве передаваемой информации выбраны запросы - данные, на основе которых осуществляется поиск (выборка из базы данных). Выполнение задачи распределенных запросов предполагает четкий алгоритм формирования, отправления и выполнения запросов. Краткое описание представлено ниже:

1. Когда пользователь вводит данные для поиска, приложение формирует запрос, который отсылается на сервер.

2. Сервер записывает полученный запрос в файл.

3. Запрос отсылается на доступные мобильные устройства.

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

5. После выполнения запроса мобильное устройство отсылает ответ с результатом обратно на сервер. Ответ может быть двух видов:

- данные о фотографии и ссылка на нее, если они были най-

дены;

- пустой файл, если данные не были найдены на мобильном устройстве.

42

6. Сервер принимает ответ от каждого мобильного устройства, если он пришел в течение 10 секунд. Если лимит времени превышен, то сервер прекращает прием ответов.

7. Сервер формирует ответ из полученных файлов, исключает совпадения.

8. Сервер отсылает ответ главному мобильному устройству. Взаимодействие устройств с сервером и формируемые при

этом файлы представлены на рис. 1.

В файле F1.txt записан исходный запрос, полученный сервером от главного мобильного устройства. Далее этот запрос передается другим мобильным устройствам. В файлы F2_1.txt, F2_2.txt, ..., F2_N.txt записываются полученные ответы от мобильных устройств. Количество этих файлов равно количеству полученных результатов.

43

3. Алгоритм работы серверного приложения

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

Задачами работы серверного приложения являются:

- прием запроса,

- отправка запроса,

- прием ответов от мобильных устройств,

- формирование файлов на основе данных от ИМУ пользователей,

- отправка ответа пользователю на главном мобильном

устройстве.

Краткий алгоритм работы серверного приложения:

1. Прием запроса от главного мобильного устройства.

2. Формирование файла и запись запроса в него.

3. Отправка запроса из файла другим мобильным устройствам.

4. Отслеживание времени ожидания ответа.

5. Прием ответов от мобильных устройств

6. Если ожидание ответов длится больше 10 секунд, то сервер перестает принимать ответы. Иначе возвращаемся в пункт 5.

7. Проверка ответов, исключение совпадений.

8. Формирование ответа для главного мобильного устройства.

9. Отправка ответа главному мобильному устройству. Блок-схема описанного алгоритма работы представлена на

рис. 2.

Оперируя данными, получаемыми от пользователей, сервер формирует файлы двух типов:

- файл типа F1, где хранится сформированный запрос;

- файлы типа F2, в которых хранятся ответы от мобильных

устройств.

На основе файлов F2 сервер формирует ответ пользователю на главном мобильном устройстве. Количество файлов типа F2 равно количеству полученных ответов от мобильных устройств.

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

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

44

Рис. 2. Блок-схема алгоритма работы серверного приложения

45

4. Алгоритм работы приложения ИМУ

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

Задачами работы приложения ИМУ являются:

- прием запроса от сервера,

- поиск информации по базе данных,

- отправка ответа серверу.

Алгоритм работы приложения ИМУ:

1. Прием запроса от сервера.

2. Осуществление поиска в базе данных по полученным значениям.

3. Если данные найдены, то они посылаются в ответе серверу. Ответ содержит в себе ссылку на фотографию, дату снимка, размер, координаты и название.

4. Если данные не найдены, то серверу посылается пустой файл. Это помогает избежать проблемы простаивания сервера в ожидании ответа.

Блок-схема алгоритма работы приложения ИМУ представлена на рис. 3.

Рис. 3. Алгоритм работы приложения ИМУ

46

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

На главном мобильном устройстве выполняется подсчет времени выполнения запроса с целью оптимизации работы приложения.

5. Примеры выполнения запросов

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

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Example</title>

<script type='text/javascript'>

var myResponseXML;

var myRequest = new XMLHttpRequest();

function main(){

//формирование запроса

myRequest.open("GET","gallery.xml");

myRequest.setRequestHeader('Cache-Control','no-cache');

myRequest.onload=getContent;

myRequest.send("");

}

//обработчик завершения запроса function getContent(){ myResponseXML=myRequest.responseXML; getData(myResponseXML);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

}

function getData(xmlObj){

var keyword=new Аггау();//массив для ключевых слов

var name = new Аггау();//массив для имен

var url = new ArrayQy/массив для ссылок

var str = " ";//строка результата запроса

//обращение к элементам тегов

var gallery = xmlObj.getElementsByTagName("gallery");

var photo = gallery[0].getElementsByTagName("photo");

47

//формирование результата запроса

for(var i=0; i<photo.length;i++){

name[i] = photo[i].getAttribute(»name»);

url[i] = photo[i].getAttribute("url");

str+="Name: '"+name[i]+"' Url: '"+url[i]+"' Keywords:";

var key = photo[i].getElementsByTagNamef keyword");

for(var j=0; j<key.length-1;j++){

keyword[j] = key[j].firstChild.data;

str+=keyword[j]+", ";

}

str+=keyword[key.length-2]+".\n";

var descr = photo[i].getElementsByTagName ("description"); var string = descr[0].firstChild.data;

}

alert(str);

}

</script>

</head>

<body onload='main()'>

</body>

</html>

Листинг 1. Исходный код запроса

В приведенном коде функция main() выполняет подготовку и передачу данных на сервер. Функция getContent() является обработчиком завершения запроса. Непосредственная работа с данными базы происходит в функции getData(), которая принимает в качестве аргумента XML-объект и выдает пользователю информацию о фотографиях. Результат выполнения запроса показан на рис. 4.

JavaScript

ш Name: 'my family' Url: 'first' Keywords: family, home, Name: 'my cat' Url: 'second' Keywords: home, pst Name: 'my dog' Url: 'third' Keywords: home, pst

[ OK ]

Рис. 4. Результат выполнения запроса

48

6. Выводы

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

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

49

i Надоели баннеры? Вы всегда можете отключить рекламу.