Способ и связанные с ним система и программный продукт для обновления условий программирования сетевого сервера

Изобретение относится к сетям. Техническим результатом является обеспечение возможности замены условий программирования сервера (S) в реальном времени. Для этого нижний уровень текущего процесса заменяют нижним уровнем обновленного процесса, проверяют, относятся ли пакеты с нижнего уровня к транзакциям, которые уже выполняются на верхнем уровне текущего процесса, или к новым транзакциям, обрабатывают пакеты на верхнем уровне текущего процесса, обрабатывают пакеты новой транзакции на верхнем уровне обновленного процесса, определяют, завершены ли транзакции на верхнем уровне, закрывают канал взаимодействия. 3 н. и 6 з.п. ф-лы, 3 ил.

 

Область техники, к которой относится изобретение

Настоящее изобретение относится к сетям, предусматривающим использование сервера; более конкретно, изобретение относится к функции обновления условий программирования для таких серверов или, иными словами, к функции, которую сейчас принято называть «обновление программного обеспечения». В частности, способ в соответствии с изобретением был разработан с обращением конкретного внимания на возможное применение для серверов, которые управляют транзакциями (групповыми операциями) и сохраняют состояние, потеря которого может вызвать постоянные или временные нарушения функционирования.

Предшествующий уровень техники

В случаях, когда необходимо гарантировать, что обслуживание будет осуществляться непрерывно или с минимальным количеством прерываний, следует проявлять особую осторожность при обновлениях программного обеспечения серверов, поскольку иначе обслуживание может стать недоступным.

В этой связи, а также для того, чтобы гарантировать определенную степень отказоустойчивости, обычно практикуемым решением является дублирование серверов. Когда осуществляется операция обновления, сервер или серверы, вовлеченные в эту операцию, делаются временно недоступными, как правило, путем исключения упоминания об этих серверах из баз данных, с помощью которых можно определить местонахождение этих серверов, например, посредством использования механизма службы доменных имен (DNS), и путем передачи нагрузки серверам, которые остаются включенными.

Основными недостатками этого решения являются следующие:

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

- другая проблема, непосредственно связанная с этим недостатком, заключается в том, что административные операции всегда являются довольно медленными, а в конкретных случаях, требующих немедленного решения (например, когда необходимо справиться с потенциальными проблемами защиты), единственной возможностью является временное прерывание обслуживания;

- кроме того, если длительность состояния, поддерживаемого процессом, превышает длительность транзакции, и (что часто бывает) конец срока действия этого состояния определить непросто, то оно может быть утеряно, что вызывает временное нарушение функционирования, и

- наконец, если трудно предсказать тенденцию трафика (что и происходит в большинстве случаев), а пик трафика имеет место во время операции обновления, то серверы, которые остаются включенными, могут испытывать затруднения в обработке своей рабочей нагрузки; единственным способом предотвратить возникновение этой проблемы является вовлечение в работу, по меньшей мере, одной машины в дополнение к тем, которых было бы достаточно в нормальных обстоятельствах, что приводит к увеличению избыточности системы, которое в противном случае не было бы настоятельно необходимым.

Краткое изложение сущности изобретения

Таким образом, задача настоящего изобретения состоит в том, чтобы предложить решение, позволяющее снять вышеупомянутые проблемы.

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

По существу, решение в соответствии с изобретением обусловливает «горячую» замену процесса сервера (выполняемую без прерывания процесса), осуществляемую таким образом, что заменяемый процесс в течение некоторого периода времени сосуществует со своей заменой. Длительность этой операции диктуется заменяемым процессом, и это гарантирует, что упомянутая операция всегда будет происходить после окончания последней транзакции. Любая информация о состоянии, срок действия которой дольше, может быть передана от одного процесса другому, например, посредством сокета (socket, механизм двунаправленного межпроцессного взаимодействия) или иного двунаправленного механизма взаимодействия процессов (IPC).

Перечень фигур чертежей

В нижеследующем описании изобретения, приводимом исключительно в качестве примера и не носящем ограничительный характер, будут сделаны ссылки на прилагаемые чертежи, на которых:

фиг.1 - функциональная блок-схема, иллюстрирующая нормальную работу сервера, работающего в соответствии с изобретением,

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

фиг.3 - блок-схема алгоритма, иллюстрирующая осуществление операции, изображенной на фиг.2.

Лучший вариант осуществления изобретения

На фиг.1 представлено схематическое изображение общей конфигурации сервера S. Последний может быть, например, сервером, используемым в телекоммуникационной сети для выполнения посреднической (PROXY) функции протокола SIP (протокола инициирования сеанса).

Например, это может быть сервер «Enterprise», который производится фирмой «Sun Microsystems» из Пало-Альто (штат Калифорния, США) и в котором используется операционная система «Solaris».

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

Операция 1 включает в себя:

- нижний уровень (или слой - эти два термина в данном описании считаются эквивалентными) 2, который взаимодействует непосредственно с сетью, чтобы гарантировать прием и/или передачу пакетов, и

