Мобильный доступ к библиотечным базам данных

( Mobile access to the library data bases
Preprint, Inst. Appl. Math., the Russian Academy of Science)

Головков С.Л.
(S.L.Golovkov)

ИПМ им. М.В.Келдыша РАН

Москва, 2005
Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (проект № 03-07-90170)

Аннотация

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

Abstract

The principles of construction and the system architecture of the remote access system to information library resources based on the mobile communications are described. The main components of the system, base functions and the user interface are considered.

 

Содержание

 

Введение    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         3

1. Модель мобильного доступа   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        5

2. Принципы функционирования   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          7

3.     Менеджер мобильных транзакций   . . . . . . . . . . . . . . . . . . . . . . . . . . . .         8

3.1. Восстановление сессии   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         9

3.2. Выполнение запроса   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      10

3.3. Формирование ответа   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      10

4. Модельная задача   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      10

5. Интерфейс пользователя   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       12

6. Средства реализации   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       14

Заключение             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      15

Литература  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     16

 

 

Введение

 

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

На первом этапе работы был создан действующий прототип системы мобильного доступа к базам данных БЕН [1]. Однако пробная эксплуатация прототипа мобильного интерфейса на реальном сотовом телефоне показала весьма низкую надежность мобильного доступа к базам данных. Отчасти это объясняется качеством российских сетей связи. Но, как нам кажется, основная причина состоит в том, что мобильная среда связи продемонстрировала существенные отличия от проводной среды, что выражается, в частности, в неадекватности «классического» арсенала методов и средств организации работы с удаленными базами данных в случае использования для доступа к ним мобильных средств. Возникла необходимость существенного пересмотра этого арсенала. И, следовательно, потребовалось расширить «область охвата» исследований. Такое расширение показалось нам оправданным по той причине, что хотелось бы найти решения (как с точки зрения концептуального понимания, так и с точки зрения реализации базовых механизмов), позволяющие организовать доступ к общим классам баз данных. Обеспечение мобильного доступа к базам данных (и другим удаленным ресурсам) является актуальной задачей [2].

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

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

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

Одним из результатов этих работ явилось убеждение в том, что существует ряд ограничений применимости современных технологий транзакций к мобильным информационным системам. Для корректного и эффективного управления информацией в мобильной среде требуется пересмотр этих технологий с учетом специфики мобильных приложений. В частности, предложены ряд моделей мобильной транзакции, в которых для удовлетворения требований мобильных пользователей и ограничений беспроводной среды ослаблены свойства ACID [3].

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

 

1. Модель мобильного доступа

 

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

 


 

Рис.1. Схема мобильного доступа к удаленным базам данных

 

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

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

·        запросы пользователей поступают от мобильных клиентов (микробраузеров) через беспроводную сотовую сеть, на сервер доступа к базам данных (Менеджер мобильных транзакций или просто Менеджер транзакций);

·        Менеджер транзакций выполняет запрос, обращаясь при необходимости к тому или иному удаленному серверу базы данных;

·        выполнив запрос, Менеджер транзакций формирует ответ клиенту в виде набора WML-страниц (в терминах микробраузера – колода карт) и передает их через беспроводную сеть мобильному клиенту, который предъявляет их пользователю.

 

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

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

§        просмотр тех или иных словарей (например, авторы, виды изданий, годы публикации и т.п.);

§        выбор элементов словарей и формирование из них поискового запроса;

§        просмотр результатов поиска.

 

Менеджер транзакций обладает следующими характеристиками:

·        обслуживает одновременно множество клиентов;

·        для каждого клиента может одновременно выполнять множество запросов (возможно, в разных базах данных);

·        позволяет пользователю прервать в любой момент сеанс связи, а затем возобновить его с того самого момента работы, на которой был прерван сеанс связи.

 

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

Эта промежуточная база данных (далее именуемая «почтовый ящик») представляет собой базу данных, с которой общается мобильный пользователь. В нее он помещает запрос и из нее же получает ответ. Иначе говоря, «почтовый ящик» содержит реплики удаленных баз данных.

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

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

