Проблема асимметричного преобразования и быстрого роста числа его вариантов

Опубликовано в Технологии > Серверные технологии Продолжение

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

асимметричное преобразование данных

Построение отдельных версий программ может оказаться весьма дорогостоящим. Чтобы понять, с чем это связано, рассмотрим набор, состоящий из N компьютеров. Если на каждом компьютере для хранения чисел с плавающей точкой применяется разное представление данных, то должно быть подготовлено всего (N2 - N)/2 версий любых программ типа клиент/сервер, которые обмениваются числами с плавающей точкой. Эту проблему принято называть проблемой роста числа вариантов преобразования пропорционально квадрату N, чтобы подчеркнуть, что объем работы по программированию пропорционален квадрату числа различных представлений данных. Обзоры популярных интернет казино на сайте elitecasino.ru. Мнения игроков, бонусы и акции заведений.

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

Даже если в процессе программирования используется условная трансляция (например, с применением конструкции ifdef препроцессора С), задачи разработки, отладки, сопровождения и управления многочисленными версиями программы могут стать очень трудоемкими. Кроме того, пользователям при вызове клиентской программы нужно будет учитывать, что для каждой конкретной конфигурации подходит только одна из многочисленных версий. Обзоры популярных интернет казино на сайте elitecasino.ru. Мнения игроков, бонусы и акции заведений.

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

Иногда в литературе эту проблему называют проблемой n*m вариантов, чтобы подчеркнуть, что клиенты могут работать в n архитектурах, а серверы — в m архитектурах.

Похожие статьи