- верхний уровень 3, который обрабатывает пакеты, принимает их и передает их на нижний уровень.

Оба уровня 2 и 3 сопряжены в общей схеме двунаправленного взаимодействия, что отображено стрелками.

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

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

Способ, предлагаемый в соответствии с изобретением, предназначен для того, чтобы гарантировать, что операция замещения или замены текущего процесса 1 его обновленной версией 1' окажется полностью прозрачной для сети, или, иными словами, что она будет происходить таким образом, что клиенты, с которыми сервер S взаимодействует, фактически будут не в состоянии обнаружить, что началась операция обновления и что эта операция находится в стадии проведения.

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

Операция обновления, прежде всего, предусматривает, что процесс, соответствующий обновленному процессу 1', связанному с текущим процессом 1, который должен быть заменен посредством сокета или иного механизма взаимодействия процессов, обозначенного во всей его полноте позицией 4, является самоаутентифицируемым.

Естественно, что текущий процесс 1, который подлежит замене, также проверяет, проводится ли операция обновления той же самой машиной S.

Текущий процесс 1, который подлежит замене, освобождает свои порты (нижний уровень 2). Эти порты немедленно забираются соответствующим уровнем 2' обновленного процесса 1', который сконфигурирован так, что поток пакетов, который он принимает, можно избирательно перенаправлять, подготавливая его пересылку на верхний уровень 3 текущего процесса 1 по каналу 4.

Пакеты, прибывающие из сетей, затем принимаются исключительно нижним уровнем 2' обновленного процесса 1'.

Эти пакеты в любом случае также проходят на верхний уровень 3 процесса 1, который затем заменяется. Таким образом, эта последняя особенность - если вообразить ее реализацию - работает как фильтр: если сообщения касаются новых транзакций (или, иными словами, транзакций, которые начались после начала операции обновления), то они передаются непосредственно - без обработки - на соответствующий верхний уровень 3' обновленного процесса 1'. В отличие от этого, если сообщения касаются транзакций, которые уже проводятся на верхнем уровне 3 заменяемого процесса 1, то их обработку продолжает упомянутый верхний уровень 3.

При этом оба процесса - 1 и 1' - могут обмениваться информацией о состоянии, которая не связана с транзакциями.

Когда верхний уровень 3 процесса заменяемого 1 определяет, что все транзакции, которыми он управляет, закончились, формируется сигнал, указывающий, что операция обновления завершена. Этот сигнал, передаваемый по каналу 4, гарантирует, что нижний уровень 2' обновленного процесса 1' больше не будет посылать пакеты или сообщения какого-либо типа на верхний уровень 3 процесса 1, который был обновлен. Канал 4 взаимодействия закрывается, следовательно, обновленный процесс 1' в этот момент заменил процесс 1 во всех аспектах, и процесс 1 прекращается.

Этапы, используемые при проведении операции обновления, описанной выше, изображены подробнее в виде блок-схемы алгоритма, показанной на фиг.3.

В этой блок-схеме алгоритма позиция 100 обозначает первый этап операции обновления, который соответствует открытию соединения 4.

Позиция 102 обозначает этап, на котором текущий процесс 1 проверяет, проводится ли обновление на той же самой машине.

Когда результат этой проверки является отрицательным (результат F), операция обновления далее не продолжается и прерывается на этапе 104.

Когда результат проверки, проведенной на этапе 102, является положительным (результат V), на этапе 106 порты системы (или, на практике, интерфейс с сетью) передаются с нижнего уровня 2 текущего процесса 1 на нижний уровень 2' обновленного процесса 1' с последующей передачей информации о состоянии, осуществляемой на этапе 108.

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

В частности, позиция 110 обозначает этап, на котором читается новое сообщение, тогда как позиция 112 обозначает этап, на котором проводится проверка с целью определения, касается ли только что прочитанный пакет известной транзакции или новой транзакции.

Если сообщение касается новой транзакции (результат F этапа 112), то пакет идентифицируется как касающийся «новой» транзакции и поэтому обрабатывается посредством модернизированного процесса 1' на этапе 114.

В случаях, когда прочитанное сообщение идентифицируется как соответствующее транзакции, которая уже проводится (результат V этапа 112), оно обрабатывается посредством текущего процесса 1 на этапе 116.

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

Если остаются транзакции, которые еще не завершены (результат F этапа 118), то работа системы возвращается снова к вышеупомянутому этапу 110, при условии, что нужно прочитать новый пакет.

В отличие от этого, если транзакции, которые должны обрабатываться посредством заменяемого процесса 1, завершились (результат V этапа 118), то система переходит к заключительному этапу, обозначенному позицией 120, на котором канал 4 взаимодействия закрывается, и таким образом операция обновления завершается.

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

В частности, возможные изменения, которые можно внести в общий подход, приведенный выше со ссылками на фиг.1-3, перечисляются ниже лишь в качестве примера, ни в каком аспекте не носящего ограничительный характер, и могут включать в себя следующие:

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

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

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

