Файл: ТЕХНОЛОГИЯ «КЛИЕНТ–СЕРВЕР» (Технология «клиент–сервер»).pdf
Добавлен: 30.03.2023
Просмотров: 266
Скачиваний: 3
ВВЕДЕНИЕ
В последние годы развития информационных и аппаратных технологий можно говорить об увеличенном внимании и частых попытках совершенствования приложений клиент–сервер. На сегодняшний день уже реализованы такие приложения, которые обеспечивают поддержку совместной работы нескольких пользователей, при этом источник данных в сети остается один.
Распространение технологии «клиент–сервер» стало повсеместным при начале общения пользователя с компьютером или с системой, также основанной на работе компьютера. Примерами ежедневного применения технологии «клиент–сервер» являются такие повсеместные действия, о которых мы даже не задумываемся, как телефонная связь или совершение покупок. Применяя автоматический кассовый аппарат, осуществляя считывание штрих–кода с товара, расплачиваясь за совершенную покупку,– мы взаимодействуем с системой компьютера «клиент–сервер».
Технология «клиент–сервер» представляет собой архитектуру взаимодействия, при которой одна программа отправляет запрос на выполнение определенного перечня действий, а другая программа реализует непосредственно выполнение этого перечня. Участниками подобного взаимодействия являются клиент и сервер. Зачастую в качестве клиента или сервера выступает компьютер, который обеспечивает функционирование того или иного программного обеспечения.
Для того чтобы подробнее разобраться в приведенной архитектуре, была определена цель выполнения работы – изучение технологии «клиент–сервер».
Объектом исследования будет выступать архитектура информационной системы. Предметом – сама технология «клиент–сервер».
Для достижения поставленной цели необходимо выполнить следующие задачи:
- рассмотреть основные характеристики архитектуры информационных систем;
- кратко охарактеризовать виды архитектуры информационных систем;
- описать архитектуру «клиент-сервер»;
- проанализировать программное обеспечение технологии «клиент–сервер».
В структуру работы включены такие элементы, как Введение, Заключение и Список литературы. Кроме того, работа содержит две главы, каждая из которых состоит из двух параграфов.
Основной теоретической и методологической базой исследования выступают работы современных авторов, рассматривающих архитектуру информационных систем, и в частности – технологию «клиент-сервер». В числе таких авторов – Ипатова Э. Р., Мельников В., Ярочкин В. и др.
Архитектура информационной системы
Основные характеристики архитектуры информационных систем
В рамках настоящего исследования, в первую очередь, целесообразно определить, что представляет собой информационная система. Под информационной системой будем понимать взаимосвязанную совокупность средств, методов и персонала, которые применяются для хранения, обработки и выдачи данных с определенной целью [1].
Современные информационные системы достаточно сложны и многообразны, и значительно варьируются в классификации согласно определенным признакам. Одним из таких признаков является архитектура, которая может быть разного уровня сложности. Справедливо будет отметить, что сегодня грамотно сконструированная, эффективная и оперативная информационная система является не менее ценным интеллектуальным продуктом, чем проект целого здания.
Рассмотрим определение «архитектуры информационной системы», которое дают различные источники:
Архитектура – это организационная структура системы [3].
Архитектура информационной системы – концепция, определяющая модель, структуру, выполняемые функции и взаимосвязь компонентов информационной системы [4].
Архитектура – это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы [11].
Архитектура – это набор значимых решений по поводу организации системы программного обеспечения, набор структурных элементов и их интерфейсов, при помощи которых компонуется система, вместе с их поведением, определяемым во взаимодействии между этими элементами, компоновка элементов в постепенно укрупняющиеся подсистемы, а также стиль архитектуры, который направляет эту организацию – элементы и их интерфейсы, взаимодействия и компоновку [6].
Архитектура программы или компьютерной системы – это структура или структуры системы, которые включают элементы программы, видимые извне свойства этих элементов и связи между ними [9].
Архитектура – это структура организации и связанное с ней поведение системы [18]. Архитектуру можно рекурсивно разобрать на части, взаимодействующие посредством интерфейсов, связи, которые соединяют части, и условия сборки частей. Части, которые взаимодействуют через интерфейсы, включают классы, компоненты и подсистемы.
Архитектура программного обеспечения системы или набора систем состоит из всех важных проектных решений по поводу структур программы и взаимодействий между этими структурами, которые составляют системы [9]. Проектные решения обеспечивают желаемый набор свойств, которые должна поддерживать система, чтобы быть успешной. Проектные решения предоставляют концептуальную основу для разработки системы, ее поддержки и обслуживания.
Несмотря на то, что большинство определений отличаются, основная суть остается сходной. Так, большая часть приведенных трактовок указывает на связь архитектуры со структурой и поведением всей системы, а также ее соответствие определенному архитектурному стилю. Кроме того, обобщая определения, можно сказать, что архитектура информационной системы находится под влиянием заинтересованных лиц и окружения, и она всегда воплощает в себе решения, основанные на логических выводах.
Под архитектурой программных систем будем понимать совокупность решений относительно [1, 10]:
- организации программной системы;
- выбора структурных элементов, составляющих систему и их интерфейсов;
- поведения этих элементов во взаимодействии с другими элементами;
- объединение этих элементов в подсистемы;
- архитектурного стиля, определяющего логическую и физическую организацию системы: статические и динамические элементы, их интерфейсы и способы их объединения.
Архитектура программной системы охватывает не только ее структурные и поведенческие аспекты, но и правила ее использования и интеграции с другими системами, функциональность, производительность, гибкость, надежность, возможность повторного применения, полноту, экономические и технологические ограничения, а также вопрос пользовательского интерфейса.
По мере развития программных систем все большее значение приобретает их интеграция друг с другом с целью построения единого информационного пространства предприятия. Как можно видеть из вышеприведенных определений интеграция является важнейшим элементом архитектуры.
Для того чтобы построить правильную и надежную архитектуру и грамотно спроектировать интеграцию программных систем необходимо четко следовать современным стандартам в этих областях. Без этого велика вероятность создать архитектуру, которая неспособна развиваться и удовлетворять растущим потребностям пользователей ИТ. В качестве законодателей стандартов в этой области выступают такие международные организации как SEI (Software Engineering Institute), WWW (консорциум World Wide Web), OMG (Object Management Group), организация разработчиков Java – JCP (Java Community Process), IEEE (Institute of Electrical and Electronics Engineers) и другие [15].
Виды архитектуры информационных систем
Рассмотрим классификацию программных систем по их архитектуре:
- Централизованная архитектура;
- Архитектура «файл–сервер»;
- Двухзвенная архитектура «клиент–сервер»;
- Многозвенная архитектура «клиент–сервер»;
- Архитектура распределенных систем;
- Архитектура Веб–приложений;
- Сервис–ориентированная архитектура [1].
Следует заметить, что, как и любая классификация, данная классификация архитектур информационных систем не является абсолютно жесткой. В архитектуре любой конкретной информационной системы часто можно найти влияния нескольких общих архитектурных решений.
Далее подробно рассмотрим особенности наиболее распространенных видов архитектуры.
Централизованная архитектура вычислительных систем была распространена в 70–х и 80–х годах и реализовывалась на базе мейнфреймов (например, IBM–360/370 или их отечественных аналогов серии ЕС ЭВМ), либо на базе мини–ЭВМ (например, PDP–11 или их отечественного аналога СМ–4) [11]. Характерная особенность такой архитектуры – полная «неинтеллектуальность» терминалов. Их работой управляет хост–ЭВМ.
Достоинства такой архитектуры [11, 12]:
- пользователи совместно используют дорогие ресурсы ЭВМ и дорогие периферийные устройства;
- централизация ресурсов и оборудования облегчает обслуживание и эксплуатацию вычислительной системы;
- отсутствует необходимость администрирования рабочих мест пользователей.
Главным недостатком для пользователя является то, что он полностью зависит от администратора хост–ЭВМ. Пользователь не может настроить рабочую среду под свои потребности – все используемое программное обеспечение является коллективным.
Использование такой архитектуры является оправданным, если хост–ЭВМ очень дорогая, например, супер–ЭВМ.
Классическое представление централизованной архитектуры показано на рис. 1 [3].
Рис. 1. Классическое представление централизованной архитектуры
Центральная ЭВМ должна иметь большую память и высокую производительность, чтобы обеспечивать комфортную работу большого числа пользователей.
Все приложения, работающие в такой архитектуре, полностью находятся в основной памяти хост–ЭВМ. Терминалы являются лишь устройствами ввода–вывода и таким образом в минимальной степени поддерживают интерфейс пользователя.
Архитектура «файл-сервер»
Файл–серверные приложения – приложения, схожие по своей структуре с локальными приложениями и использующие сетевой ресурс для хранения программы и данных [13].
Функции сервера: хранения данных и кода программы.
Функции клиента: обработка данных происходит исключительно на стороне клиента.
Классическое представление информационной системы в архитектуре «файл–сервер» представлено на рис. 2 [3].
Рис. 2. Классическое представление архитектуры «файл–сервер»
Организация информационных систем на основе использования выделенных файл–серверов все еще является распространенной в связи с наличием большого количества персональных компьютеров разного уровня развитости и сравнительной дешевизны связывания PC в локальные сети [14].
Конечно, основным достоинством данной архитектуры является простота организации. Проектировщики и разработчики информационной системы находятся в привычных и комфортных условиях IBM PC в среде MS–DOS, Windows или какого–либо облегченного варианта Windows Server. Имеются удобные и развитые средства разработки графического пользовательского интерфейса, простые в использовании средства разработки систем баз данных и/или СУБД.
Достоинства такой архитектуры [12, 13, 14]:
- многопользовательский режим работы с данными;
- удобство централизованного управления доступом;
- низкая стоимость разработки;
- высокая скорость разработки;
- невысокая стоимость обновления и изменения ПО.
Недостатки [12, 13, 14]:
- проблемы многопользовательской работы с данными: последовательный доступ, отсутствие гарантии целостности;
- низкая производительность (зависит от производительности сети, сервера, клиента);
- плохая возможность подключения новых клиентов;
- ненадежность системы.
Простое, работающее с небольшими объемами информации и рассчитанное на применение в однопользовательском режиме, файл–серверное приложение можно спроектировать, разработать и отладить очень быстро [14]. Очень часто для небольшой компании для ведения, например, кадрового учета достаточно иметь изолированную систему, работающую на отдельно стоящем PC. Однако, в уже ненамного более сложных случаях (например, при организации информационной системы поддержки проекта, выполняемого группой) файл–серверные архитектуры становятся недостаточными.