На мобильных клиентах расположены локальные базы данных. Они содержат фрагменты реплик, находящихся в «почтовом ящике».

 

 

2. Принципы функционирования

 

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

Удаленная база данных является «строгой» (или «классической») базой данных, поддерживающей в полном объеме свойства ACID.  Она находится под управлением реляционной СУБД.

«Почтовый ящик» представляет собой «нестрогую» базу данных, в которой в определенной степени нарушаются свойства ACID. Система, обслуживающая «почтовый ящик» («менеджер мобильных транзакций»), может рассматриваться как «нестрогая» СУБД, которая обслуживает мобильных клиентов с меньшими «гарантиями», нежели принято для «классических» СУБД.

Менеджер мобильных транзакций функционирует как front-end для сервера удаленной базы данных (он выступает как обычный клиент удаленной базы данных).

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

          Таким образом, промежуточная база данных «почтовый ящик» сохраняет свойства атомарности и изолированности, но не сохраняет свойства целостности и долговременного хранения.

 

Мобильная транзакция инициируется пользователем на мобильном устройстве. Длительность выполнения этой транзакции может быть произвольной (например, несколько часов или даже дней).

Выполнение мобильных транзакций осуществляется менеджером мобильных транзакций. Выполнение мобильной транзакции состоит из выполнения серии субтранзакций двух типов: «твердые транзакции» и «мягкие транзакции». Твердые транзакции используется менеджером при общении с удаленной базой данных, мягкие – при общении с мобильным клиентом. Иначе говоря, твердая транзакция выполняется в проводной сети, а мягкая – в беспроводной сети.

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

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

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

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

 

 

3.   Менеджер мобильных транзакций

 

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

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

В общем случае, сессия описывается следующим набором параметров:

·        параметры, описывающие текущее состояние интерфейса пользователя (текущая карта, предыдущая карта, размеры предъявляемых выборок данных и т.п.);

·        параметры, описывающие текущее состояние просмотра некоторой реляционной таблицы (имя, текущая запись, список помеченных записей и т.п.);

·        параметры, описывающие текущий поисковый запрос;

·        параметры, описывающие текущую выборку данных, предъявляемых пользователю (например, номера записей в некой базе данных или сами записи);

·        параметры, описывающие текущее состояние просмотра (например, номер очередной предъявленной пользователю записи базы данных).

 

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

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

·        подсистемы восстановления сессии,

·        подсистемы выполнения запроса,

·        подсистемы формирования ответа.

 

3.1. Восстановление сессии

 

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

Пользователь обязан прислать по меньшей мере значение одной переменной – свое имя. Кроме этой обязательной переменной пользователь может прислать значения еще каких-либо переменных (а может и не прислать).

На этом этапе все параметры текущей сессии (хранящиеся в «почтовом ящике») сканируются, и для каждого из них определяется: поступило ли от пользователя значение переменной, переопределяющей этот параметр. Если такое значение есть, то параметр переопределяется, и новое значение параметра записывается в базу данных. Таким образом, перед выполнением каких-либо содержательных действий Менеджер запоминает новое состояние сессии. Если во время выполнения этих действий произойдет разрыв соединения, то при следующем вхождении пользователя в систему он окажется именно в этом последнем состоянии сессии.

Основная таблица, хранящая параметры сессии, может быть очень проста. Например, таблица может содержать только четыре атрибута: userId (идентификатор пользователя), sessionName (имя сессии), paramName  (имя параметра) и paramValue (значение параметра).           Такая простая структура позволяет работать с любыми наборами параметров, необходимых для различных баз данных.

 

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

 

3.2. Выполнение запроса

 

Имеется два типа запросов, принимаемых от мобильного клиента:

·                    локальные запросы,

·                    удаленные запросы.

 

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

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

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

 

