Научная статья на тему 'Разработка веб-сервиса удалённого взаимодействия с базами данных'

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

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Корниловский Артём Викторович, Губин Вадим Александрович

Исследуются наиболее популярные подходы удалённого доступа к СУБД, анализируются их недостатки. Предлагается подход, использующий технологию веб-сервисов, для осуществления взаимодействия с удаленной СУБД, позволяющий в значительной мере избежать недостатков популярных подходов.

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

Development of web-service for remote access to databases

The most widespread approaches of solving the problem of remote access to databases was analyzed. The approach using web-services technology for optimizing security, cross platform and simplicity of remote client to data sources access criteria was proposed.

Текст научной работы на тему «Разработка веб-сервиса удалённого взаимодействия с базами данных»

УДК 519.713

А. В. КОРНИЛОВСКИЙ, В.А. ГУБИН

РАЗРАБОТКА ВЕБ-СЕРВИСА УДАЛЁННОГО ВЗАИМОДЕЙСТВИЯ С БАЗАМИ ДАННЫХ

Исследуются наиболее популярные подходы удалённого доступа к СУБД, анализируются их недостатки. Предлагается подход, использующий технологию веб-сервисов, для осуществления взаимодействия с удаленной СУБД, позволяющий в значительной мере избежать недостатков популярных подходов.

1. Введение

На сегодняшний день удалённое использование сервером баз данных в Web - привычное явление. Однако большинство систем, предоставляющих данную возможность, являются серверными СУБД, доступ к базам которых возможно осуществлять удалённо, используя TCP/IP [1]. Такое взаимодействие клиента БД и сервера СУБД имеет ряд недостатков: конструктивная сложность; привязка к конкретной платформе; небезопасность подключения.

2. Анализ предметной области

Рассмотрим более детально перечисленные аспекты предметной области.

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

С точки зрения простоты реализации веб-сервис является одним из наиболее оптимальных решений. Создание программного продукта такого класса не требует высокой квалификации разработчика в области знания протоколов уровня представления - XML-RPC, SOAP, а также языка описания веб-сервисов WSDL.

Привязка к платформе обусловлена необходимостью согласовывать платформу клиентского приложения с платформой СУБД посредством использования соответствующего драйвера или поставщика СУБД (набор классов, предназначенных для взаимодействия с хранилищем данных определенного типа). По этой причине наиболее распространены сочетания PHP + MySQL, C# + MS SQL, C++ + MS Access и др. Благодаря использованию технологии веб-сервисов, подобной зависимости можно избежать, так как к веб-сервису можно обращаться с клиентов любых программно-аппаратных платформ. С другой стороны, из веб-сервиса возможно обращаться к СУБД различных типов, используя технологию ADO .NET.

ADO.NET представляет собой набор библиотек, входящих в Microsoft .NET Framework и предназначенных для взаимодействия с различными хранилищами данных из .NET-приложений. Библиотеки ADO.NET включают все необходимые классы для подключения к источникам данных практически произвольного формата, выполнения запросов к этим источникам и получения результата. Кроме того, несомненным достоинством ADO.NET является возможность работы с отсоединенными источниками данных, представляющими собой структуры, которые организуют данные в оперативной памяти компьютера и работать с которыми возможно с применением ставших уже привычными средств доступа к данным. Таким образом, ADO.NET можно использовать в качестве надежного, иерархически организованного отсоединенного от источника кэша данных для автономной работы, что незаменимо при построении масштабируемых приложений. Применение этой технологии позволяет в значительной мере решить проблему согласования клиента и СУБД различных платформ.

Небезопасность авторизации и передачи данных возможно устранить при использовании шифрования данных авторизации, а также самого потока передачи запроса на обращение к хранилищу данных. Случайное комбинирование хотя бы нескольких различных алгоритмов шифрования в этом вопросе позволит существенно повысить уровень безопасности взаимодействия. Также на пользу идёт факт логического и/или пространственного разделения области работы приложения веб-сервиса и СУЬД. Благодаря этому, клиент может обращаться с запросом к интерфейсу веб-сервиса, расположенному на одном узле, а веб-сервис, в свою очередь, переадресовывать запрос на удалённый узел (один или группу, в зависимости от наличия распределённости СУБД). Это неизбежно снизит быстродействие работы с базой данных для клиента, однако поспособствует сохранности передаваемой информации.

3. Постановка задачи

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

В качестве платформы разработки самого веб-сервиса было принято решение использовать Microsoft .NET [2]. Это обусловлено, в первую очередь, простотой реализации, а также широкими возможностями, предоставляемыми WSDL веб-сервисами: возможность использования как HTTP, так и SOAP протокола для внешнего взаимодействия; наличие wsdl-описания, что позволяет без труда сделать сервис доступным из репозиториев, а также получить перечень веб-методов, доступных для вызова клиентским приложением.