1. Способ замены текущего процесса (1), выполняемого сетевым сервером (S), причем упомянутый текущий процесс (1) включает в себя нижний уровень или слой (2), который предназначен для приема и/или передачи сетевых пакетов, и верхний уровень или слой (3), который предназначен для обработки упомянутых пакетов, отличающийся тем, что включает в себя этапы, на которых

обеспечивают обновленный процесс (1'), включающий в себя нижний уровень (2'), который соответствует обновленному процессу (1') и предназначен для приема и/или передачи сетевых пакетов, и верхний уровень (3'), который соответствует обновленному процессу (1') и предназначен для обработки упомянутых пакетов, при этом нижний уровень (2') обновленного процесса (1') связан с каналом (4) взаимодействия для перенаправления сетевых пакетов с нижнего уровня (2') обновленного процесса (1') на верхний уровень (3) текущего процесса (1),

заменяют (106) нижний уровень (2) текущего процесса (1) нижним уровнем (2') обновленного процесса (1'),

проверяют (112), относятся ли пакеты, принимаемые с нижнего уровня (2') обновленного процесса (1'), к транзакциям, которые уже выполняются на верхнем уровне (3) текущего процесса (1), или к новым транзакциям,

обрабатывают (114) на верхнем уровне (3) текущего процесса (1) пакеты, относящиеся к транзакциям, которые уже проводятся на верхнем уровне (3) текущего процесса (1),

обрабатывают (116) пакеты, относящиеся к новым транзакциям, на верхнем уровне (3') обновленного процесса (1'),

определяют (118), завершены ли транзакции, которые уже идут на верхнем уровне (3) текущего процесса (1), и

закрывают (120) канал (4) взаимодействия, завершая упомянутую замену процесса для сетевого сервера (S), когда упомянутые транзакции, которые уже проводятся на верхнем уровне (3) текущего процесса (1), завершены.

2. Способ по п.1, отличающийся тем, что включает в себя этап, на котором, ввиду осуществления упомянутой замены процесса, проверяют (102), осуществляется ли упомянутая замена процесса на одном сервере (S).

3. Способ по п.1 или 2, отличающийся тем, что этап замены нижнего уровня (2) текущего процесса (1) нижним уровнем (2') обновленного процесса (1') включает в себя этап, на котором передают сетевые порты с нижнего уровня (2) текущего процесса (1) на нижний уровень (2') обновленного процесса (1').

4. Способ по п.1, отличающийся тем, что этап, на котором проверяют (112), относятся ли принимаемые пакеты к транзакциям, которые уже выполняются на верхнем уровне (3) текущего процесса (1), или к новым транзакциям, осуществляют на верхнем уровне (3) текущего процесса (1), сконфигурированном с возможностью пересылки пакетов, относящихся к новым транзакциям, на верхний уровень (3') обновленного процесса (1') посредством канала (4) взаимодействия.

5. Способ по п.1, отличающийся тем, что включает в себя этап, на котором конфигурируют канал (4) взаимодействия для обмена информацией (108) о состоянии между текущим процессом (1), который подлежит обновлению, и обновленным процессом (1').

6. Способ по п.1, отличающийся тем, что включает в себя этап, на котором конфигурируют канал (4) взаимодействия как сокет.

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

8. Сервер по п.7, который выполняет посредническую функцию протокола инициирования сеанса (SIP).

9. Программный продукт, предназначенный для замены процесса, в текущий момент выполняемого сетевым сервером, и загружаемый непосредственно в память сетевого сервера, содержащий части программного кода для реализации способа по любому из пп.1-6 при исполнении этого кода на сетевом сервере.



 

Похожие патенты:

Изобретение относится к способу диспетчеризации опроса для считывания данных с устройств. .

Изобретение относится к технологии IP-сетей, в частности к способу обращения из одной зоны в другую в системе IP-сетей. .

Изобретение относится к пассивной оптической связи. .

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

Изобретение относится к системам передачи данных. .

Изобретение относится к системам радиосвязи. .

Изобретение относится к распознаванию наличия коммуникационных каналов в системе управления решетчатой сети связи. .

Изобретение относится к телефонной связи и, в частности, к обработке сигналов управления связью при передаче сигналов вызова телефонной связи. .

Изобретение относится к вычислительной технике. .

Изобретение относится к вычислительной технике и используется в автоматических системах управления технологическими процессами. .

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

Изобретение относится к вычислительной технике и может быть использовано в устройствах прерывания программ и в составе управляющей системы для обеспечения индивидуального и синхронного' 2группового обслуживания запросов различных устройств.

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

Изобретение относится к автоматике и вычислительной технике и может быть использовано при проектировании вычислительных систем. .

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

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

Изобретение относится к системе и способу для обеспечения возможности исполнения кода режима управления системой (SMM) во время защищенной работы в микропроцессорной системе
Наверх