Этап 1: построение нераспределенной прикладной программы

На первом этапе построения распределенной версии для рассматриваемого приложения базы данных словаря необходимо создать нераспределенную программу, которая решает поставленную задачу. Прикладная программа на языке С, которая решает задачу управления словарем, приведена в файле diet.с. Прокат новых авто без водителя прокат автомобилей москва. Отзывы владельцев авто. Great Wall Hover купить в рассрочку. Звоните great wall hover купить.

Этап 1: построение нераспределенной прикладной программы

Для того чтобы это приложение было простым и удобным для восприятия, в примере нераспределенной программы, приведенном в файле diet.с, для хранения слов используется двухмерный массив. В любой момент времени можно узнать количество слов в словаре по значению глобальной переменной nwords. Главная процедура состоит из цикла, в котором при каждом проходе выполняется чтение и обработка одной строки ввода. В цикле вызывается процедура nextin для чтения команды (и возможно, слова) из очередной строки ввода, а затем используется оператор switch языка С для выбора одного из шести возможных вариантов. Эти варианты соответствуют пяти допустимым командам, а также действию, которое выполняется по умолчанию при получении строки недопустимого формата.

В каждом варианте выбора (оформленном с помощью конструкции case) в основной программе вызывается процедура для выполнения конкретных действий. Например, в конструкции case, которая соответствует команде вставки i, вызывается процедура insertw. Процедура insertw добавляет новое слово к концу массива и увеличивает значение переменной nwords.

Остальные процедуры действуют в соответствии с их назначением. Процедура deletew ищет слово, предназначенное для удаления. Найдя такое слово, процедура deletew заменяет его последним словом в словаре и уменьшает значение переменной nwords. И наконец, процедура lookupw выполняет последовательный поиск в массиве для определения того, присутствует ли в нем заданное слово. Она возвращает 1, если слово имеется в словаре, и 0 — в противном случае.

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

се -о diet diet.с 

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

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

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

Похожие статьи Меню Опрос Фото Популярное
rss