Файл: Программные средства создания клиентских программ (Операционная система клиента).pdf
Добавлен: 01.04.2023
Просмотров: 121
Скачиваний: 2
СОДЕРЖАНИЕ
Архитектура клиент-серверных систем
Основные принципы взаимодействия компонентов системы
Программное обеспечение клиента и сервера
Средства разработки клиентских программ
Интегрированные среды разработки программ и их ключевые особенности
Основы разработки программ в Dev-C++
ВВЕДЕНИЕ
В нынешний век информационных технологий широко применяется автоматизация различных процессов посредством создания автоматизированных информационных систем. Автоматизированная информационная система (АИС) представляет собой совокупность взаимодействующих друг с другом элементов для хранения, поиска и обработки информации; также сюда включаются соответствующие организационные ресурсы, которые формируют и распространяют информацию. Одним из наиболее распространенных типов АИС на сегодняшний день являются клиент-серверные системы.
Понятие клиент-серверной модели впервые появилось в конце 1980-х годов, когда термины «клиент» и «сервер» были впервые применены к персональным компьютерам в сети [1.]. Модель «клиент-сервер» основана на распределении функций между двумя типами независимых и автономных объектов.
Клиент – это любой процесс, запрашивающий определенные услуги у процессов сервера [2.]. Обычно это персональные компьютеры с установленными сетевыми приложениями (мобильное устройство также может работать как клиент). Сервер – это процесс, который предоставляет запрашиваемые услуги для одного или нескольких клиентов [3.]. Как правило, это устройства, в которых хранятся файлы и базы данных, включая сложные приложения, такие как веб-сайты. Они имеют более мощные центральные процессоры, более жесткие диски и больше памяти по сравнению с клиентом.
Иными словами, можно сказать, что клиент является заказчиком услуг, а сервер – поставщиком. В зависимости от конфигурации программного обеспечения один компьютер может являться как клиентом, так и сервером. Процессы клиента и сервера могут находиться на одном компьютере или на разных компьютерах, связанных сетью.
Итак, клиент-серверная модель представляет собой совокупность компьютерного оборудования, инфраструктуры и программ, работающих вместе для выполнения вычислительных задач. Разделение функций клиента и сервера, таким образом, может быть выражено в терминах аппаратных и программных средств. Информационные системы, созданные с использованием этой модели, представляют собой сервер баз данных, манипулирующий данными, и клиентское приложение, обращающееся к нему и использующее для этого либо клиентские API (программный интерфейс приложения, англ. Application Programming Interface), либо один из универсальных механизмов доступа к данным. API – это набор классов, процедур, функций и структур, обеспечивающих взаимодействие клиентов и серверов, который используется при написании всевозможных программ. Одним из этапов жизненного цикла автоматизированной информационной системы является разработка клиентских приложений. Результатом этого этапа является готовый продукт, который может состоять из ряда приложений, позволяющих пользователям вводить либо редактировать уже существующие данные, анализировать их и представлять их в более удобном для восприятия виде, например, в виде графиков, сводных таблиц или отчетов (в том числе в виде «бумажных» документов). Изучение программных средств для разработки клиентских приложений составляет цель данной работы. Для достижения цели в работе были поставлены следующие задачи:
- получить представление о главных принципах архитектуры клиент-серверных систем, а также об основном программном;
- узнать об основных средствах разработки программ, выделить их особенности;
- выбрать среду разработки и изучить основы создания простейшего приложения в этой среде.
Архитектура клиент-серверных систем
Основные принципы взаимодействия компонентов системы
Термин «архитектура» относится к логической структуре и функциональным характеристикам клиент-серверной системы, включая то, как клиент и сервер взаимодействуют друг с другом с точки зрения компьютерного оборудования, программного обеспечения и связей между ними. К появлению клиент-серверной архитектуры привели ограничения, существовавшие в так называемой архитектуре совместного использования файлов.
Архитектура совместного доступа к файлам [2.] была основной для первых персональных компьютеров, использовавших доступ в интернет. В такой архитектуре каждая рабочая станция в сети имеет доступ к центральному файловому серверу, на котором хранятся данные. Файлы данных также могут находиться на рабочей станции с клиентским приложением. Несколько рабочих станций получают доступ к одному и тому же файловому серверу, на котором хранятся данные. Сервер загружает файлы из общей папки в среду рабочего стола – связанные с действиями пользователя логика и данные выполняются в среде рабочего стола.
Заменой файлового сервера стал сервер базы данных. Использование систем управления реляционными базами данных позволило отвечать на пользовательские запросы напрямую. Клиент-серверная архитектура сократила сетевой трафик, предоставляя ответ на запрос вместо передачи файлов целиком.
Клиент-серверная архитектура основана на аппаратных и программных компонентах, которые взаимодействуют между собой для формирования системы. Система включает в себя в основном три компонента [2.]:
- Аппаратное обеспечение (клиент и сервер);
- Программное обеспечение (которое обеспечивает работоспособность оборудования);
- Связующее программное обеспечение (используется для связи аппаратного и программного обеспечения).
Компоненты архитектуры клиент / сервер должны соответствовать некоторым базовым принципам для того, чтобы взаимодействовать должным образом. Эти принципы должны быть одинаково применимы как к клиенту, так и к серверу, и к компонентам связующего программного обеспечения. Вот некоторые из ключевых принципов:
- Аппаратная независимость;
Принципы аппаратной независимости требуют, чтобы процессы клиентского, серверного и связующего программного обеспечения выполнялись на нескольких аппаратных платформах (IBM, DEC, Compaq, Apple и т.д.) без каких-либо функциональных различий.
- Независимость программного обеспечения;
Принципы независимости программного обеспечения требуют, чтобы процессы клиентского, серверного и связующего программного обеспечения поддерживали несколько операционных систем (таких как Windows 7, Windows 10, Apple Mac, Linux, Unix и т.д.), несколько сетевых протоколов (таких как IPX и TCP / IP) и несколько приложений (электронные таблицы, базы данных, электронная почта и т. д.).
- Открытый доступ к услугам;
Все клиенты в системе должны иметь открытый (неограниченный) доступ ко всем услугам, предоставляемым в сети, и эти услуги не должны зависеть от местоположения клиента или сервера. Ключевой момент заключается в том, что услуги должны предоставляться по требованию клиента. Предоставление услуг по требованию является одной из основных задач модели клиент / сервер.
- Распределение процессов;
Основной характеристикой клиент-серверной системы является то, что обработка информации распределяется между клиентами и серверами. Распределение нагрузки должно соответствовать следующим правилам:
- Процессы клиента и сервера должны быть автономными объектами с четко определенными границами и функциями;
- Локальное использование ресурсов (как на стороне клиента, так и на стороне сервера) должно быть максимальным;
- Масштабируемость и гибкость требуют, чтобы процессы клиента и сервера легко обновлялись для работы на более мощных аппаратных и программных платформах;
- Функциональная совместимость и интеграция требуют, чтобы клиентские и серверные процессы были совместимы и легко интегрировались для формирования системы.
- Стандарты.
Наконец, все сформулированные принципы должны основываться на стандартах, которые применяются в архитектуре клиент / сервер. Стандарт должен определять пользовательский интерфейс, доступ к данным, сетевые протоколы, межпроцессное взаимодействие и так далее. Стандарты гарантируют, что все компоненты взаимодействуют соответствующим образом для достижения желаемых результатов.
Диалог с сервером всегда инициируется клиентом. Связь между ними невозможна без аппаратных и программных компонентов, которые являются частью клиента. Зачастую эти компоненты должны обладать следующими характеристиками:
- Приемлемое оборудование;
Поскольку клиентским процессам обычно требуется много аппаратных ресурсов, их следует размещать на компьютере с достаточной вычислительной мощностью, с архитектурой, поддерживающей RISC. Такая вычислительная мощность облегчает создание систем с мультимедийными возможностями. Мультимедийная система обрабатывает несколько типов данных, таких как звуки, изображения, видео и т.д. Клиентские процессы также требуют определенного объема памяти на жестком диске.
- Операционная система, способная к многозадачности;
Клиент должен иметь доступ к операционной системе с минимальными возможностями многозадачности. Любая из систем Microsoft Windows старше 1998 года обеспечивает доступ к памяти, многозадачность при работе с приложениями и графический пользовательский интерфейс, что делает Windows одной из самых популярных платформ в большинстве реализаций клиент-серверных систем [2.]. Однако многие современные «разновидности» UNIX, включая Linux с множеством различных дистрибутивов, также хорошо подходят в качестве основной операционной системы для клиентской стороны.
- Наличие средств связи;
Клиентский компьютер должен иметь возможность подключаться и взаимодействовать с другими компьютерами в сети. Следовательно, комбинация аппаратного обеспечения и операционной системы также должна обеспечивать приемлемую связь с другими операционными системами.
- Графический интерфейс пользователя.
Клиентское приложение, или фронт-энд, выполняется поверх операционной системы и соединяется со связующим программным обеспечением для доступа к службам в сети. Несколько языков программирования третьего поколения, а также все языки четвертого поколения могут использоваться для создания фронт-энд приложения. Большинство фронт-энд приложений основаны на графическом интерфейсе, который позволяет скрыть сложность организации компонентов от конечного пользователя.
Как уже упоминалось ранее, сервер – это любой процесс, который предоставляет услуги клиентскому процессу. Сервер всегда ожидает запроса клиента. Вот некоторые услуги, предоставляемые сервером:
- Файловые сервисы;
В локальной сети, где компьютер с большим и быстрым жестким диском совместно используется разными пользователями, клиент, подключенный к сети, может хранить файлы на файловом сервере так, как если бы это был другой локальный жесткий диск.
- Сервисы по управлению печатью;
В локальной сети, где персональный компьютер с одним или несколькими подключенными принтерами используется совместно, клиент может получить доступ к любому из принтеров. Данные для печати перемещаются с компьютера клиента на печатающий сервер – там они временно хранятся на жестком диске. Когда клиент завершает организацию печати, данные перемещаются с жесткого диска на сервере на соответствующий принтер.
- Сервисы базы данных;
При наличии сервера базы данных клиент отправляет SQL-запрос на сервер. Сервер получает код запроса, проверяет его, выполняет и отправляет результат клиенту. Данные и ядро базы данных находятся на компьютере сервера базы данных.
- Сервисы веб-приложений;
Некоторые документы, данные и т. д. находятся на веб-серверах. Веб-приложение обеспечивает доступ к документам и другим данным. «Тонкие» клиенты обычно используют веб-браузер для запроса этих документов. Такие сервисы обеспечивают совместное использование документов в интрасетях или в Интернете. Наиболее часто используемый протокол – это HTTP (протокол передачи гипертекста). Серверы веб-приложений теперь дополняют простые веб-серверы.
Так же, как и клиент, сервер имеет аппаратные и программные компоненты. К аппаратным компонентам относятся компьютер, процессор, память, жесткий диск, видеокарта, сетевая карта и т. д. Компьютер, на котором выполняется серверный процесс, должен быть более мощным, чем «средний» клиентский компьютер, поскольку серверный процесс должен иметь возможность обрабатывать параллельные запросы от нескольких клиентов.
Серверное приложение, или бэк-энд, взаимодействует с компонентами связующего программного обеспечения для того, чтобы обрабатывать клиентский запрос. В отличие от процессов фронт-энда, процесс сервера не обязательно должен быть основан на графическом интерфейсе. Бэк-энд приложение взаимодействует с операционной системой (сетевой или автономной) для доступа к локальным ресурсам (жесткий диск, память и т.д.). Бэк-энд сервер постоянно «слушает» запросы клиентов. Как только запрос получен, сервер обрабатывает его локально. Сервер знает, как обрабатывать запрос; клиент сообщает серверу только то, что ему нужно, а не то, как это делать. Когда запрос выполнен, ответ отправляется обратно клиенту через связующее программное обеспечение.
Характеристики аппаратного обеспечения сервера зависят от объема требуемых услуг. Например, для использования базы данных в сети из пятидесяти клиентов может потребоваться компьютер со следующей минимальной характеристикой: