Повышение эффективности клиент-серверных систем

 

45_4

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

В работе исследованы один из самых распространенных классов клиент-серверных компьютерных систем — системы средней сложности. Сервер таких систем построены на основе шаблона конкурентной архитектуры, удерживающей в очереди не более Х клиентов (0 ≤ X ≤ (N * M / 2)), где N — количество процессов в серверном приложении, M — количество потоков в каждом процессе.

Для передачи данных в клиент-серверных системах средней сложности часто используют узкоспециализированные протоколы Extensible Messaging and Presence Protocol Extensible Messaging and Presence Protocol (XMPP), OSCAR, IRC и другие. Основное преимущество этих протоколов — их функциональная направленность для решения ограниченного числа задач. Для Например, протокол XMPP регламентирует передачу сообщений и информации о присутствие между пользователями Интернета. Протоколы OSCAR и IRC обеспечивают сетевой обмен текстовыми сообщениями. Для этих протоколов разработано достаточно много клиентского и серверного программного обеспечения. Наряду с преимуществами существует много недостатков таких протоколов: закрытость исходных кодов, использование централизованного сервера, необходимость настроить передачу файлов, трудности работы с мобильными устройствами и другие.

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

Необходимо эффективно решить такие взаимосвязанные задачи:

— Определить требования для разработки универсального протокола передачи данных клиент-серверных систем средней сложности;

— Разработать архитектуру клиент-серверной системы средней сложности на основе универсального протокола передачи данных;

— Разработать алгоритм запросов универсального протокола передачи данных;

— Спроектировать и реализовать программы клиент-серверной системы средней сложности на основе разработанного протокола.

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

Назовем разрабатываемый протокол — Extensible Data Store and Exchange Protocol (XDSEP). Определим общие требования к протоколу передачи данных: универсальность; простота разработка серверной и клиентской части; модульная структура; открытый код;

За основу по разработке протокола XDSEP предлагаем использовать следующую схему подключение клиентских приложения к серверу:

— Аутентификацию клиента через графический веб-интерфейс;

— Создание клиентских настроек и определения средств доступа к контенту клиент-серверной системы средней сложности через «Менеджер конфигурации»;

— Сообщить клиенту информацию о его уровень доступа к серверу и сетевых настроек.

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

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

Соответствии с определенными требованиями спроектировано клиент-серверную систему на основе XDSEP.

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

Основные команды клиент-серверной системы:

— GetSrvAddr — запрос сервера распределения нагрузки (сервер Р.Н.) на получение IP-адреса для подключения клиента;

— GetFreeSlot — запрос XDSEP сервера для определения наличия свободных слотов для обслуживания клиентов;

— SrvAddr — ответ на запрос GetSrvAddr, в которой содержится IP-адрес сервера, к которому присоединяется клиент;

— FreeSlot — ответ на запрос GetFreeSlot, в которой содержится IP-адрес сервера с свободными слотами или пустая строка, если нет свободных слотов;

— Connect — запрос на возможность соединения клиента с XDSEP сервером;

— ConnRes — ответ на запрос Connect (1-соединение прошло успешно, 0-неудачная попытка соединения);

— DB Cmd — запрос к базе данных;

— Command — передача команды, регламентированной протоколом XDSEP (Считать данные из БД, передать данные другому клиенту, записать данные в БД и др.);

— DB Res — ответ на запрос DB Cmd;

— Response — результат выполнения команды Command.

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

Особенности программной реализации протокола XDSEP.

На основе протокола XDSEP реализовано серверную и клиентскую части клиент-серверной системы среднего сложности. Серверную часть реализована на основе платформы Linux (Ubuntu Linux) с использованием языка программирования С + +, библиотеки posix и серверного шаблона «Pre- forking «+» Pre-threading «. При разработке клиентской части использовано платформу

— Ubuntu Linux, Android; языки программирования — С + +, Java; среда программирования — NetBeans, Eclipse; библиотеку — posix.

Структуру типичной серверной части, реализованной на основе протокола XDSEP, есть такие составляющие серверной части клиент-серверной системы средней сложности: Server Engine — ядро сервера Configuration Manager — веб-интерфейс для конфигурирования серверного ядра; Gateway interface — модуль, который позволяет легко адаптировать систему к требованиям и размеру сети, количеству и географии подключений.

Использование шаблона «Pre-forking» + «Pre-threading» позволило протестировать работу клиент-серверной системы в условиях критической нагрузки при большой количества одновременно подключенных клиентов, а также, передавая большие объемы данных.

Итоги

Показано, что одним из возможных путей решения этой задачи является разработка нового, универсального протокола передачи данных. В связи с этим определены требования к такого протокола и выполнено его разработки. В работе спроектировано и реализовано клиент-серверную систему средней сложности на основе разработанного протокола XDSEP. Серверная часть реализована на основе платформы Linux (Ubuntu Linux) с использованием языка программирования С + +, библиотеки posix и серверного шаблона «Pre-forking» + «Pre- threading «. При разработке клиентской части использовано: платформу — Ubuntu Linux, Android; языки программирования — С + +, Java; среда программирования — NetBeans, Eclipse; библиотеку — posix. Такой подход позволяет использовать системы на основе XDSEP протокола для значительного количества сервисов и решений, обеспечивая эффективную работу клиентов с различным набором команд и логике сетевого взаимодействия.

Сейчас всё большую популярность приобретает размещения собственных серверов и коммутационного оборудования на удалённых площадках. Такое размещение называется colocation. Следовательно, возникает вопрос, какой colocation выбрать? В этом случае, я Вам посоветую надёжный colocation в Москве. Эта компания находит индивидуальный подход к каждому Клиенту и его запросам.

 
 
 

0 - Количество комментариев

Оставьте комментарий.

 
 

Оставьте комментарий