Файл: Программные средства создания клиентских программ(Клиент-серверная архитектура).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.03.2024

Просмотров: 44

Скачиваний: 0

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

Содержание:

ВВЕДЕНИЕ

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

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

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

Клиент-серверная архитектура информационной системы включает в себя:

  • База данных – файл со всеми собранными данными, хранящийся на сервере;
  • Система управления базами данных (СУБД) – система, позволяющая работать с файлом базы данных (актуализация и ведение базы данных), хранящаяся на сервере;
  • Клиентское приложение – интерфейс между СУБД и пользователем, предназначена для сбора информации, отправляемой пользователем, а также для вывода результата запроса. Хранится на клиентских персональных компьютерах.

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

  • Изучить основные понятия технологии клиент-сервер;
  • Провести анализ о языках программирования, используемые для разработки клиентской части информационных систем;
  • Провести анализ инструментальных средств разработки.

1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ

1.1 Клиент-серверная архитектура

Технология «клиент-сервер» пришла на смену централизованной схеме управления вычислительным процессом на мейнфреймах еще в 80-х годах прошлого века. «Клиент-сервер» имеет ряд преимуществ над централизованной архитектуре:


  • Высокая надежность вычислительной системы;
  • Легкость масштабирования;
  • Высокая скорость обработки информации.

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

Протоколы - это стандарты, определяющие формы представления и способы пересылки сообщений, процедуры их интерпретации, правила совместной работы различного оборудования в сетях. Различают два типа протоколов в Интернет: базовые - протоколы физической пересылки сообщений между компьютерами ((протоколы IP, TCP) и прикладные, отвечающие за передачу файлов (FTP), гипертекстовых сообщений (HTTP), электронной почты, протоколы передачи живого звука и другие.

1.2 Классическая двухуровневая архитектура «Клиент – сервер»

Технология «Клиент – сервер» - это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи (Рисунок 1).

Рисунок 1 – Архитектура «Клиент-сервер»

Компьютер (или программа), управляющий и/или владеющий каким-либо ресурсом, называют сервером этого ресурса.

Компьютер (или программа), запрашивающий и пользующийся каким-либо ресурсом, называют клиентом этого ресурса.

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

Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы:


  • модули интерфейса с пользователем;

Данную группу называют логикой представления. Благодаря этой группе пользователи взаимодействуют с приложением. Главной задачей логики представления является обеспечение эффективного обмена информацией между пользователем и информационной системой.

  • модули хранения данных;

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

  • модули обработки данных (функции управления ресурсами);

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

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

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

  • компонент представления данных;
  • прикладной компонент;
  • компонент управления ресурсом.

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

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


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

Но каждый из способов имеет свои недостатки:

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

При разработке двухуровневой классической архитектуры «Клиент-сервер» следует помнить следующее:

  • Архитектура «Тонкий клиент» (Толстый сервер) (Рисунок 2);

Рисунок 2 – Архитектура «Тонкий клиент»

Передача запроса от клиента на сервер, обработка запроса сервером и передача результата клиенту. При этом архитектуры имеют следующие недостатки:

  1. Сложная реализация, поскольку нет приемлемых средств отладки;
  2. Производительность программ, написанных на языках типа SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем;
  3. Отсутствие возможности переноса на другие системы и платформы.
  • Архитектура «Толстый клиент» (Тонкий сервер) (Рисунок 3);

Обработка запроса происходит на стороне клиента, то есть происходит передача клиенту всех необработанных данных с сервера. При этом архитектуры имеют следующие недостатки:

  1. Сложный процесс обновления ПО;
  2. Сложности в распределении полномочий, так как разграничение доступа происходит не по действиям, а по таблицам;
  3. Перегрузка сети;
  4. Слабая защита данных, поскольку сложно правильно распределить полномочия.

Рисунок 3 – Архитектура «Толстый клиент»

Для устранения вышеперечисленных проблем используются многоуровневые (три и более) архитектуры «Клиент-сервер».

1.3 Трехуровневая модель


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

На Рисунке 4 показана модель трехзвенной архитектуры. Сервер приложений является промежуточным звеном между клиентом и сервером.

Рисунок 4 – Трехзвенная архитектура

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

2. ОСНОВНЫЕ ПРОГРАММНЫЕ СРЕДСТВА СОЗДАНИЯ КЛИЕНТСКИХ ПРОГРАММ

2.1. Языки программирования

Для разработки программы, использующей обращение к СУБД, может быть использовано различное множество языков программирования. Рассмотрим такие как Java, PHP, C#.

      1. Java

История языка программирования Java началась в декабре 1990. На данный момент данный язык имеет огромную популярность среди разработчиков. Из преимуществ данного языка можно выделить следующие:

  • Java является объектно-ориентированным языком программирования;
  • Кроссплатформенность;
  • Методы проверки подлинности основаны на шифровании с открытым ключом;
  • Простота в освоении языка;
  • Многопоточность;
  • Высокопроизводительность;
  • Предназначен для распределенной среды интернета;
  • Динамичность языка.

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) – программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор. Трансляция в байтовый код увеличивает скорость выполнения и уменьшает размер Java программ.