3.3. Формирование ответа

 

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

Часто кроме очередной карты Менеджер отправляет и несколько других, которые могут потребоваться пользователю (если, конечно, они имеют не слишком большой объем). Например, при отправке карты «Главное меню» вместе с ней отправляются карты «Список словарей», «Текущая формула поиска» и др.

 

 

4. Модельная задача

 

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

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

Выбор этой задачи обусловлен следующим:

·        она является типовой задачей работы с библиотечными базами данных;

·        задача охватывает основные технологические этапы доступа к удаленной библиотечной базе данных (работа с пользователем, работа с базой данных, коммуникации).

 

Была создана «эталонная» (или «тестовая») база данных – функциональный эквивалент «реальной» библиотечной базы данных. «Эталонная база данных» представляет собой выборку из «реального» электронного каталога книг.

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

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

          Конвертация компонент базы данных проводится в два этапа, с промежуточным представлением компонент в виде текстовых файлов (xml-документов).

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

1.     Выбор словаря.

2.     Просмотр словаря и, возможно, пометка (выбор) каких-то элементов словаря.

3.     Возможно, повторение действий 1-2 с другими словарями.

4.     Просмотр отобранных элементов словарей и построение из них «формулы поиска», т.е. запроса к базе данных.

5.     Запуск поиска.

6.     Просмотр результата. Возможно, возврат в пункт 4.

 

Декомпозиция каждого пункта сценария на элементарные типовые действия позволяет определить базовый набор функций. Например: «выбор словаря», «пометка элементов выбранного словаря» и т.п.

 

 

5. Интерфейс пользователя

 

Разные модели сотовых телефонов (точнее, микробраузеры телефонов) одни и те же карты (WML-страницы) отображают по-разному. Это касается и представления информации, и представления элементов управления.

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

Например, стартовая карта интерфейса представляется следующим образом:

 

 

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

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

(Далее будем называть содержательные управляющие элементы функциями).

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

 

Рис.2. Карта интерфейса пользователя

 


6. Средства реализации

 

Основными базовыми компонентами, лежащими в основе предложенной схемы, являются «почтовый ящик» и «менеджер мобильных транзакций».

«Почтовый ящик» представляет собой неоднородную базу данных, содержащую как реляционные таблицы (под управлением СУБД mySQL), так и систему плоских файлов.

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

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

 

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

Доступ к менеджеру мобильных транзакций со стороны мобильных клиентов обеспечивается с помощью системы Apache. Доступ менеджера мобильных транзакций к рабочей базе данных осуществляется с помощью библиотеки DBI/DBD.

Интерфейс мобильного клиента (сотовый телефон) реализован на языках WML и WMLScript. В функциональном отношении этот интерфейс соответствует описанному в [1].

Следует отметить, что все инструментальные средства, используемые в проекте, являются свободно-распространяемыми (mySQL, Apache, Perl, DBI/DBD, WML и WMLScript).

 

 

Заключение

 

Технологии мобильного доступа к информационным ресурсам сравнительно молоды. В частности, только в 2002 году в России завершено создание инфраструктуры для GPRS-телефонии, а мобильная телефонная связь с протоколом WAP доступна лишь с 2001 года.

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

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

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

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

 

Литература

 

1. С.Л. Головков, Н.Е.Каленов.

Принципы построения системы удаленного доступа к библиотечным ресурсам на базе сотовой связи. Препринт ИПМ им.М.В.Келдыша РАН, N 87, 2003, 13 с.

2. С.Л. Головков, А.Г. Рубин, В.К. Смирнов.

Мобильные средства поддержки научных исследований в среде Интернет. Научный сервис в сети Интернет: Труды Всероссийской научной конференции (23-28 сентября 2002 г., г. Новороссийск). – М.: Изд-во МГУ, 2002.

3. С.Л. Головков.

Мобильные транзакции (обзор). Препринт ИПМ им.М.В.Келдыша РАН, N89, 2005, 16 с.