Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Скоморохина.docx
Скачиваний:
18
Добавлен:
04.03.2022
Размер:
30.64 Кб
Скачать

Краткие теоретические основы разрабатываемой темы

Суть вычислительной архитектуры «клиент-сервер»:

Область применения:

Достоинства:

  1. Нет дублирования кода — основной код хранится на сервере, клиент отвечает только за простенькие проверки на полях «тут число, тут строка не длиннее 100 символов».

  2. Персональные данные в безопасности — простой пользователь не видит лишнего. Он не знает ваше ключевое слово, паспортные данные и количество денег на счете.

  3. Сеть небольших мощных машин – если одна машина выйдет из строя, компания все равно сможет продолжать работу.

  4. Мощные объединения компьютеров – система предоставляет мощность, позволяющую выполнять работу без монополизации ресурсов. У конечных пользователей достаточно мощностей для локальной работы.

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

  6. Открытые системы – аппаратуру, программы и услуги можно приобретать у разных поставщиков.

  7. Легкость наращивания системы – систему нетрудно модернизировать, как только потребности изменятся.

  8. Индивидуальная рабочая среда клиента –можно объединять компьютерные платформы, подбирая их под конкретные нужды подразделений и пользователей.

Недостатки:

  1. Если упал сервер или отвалилась база, то есть испортилось 1 звено — все, все в ступоре, все отдыхают. Сотни, тысячи, да хоть миллионы клиентов если есть — никто не может работать.

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

  3. Слабая поддержка – отдельные части системы не всегда корректно работают вместе. Бывает довольно трудно найти причину неисправности.

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

  5. Необходимость переобучения – философия программирования для Мае или Windows существенно отличается от философии программирования на языке COBOL или С.

Обзор системных средств коммуникации и синхронизации процессов:

  1. Почтовые ящики –обеспечивают только однонаправленные соединения. Каждый процесс, который создает почтовый ящик, является «сервером почтовых ящиков» (mailslot server). Другие процессы, называемые «клиентами почтовых ящиков» (mailslot clients), посылают сообщения серверу, записывая их в почтовый ящик. Входящие сообщения всегда дописываются в почтовый ящик и сохраняются до тех пор, пока сервер их не прочтет. Каждый процесс может одновременно быть и сервером, и клиентом почтовых ящиков, создавая, таким образом, двунаправленные коммуникации между процессами.

  2. Каналы (безымянные и именованные каналы) – способы организовать двунаправленное соединение, обычно, безымянные каналы используются для перенаправления стандартного ввода/вывода дочернего процесса так, чтобы он мог обмениваться данными с родительским процессом. Именованные каналы используются для передачи данных между независимыми процессами или между процессами, работающими на разных компьютерах.

  3. Файловое отображение – с помощью физической памяти совместно используется (shared), если она отображается на виртуальное адресное пространство нескольких процессов, хотя виртуальные адреса в каждом процессе могут отличаться.

  4. Сокет – это абстракция сетевого взаимодействия в операционной системе. Поскольку сокет является только лишь абстракцией, то связка IP-адрес + номер порта - это уже имплементация в операционной системы. Верное название этой имплементации - "Интернет сокет". Абстракция используется для того, чтобы операционная система могла работать с любым типом канала передачи данных.

  5. Критическая секция – доступ к критически важным ресурсам должен быть взаимоисключающим. Код, который обращается к критическим ресурсам, называется критической секцией. Это единственный метод синхронизации потоков, который не требует привлечения ядра Windows, то есть критическая секция не является объектом ядра. Как следствие этого этот метод может использоваться только для синхронизации потоков одного процесса.

  6. Семафоры – это целочисленная переменная, которая может выполнять операции вниз и вверх, которые являются обычными «операцией P» (проход) и «операцией V» (выпуск). Операции «вниз» и «вверх» должны быть спроектированы как примитивы и неотделимы друг от друга. Обычно при выполнении этих операций прерывания экранируются. Объект ядра.

  7. Мьютекс – это объект ядра, который можно использовать для синхронизации потоков из разных процессов. Он может принадлежать или не принадлежать некоторому потоку. Если мьютекс принадлежит потоку, то он находится в состоянии «занято». Если данный объект не относится ни к одному потоку, то он находится в состоянии «свободно». Другими словами, принадлежать для него означает быть в состоянии «занято». Если мьютекс не принадлежит ни одному потоку, первый поток, который вызовет функцию WaitForSingleObject, завладевает данным объектом, и тот переходит в состояние «занято». В определенном смысле мьютекс похож на выключатель, которым может пользоваться любой поток по принципу «первым пришел - первым обслужили» (first-comefirst,-served).

  8. События – используются в качестве сигналов о завершении какой-либо операции. Однако в отличие от мьютексов, они не принадлежат ни одному потоку. Объект ядра.

Разработка и описание алгоритма работы приложения

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

Описание структуры программы

- описание cтруктуры программы (модулей, основных функций, классов и т.д.);

Результаты применения программы

- результаты применения программы в виде снимков экрана после запуска приложения;

Заключение

Список использованных источников

  1. Учебник …

Приложение

приложение, содержащее исходные коды разработанных программ с необходимыми комментариями.