В наше время в условиях глобализации бизнеса, требующего резкого снижения затрат на выполнение производственных функций, мобильности персонала, возможности доступа к требуемой информации и работы с ней в любой точке мира, невозможно представить себе жизнь без систем сбора и обработки информации, главными показателями которых является повышение уровней сохранности и доступности информационных ресурсов (информационных массивов, баз знаний и программных модулей) и эффективное управление ими.
Использование Internet технологий при создании систем сбора и обработки информации и построении информационных систем различного назначения в ближайшее время станет доминирующим в мировом информационном пространстве по следующим причинам. Эти технологии:
- Позволяют организовать с достаточной простотой для пользователя системы поиска нужной информации;
- Предъявляют минимальные требования, как с технической стороны, так и со стороны программного обеспечения к рабочему месту клиента;
- Поддерживают распределенные системы хранения информации и множественные методы ее хранения;
- Поддерживают работу с практически неограниченным объемом разноплановых данных;
- Предоставляют технологически простой способ администрирования информационных систем с одного рабочего места;
- Поддерживают удаленные методы редактирования и пополнения информации.[7].
В связи с этими тенденциями создание ИС онлайн оплаты коммунальных услуг является закономерным процессом. С увеличением популярности электронных денег созданием множества Интернет магазинов и аукционов люди все больше хотят оплачивать и получать услуги и товары, не выходя из дома через Интернет. Поэтому создание ИС онлайн оплаты коммунальных позволит не только сэкономить время людей, которым не нужно будет проводить часами стоя в очередях, но и автоматизировать и ускорить процесс оплаты. Также человек в любое время и в любом месте может получить информацию по состоянию своей задолженности и тарифам на коммунальные услуги в реальном времени, состояние которых может быть изменено представителями услуг.
Для осуществления сбора и обработки информации в глобальной сети чаще всего используются распределенные информационные системы. Информационная система - совокупность технического, программного и организационного обеспечения основной задачей которой является удовлетворение конкретных информационных потребностей в рамках конкретной предметной области.[4]
Распределенные информационные системы по архитектуре можно разделить на два основных типа:
1. Файл-серверные ИС (ИС с архитектурой «файл-сервер»);
Файл-серверные приложения — приложения, схожие по своей структуре с локальными приложениями и использующие сетевой ресурс для хранения программы и данных. Функции сервера: хранения данных и кода программы. Функции клиента: обработка данных происходит исключительно на стороне клиента. Количество клиентов ограничено десятками.
Плюсы: низкая стоимость разработки; высокая скорость разработки; невысокая стоимость обновления и изменения ПО.
Минусы: низкая производительность (зависит от производительности сети, сервера, клиента); плохая возможность подключения новых клиентов; ненадежная система; ограниченность языка; негибкость среды разработки.[5]
2. Клиент-серверные ИС (ИС с архитектурой «клиент-сервер»).
Обычно под термином «клиент-сервер» понимают архитектуру многопользовательских систем, которая предусматривает наличие клиентских и серверных программных компонент. Клиентские модули используются на удаленных рабочих местах пользователей, а централизованные серверные программы обеспечивают обслуживание клиентов, то есть прием удаленных запросов пользователей, их обработку и возврат им же результатов этой обработки.[8]
Преимущества:
- Делает возможным, в большинстве случаев, распределить функции вычислительной системы между несколькими независимыми компьютерами в сети.
- Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов.
- Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т.п.
Недостатки:
- Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть;
- Поддержка работы данной системы, требует отдельного специалиста - системного администратора;
- Высокая стоимость оборудования.[6]
В свою очередь клиент-серверная архитектура разделяется на несколько типов:
- Двухуровневая архитектура «клиент-сервер»;
- Трехуровневая архитектура «клиент-сервер»;
- Многоуровневая архитектура или N-уровневая архитектура.
Двухуровневая архитектура «клиент-сервер».
В случае с двухуровневой архитектурой «клиент-сервер» база данных помещается на сетевом сервере, однако программа клиента лишена возможности прямого доступа к БД. Доступ к БД регулируется специальной программой – сервером БД.
Взаимодействие сервера БД и клиента реализуется с помощью SQL-запросов, которые формирует и отсылает серверу клиент. Сервер, приняв запрос, выполняет его и возвращает результат клиенту. В клиентском приложении в основном осуществляются интерпретация полученных от сервера данных, реализация пользовательского интерфейса, а также реализация части бизнес-правил.[9]
Но двухуровневая архитектура не лишена недостатков, таких как:
- Ухудшение производительности прямопропорциональна количеству пользователей;
- Независимо от того, какой тип клиента используется, большая часть обработки данных должна находиться в базе данных, это означает, что она полностью зависит от возможностей предусмотренных в базе данных производителем.
- Двухуровневая архитектура настолько зависит от конкретной реализации базы данных, что перенос существующих приложений для различных СУБД, становится серьезной проблемой.[10]
Двухуровневая архитектура «клиент-сервер» изображена на рисунке 1.
Рис. 1. Двухуровневая архитектура «клиент-сервер».[1]
Трехуровневая архитектура «клиент-сервер».
Второй способ взаимодействия – трехуровневая архитектура «клиент-сервер». В этой модели процесс, выполняющийся на клиенте, отвечает, за интерфейс с пользователем. Обращаясь за выполнением услуг к прикладному компоненту. Прикладной компонент реализован как группа процессов, выполняющих прикладные функции, и называется сервером приложения. Все операции над информационными ресурсами баз данных выполняются компонентами доступа к ресурсам. Таким образом, в отличие от предыдущей архитектуры, обмен между клиентом и сервером осуществляется посредством специально разработанного набора команд (API), а не SQL запросам. Набор этих команд определяется разработчиком, что позволяет ему ограничить набор допустимых действий с данными доступным клиенту. Трехуровневая архитектура клиент сервер представлена на рисунке 2.[9]
Введение дополнительного уровня позволяет преодолеть некоторые ограничения двухуровневой архитектуры, описанных в общих чертах выше. Как и с двухуровневой моделью, уровни могут располагаться или на различных компьютерах (рисунок 2), или на одном компьютере в тестовом режиме.[10]
Рисунок. 2. Трехуровневая архитектура «клиент-сервер».[1]
Многоуровневая архитектура «клиент-сервер».
Многоуровневая архитектура клиент-сервер — разновидность архитектуры клиент-сервер, в которой функция обработки данных вынесена на один или несколько отдельных серверов. Это позволяет разделить функции хранения, обработки и представления данных для более эффективного использования возможностей серверов и клиентов.[6]
Трехуровневая архитектура является частным случаем многоуровневой, но если рассматривать их отдельно то можно выделить несколько преимуществ многоуровневой архитектуры перед трехуровневой, такие как:
- Масштабируемость. Нагрузка распределяется на несколько web-серверов, которые взаимодействуют с базой данных или с сервером следующего уровня.
- Защищенность. Использование нескольких физических уровней повышает защищенность информационной системы от сетевых атак, а также функцию защиту могут выполнять все уровни сервера, распределяя нагрузку.
- Стабильность. При выводе из строя одного из промежуточных уровней его функцию могут распределять между собой остальные уровни идентичной функциональности. Хотя и производительность в такой ситуации и потеряется,
но система не будет выведена из строя как в случае с трехуровневой системой.
Многоуровневые архитектуры обычно состоят из четырех уровней (рисунок 3), где в сети сервер отвечает за обработку соединение между клиентом браузером и сервером приложений.[10]
Рисунок 3. Многоуровневая архитектура «клиент-сервер».[10]
Рассмотрев существующие методы сбора и обработки информации, в магистерской работе ставятся следующие задачи:
- Проанализировать и сравнить разные методы организации N-уровневой архитектуры «клиент-сервер»;
- Изучить существующие методы распределения нагрузки на сервера, и разработать собственный метод равномерного распределения подключений к серверам;
- Разработать систему онлайн оплаты коммунальных услуг на основе многоуровневой архитектуры «клиент-сервер» используя полученные результаты исследования;
- Разработать собственный протокол обмена информацией между клиентом и сервером, используя для передачи формат данный XML (текстовый формат, предназначенный для хранения структурированных данных);
- На базе разработанной системы проанализировать масштабируемость и производительность системы в зависимости от увеличения количества промежуточный серверов.
Проектируемая система – это программный продукт, который позволяет осуществлять онлайн оплату коммунальных услуг. Использование многоуровневой архитектуры «клиент-серверного» приложения позволяет одновременно в режиме реального времени обслуживать большое количество клиентов одновременно.
Научная новизна работы состоит в том, что будет создана система сбора и обработки данных на основе многоуровневой архитектуры «клиент-сервер». Основная особенность системы состоит в том, что будет создана распределенная серверная часть, которая в зависимости от нагрузки на сервер может быть расширена на физическом уровне. А также будет исследовано увеличение производительности при расширении.
Были рассмотрены методы сбора и обработки информации в глобальной сети, проанализированы недостатки и преимущества каждого из методов. Также была разработана программа онлайн оплаты коммунальных услуг на базе трехуровневой архитектуры «клиент-сервер».
В разработанной системе клиентская программа, написанная на actionscript 3, загружается на компьютер пользователя как обычный флеш файл с сервера. Запускаясь, эта программа подключается к серверу, написанному на C#, использующую базу данных MS SQL. Запросы клиента передаются в формате XML, который на стороне сервера расшифровывается и на основе полученных данных формируется SQl запрос к базе. При этом сервер перед формированием запроса проверяет все приходящие команды. Набор команд обмена между сервером и клиентом очень ограничен и позволяет выполнять только определенный набор действий с базой данных. Однако такой подход для создания узко специализированных СУБД оправдывает малую функциональность большой защищенностью базы данных. Формат XML очень удобен для передачи данных, но он является открытым и понятным даже для обычного человека. Так что для защиты данных пользователей при передаче по сети используются стандартные методы шифрования передаваемых данных. Реализуемая программа-клиент будет располагаться на компьютере с установленным http сервером, и будет доступна любому пользователю, имеющему доступ в Интернет. Загружаться на компьютер пользователя и запускаться она будет как обычный флеш-ролик через браузер, и не будет требовать дополнительной установки. Для работы программы-клиента на компьютере пользователя должен будет установлен любой браузер и Flash Player версии не ниже 10.0. Программа сервер для большей безопасности может располагаться на любой другой серверной машине без установленных http и ftp серверов и защищенной firewall-ом. Такая локализация частей программ значительно повышает безопасность сервера с базами данных и исключает возможность удаленного доступа к файлам программы и базы данных.[9]
Также в будущем запланировано расширение системы до четырехуровневой архитектуры, реализация алгоритма равномерного распределения клиентов между серверами, а также проанализировать масштабируемость и производительность системы в зависимости от увеличения количества промежуточных серверов.
Данная магистерская работа посвящена актуальной теме создания информационной системы, используя многоуровневую архитектуру клиент-сервера. Постоянному развитию и усовершенствованию таких систем способствует стремительное развитие Интернет технологий.
Проанализированные в работе методы сбора и обработки информации позволяют создать стабильную и гибкую в масштабировании систему.
Следует отметить, что в Украине нет компаний специализирующихся на создании подобных информационных систем. Обычно такие системы по мере необходимости разрабатываются группами программистов, не имеющих опыта разработки в этой сфере деятельности, что приводит к нерациональному использованию ресурсов, неэффективной работе системы и постоянной доработке и исправлении созданной системы.