Пример выполнения основной части работы
Постановка задачи
Разработать приложения по технологии «клиент-сервер». Метод коммуникации между процессами – сокеты.
4.2 Краткие теоретические основы разрабатываемой темы[1]
Модель клиент-сервер - это взаимодействия между одновременно выполняемыми программными процессами. Клиентские процессы посылают запросы серверному процессу, посылающему обратно результаты этих запросов. Как предполагает название, серверные процессы предоставляют услуги своим клиентам, как правило, выполняя специфическую обработку, которую могут выполнить только они. Клиентский процесс, освобожденный от выполнения сложной обработки транзакции, может выполнять другую полезную работу. Взаимодействие между клиентским и серверным процессами представляет собой совместный транзакционный обмен, в котором активность исходит от клиента, а сервер реагирует на эту активность.
Под приложением клиент-сервер понимается любое приложение, в котором инициатор действия находится в одной системе, а исполнитель действия — в другой. Кроме того, в большинстве приложений клиент-сервер один сервер обслуживает запросы нескольких клиентов.
Взаимодействие клиента и сервера обеспечивается коммуникационным программным обеспечением. Примерами такого программного обеспечения являются набор протоколов TCP/IP,- протоколы OSI.
Рисунок 4.1 - Общая архитектура клиент-сервер
Таблица 4.1-Достоинства и недостатки архитектуры клиент-сервер
Системная характеристика | Значение |
Достоинства | |
Сеть небольших мощных машин | Если одна машина выйдет из строя, компания все равно сможет продолжать работу |
Мощные объединения компьютеров | Система предоставляет мощность, позволяющую выполнять работу без монополизации ресурсов. У конечных пользователей достаточно мощностей для локальной работы |
Некоторые рабочие станции столь же мощны, как мэйнфреймы, но их стоимость на порядок ниже | Предоставляя вычислительные мощности за меньшие деньги, система позволяет тратить сэкономленные средства на другие приобретения или на увеличение доходов |
Открытые системы | Аппаратуру, программы и услуги можно приобретать у разных поставщиков |
Легкость наращивания системы | Систему нетрудно модернизировать, как только потребности изменятся |
Индивидуальная рабочая среда клиента | Можно объединять компьютерные платформы, подбирая их под конкретные нужды подразделений и пользователей |
Недостатки | |
Слабая поддержка | Отдельные части системы не всегда корректно работают вместе. Бывает трудно найти причину неисправности |
Недостаток инструментальных средств обслуживания | При использовании архитектуры клиент-сервер приходится искать инструментальные средства на рынке или разрабатывать их самостоятельно |
Необходимость переобучения | Философия программирования для Маc или Windows отличается от философии программирования на языке COBOL |
Распределенную передачу сообщений, реализующую функциональность архитектуры клиент-сервер, иллюстрирует на рисунок 4.2. Клиентский процесс запрашивает некую услугу (например, прочитать или распечатать на принтере файл). Для этого он посылает сообщение с запросом данной услуги серверному процессу. Серверный процесс принимает сообщение, обрабатывает запрос и посылает ответное сообщение. В простейшем случае требуются только две функции: Send (отправить) и Receive (принять). Функции Send на входе необходимо указать получателя, а также содержимое сообщения. Функции Receive нужно указать, от кого ожидается сообщение (включая вариант «все») и адрес буфера, в который следует поместить принятое сообщение.
Рисунок 4.2 – Схема обмена сообщениями