С другой стороны, веб-сервис будет взаимодействовать с удалённой или же локальной БД под управлением СУБД MS SQL Server, как наиболее нативной для платформ MS, в целом. Как уже было упомянуто ранее, это не будет иметь никакого значения в плане особенностей организации взаимодействия клиентского приложения с веб-сервисом.

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

- Возможность взаимодействия с локальной или удалённой СУБД MS SQL Server.

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

- Наличие системы пользовательских аккаунтов.

- Разграничение прав пользователей на доступ к данным.

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

- Доступность сервиса и его WSDL-описания в UDDI репозиториях.

4. Программная реализация

В соответствии с описанной задачей и поставленными требованиями был реализован веб-сервис удаленного доступа к БД. Данный сервис построен на базе платформы Microsoft ASP .NET и применяет протокол SOAP XML для взаимодействия с клиентом. В качестве СУБД использована Microsoft SQL Server [3], взаимодействие с которой производится через объекты отсоединенных источников данных.

Схема взаимодействия веб-сервиса с клиентским приложением и с СУБД имеет следующий вид (рис. 1):

Рис. 1. Схема работы веб-сервиса

Схема взаимодействия также показывает строгое разделение домена веб-сервиса и клиентского приложения. Таким образом, непосредственный доступ к СУБД является инкапсулированным относительно клиентского приложения.

Классовая иерархия программного продукта представлена на рис. 2.

DBWorker DB_WebSemoe

^createTableij *deje£table() ^addData(} ^delData(} ^selectDatai; ^dbWorker DBWorker ^account Manager AccountManager

P ^loginf)

AcessRights ^modify Boolean %>read Boolean ^>createTables Boolean

AccountManager

^>currentUser User t^dbWorker DBWorker - User

flights AoessRights ^>passHash Long f%>naine String

■^;ietUser() ■*createUser(} ^deleteUserQ ^inodifyPassword[)

^setRightsQ

Рис. 2. UML-диаграмма классов веб-сервиса

В соответствии с разработанной структурой, с клиентской стороны доступны два метода веб-сервиса (их прототипы и аннотации представлены в WSDL-спецификации): int login(string name, string pass), возвращающий клиенту идентификатор сессии для работы с базой данных (по умолчанию, сессия действительна в течение 20 минут от момента логина); string do(string action, object[] data) - служит для выполнения действия action с базой данных (перечень доступных действий, а также их описание доступны в WSDL-аннотации) и набором данных data. В результате работы метод возвращает данные в виде xml-строки - ответа СУБД. Регистрация пользователя в системе осуществляется также либо с применением этого метода, либо локально (на стороне веб-сервиса).

Основной класс веб-сервиса (DB_WebService, наследник класса WebService) также использует для своей работы агрегированные объекты-экземпляры вспомогательных классов: менеджера работы с аккаунтами (AccountManager), а также объект для доступа к БД через отсоединенные источники данных (DBWorker).

5. Выводы

По причине существующей проблемы взаимодействия клиентских приложений с удалёнными СУБД была проанализирована предметная область и поставлена задача разработать веб-сервис для удалённой работы с базами данных. Веб-сервис реализован на платформе ASP .NET, работает по протоколу SOAP XML и удовлетворяет основным требованиям, обозначенным при рассмотрении задачи: простота взаимодействия, платформонеза-висимость и безопасность.

Одним из направлений дальнейших исследований является разработка веб-сервиса, позволяющего организовывать двухстороннее взаимодействие: как с клиентами на разных платформах - с одной стороны, так и с различными СУБД - с другой.

Список литературы: 1. Фуфаев Э.В. и др. Разработка и эксплуатация удалённых баз данных. М.: Академия, 2008. 256с. 2. Шапошников И. Web-сервисы Microsoft .NET. СПб.: БХВ-Петербург, 2002. 334с. 3.ХендерсонК.. Microsoft SQL Server: структура и реализация. Профессиональное руководство. М.: Вильямс, 2005. 1056с. 4. Шилдт Г. Полный справочник по C#: Пер. с англ. М.: Вильямс, 2004. 752с.

Поступила в редколлегию 26.05.2010 Корниловский Артём Викторович, студент специальности интеллектуальные системы принятия решений, факультет КН, ХНУРЭ. Адрес: Украина, 61019, Харьков, пр. Ильича, 103а, кв. 40, тел. 376-27-27.

Губин Вадим Александрович, ст. преподаватель кафедры искусственного интеллекта ХНУ-РЭ. Научные интересы: интернет-технологии, интеллектуальный анализ данных. Адрес: Украина, 61054, Харьков, ул. Гв.-Широнинцев, 23, кв. 287, тел. 710-64-12.

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