RU2595755C2 - Восстановление после сбоя кластерного клиента - Google Patents

Восстановление после сбоя кластерного клиента Download PDF

Info

Publication number
RU2595755C2
RU2595755C2 RU2014108995/08A RU2014108995A RU2595755C2 RU 2595755 C2 RU2595755 C2 RU 2595755C2 RU 2014108995/08 A RU2014108995/08 A RU 2014108995/08A RU 2014108995 A RU2014108995 A RU 2014108995A RU 2595755 C2 RU2595755 C2 RU 2595755C2
Authority
RU
Russia
Prior art keywords
resource
client
request
application
access
Prior art date
Application number
RU2014108995/08A
Other languages
English (en)
Other versions
RU2014108995A (ru
Inventor
Дэвид М. КРУС
Диаа ФАТХАЛЛА
Джеймс Т. ПИНКЕРТОН
Мэтью ДЖОРДЖ
Прашантх ПРАХАЛАД
Томас И. ДЖОЛЛИ
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2014108995A publication Critical patent/RU2014108995A/ru
Application granted granted Critical
Publication of RU2595755C2 publication Critical patent/RU2595755C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

Уровень техники
[0001] Кластерные окружения, например окружения, в которых рабочая нагрузка распределяется по нескольким машинам, обычно используются для того, чтобы предоставлять восстановление после сбоя и высокую доступность информации для клиентов. Кластерные окружения дают возможность клиентам осуществлять доступ к ресурсам через один или более узлов, которые являются частью окружения. Кластерное окружение может выступать в качестве клиента, сервера или и того, и другого. На сервере клиентского кластера приложение может постоянно размещаться в любом из узлов, которые составляют кластер. Приложение может выдавать запросы на ресурсы, которые сохраняются локально в клиентском кластере или сохраняются удаленно. Если ошибка возникает в узле, клиент восстанавливается после сбоя или мигрирует на другой узел в кластере. Тем не менее, когда клиент снова запрашивает то, чтобы осуществлять доступ к ресурсу, с которым он работал во время ошибки, ресурс может быть защищен или заблокирован посредством сервера для предыдущего клиентского узла, в котором постоянно размещается приложение.
[0002] Именно из этих и других соображений осуществлены варианты осуществления. Кроме того, хотя пояснены относительно конкретные проблемы, следует понимать, что варианты осуществления не должны быть ограничены решением конкретных проблем, идентифицированных в разделе "Уровень техники".
Сущность изобретения
[0003] Эта сущность изобретения предоставлена для того, чтобы представлять в упрощенной форме выбор концепций, которые дополнительно описаны ниже в разделе "Подробное описание". Эта сущность не имеет намерение идентифицировать ключевые или важнейшие признаки заявляемого объекта патентования, а также не имеет намерение использоваться в качестве помощи при определении объема заявленного объекта патентования.
[0004] В данном документе раскрываются системы и способы, которые предоставляют для приложения или процесса непрерывный доступ к ресурсу после того, как приложение мигрирует на новый узел в кластерном клиентском окружении. Приложение или процесс, постоянно размещающийся в узле в клиентском кластере, отправляет запрос на сервер для того, чтобы осуществлять доступ к ресурсу. В вариантах осуществления уникальный идентификатор экземпляра приложения используется для того, чтобы идентифицировать приложение, запрашивающее ресурс. Уникальный идентификатор приложения может содержать запрос. Когда клиент осуществляет доступ к ресурсу, идентификатор экземпляра приложения ассоциирован с запрашиваемым ресурсом.
[0005] До того, как приложение или процесс завершает свои операции на ресурсе, узел, в котором клиент постоянно размещается в кластерном окружении, может подвергаться ошибке, которая вызывает сбой или иную потерю доступа к ресурсу до надлежащего высвобождения ресурса посредством приложения. В таких случаях ресурс может оставаться в защищенном или заблокированном состоянии на сервере согласно предыдущему клиентскому запросу. После переключения в случае отказа на другой узел в клиентском кластере, приложение на новом клиентском узле может повторно устанавливать соединение с сервером, управляющим ресурсом, и выполнять второй запрос на ресурс, к которому приложение ранее имело доступ во время ошибки. Второй запрос может включать в себя идентификатор экземпляра приложения, отправленный с первым запросом. Хотя второй запрос на ресурс может быть принят из другого узла в кластерном окружении, идентификатор экземпляра приложения разрешает серверу, управляющему запросом, определять то, что второй запрос принадлежит идентичному приложению или процессу, который ранее заблокировал ресурс. Это дает возможность серверу признавать ресурс недействительным и предоставлять разрешение по второму запросу клиента на то, чтобы осуществлять доступ к ресурсу при обеспечении того, что конфликтная ситуация не возникает.
[0006] Варианты осуществления могут быть реализованы как компьютерный процесс, вычислительная система или как изделие, такое как компьютерный программный продукт или машиночитаемые носители. Компьютерный программный продукт может быть компьютерным носителем хранения данных, считываемым посредством компьютерной системы и кодирующим компьютерную программу из инструкций для выполнения компьютерного процесса. Компьютерный программный продукт также может быть распространяемым сигналом на несущей, считываемым посредством вычислительной системы и кодирующим компьютерную программу из инструкций для выполнения компьютерного процесса.
Краткое описание чертежей
[0007] Неограничивающие и неисчерпывающие варианты осуществления описаны со ссылкой на прилагаемые чертежи.
[0008] Фиг. 1 иллюстрирует систему, которая может быть использована для того, чтобы реализовывать варианты осуществления, описанные в данном документе.
[0009] Фиг. 2 является блок-схемой, иллюстрирующей программное окружение, которое может быть использовано для того, чтобы реализовывать варианты осуществления, раскрытые в данном документе.
[0010] Фиг. 3 является вариантом осуществления способа, который может выполнять клиент для того, чтобы получать непрерывный доступ к ресурсу в кластерном окружении.
[0011] Фиг. 4 является вариантом осуществления способа, выполняемого посредством узла в кластерном окружении для того, чтобы предоставлять непрерывный доступ к ресурсу.
[0012] Фиг. 5 иллюстрирует блок-схему вычислительного окружения, подходящего для реализации вариантов осуществления.
Подробное описание изобретения
[0013] Различные варианты осуществления подробнее описываются ниже со ссылкой на прилагаемые чертежи, которые являются частью настоящего документа и которые показывают конкретные примерные варианты осуществления. Тем не менее, варианты осуществления могут быть реализованы во многих различных формах и не должны истолковываться как ограниченные вариантами осуществления, изложенными в данном документе; наоборот, эти варианты осуществления предоставляются таким образом, что это раскрытие сущности должно быть исчерпывающим и полным и полностью передавать объем вариантов осуществления для специалистов в данной области техники. Варианты осуществления могут осуществляться на практике в качестве способов, систем или устройств. Соответственно, варианты осуществления могут принимать форму аппаратной реализации, полностью программной реализации или реализации, комбинирующей программные и аппаратные аспекты. Нижеследующее подробное описание, следовательно, не должно рассматриваться в ограничивающем смысле.
[0014] Варианты осуществления настоящего раскрытия сущности связаны с предоставлением механизмов восстановления после сбоя кластерного клиента, которые дают возможность запросчику восстанавливать доступ к ресурсу после события восстановления после сбоя. В вариантах осуществления запросчик может быть процессом, приложением или одним или более дочерних процессов приложения. Ресурс может быть файлом, объектом, данными или любым другим типом ресурса в вычислительном окружении. В вариантах осуществления ресурс может постоянно размещаться на автономном сервере, либо он может постоянно размещаться в кластерном окружении. В вариантах осуществления, раскрытых в данном документе, кластерное окружение может включать в себя один или более узлов (например, клиентских и/или серверных устройств).
[0015] В примерном варианте осуществления, приложение, постоянно размещающееся в узле в кластерном окружении, может запрашивать доступ к конкретному ресурсу. В вариантах осуществления, ресурс может быть сохранен локально (например, в клиентском узле), в удаленном устройстве (например, на удаленном сервере или в другом узле в кластерном клиентском окружении) или в кластерном окружении (например, в окружении, содержащем несколько узлов), которое отличается от кластерного клиентского окружения. Например, в вариантах осуществления кластерное окружение может быть клиентским или серверным кластером; тем не менее, специалисты в данной области техники должны принимать во внимание, что системы и способы, раскрытые в данном документе, могут использоваться в любом другом типе окружения, таком как, но не только, виртуальная сеть.
[0016] В таких окружениях ресурсы могут быть совместно использованы клиентами и приложениями. Когда приложение осуществляет доступ к ресурсу, ресурс может быть защищен или заблокирован, в силу этого мешая другим приложениям осуществлять доступ к ресурсу до тех пор, пока осуществляющее доступ приложение не высвободит ресурс. Защита или блокировка ресурса может использоваться для того, чтобы защищать от конфликта, т.е. защищать от модификации ресурс посредством другого приложения до того, как осуществляющее доступ приложение выполняет свои операции на ресурсе. Тем не менее, если узел в кластерном клиентском окружении сбоит, приложение, осуществляющее доступ к ресурсу, может не высвобождать надлежащим образом ресурс из защищенного или заблокированного состояния. Например, клиентский узел, осуществляющий доступ к ресурсу от имени приложения, может терять сетевое соединение, может фатально сбоить или может иным образом терять доступ к ресурсу до завершения операций и надлежащего высвобождения ресурса посредством приложения. Таким образом, ресурс может оставаться в состоянии, в котором он является недоступным для других клиентов или приложений. Могут использоваться механизмы, которые автоматически высвобождают ресурс из защищенного или заблокированного состояния, за счет этого не допуская постоянной блокировки ресурса. Тем не менее, такие механизмы зачастую ожидают в течение определенного периода времени перед высвобождением защищенного или заблокированного ресурса.
[0017] В некоторых случаях, когда приложение выполняет восстановление после сбоя, чтобы мигрировать со сбойного клиентского узла на другой клиентский узел в клиентском кластере, приложение может пытаться повторно устанавливать свое предыдущее соединение с сервером и возобновлять свою работу на ресурсе через другой клиентский узел. Тем не менее, поскольку ресурс не высвобожден надлежащим образом посредством сбойного клиентского узла, который ранее осуществлял доступ к ресурсу от имени приложения, вследствие ошибки, приложение, которое ранее имело доступ к ресурсу, может не иметь возможности возобновлять свой доступ к ресурсу до тех пор, пока сервер не высвободит ресурс из защищенного или заблокированного состояния. Тем не менее, поскольку другой узел теперь пытается осуществлять доступ к ресурсу от имени приложения, сервер может не иметь возможность идентифицировать приложение в качестве приложения, идентичного приложению, которое ранее установило блокировку ресурса. Тем не менее, поскольку идентичное приложение пытается осуществлять доступ к ресурсу, конфликтная ситуация не возникает. В таких случаях ожидание снятия посредством сервера предыдущей блокировки ресурса может вызывать недопустимую задержку для приложения.
[0018] Как описано выше, поскольку приложение работает в кластерном клиентском окружении, когда приложение выдает запрос на то, чтобы осуществлять доступ к ресурсу во второй раз, запрос на доступ к ресурсу может быть выполнен из другого местоположения, к примеру из другого узла в кластерном клиентском окружении. Таким образом, второй запрос может поступать из местоположения или с другого IP-адреса. Поскольку запрос может быть выполнен из другого местоположения, сервер может испытывать затруднение в гарантировании того, что клиент или приложение, пытающееся снова осуществлять доступ к ресурсу, фактически является идентичным клиентом, который ранее осуществлял доступ к ресурсу. Раскрытые системы и способы здесь предусматривают механизмы, чтобы идентифицировать случаи, когда идентичное приложение пытается осуществлять доступ к ресурсу, за счет этого не допуская такой задержки и предоставляя приложению непрерывный доступ к ресурсу.
[0019] Фиг. 1 иллюстрирует систему 100, которая может быть использована для того, чтобы реализовывать некоторые варианты осуществления, раскрытые в данном документе. Система 100 включает в себя клиентский кластер 102 и серверный кластер 106. Клиентский кластер включает в себя несколько узлов, к примеру клиенты 102A и 102B. Клиенты 102A и 102B могут быть устройством или приложением, постоянно размещающимся в клиентском кластере 102. Клиентский кластер 102 может обмениваться данными с серверным кластером 106 через сеть 108. В вариантах осуществления сеть 108 может быть Интернетом, WAN, LAN или любым другим типом сети, известной в области техники. Серверный кластер 106 сохраняет ресурсы, к которым осуществляется доступ посредством приложений в клиентском кластере 102 (например, приложений, постоянно размещающихся в клиенте 102A или клиенте 102B). В вариантах осуществления клиент (например, клиент 102A) может устанавливать сеанс с кластером 106, чтобы осуществлять доступ к ресурсам на кластере 106 от имени приложения, постоянно размещающегося в клиенте. Хотя на фиг. 1 клиентский кластер 102 включает в себя только два клиента (например, клиент 102A и клиент 102B), специалисты в данной области техники должны принимать во внимание, что любое число клиентов может быть включено в клиентский кластер 102.
[0020] Как показано на фиг. 1, серверный кластер 106 включает в себя серверы 106A, 106B и 106C, которые предоставляют как высокую доступность, так и избыточность для информации, сохраненной на кластере 106. В вариантах осуществления кластер 106 может иметь файловую систему, базу данных или другую информацию, к которой осуществляется доступ посредством клиентов 102 и 104. Хотя три сервера показаны на фиг. 1, в других вариантах осуществления кластер 106 может включать в себя более трех серверов или менее трех серверов. Кроме того, хотя описанные в данном документе варианты осуществления относятся к клиенту, обменивающемуся данными с сервером, который является частью серверного кластера, специалисты в данной области техники должны принимать во внимание, что варианты осуществления, раскрытые в данном документе, также могут быть выполнены с использованием автономного сервера.
[0021] В вариантах осуществления клиентский кластер 102 предоставляет механизмы восстановления после сбоя, которые дают возможность клиенту мигрировать с первого клиентского узла на второй клиентский узел в случае ошибки или сбоя, возникающего в первом клиентском узле. Специалисты в данной области техники должны принимать во внимание, что любой тип механизма восстановления после сбоя может использоваться в системах и способах, раскрытых в данном документе. Способы и системы, раскрытые в данном документе, могут использоваться для того, чтобы не допускать чрезмерной задержки, когда приложение пытается восстанавливать доступ к ресурсу, мигрирующему из одного клиента на другой (например, из клиента 102A на клиент 102B) в случае восстановления после сбоя. В вариантах осуществления идентификатор экземпляра приложения, идентифицирующий приложение, осуществляющее доступ к ресурсу, может быть ассоциирован с ресурсом. Идентификатор экземпляра приложения может быть глобально уникальным идентификатором (GUID), который ассоциирован с приложением, действием, выполняемым посредством приложения, или дочерним процессом приложения. Например, в одном варианте осуществления приложение может быть ассоциировано с идентификатором экземпляра приложения, который является GUID. В другом варианте осуществления идентификатор экземпляра приложения может быть ассоциирован с конкретной операцией или действием, выполняемым посредством приложения. Например, если приложение выдает два различных запроса на открытие для двух различных файлов, каждый запрос на открытие может иметь собственный идентификатор экземпляра приложения. В еще одном другом варианте осуществления идентификатор экземпляра приложения может быть ассоциирован с одним или более дочерних процессов приложения. Как должно быть очевидным для специалистов в данной области техники из вариантов осуществления, описанных в данном документе, ассоциирование идентификатора экземпляра приложения для приложения с одним или более дочерних процессов позволяет дочерним процессам осуществлять доступ к ресурсу, если ресурс переключается в заблокированное или защищенное состояние, которое принадлежит приложению. В вариантах осуществления идентификатор экземпляра приложения может отправляться посредством клиента при или после отправки запроса на ресурс.
[0022] В соответствии с другим вариантом осуществления в дополнение к сохранению информации, к которой осуществляют доступ клиенты, которые являются частью клиентского кластера 102, серверный кластер 106 также предоставляет механизм восстановления после сбоя, который обеспечивает непрерывный доступ к ресурсу в случае сбоя серверного узла. С другой стороны, специалисты в данной области техники должны принимать во внимание, что любой тип механизма восстановления после сбоя может использоваться в системах и способах, раскрытых в данном документе.
[0023] В вариантах осуществления, когда клиент запрашивает доступ к ресурсу от имени приложения, идентификатор экземпляра приложения для приложения отправляется с запросом. Сервер, принимающий запрос, может ассоциировать идентификатор экземпляра приложения с ресурсом. Например, серверный кластер может сохранять идентификатор экземпляра приложения в таблице или кэше, расположенном в одном или более узлов (например, на серверах, к примеру на серверах 106A, 106B и/или 106C), расположенных в серверном кластере 106, таким способом, что идентификатор экземпляра приложения ассоциирован с ресурсом. Перед тем, как клиент заканчивает работу с ресурсом, клиент может подвергаться ошибке, которая приводит к тому, что он теряет соединение с ресурсом. Например, клиент, выполняющий хостинг приложения либо выполняющий запросы или операции от имени приложения, может терять сетевое соединение с серверным кластером, клиент может фатально сбоить, либо может возникать любой другой тип ошибки, который создает помехи использованию приложений ресурса. При подвергании ошибке приложение может восстанавливаться после сбоя посредством переключения на новый клиентский узел в клиентском кластере 102. Новый клиентский узел может повторно подключаться к серверному кластеру и отправлять второй запрос на то, чтобы осуществлять доступ к ресурсу, от имени приложения. В вариантах осуществления клиент может повторно подключаться к идентичному узлу в серверном кластере 106 или другом узле. Второй запрос на то, чтобы осуществлять доступ к ресурсу, может включать в себя идентификатор экземпляра приложения для приложения. После приема второго запроса сервер (например, сервер 106A серверного кластера 106) сравнивает идентификатор экземпляра приложения второго запроса с идентификатором экземпляра приложения, ассоциированным с ресурсом. Если два идентификатора экземпляров приложений совпадают, серверный кластер признает ресурс недействительным. В вариантах осуществления признание ресурса недействительным может содержать закрытие файла, снятие блокировки ресурса или выполнение иных действий, которые освобождают ресурс для использования. Серверный узел затем может предоставлять разрешение по второму запросу приложения, чтобы осуществлять доступ к ресурсу. Если идентификатор экземпляра приложения второго узла не совпадает с идентификатором приложения, ассоциированным с ресурсом, то сервер не предоставляет доступ к ресурсу до тех пор, пока ресурс не станет свободным.
[0024] В качестве иллюстрации одного варианта осуществления запросчик (например, процесс, приложение и т.д.) в клиенте 102A в клиентском кластере 106 может запрашивать, чтобы клиент 102A устанавливал сеанс с сервером серверного кластера 106. Например, клиент 102A может устанавливать сеанс с сервером 106A, чтобы осуществлять доступ к сохраненной базе данных, которая находится на сервере 106A или которая является частью серверного кластера 106, в котором сервер 106A может осуществлять доступ к базе данных. Клиент 102A затем отправляет запрос на ресурс от имени запросчика. Идентификатор экземпляра приложения, который идентифицирует запросчик, ассоциирован с запросом. В вариантах осуществления запрос может включать в себя идентификатор экземпляра приложения, или идентификатор экземпляра приложения может отправляться отдельно таким образом, что сервер 106A может определять то, что идентификатор экземпляра приложения ассоциирован с запросом. В еще одном другом варианте осуществления сервер 106A или серверный кластер 106A уже может иметь информацию, требуемую для того, чтобы ассоциировать идентификатор экземпляра приложения с запросом, без необходимости принимать идентификатор экземпляра приложения вместе с запросом. Сервер 106A затем предоставляет запросчику разрешение на доступ к ресурсу, за счет этого давая возможность запросчику выполнять операции или иным образом осуществлять доступ к ресурсу. При предоставлении запросчику разрешения на доступ к ресурсу сервер 106A ассоциирует идентификатор экземпляра приложения с ресурсом таким способом, который указывает то, что запросчик в данный момент осуществляет доступ к ресурсу. Ресурс затем может быть защищен или заблокирован, так что другие клиенты или приложения не могут осуществлять доступ или модифицировать ресурс до тех пор, пока клиент 102 не завершит свою работу.
[0025] До того, как запросчик завершает операции на ресурсе, возникает ошибка, которая приводит к тому, что клиент 102A сбоит или иным образом теряет свое соединение с ресурсом. Поскольку клиент-запросчик завершает работу, он не прекращает управление ресурсом. Таким образом, ресурс может оставаться в защищенном или заблокированном состоянии. Запросчик или клиентский кластер 102 может использовать механизм восстановления после сбоя для того, чтобы выполнять миграцию запросчика из клиента 102A на клиент 102B. После того, как операция восстановления после сбоя закончена, клиент 102B может повторно подключаться к серверному кластеру 106 от имени запросчика. Клиент 102B может повторно подключаться к серверу 106A или устанавливать новое соединение с любым другим сервером в серверном кластере 106 (например, с сервером 106B или 106C). В примерном случае клиент 102B повторно подключается к серверу 106A. После повторного подключения клиент 102B может отправлять второй запрос на то, чтобы осуществлять доступ к ресурсу, от имени запросчика. Как отмечено выше, поскольку запросчик не прекращает управление ресурсом, ресурс при этом может быть в заблокированном или защищенном состоянии. Чтобы осуществлять доступ к ресурсу без ожидания автоматического изменения состояния ресурса посредством сервера, например, через операцию тайм-аута, запросчик снова может предоставлять идентификатор экземпляра приложения во втором запросе. Сервер 106A сравнивает идентификатор экземпляра приложения, предоставленный во втором запросе, с идентификатором экземпляра приложения, ассоциированным с ресурсом. Например, посредством сравнения идентификатора экземпляра приложения, принимаемого или иным образом ассоциированного со вторым запросом, с идентификатором экземпляра приложения, который сервер 106A ассоциирует с ресурсом. Ассоциированный идентификатор экземпляра приложения может быть сохранен в локальном кэше или таблице сервера 106A, либо он может быть сохранен в другом месте в серверном кластере 106. Если идентификатор экземпляра приложения, сохраненный в кэше, совпадает с идентификатором экземпляра приложения, который ассоциирован с ресурсом, сервер 106A признает недействительным или иным образом освобождает ресурс и дает возможность клиенту 102B снова осуществлять доступ к ресурсу от имени запросчика без ожидания высвобождения ресурса посредством некоторого другого механизма (например, посредством истечения тайм-аута защищенного или заблокированного состояния). Если идентификаторы экземпляров приложений не совпадают, клиент 102B должен ожидать освобождения ресурса до осуществления доступа к нему.
[0026] Хотя в вышеприведенном примере клиент 102B повторно подключается к идентичному серверу 106A, клиент также может в других вариантах осуществления подключаться к другому узлу в серверном кластере 106. Например, клиент 102B может повторно подключаться к серверу 106B и предоставлять второй запрос на то, чтобы восстанавливать доступ к ресурсу от имени запросчика. Второй запрос снова может быть ассоциирован с идентификатором экземпляра приложения запросчика, например, посредством включения во второй запрос или иного ассоциирования со вторым запросом. В этом примере сервер 106B может не иметь идентификатор экземпляра приложения, ассоциированный с ресурсом, сохраненным в его локальном кэше, поскольку исходный доступ к ресурсу выполняется на сервере 106A. В таком случае сервер 106B может контактировать с другими серверами в серверном кластере 106, чтобы определять то, имеют они или нет идентификатор приложения, ассоциированный с ресурсом. Если идентификатор приложения, ассоциированный с ресурсом, сохраняется в другом узле в серверном кластере (например, на сервере 106A), идентификатор экземпляра приложения в другом узле в серверном кластере сравнивается с идентификатором экземпляра приложения, предоставленным во втором запросе. Если они совпадают, сервер 106B может отправлять запрос на сервер 106A, чтобы признавать ресурс недействительным, и затем сервер 106B может давать возможность запросчику (теперь в клиенте 102B) осуществлять доступ к ресурсу. Если идентификаторы экземпляров приложений не совпадают, клиент 102B должен ожидать освобождения ресурса.
[0027] На основе вышеприведенных примеров специалисты в данной области техники должны принимать во внимание, что любой клиентский узел в клиентском кластере 102 может запрашивать доступ и затем предоставлять доступ запросчику в клиентском кластере 102. Кроме того, любой серверный узел в серверном кластере (например, любой сервер в серверном кластере 106) допускает определение того, имел или нет запросчик ранее доступ к ресурсу, даже если доступ осуществлен в другом серверном узле в серверном кластере. Специалисты в данной области техники должны принимать во внимание, что нижеприведенное описание является просто одним примером того, как может работать вариант осуществления, показанный на фиг. 1, и существуют другие варианты осуществления. Например, вместо осуществления доступа к ресурсам на удаленном сервере или серверном кластере клиентские узлы могут выполнять варианты осуществления, описанные в данном документе, для того чтобы предоставлять запросчикам (например, приложениям или процессам) непрерывный доступ к ресурсам, постоянно размещающимся в кластерном окружении (например, в идентичных или различных клиентских кластерных узлах, которые составляют клиентский кластер). Как подробнее описано ниже, варианты осуществления, описанные в данном документе, могут заключать в себе различные специальные этапы или операции. Кроме того, варианты осуществления, описанные в данном документе, могут быть реализованы с использованием любого надлежащего программного или аппаратного компонента или модуля.
[0028] Обращаясь теперь к фиг. 2, чертеж иллюстрирует блок-схему программного окружения 200, показывающую кластер 201 клиентских узлов с несколькими клиентскими узлами (например, клиентами 202 и 204) и кластер 206 серверных узлов с несколькими серверными узлами (например, с узлом 1 208 и узлом 2 216). В вариантах осуществления клиент 202 запрашивает то, чтобы осуществлять доступ к ресурсу, к примеру к ресурсу 226, в кластерном серверном окружении 206 от имени запросчика. Кластер 201 клиентских узлов может представлять собой клиентский кластер, к примеру клиентский кластер 102 (фиг. 1). Хотя не проиллюстрировано, клиентский кластер может содержать более двух клиентов. Кластер 206 серверных узлов может представлять собой серверный кластер, к примеру серверный кластер 106 (фиг. 1), либо может представлять собой любой другой тип кластерного окружения, такого как, но не только, виртуальная сеть. Ресурс 226 может быть сохранен в хранилище 228 данных, которое является частью кластерного окружения. Хотя не показано, в альтернативных вариантах осуществления хранилище 228 данных может не быть частью кластерного окружения, но может подключаться к кластерному окружению по сети. Примеры такой сети включают в себя, но не только, Интернет, WAN, LAN или любой другой тип сети, известной в области техники. В еще дополнительных вариантах осуществления хранилище данных может быть частью узла (например, устройства), который является частью кластера 206.
[0029] Кластер 206 серверных узлов может включать в себя один или более узлов, к примеру узел 1 208 и узел 2 216. Хотя только два кластера узлов проиллюстрированы на фиг. 2, любое число кластеров узлов может быть включено в кластерное окружение 206. В вариантах осуществления кластеры 208 и 216 узлов допускают прием запроса на выполнение операции и/или предоставление разрешения на доступ к ресурсу 226. В вариантах осуществления ресурс 226 может быть файлом, объектом, приложением, данными или любым другим типом ресурса, сохраненного или доступного посредством узла в кластере 206 узлов или посредством автономного сервера.
[0030] В вариантах осуществления клиент отправляет начальный запрос 222 в кластерное окружение 206. Как проиллюстрировано на фиг. 2, начальный запрос 222 может отправляться посредством клиента 202 и приниматься посредством узла 1 208. Тем не менее, в альтернативных вариантах осуществления начальный запрос 222 может отправляться посредством клиента или любого другого клиентского узла в клиентском кластере 201 и приниматься посредством узла 2 216 или любого другого узла в серверном кластере 206. Примерные запросы включают в себя, но не только, запросы на то, чтобы создавать, открывать или иным образом осуществлять доступ к файлу. Запрос 222 может быть передан из клиента в кластер узлов через сеть, такую как, но не только, Интернет, WAN, LAN или любой другой тип сети, известной в области техники. Начальный запрос 222 может включать в себя запрос на то, чтобы осуществлять доступ к ресурсу, к примеру к ресурсу 226. В вариантах осуществления запрос 222 также может включать в себя идентификатор экземпляра приложения, который идентифицирует запросчик, от имени которого клиент 202 выполняет запрос. В вариантах осуществления начальный запрос 222 может состоять из одного или более сообщений. Например, запрос 222 может представлять собой одно сообщение, содержащее как запрос, так и идентификатор экземпляра приложения. В другом варианте осуществления запрос 222 может представлять собой несколько сообщений, которые включают в себя один или более запросов, а также один или более идентификаторов экземпляров приложений. В вариантах осуществления клиент 202 может включать в себя кэш 214 экземпляров приложений, который используется для того, чтобы сохранять и/или формировать один или более идентификаторов экземпляров приложений, которые могут быть переданы с запросом 222.
[0031] Как показано на фиг. 2, узел 1 208 может принимать запрос 222 и идентификатор экземпляра приложения из клиента 202. Если запрашиваемый ресурс 226 доступен, например не защищен или заблокирован посредством другого клиента или приложения, узел 1 может предоставлять разрешение по запросу клиента (например, клиента 202) на то, чтобы осуществлять доступ к ресурсу 226 от имени запросчика, который запущен в клиенте. После предоставления разрешения на доступ к ресурсу 226 драйвер 210 фильтра может выделять или иным образом создавать ассоциацию между клиентом 202 и ресурсом 226 посредством сохранения идентификатора экземпляра приложения, который он принимает из клиента 202. В вариантах осуществления ассоциация может быть сохранена в качестве объекта в кэше 212 экземпляров приложений, который является частью узла 1. Хотя проиллюстрированный вариант осуществления показывает кэш 212 экземпляров приложений в качестве части узла 1 208, в вариантах осуществления кэш 212 экземпляров приложений может быть сохранен в другом месте в качестве части кластера 206 узлов. Специалисты в данной области техники должны принимать во внимание, что кластер 206 узлов может включать в себя один или более кэшей экземпляров приложений, к примеру кэш 220 экземпляров приложений в узле 2 216. В вариантах осуществления, когда присутствуют несколько кэшей экземпляров приложений, данные, сохраненные в нескольких кэшах экземпляров приложений, могут реплицироваться через все кэши экземпляров приложений, либо каждый кэш экземпляров приложений может сохранять отдельные данные.
[0032] В одном варианте осуществления идентификатор экземпляра приложения, принимаемый из клиента, идентификатор экземпляра приложения, который идентифицирует запросчик (например, приложение или процесс), может быть сохранен в структуре _NETWORK_APP_INSTANCE_ECP_CONTEXT. Структура _NETWORK_APP_INSTANCE_ECP_CONTEXT может задаваться следующим образом:
typdef struct _NETWORK_APP_INSTANCE_ECP_CONTEXT {
USHORT Size;
USHORT Reserved;
GUID AppInstanceID;
}_NETWORK_APP_INSTANCE_ECP_CONTEXT, *PNETWORK_APP_INSTANCE_ECP_CONTEXT;
[0033] В таких вариантах осуществления переменная Size может сохранять информацию, связанную с размером структуры, и переменная AppInstanceID может быть уникальным идентификатором экземпляра приложения для отказоустойчивого кластерного клиентского приложения, такого как запросчик, запущенный в клиенте 202. В вариантах осуществления _NETWORK_APP_INSTANCE_ECP_CONTEXT либо другой объект или переменная, содержащая идентификатор экземпляра приложения запросчика, могут быть сохранены в кэше 214 глобально уникальных идентификаторов (GUID). В вариантах осуществления структура _NETWORK_APP_INSTANCE_ECP_CONTEXT может отправляться из клиента на сервер в ассоциации с запросом, чтобы осуществлять доступ к ресурсу (например, с запросом на создание или открытие). В одном варианте осуществления идентификатор экземпляра приложения запросчика может быть сохранен в GUID-кэше клиентского узла, в котором запущен запросчик в кластерном клиентском окружении 201. В другом варианте осуществления, хотя не показано на фиг. 2, кластер 201 клиентских узлов может иметь центральный репозиторий, который сохраняет идентификаторы экземпляров приложений. В таком варианте осуществления несколько клиентских узлов в кластере 201 клиентских узлов могут осуществлять доступ к централизованному репозиторию. В еще одном другом варианте осуществления идентификаторы экземпляров приложений могут быть сохранены в нескольких GUID-кэшах (например, в GUID-кэше 214 и GUID-кэше 216). В таких вариантах осуществления кластер 201 клиентских узлов может использовать алгоритм репликации, чтобы обеспечивать то, что эти несколько GUID-кэшей содержат идентичные идентификаторы экземпляров приложений.
[0034] Как описано выше, идентификатор экземпляра приложения может быть ассоциирован с ресурсом 226, в то время как клиент 202 осуществляет доступ к ресурсу 226 от имени запросчика. Серверный узел 206 может сохранять такую ассоциацию в одном или более кэшей экземпляров приложений, которые являются частью кластера 206 серверных узлов, к примеру в кэшах 212 и 220 экземпляров приложений. В одном варианте осуществления идентификатор экземпляра приложения может быть ассоциирован с ресурсом посредством добавления его в список дополнительных параметров создания (ECP) для ресурса 226. ECP-список может быть сохранен в кэше экземпляров приложений, который является частью кластера 206 серверных узлов, к примеру в кэшах 212 и 220 экземпляров приложений. В вариантах осуществления, когда ECP принимается посредством сервера, сервер извлекает идентификатор экземпляра приложения из ECP и добавляет его в кэш для ассоциирования с ресурсом, дескриптором ресурса и т.д. Как описано относительно сохранения идентификаторов экземпляров приложений в клиентском кластере 201, идентификаторы экземпляров приложений, ассоциированные с узлом, могут сохраняться в отдельном кэше экземпляров приложений в узле в кластере 206 серверных узлов, в центральном репозитории в серверном кластере 206 или реплицироваться в нескольких кэшах экземпляров приложений на нескольких узлах в кластере 206 серверных узлов.
[0035] В вариантах осуществления ресурс 226 защищен или заблокирован, в то время как запросчик, запущенный в клиенте 202, имеет доступ к ресурсу 222, за счет этого не допуская доступа других клиентов или приложений к ресурсу 226 и исключая потенциальные конфликты. В вариантах осуществления до того, как запросчик завершает свою работу на ресурсе 226, клиент 202 подвергается ошибке, что приводит к тому, то он теряет соединение с ресурсом. Например, клиент может фатально сбоить, переходить в оффлайн-режим или терять сетевое соединение с серверным узлом 208. В таких случаях ресурс 226 при этом может быть в защищенном или заблокированном состоянии, поскольку запросчик не снимает блокировку ресурса, за счет этого не допуская доступа других клиентов к ресурсу 226.
[0036] Когда возникает ошибка в клиенте 202, запросчик может использовать механизм 232 восстановления после сбоя клиента, чтобы мигрировать на новый клиентский узел (например, клиент 204) в клиентском кластере 201. Специалисты в данной области техники должны принимать во внимание, что любой тип механизма восстановления после сбоя может использоваться при восстановлении 232 после сбоя клиента. В вариантах осуществления механизм 232 восстановления после сбоя также может включать в себя миграцию идентификатора экземпляра приложения запросчика, который, возможно, сохранен в GUID-кэше 214 в текущем сбойном клиенте 202. После выполнения миграции запросчик может пытаться восстанавливать доступ к ресурсу 202. В вариантах осуществления клиент 216 может отправлять второй запрос 224 в узел 1, чтобы запрашивать доступ к ресурсу 226 от имени запросчика. Тем не менее, без вариантов осуществления по обеспечению непрерывного доступа, раскрытых в данном документе, когда узел 1 208 принимает запрос на то, чтобы осуществлять доступ к ресурсу 226, от имени клиента 204 (отправляющего устройства второго запроса 224), он может отклонять запрос, поскольку ресурс 226 по-прежнему находится в защищенном или заблокированном состоянии с момента предыдущего доступа, который клиент 202 выполнил от имени ресурса. Без вариантов осуществления, раскрытых в данном документе, узел 1 208 должен распознавать, что второй запрос в ресурс 226 доступа исходит из другого местоположения (например, клиента 204). Узел 1 208 не имеет возможность определять то, что запрос предназначен для идентичного запросчика, который поддерживает блокировку ресурса 226, и, следовательно, определять то, что предоставление разрешения по запросу должно приводить к конфликту. Тем не менее, если идентичный запросчик пытается осуществлять доступ к ресурсу 224, нет проблемы конфликта, и вынуждение клиента ожидать освобождения ресурса может приводить к чрезмерным задержкам.
[0037] Идентификатор экземпляра приложения может быть использован для того, чтобы разрешать эту проблему. В вариантах осуществления второй запрос 224 также может включать в себя идентификатор экземпляра приложения из идентификации запросчика, который мигрировал на клиент 204 во время восстановления после сбоя, показанного на 232. В вариантах осуществления идентификатор экземпляра приложения запросчика может присутствовать в GUID-кэше 228 клиента 204 до миграции запросчика во время восстановления 232 после сбоя клиента. Например, механизм репликации, возможно, использован для того, чтобы реплицировать идентификатор экземпляра приложения запросчика через узлы в клиентском кластере 201. В другом варианте осуществления запросчик 203 может сохранять свой идентификатор экземпляра приложения. В еще одном другом варианте осуществления, идентификатор экземпляра приложения запросчика 203 может мигрировать во время восстановления 232 после сбоя клиента.
[0038] Как описано относительно запроса 222, идентификатор экземпляра приложения может быть передан в идентичном сообщении, что и второй запрос 224, либо второй запрос 224 может состоять из ряда различных сообщений. Когда второй запрос принимается в кластере 206 узлов или в отдельном узле в кластере, к примеру в узле 1 208, и приемный сервер определяет то, что ресурс защищен или заблокирован, выполняется определение в отношении того, является или нет идентификатор экземпляра приложения во втором запросе 224 идентичным идентификатору экземпляра приложения, ассоциированному с ресурсом 226. В вариантах осуществления узел 2 216 сравнивает идентификатор экземпляра приложения, принимаемый во втором запросе 222, с идентификатором экземпляра приложения, который ассоциирован с ресурсом 226. Идентификатор приложения, ассоциированный с ресурсом 220, может быть сохранен в кэше 212 экземпляров приложений узла 1 212. В вариантах осуществления, в которых несколько кэшей экземпляров приложений присутствует в кластере 206 узлов, определение может проверять несколько кэшей экземпляров приложений в кластере 206 узлов. В таких вариантах осуществления, если совпадающий идентификатор экземпляра приложения не находится в кэше 212 экземпляров приложений, узел 1 216 может отправлять запрос в узел 2 212, чтобы определять то, расположен или нет совпадающий идентификатор экземпляра приложения в кэше 220 экземпляров приложений.
[0039] В одном варианте осуществления, если идентификатор экземпляра приложения, принимаемый во втором запросе 224, не совпадает с идентификатором экземпляра приложения, ассоциированным с ресурсом 226 (который может быть сохранен в кэше 212 и/или 220 экземпляров приложений), разрешение по второму запросу 224 не может быть предоставлено до тех пор, пока ресурс 226 не станет свободным. Тем не менее, если совпадение обнаружено, приемный сервер (например, узел 1 208) и/или кластер 206 серверных узлов выполняет действия для того, чтобы предоставлять разрешение на доступ к ресурсу 226, без чрезмерной задержки для клиента 204 и запросчика 203. В таких случаях кластер 206 узлов может признавать ресурс 226 недействительным, за счет этого выводя ресурс 226 из защищенного или заблокированного состояния. В вариантах осуществления признание недействительным предыдущего доступа может содержать любое действие, которое выводит ресурс из защищенного или заблокированного состояния. Один неограничивающий пример представляет собой закрытие открытого файла (например, если ресурс 226 является файлом). После того, как предыдущий доступ признается недействительным, разрешение по второму запросу 224 на то, чтобы осуществлять доступ к ресурсу 226, может быть предоставлено, в силу этого предоставляя непрерывный доступ к запросчику 203.
[0040] В одном варианте осуществления узел, принимающий второй запрос 224, к примеру узел 1 208 на фиг. 2, может выполнять требуемые действия для того, чтобы признавать недействительным предыдущий доступ к ресурсу 226, если другой узел (например, узел 2 216) имеет доступ и/или разрешение признавать предыдущий доступ недействительным. Тем не менее, в некоторых случаях узел, принимающий запрос, может не иметь доступа или разрешения признавать предыдущий доступ недействительным. Например, такой случай может возникать, если исходный запрос 222 выполняется в узел 2 216, когда узел 2 216 может управлять ресурсом. В таких случаях узел, принимающий второй запрос 224, может отправлять запрос в управляющий узел, чтобы признавать предыдущий доступ недействительным. После того, как управляющий узел признает предыдущий доступ недействительным, узел, принимающий второй запрос 224, может предоставлять разрешение по второму запросу 224. В других вариантах осуществления узел, принимающий второй запрос 224, может отправлять запрос в другой узел, чтобы предоставлять клиенту 204 и/или запросчику 203 (теперь постоянно размещающемуся в клиенте 204) доступ к ресурсу 226.
[0041] Описанный процесс не допускает чрезмерной задержки в предоставлении разрешения по второму запросу 224 на то, чтобы осуществлять доступ к ресурсу 226 из ресурса 203, который ранее осуществлял доступ и по-прежнему поддерживает блокировку ресурса 226 с помощью идентификаторов экземпляров приложений. Кроме того, идентификаторы экземпляров приложений предоставляют преимущество обеспечения того, что все запросы, по которым предоставлено разрешение, не создают конфликт на ресурсе 226. Например, если запрос принят из другого приложения, запрос должен включать в себя идентификатор экземпляра приложения, который отличается от идентификатора экземпляра приложения, ассоциированного с ресурсом, что приводит к отклонению запроса. Поскольку идентификаторы экземпляров приложений являются глобально уникальными идентификаторами, идентификатор экземпляра приложения для различных приложений не является идентичным.
[0042] Фиг. 3 является вариантом осуществления способа 300, который запросчик может использовать для того, чтобы получать непрерывный доступ к ресурсу в кластерном клиентском окружении. Например, запросчик может быть клиентом, к примеру клиентом 202 (фиг. 2), который использует способ 300, чтобы осуществлять доступ к ресурсу (например, к ресурсу 226). В вариантах осуществления ресурс может постоянно размещаться на удаленной машине, к примеру на сервере. Сервер может быть автономным сервером или частью кластерного окружения, к примеру серверного кластера 206 (фиг. 2). Последовательность операций начинается на этапе 302, на котором запрос на ресурс отправляется на сервер. В вариантах осуществления запрос может быть на осуществление доступа к ресурсу. В вариантах осуществления осуществление доступа к ресурсу может содержать открытие файла, создание файла или иное осуществление доступа или выполнение операции на ресурсе, который может быть удаленным для клиента. В вариантах осуществления запросчик может работать в кластерном клиентском окружении. В таких вариантах осуществления запрос, отправленный на этапе 302, может отправляться из первого клиента в кластерном клиентском окружении.
[0043] Последовательность операций переходит к этапу 304, на котором идентификатор экземпляра приложения отправляется, например, на сервер (например, на автономный сервер или узел в кластерном окружении). В одном варианте осуществления первый клиент, который отправил запрос, также может отправлять идентификатор экземпляра приложения от имени запросчика. Как описано выше, идентификатором экземпляра приложения является GUID, идентифицирующий запросчик (например, приложение, клиент или дочерний процесс приложения, запрашивающего доступ к ресурсу). В одном варианте осуществления идентификатор экземпляра приложения может отправляться в сообщении, передаваемом через сеть. Идентификатор экземпляра приложения может быть передан в идентичном сообщении, содержащем запрос на этапе 302, либо он может быть передан в другом сообщении. В таких вариантах осуществления объект, содержащий идентификатор экземпляра приложения, к примеру, но не только, _NETWORK_APP_INSTANCE_ECP_CONTEXT, описанный относительно фиг. 2, может отправляться на этапе 302.
[0044] В одном варианте осуществления интерфейс может быть использован для того, чтобы отправлять идентификатор экземпляра приложения на этапе 304. Интерфейс может быть интерфейсом уровня ядра, расположенным в клиенте или доступным клиенту, работающему в кластерном клиентском окружении. В вариантах осуществления интерфейс уровня ядра может быть использован посредством запросчика и/или клиента, чтобы отправлять идентификатор экземпляра приложения на сервер. Ниже приводится неограничивающий пример интерфейса уровня ядра, который может использоваться на этапе 304 для того, чтобы отправлять идентификатор экземпляра приложения:
#if (NTDDI_VERSION>=NTDDI_WIN8)
//
//Контекст ECP для приложения, чтобы предоставлять идентификатор экземпляра.
//
typedef struct _NETWORK_APP_INSTANCE_ECP_CONTEXT {
//
//Он должен задаваться равным размеру этой структуры.
//
USHORT Size;
//
//Он должен задаваться равным нулю.
//
USHORT Reserved;
//
//Вызывающая функция задает GUID, который всегда должен быть уникальным для одного экземпляра
//приложения.
//
GUID AppInstanceID;
}NETWORK_APP_INSTANCE_ECP_CONTEXT, *PNETWORK_APP_INSTANCE_ECP_CONTEXT;
//
//GUID, используемый для структуры APP_INSTANCE_ECP_CONTEXT.
//
//{6AA6BC45-A7EF-4af7-9008-FA462E144D74}
//
DEFINE_GUID(GUID_ECP_NETWORK_APP_INSTANCE, 0x6aa6bc45, 0xa7ef, 0x4af7, 0x90, 0x8, 0xfa, 0x46, 0x2e, 0x14, 0x4d, 0x74);
#endif//NTDDI_Version>=NTDDI_WIN8
[0045] Хотя предоставляется конкретный интерфейс уровня ядра, специалисты в данной области техники должны принимать во внимание, что другие интерфейсы уровня ядра могут использоваться на этапе 304 для того, чтобы отправлять идентификатор экземпляра приложения.
[0046] В другом варианте осуществления интерфейс прикладного программирования (API) может использоваться на этапе 304 для того, чтобы отправлять идентификатор экземпляра приложения. В таком варианте осуществления, запросчик и/или клиент могут отправлять идентификатор экземпляра приложения посредством выполнения вызова в API. API может размещаться на клиенте, выполняющем этап 304 (например, на первом клиенте в серверном кластере), либо API может размещаться на другом устройстве и быть доступным посредством запросчика или другого приложения или процесса. Ниже приводится неограничивающий пример API, который может использоваться на этапе 304 для того, чтобы отправлять идентификатор экземпляра приложения:
NTSTATUS RegisterAppInstance (
_in PGUID AppInstance
);
[0047] Хотя предоставляется конкретный API, специалисты в данной области техники должны принимать во внимание, что другой API может использоваться на этапе 304. Кроме того, хотя этап 304 проиллюстрирован в качестве дискретного этапа, специалисты в данной области техники должны принимать во внимание, что отправка идентификатора экземпляра приложения может выполняться одновременно с отправкой запроса на этапе 302.
[0048] Когда запрашиваемый ресурс не заблокирован, по запросу, отправленному на этапе 302, предоставляется разрешение, и последовательность операций переходит к этапу 306, на котором к ресурсу осуществляется доступ. Как описано выше, сервер или устройство, управляющее ресурсом, может переключать ресурс в защищенное или заблокированное состояние, в то время как запросчик осуществляет доступ к ресурсу на этапе 306. В некоторый момент при осуществлении доступа к ресурсу возникает ошибка, к примеру ошибки, описанные со ссылкой на фиг. 2, которая вызывает сбой или иную потерю клиентом соединения с ресурсом. Ошибка может приводить к тому, что клиент (например, первый клиент в серверном кластере) теряет доступ к ресурсу до того, как запросчик завершает использование ресурса. При таких обстоятельствах ресурс не может высвобождаться из защищенного или заблокированного состояния.
[0049] Последовательность операций переходит к этапу 308, на котором выполняется операция восстановления после сбоя. В вариантах осуществления операция восстановления после сбоя может содержать клонирование запросчика и его состояния на другом клиенте в кластере клиентских узлов (например, на втором клиенте). В вариантах осуществления состояние запросчика может быть клонировано на втором клиенте, и запросчик может работать во втором клиенте таким образом, что он может возобновлять выполнение с точки, в которой произошел сбой в первом клиенте. В другом варианте осуществления запросчик может поддерживать связь с первым клиентом (вместо запуска в нем) во время восстановления после сбоя первыми клиентами. В таких вариантах осуществления операция восстановления после сбоя может содержать установление связи посредством запросчика со вторым клиентом в клиентском кластере.
[0050] В вариантах осуществления информация состояния, включающая в себя, но не только, идентификатор экземпляра приложения запросчиков, может быть передана из первого клиента во второй клиент. В одном варианте осуществления первый клиент может отправлять сообщение, включающее в себя идентификатор экземпляра приложения запросчика и/или информацию состояния запросчика. Идентификатор экземпляра приложения и/или состояние может отправляться в ходе процесса восстановления после сбоя или в вариантах осуществления может отправляться до того, как сбоит первый клиент, к примеру, в ходе процесса репликации, который клонирует информацию между клиентами в кластерном клиентском окружении. В другом варианте осуществления идентификатор экземпляра приложения запросчика и/или информация состояния может быть сохранена в центральном местоположении или репозитории в кластерной клиентской сети. В таких вариантах осуществления процесс восстановления после сбоя может предоставлять во второй клиент местоположение идентификатора экземпляра приложения запросчика и/или информации состояния. В еще одном другом варианте осуществления запросчик может поддерживать свой идентификатор экземпляра приложения. В таких вариантах осуществления операция восстановления после сбоя клиента может содержать перемещение или иное установление соединения между запросчиком и вторым клиентом.
[0051] В вариантах осуществления после операции восстановления после сбоя клиента последовательность операций переходит к этапу 310. На этапе 310 второй запрос на идентичный ресурс отправляется в кластерное окружение. В вариантах осуществления второй запрос отправляется посредством второго клиента в клиентском кластере от имени запросчика. Второй запрос может отправляться с использованием идентичного способа, как описано относительно первого ресурса на этапе 302. Чтобы поддерживать непрерывный доступ к ресурсу и не допускать чрезмерной задержки, последовательность операций переходит к этапу 312, на котором идентификатор экземпляра приложения снова отправляется в кластерное окружение. Идентификатор экземпляра приложения может отправляться на этапе 308 согласно одному из вариантов осуществления, описанных относительно этапа 304. В вариантах осуществления, поскольку другой клиент (например, второй клиент) отправляет второй запрос, сервер, принимающий запрос, может не иметь возможность идентифицировать второй запрос как принадлежащий этому запросчику, который поддерживает блокировку ресурса (например, поскольку запрос выполняется из другой машины, другого адреса и т.д.). Тем не менее, посредством отправки идентификаторов экземпляров приложений на этапах 304 и 308 сервер должен иметь возможность идентифицировать запросы как принадлежащие этому запросчику и предоставлять непрерывный доступ к ресурсу, как описано выше относительно фиг. 1 и 2. Последовательность операций переходит к этапу 314, и запросчик возобновляет доступ к ресурсу. В вариантах осуществления второй клиент может принимать ответ на второй запрос из сервера, указывающий то, что сервер предоставляет разрешение по второму запросу. В вариантах осуществления при приеме индикатора второй клиент может осуществлять доступ к ресурсу от имени запросчика.
[0052] Фиг. 4 является вариантом осуществления способа 400, выполняемого посредством узла в кластерном серверном окружении для того, чтобы предоставлять непрерывный доступ к ресурсу. Варианты осуществления способа 400 могут быть выполнены посредством узла, к примеру узла 1 208 (фиг. 2) в кластерном окружении, таком как кластер 206 узлов (фиг. 2). В вариантах осуществления способ 400 может быть выполнен посредством узла, который имеет доступ к ресурсу. Последовательность операций начинается на этапе 402, на котором узел принимает запрос на ресурс. В вариантах осуществления ресурс может быть файлом, объектом, методом, данными или любым другим типом ресурса, который управляется и/или может быть доступен посредством узла, выполняющего этап 400. Идентификатор экземпляра приложения может быть принят с запросом на этапе 402.
[0053] Последовательность операций переходит к этапу 404 принятия решения, на котором выполняется определение в отношении того, находится или нет ресурс в защищенном или заблокированном состоянии. Специалисты в данной области техники должны принимать во внимание, что любой способ определения того, защищен или заблокирован либо нет ресурс, может использоваться на этапе 404. Если ресурс не находится в защищенном или заблокированном состоянии, последовательность операций переходит по ветви "Нет" к этапу 412, на котором по запросу на ресурс предоставляется разрешение. В вариантах осуществления предоставление разрешения по запросу может содержать предоставление запросчику доступа к ресурсу, выполнение операции на ресурсе от имени запросчика либо разрешение любого вида доступа или модификации ресурса. Например, предоставление разрешения по запросу на этапе 412 может включать в себя открытие файла или создание файла.
[0054] Если ресурс находится в защищенном или заблокированном состоянии, последовательность операций переходит по ветви "Да" от этапа 404 к этапу 406 принятия решения. На этапе 406 принятия решения идентификатор экземпляра приложения, принимаемый с запросом на этапе 402, сравнивается с идентификатором экземпляра приложения, который ассоциирован с ресурсом. Например, как описано относительно фиг. 2, узел может ассоциировать идентификатор экземпляра приложения с ресурсом, когда клиент или приложение осуществляет доступ к ресурсу. Как описано выше, ассоциация идентификатора экземпляра приложения запросчика, осуществляющего доступ к ресурсу, может быть сохранена в узле, например в кэше экземпляров приложений, как описано в различных вариантах осуществления, поясненном на фиг. 2. В вариантах осуществления идентификатор экземпляра приложения, который предоставляется в ECP, отправленном с запросом на ресурс, например, в структуре _NETWORK_APP_INSTANCE_ECP_CONTEXT, может добавляться в ECP-список, ассоциированный с ресурсом.
[0055] В одном варианте осуществления ассоциация ресурса экземпляра приложения может постоянно размещаться локально в узле, осуществляющем способ 400. В таких случаях сравнение может осуществляться в локальном кэше экземпляров приложений, постоянно размещающемся на сервере. Тем не менее, как пояснено относительно фиг. 2, кластерное окружение может содержать определенное число кэшей экземпляров приложений, распределенных по различным узлам. Кроме того, различные кэши экземпляров приложений могут сохранять отдельные и/или различные данные. Идентификатор приложения, ассоциированный с защищенным или заблокированным ресурсом, может быть сохранен в другом узле в кластерном окружении. В таких случаях этап 406 может включать в себя отправку запроса в другой узел, чтобы выполнять сравнение на этапе 406. Запрос может включать в себя идентификатор экземпляра приложения, принимаемый на этапе 402.
[0056] Если принимаемый идентификатор экземпляра приложения не является идентичным идентификатору экземпляра приложения, ассоциированному с ресурсом, последовательность операций переходит по ветви "Нет" к этапу 410. На этапе 410 запрос на то, чтобы осуществлять доступ к ресурсу, принимаемый на этапе 402, отклоняется. В вариантах осуществления запрос может быть отклонен во избежание конфликта ресурсов. Поскольку принимаемый идентификатор приложения не является идентичным ассоциированному идентификатору экземпляра приложения, запрос на то, чтобы осуществлять доступ к ресурсу, принимаемый на этапе 402, исходит из другого запросчика или приложения. Предоставление разрешения по запросу другому клиенту или приложению, как в этом случае, может вызывать конфликтную ситуацию, что создает помехи приложению, в данный момент осуществляющему доступ к ресурсу. Например, другое приложение может модифицировать ресурс таким способом, который модифицирует или создает иные помехи операциям, выполняемым на ресурсе посредством запросчика, который в данный момент поддерживает блокировку ресурса.
[0057] Тем не менее, прием идентификатора приложения с запросом 402, который является идентичным идентификатору приложения, ассоциированному с защищенными или заблокированными ресурсами, указывает то, что, возможно, возникает ошибка, которая приводит к тому, что запросчик, который осуществляет доступ к ресурсу, теряет доступ к ресурсу без надлежащего высвобождения ресурса. Например, запросчик может работать в кластере клиентских узлов. Конкретный клиент, в котором работал запросчик, может терять соединение с сервером или иным образом сбоить до того, как запросчик завершает свои операции на ресурсе. Чтобы предоставлять непрерывный доступ к ресурсу, т.е. чтобы давать возможность запросчику восстанавливать доступ к ресурсу без чрезмерной или недопустимой задержки, последовательность операций переходит по ветви "Да" к этапу 408.
[0058] На этапе 408 ресурс признается недействительным. Как описано выше в данном документе, признание ресурса недействительным может включать в себя изменение защищенного состояния ресурса или иное снятие блокировки ресурса. Например, если ресурс является файлом, признание ресурса недействительным может включать в себя закрытие файла. Специалисты в данной области техники должны принимать во внимание, что любой способ высвобождения защищенного или заблокированного ресурса может использоваться на этапе 408.
[0059] Снова ссылаясь на фиг. 2, в вариантах осуществления доступ к ресурсу может выполняться под управлением узла в кластерном окружении, отличающегося от узла, который принимает запрос на доступ к ресурсу на этапе 402. Например, дескриптор ресурса может постоянно размещаться в другом узле в кластерном окружении. В таких вариантах осуществления признание ресурса недействительным может включать в себя отправку запроса в узел, управляющий доступом к ресурсу, чтобы признавать ресурс недействительным. В ответ на отправку запроса удаленный узел может признавать ресурс недействительным.
[0060] После того, как ресурс признается недействительным, последовательность операций переходит к этапу 412, на котором по запросу на то, чтобы осуществлять доступ к ресурсу, предоставляется разрешение. Предоставление разрешения по запросу может содержать предоставление запросчику доступа к ресурсу, выполнение операции на ресурсе от имени запросчика либо разрешение любого вида доступа или модификации ресурса. Например, предоставление разрешения по запросу на этапе 412 может включать в себя открытие файла или создание файла. Предоставление разрешения на такой доступ может быть выполнено посредством узла, принимающего запрос на этапе 402, или посредством другого узла в кластерном окружении.
[0061] Способы 300 и 400 являются просто некоторыми примерами последовательностей операций, которые могут быть выполнены в соответствии с вариантами осуществления. Варианты осуществления не ограничены конкретным описанием, предоставленным выше относительно фиг. 3-6, и могут включать в себя дополнительные операции. Дополнительно проиллюстрированные функциональные этапы могут быть комбинированы в другие этапы и/или перекомпонованы. Дополнительно меньшее число или дополнительные этапы могут использоваться, применяться в способах, описанных на фиг. 3 и 4.
[0062] Фиг. 5 иллюстрирует общую компьютерную систему 500, которая может быть использована для того, чтобы реализовывать варианты осуществления, описанные в данном документе. Компьютерная система 500 является только одним примером вычислительного окружения и не имеет намерение налагать какие-либо ограничения в отношении объема использования или функциональности компьютерной и сетевой архитектур. Компьютерная система 500 не должна интерпретироваться как имеющая какую-либо зависимость или требование, связанное с любым отдельным или с комбинацией компонентов, проиллюстрированных в примерной компьютерной системе 500. В вариантах осуществления система 500 может быть использована в качестве клиентов и/или серверов, описанных выше относительно фиг. 1 и 2.
[0063] В наиболее обобщенной конфигурации система 500 типично включает в себя, по меньшей мере, один процессор 502 и запоминающее устройство 504. В зависимости от точной конфигурации и типа вычислительного устройства запоминающее устройство 504 может быть энергозависимым (например, RAM), энергонезависимым (например, ROM, флэш-память и т.д.) или какой-либо комбинацией. Эта наиболее обобщенная конфигурация проиллюстрирована на фиг. 5 посредством пунктирной линии 506. Системное запоминающее устройство 504 сохраняет инструкции 520, к примеру инструкции для того, чтобы осуществлять способы обеспечения постоянной доступности, раскрытые в данном документе, и данные 522, к примеру идентификаторы экземпляров приложений, которые могут быть сохранены в системе хранения файлов с устройством хранения, таким как устройство 508 хранения данных.
[0064] Термин "машиночитаемые носители" при использовании в данном документе может включать в себя компьютерные носители хранения данных. Компьютерные носители хранения данных могут включать в себя энергозависимые и энергонезависимые, съемные и стационарные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули, или другие данные. Системное запоминающее устройство 504, съемное устройство 508 хранения данных и стационарное устройство 610 хранения данных являются примерами компьютерных носителей хранения данных (к примеру, запоминающего устройства). Компьютерные носители хранения данных могут включать в себя, но не только, RAM, ROM, электрически стираемое постоянное запоминающее устройство (EEPROM), флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другие оптические устройства хранения данных, магнитные кассеты, магнитную ленту, устройства хранения данных на магнитных дисках или другие магнитные устройства хранения данных, либо любой другой носитель, который может быть использован для того, чтобы хранить требуемую информацию, и к которому может осуществляться доступ посредством вычислительного устройства 500. Любые такие компьютерные носители хранения данных могут быть частью устройства 500. Вычислительное устройство 500 также может иметь устройство(а) 514 ввода, такое как клавиатура, мышь, перо, устройство звукового ввода, устройство сенсорного ввода и т.д. Устройство(а) 516 вывода, такое как дисплей, динамики, принтер и т.д., также может быть включено. Вышеуказанные устройства являются примерами, и могут использоваться другие устройства.
[0065] Термин "машиночитаемые носители" при использовании в данном документе также может включать в себя среды связи. Среды связи могут быть осуществлены посредством машиночитаемых инструкций, структур данных, программных модулей или других данных в модулированном сигнале данных, таком как несущая или другой транспортный механизм, и включают в себя любые среды для доставки информации. Термин "модулированный сигнал данных" может описывать сигнал, который имеет одну или более характеристик, заданных или измененных таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среды связи могут включать в себя проводные среды, такие как проводная сеть или проводное соединение, и беспроводные среды, такие как акустические, радиочастотные (RF), инфракрасные и другие беспроводные среды.
[0066] Варианты осуществления изобретения могут осуществляться на практике через внутрикристальную систему (SOC), в которой все или большинство компонентов, проиллюстрированных на фиг. 5, могут быть интегрированы на одной интегральной схеме. Такое SOC-устройство может включать в себя один или более процессоров, графических модулей, модулей связи, модулей виртуализации систем и функциональность различных приложений, все из которых интегрируются (или "записываются") на подложку кристалла в качестве одной интегральной схемы. При работе через SOC функциональность, описанная в данном документе относительно предоставления непрерывного доступа к ресурсу, может управляться через специализированную логику, интегрированную с другими компонентами вычислительного устройства/системы 500 на одной интегральной схеме (кристалле).
[0067] В этом подробном описании содержится ссылка на "один вариант осуществления" или "вариант осуществления", что означает то, что конкретный описанный признак, структура или характеристика включается, по меньшей мере, в один вариант осуществления. Таким образом, использование таких фраз может относиться более чем только к одному варианту осуществления. Помимо этого, описанные признаки, структуры или характеристики могут быть комбинированы любым надлежащим образом в одном или более вариантов осуществления.
[0068] Тем не менее, специалисты в данной области техники могут признавать, что варианты осуществления могут осуществляться на практике без одной или более конкретных подробностей или с другими способами, ресурсами, материалами и т.д. В других случаях широко распространенные структуры, ресурсы или операции не показаны или описаны подробно просто для того, чтобы избежать затруднений в понимании аспектов вариантов осуществления.
[0069] Хотя проиллюстрированы и описаны примерные варианты осуществления и применения, следует понимать, что варианты осуществления не ограничены точной конфигурацией и ресурсами, описанными выше. Различные модификации, изменения и вариации, очевидные специалистам в данной области техники, могут быть выполнены в структуре, работе и подробностях способов и систем, раскрытых в данном документе, без отступления от объема заявленных вариантов осуществления.

Claims (10)

1. Способ предоставления непрерывного доступа к ресурсу, при этом способ содержит этапы, на которых:
- принимают первый запрос на то, чтобы осуществлять доступ к ресурсу, от запросчика, при этом запрос принимается от первого клиента;
- ассоциируют первый идентификатор экземпляра приложения с первым ресурсом;
- разрешают доступ по первому запросу к ресурсу;
- принимают второй запрос на ресурс от запросчика после восстановления после сбоя, при этом второй запрос принимается от второго клиента, отличающегося от первого клиента;
- принимают второй идентификатор приложения, ассоциированный со вторым запросом;
- определяют, являются или нет первый идентификатор приложения и второй идентификатор приложения идентичными; и
- когда первый и второй идентификаторы приложений являются идентичными, выполняют этапы, на которых:
- признают недействительным первый запрос; и
- предоставляют разрешение по второму запросу, чтобы осуществлять доступ к ресурсу.
2. Способ по п. 1, в котором первый идентификатор приложения ассоциирован с экземпляром приложения из запроса на открытие.
3. Способ по п. 1, в котором первый идентификатор приложения ассоциирован с процессом.
4. Способ по п. 1, в котором первый идентификатор приложения ассоциирован с, по меньшей мере, одним дочерним процессом приложения.
5. Способ по п. 1, в котором ассоциирование первого идентификатора экземпляра приложения содержит этап, на котором принимают первый идентификатор экземпляра приложения в структуре NETWORK_APP_INSTANCE_ECP_CONTEXT.
6. Способ для предоставления восстановления после сбоя кластерного клиента, при этом способ содержит этапы, на которых:
- принимают, во втором клиенте, идентификатор экземпляра приложения для запросчика, при этом запросчик ранее осуществлял доступ к ресурсу с использованием первого клиента;
- отправляют, из второго клиента, второй запрос на то, чтобы осуществлять доступ к ресурсу, от имени запросчика;
- отправляют, из второго клиента, идентификатор экземпляра приложения для запросчика;
- принимают индикатор того, что сервер предоставляет разрешение по второму запросу; и
- осуществляют доступ, посредством второго клиента, к ресурсу от имени клиента.
7. Способ по п. 6, в котором сервер, предоставляющий разрешение по второму запросу, ранее предоставил разрешение по первому запросу, чтобы осуществлять доступ к ресурсу, из первого клиента от имени запросчика.
8. Способ по п. 6, в котором второй клиент отправляет второй запрос в ответ на восстановление после сбоя клиента.
9. Система для упрощения восстановления после сбоя клиента в кластерном окружении, при этом система содержит:
- по меньшей мере, один сервер, содержащий:
- по меньшей мере, один процессор, выполненный с возможностью осуществлять машиноисполняемые инструкции;
- по меньшей мере, один машиночитаемый носитель хранения данных, сохраняющий машиноисполняемые инструкции, которые при выполнении посредством, по меньшей мере, одного процессора предоставляют:
- прием первого запроса на то, чтобы осуществлять доступ к ресурсу, от первого клиента от имени запросчика;
- ассоциирование первого идентификатора экземпляра приложения с первым ресурсом;
- разрешение запросчику осуществить доступ к ресурсу;
- прием второго запроса на ресурс от второго клиента, при этом второй клиент отличается от первого клиента;
- прием второго идентификатора приложения, ассоциированного со вторым запросом;
- определение того, являются или нет первый идентификатор приложения и второй идентификатор приложения идентичными;
- когда первый и второй идентификаторы приложений являются идентичными, выполнение этапов, содержащих:
- признание недействительным первого запроса; и
- предоставление разрешения по второму запросу, чтобы осуществлять доступ к ресурсу.
10. Система по п. 9, при этом система дополнительно содержит:
- первый клиент, содержащий:
- по меньшей мере, один процессор, выполненный с возможностью осуществлять машиноисполняемые инструкции;
- по меньшей мере, один машиночитаемый носитель хранения данных, сохраняющий машиноисполняемые инструкции, которые при выполнении посредством, по меньшей мере, одного процессора выполняют:
- отправку первого запроса;
- отправку идентификатора экземпляра приложения во второй клиент.
RU2014108995/08A 2011-09-09 2012-09-07 Восстановление после сбоя кластерного клиента RU2595755C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/228,732 US8788579B2 (en) 2011-09-09 2011-09-09 Clustered client failover
US13/228,732 2011-09-09
PCT/US2012/054038 WO2013036697A2 (en) 2011-09-09 2012-09-07 Clustered client failover

Publications (2)

Publication Number Publication Date
RU2014108995A RU2014108995A (ru) 2015-09-20
RU2595755C2 true RU2595755C2 (ru) 2016-08-27

Family

ID=47646871

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014108995/08A RU2595755C2 (ru) 2011-09-09 2012-09-07 Восстановление после сбоя кластерного клиента

Country Status (18)

Country Link
US (1) US8788579B2 (ru)
EP (1) EP2754059B1 (ru)
JP (1) JP6210987B2 (ru)
KR (1) KR101941728B1 (ru)
CN (1) CN102932164B (ru)
AU (1) AU2012304549B2 (ru)
BR (1) BR112014005191A2 (ru)
CA (1) CA2847597A1 (ru)
CL (1) CL2014000539A1 (ru)
CO (1) CO6900122A2 (ru)
ES (1) ES2626655T3 (ru)
IL (1) IL231373A (ru)
IN (1) IN2014CN01748A (ru)
MX (1) MX336341B (ru)
RU (1) RU2595755C2 (ru)
SG (1) SG11201400442SA (ru)
WO (1) WO2013036697A2 (ru)
ZA (1) ZA201401381B (ru)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US9274834B2 (en) * 2012-08-25 2016-03-01 Vmware, Inc. Remote service for executing resource allocation analyses for computer network facilities
WO2015033388A1 (ja) * 2013-09-03 2015-03-12 株式会社東芝 情報処理システム、サーバ装置、情報処理方法及びプログラム
US20150100826A1 (en) * 2013-10-03 2015-04-09 Microsoft Corporation Fault domains on modern hardware
US9801002B2 (en) 2013-11-26 2017-10-24 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for identifying application instances within a machine-to-machine network domain
US9665432B2 (en) * 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
US9847918B2 (en) * 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
US9936048B2 (en) * 2014-09-10 2018-04-03 International Business Machines Corporation Client system communication with a member of a cluster of server systems
GB2531341B (en) 2014-10-17 2016-10-12 Ibm Reconnection of a client to a server in a transaction processing server cluster
US10146873B2 (en) 2015-06-29 2018-12-04 Microsoft Technology Licensing, Llc Cloud-native documents integrated with legacy tools
CN107229455B (zh) 2016-03-24 2019-09-17 阿里巴巴集团控股有限公司 一种业务处理方法、装置及系统
US10884863B2 (en) * 2018-07-20 2021-01-05 Red Hat, Inc. Client session reclaim for a distributed storage system
CN110457114B (zh) * 2019-07-24 2020-11-27 杭州数梦工场科技有限公司 应用集群部署方法及装置
CN111405015B (zh) * 2020-03-09 2022-09-30 中国建设银行股份有限公司 一种数据处理方法、装置、设备及存储介质
US11507512B2 (en) * 2020-12-08 2022-11-22 EMC IP Holding Company LLC Fault tolerant cluster data handling
CN116248748A (zh) * 2023-02-27 2023-06-09 西安奕斯伟材料科技股份有限公司 一种通讯连接方法、装置、设备、介质及产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2118051C1 (ru) * 1996-04-30 1998-08-20 Лихачев Александр Геннадьевич Способ доступа к ресурсам "всемирной паутины" через шлюзы-представители
RU2313824C2 (ru) * 2005-09-26 2007-12-27 Михаил Васильевич Беляев Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса
US7526668B2 (en) * 2006-06-08 2009-04-28 Hitachi, Ltd. Failover method of remotely-mirrored clustered file servers
US7664991B1 (en) * 2002-12-17 2010-02-16 Symantec Operating Corporation System and method for distributed file system I/O recovery

Family Cites Families (191)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399504A (en) 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4825354A (en) 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4914570A (en) 1986-09-15 1990-04-03 Counterpoint Computers, Inc. Process distribution and sharing system for multiple processor computer system
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5202971A (en) 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US4791566A (en) 1987-03-27 1988-12-13 Digital Equipment Corporation Terminal device session management protocol
US5008853A (en) 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4891785A (en) 1988-07-08 1990-01-02 Donohoo Theodore J Method for transferring data files between computers in a network response to generalized application program instructions
US5124909A (en) 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
CA1323448C (en) 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
US5109519A (en) 1989-03-28 1992-04-28 Wang Laboratories, Inc. Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer
US5560008A (en) 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US5113519A (en) 1989-05-15 1992-05-12 International Business Machines Corporation Maintenance of file attributes in a distributed data processing system
US5218696A (en) 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5265261A (en) 1989-08-14 1993-11-23 Microsoft Corporation Method and system for network communications using raw mode protocols
US5261051A (en) 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
JP2575543B2 (ja) 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
JPH0619771A (ja) 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> 異種のクライアントによる共用ファイルのファイル管理機構
US5349642A (en) 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5493728A (en) 1993-02-19 1996-02-20 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5491752A (en) 1993-03-18 1996-02-13 Digital Equipment Corporation, Patent Law Group System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens
US5522042A (en) 1994-01-28 1996-05-28 Cabletron Systems, Inc. Distributed chassis agent for distributed network management
US5588117A (en) 1994-05-23 1996-12-24 Hewlett-Packard Company Sender-selective send/receive order processing on a per message basis
US5513314A (en) 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5628005A (en) 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US5764887A (en) 1995-12-11 1998-06-09 International Business Machines Corporation System and method for supporting distributed computing mechanisms in a local area network server environment
US6343313B1 (en) 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
EP0891663A1 (en) 1996-04-01 1999-01-20 Hewlett-Packard Company Transmitting messages over a network
US6434120B1 (en) 1998-08-25 2002-08-13 Cisco Technology, Inc. Autosensing LMI protocols in frame relay networks
US5933602A (en) 1996-07-31 1999-08-03 Novell, Inc. System for selecting command packet and corresponding response packet from communication stream of packets by monitoring packets sent between nodes on network
US6208952B1 (en) 1996-10-24 2001-03-27 Microsoft Corporation Method and system for delayed registration of protocols
US6125122A (en) 1997-01-21 2000-09-26 At&T Wireless Svcs. Inc. Dynamic protocol negotiation system
US5931913A (en) 1997-05-07 1999-08-03 International Business Machines Corporation Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol
US6219799B1 (en) 1997-07-01 2001-04-17 Unisys Corporation Technique to support pseudo-names
US6092199A (en) 1997-07-07 2000-07-18 International Business Machines Corporation Dynamic creation of a user account in a client following authentication from a non-native server domain
US6275953B1 (en) 1997-09-26 2001-08-14 Emc Corporation Recovery from failure of a data processor in a network server
US6247139B1 (en) * 1997-11-11 2001-06-12 Compaq Computer Corp. Filesystem failover in a single system image environment
US6131125A (en) 1997-11-14 2000-10-10 Kawasaki Lsi U.S.A., Inc. Plug-and-play data cable with protocol translation
US6085247A (en) 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6516351B2 (en) 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US7010532B1 (en) 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US6243862B1 (en) 1998-01-23 2001-06-05 Unisys Corporation Methods and apparatus for testing components of a distributed transaction processing system
US6317844B1 (en) * 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6401123B1 (en) 1998-11-24 2002-06-04 International Busines Machines Corporation Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol
US6883000B1 (en) 1999-02-12 2005-04-19 Robert L. Gropper Business card and contact management system
US6453354B1 (en) 1999-03-03 2002-09-17 Emc Corporation File server system using connection-oriented protocol and sharing data sets among data movers
US6324581B1 (en) 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
US20040139004A1 (en) 1999-04-08 2004-07-15 Aceinc Pty Ltd. Secure online commerce transactions
US6938096B1 (en) 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
US7562129B1 (en) 1999-04-15 2009-07-14 Alcatel-Lucent Canada Inc. Subscription management system for data communication network
US6349350B1 (en) 1999-05-04 2002-02-19 International Business Machines Corporation System, method, and program for handling failed connections in an input/output (I/O) system
US6622127B1 (en) 1999-05-11 2003-09-16 Kaiser Foundation Hospitals Order allocation to select from inventory locations stocking few units of inventory
US7318102B1 (en) 1999-05-24 2008-01-08 Hewlett-Packard Development Company, L.P. Reliable datagram
US6430691B1 (en) 1999-06-21 2002-08-06 Copytele, Inc. Stand-alone telecommunications security device
US6490666B1 (en) 1999-08-20 2002-12-03 Microsoft Corporation Buffering data in a hierarchical data storage environment
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
JP2001094613A (ja) 1999-09-21 2001-04-06 Canon Inc 通信制御装置、方法および記録媒体
US6775707B1 (en) 1999-10-15 2004-08-10 Fisher-Rosemount Systems, Inc. Deferred acknowledgment communications and alarm management
US6910082B1 (en) 1999-11-18 2005-06-21 International Business Machines Corporation Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server
US6658476B1 (en) 1999-11-29 2003-12-02 Microsoft Corporation Client-server protocol support list for standard request-response protocols
US7111060B2 (en) 2000-03-14 2006-09-19 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, a secure, cost-effective, web-enabled, integrated virtual office environment remotely accessible through a network-connected web browser
US6883015B1 (en) 2000-03-30 2005-04-19 Cisco Technology, Inc. Apparatus and method for providing server state and attribute management for multiple-threaded voice enabled web applications
US6993587B1 (en) 2000-04-07 2006-01-31 Network Appliance Inc. Method and apparatus for election of group leaders in a distributed network
WO2001077844A1 (fr) * 2000-04-10 2001-10-18 Fujitsu Limited Systeme de traitement d'informations et serveur associe
US7225244B2 (en) 2000-05-20 2007-05-29 Ciena Corporation Common command interface
US6452903B1 (en) 2000-05-31 2002-09-17 Fujitsu Network Communications, Inc. Network switch supporting rate-based and credit-based flow control mechanisms on a link-by-link basis
US6961858B2 (en) 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US7693976B2 (en) 2000-07-11 2010-04-06 Ciena Corporation Granular management of network resources
US6349250B1 (en) 2000-10-26 2002-02-19 Detroit Diesel Corporation Clear historic data from a vehicle data recorder
JP2002183000A (ja) 2000-12-11 2002-06-28 Hitachi Ltd ネットワークを介するデータ参照方法及びそのシステム
US20020073211A1 (en) 2000-12-12 2002-06-13 Raymond Lin System and method for securely communicating between application servers and webservers
KR100750735B1 (ko) 2001-02-03 2007-08-22 삼성전자주식회사 홈네트워크내의 기기 제어장치 및 방법 및 이를 적용한홈네트워크 시스템
US7055036B2 (en) 2001-04-06 2006-05-30 Mcafee, Inc. System and method to verify trusted status of peer in a peer-to-peer network environment
US8051212B2 (en) 2001-04-11 2011-11-01 Mellanox Technologies Ltd. Network interface adapter with shared data send resources
US20030093678A1 (en) 2001-04-23 2003-05-15 Bowe John J. Server-side digital signature system
JP3797236B2 (ja) 2001-04-27 2006-07-12 日本ビクター株式会社 記録再生装置および記録再生方法
JP2002328828A (ja) 2001-04-27 2002-11-15 Fujitsu Ltd ストレージサービス方法、ストレージサービスユーザ及びストレージサービスプロバイダ
US6640226B1 (en) 2001-06-19 2003-10-28 Informatica Corporation Ranking query optimization in analytic applications
US7409420B2 (en) 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US6944785B2 (en) 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
JP2003069610A (ja) 2001-08-22 2003-03-07 Canon Inc 通信装置、その制御方法、通信システム、及び制御プログラム
JP3663627B2 (ja) 2001-10-18 2005-06-22 ソニー株式会社 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
US7136982B2 (en) 2001-11-09 2006-11-14 Danger, Inc. Apparatus and method for allocating memory blocks
US7107341B2 (en) 2001-12-07 2006-09-12 Research In Motion Limited System and method of managing information distribution to mobile stations
US7394764B2 (en) 2001-12-14 2008-07-01 Sasken Communication Technologies Limited Technique for improving transmission control protocol performance in lossy networks
US7313816B2 (en) 2001-12-17 2007-12-25 One Touch Systems, Inc. Method and system for authenticating a user in a web-based environment
US7111035B2 (en) 2001-12-26 2006-09-19 Hewlett-Packard Development Company, L.P. Fault tolerance associations for IP transport protocols
US20030140129A1 (en) 2002-01-24 2003-07-24 Noam Livnat Installing communication protocol in a handheld device
US20030154398A1 (en) * 2002-02-08 2003-08-14 Eaton Eric Thomas System for providing continuity between session clients and method therefor
US6829606B2 (en) 2002-02-14 2004-12-07 Infoglide Software Corporation Similarity search engine for use with relational databases
US7178050B2 (en) 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
US7984157B2 (en) 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7388866B2 (en) 2002-03-07 2008-06-17 Broadcom Corporation System and method for expediting upper layer protocol (ULP) connection negotiations
US7668306B2 (en) 2002-03-08 2010-02-23 Intel Corporation Method and apparatus for connecting packet telephony calls between secure and non-secure networks
JP2003281091A (ja) 2002-03-25 2003-10-03 Fujitsu Ltd 同時受付制御システム
JP4315696B2 (ja) 2002-03-29 2009-08-19 富士通株式会社 ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法
JP4000905B2 (ja) 2002-05-22 2007-10-31 ソニー株式会社 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
US20050228884A1 (en) 2002-06-10 2005-10-13 Caplin Systems Limited Resource management
US7290141B2 (en) 2002-06-27 2007-10-30 Nokia, Inc. Authentication of remotely originating network messages
US20040003210A1 (en) 2002-06-27 2004-01-01 International Business Machines Corporation Method, system, and computer program product to generate test instruction streams while guaranteeing loop termination
WO2004003765A1 (ja) * 2002-07-01 2004-01-08 Kabushiki Kaisha Toshiba シームレスシステム及び記録媒体並びにコンピュータシステムの処理継続方法
CA2393502A1 (en) 2002-07-15 2004-01-15 Mark J. Frazer System and method for reliable transport in a computer network
US20040019660A1 (en) * 2002-07-24 2004-01-29 Sandhya E. Lock holding multi-threaded processes for distibuted data systems
US6829473B2 (en) 2002-07-25 2004-12-07 Utstarcom, Inc. Roaming and hand-off support for prepaid billing for wireless data networks
ATE552555T1 (de) 2002-07-29 2012-04-15 Open Invention Network Llc Einheitliche nachrichtenanordnung für semiaktive und passive duplikation
US7386855B2 (en) * 2002-08-12 2008-06-10 Ntt Docomo, Inc. Application mobility service
US20040032876A1 (en) 2002-08-19 2004-02-19 Ajay Garg Selection of transmission channels
JP3846384B2 (ja) 2002-08-28 2006-11-15 ブラザー工業株式会社 端末装置、接続制御方法、接続制御用プログラム及び記録媒体
US6957367B2 (en) 2002-08-30 2005-10-18 Hewlett-Packard Development Company L.P. System and method for controlling activity of temporary files in a computer system
US7109430B2 (en) 2002-11-05 2006-09-19 Emrise Corporation Low profile rotary switch with detent in the bushing
US7386889B2 (en) 2002-11-18 2008-06-10 Trusted Network Technologies, Inc. System and method for intrusion prevention in a communications network
US7421502B2 (en) 2002-12-06 2008-09-02 International Business Machines Corporation Method and system for storage-aware flow resource management
US7475142B2 (en) * 2002-12-06 2009-01-06 Cisco Technology, Inc. CIFS for scalable NAS architecture
US20040153700A1 (en) * 2003-01-02 2004-08-05 Nixon Mark J. Redundant application stations for process control systems
US7290051B2 (en) 2003-01-09 2007-10-30 Sun Microsystems, Inc. Method and apparatus for hardware implementation independent verification of network layers
JP3999135B2 (ja) 2003-01-24 2007-10-31 株式会社エヌ・ティ・ティ・ドコモ 通信システム、データ送信方法、通信装置、プログラムおよび記録媒体
US7526658B1 (en) * 2003-01-24 2009-04-28 Nortel Networks Limited Scalable, distributed method and apparatus for transforming packets to enable secure communication between two stations
US7151939B2 (en) 2003-02-18 2006-12-19 Qualcomm Incorporated Method, apparatus, and machine-readable medium for providing indication of location service availability and the quality of available location services
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7490152B2 (en) 2003-04-11 2009-02-10 Alcatel-Lucent Usa Inc. Version caching mechanism
US7339885B2 (en) 2003-06-05 2008-03-04 International Business Machines Corporation Method and apparatus for customizable surveillance of network interfaces
US7363629B2 (en) 2003-06-19 2008-04-22 International Business Machines Corporation Method, system, and program for remote resource management
US7698115B2 (en) 2003-06-30 2010-04-13 Microsoft Corporation System and method for dynamically allocating resources in a client/server environment
US7526640B2 (en) 2003-06-30 2009-04-28 Microsoft Corporation System and method for automatic negotiation of a security protocol
US20050015511A1 (en) 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
JP4229774B2 (ja) * 2003-07-11 2009-02-25 日本電信電話株式会社 セッション制御プログラムと通信端末装置
US7296264B2 (en) 2003-07-18 2007-11-13 Bea Systems, Inc. System and method for performing code completion in an integrated development environment
WO2005010757A1 (ja) 2003-07-24 2005-02-03 Matsushita Electric Industrial Co., Ltd. ファイル管理方法及び情報処理装置
US8028078B2 (en) 2003-08-07 2011-09-27 Teamon Systems, Inc. Communications system including protocol interface device providing enhanced operating protocol selection features and related methods
CN100547583C (zh) 2003-08-14 2009-10-07 甲骨文国际公司 数据库的自动和动态提供的方法
US7870268B2 (en) 2003-09-15 2011-01-11 Intel Corporation Method, system, and program for managing data transmission through a network
US20050091226A1 (en) 2003-10-23 2005-04-28 Yun Lin Persistent caching directory level support
US7539722B2 (en) * 2003-10-24 2009-05-26 Microsoft Corporation Method and system for accessing a file
US7673066B2 (en) 2003-11-07 2010-03-02 Sony Corporation File transfer protocol for mobile computer
JP4836432B2 (ja) 2003-11-17 2011-12-14 株式会社リコー 文書管理システム、文書管理装置、文書管理方法、文書管理プログラム及び記録媒体
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US20050111030A1 (en) 2003-11-25 2005-05-26 Berkema Alan C. Hard copy imaging systems, print server systems, and print server connectivity methods
FI20031779A0 (fi) 2003-12-05 2003-12-05 Nokia Corp Menetelmä, järjestelmä ja lähetettävän puolen yhteyskäytäntöyksikkö datapakettien lähettämiseksi kuittaamattoman toimintamuodon palveluissa
US7177941B2 (en) 2003-12-11 2007-02-13 International Business Machines Corporation Increasing TCP re-transmission process speed
US7383483B2 (en) 2003-12-11 2008-06-03 International Business Machines Corporation Data transfer error checking
US7243284B2 (en) 2003-12-11 2007-07-10 International Business Machines Corporation Limiting number of retransmission attempts for data transfer via network interface controller
US20050177635A1 (en) 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
US7698361B2 (en) 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7383463B2 (en) 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
DE602005009336D1 (de) 2004-03-17 2008-10-09 Koninkl Philips Electronics Nv Verfahren und einrichtung zum scannen eines scheibenförmigen informationsspeichermediums
US7444536B1 (en) 2004-04-16 2008-10-28 Sun Microsystems, Inc. RMI-IIOP request failover mechanism
US20050246803A1 (en) 2004-04-30 2005-11-03 Spencer Andrew M Peripheral device for processing data from a computing device
US7627627B2 (en) 2004-04-30 2009-12-01 Hewlett-Packard Development Company, L.P. Controlling command message flow in a network
JP2005321953A (ja) 2004-05-07 2005-11-17 Hitachi Ltd ストレージ制御装置、その動作プログラム、及びアクセス制御方法
JP2005322016A (ja) 2004-05-10 2005-11-17 Yokogawa Electric Corp サーバ装置および情報配信方法
US7380080B2 (en) 2004-05-17 2008-05-27 Hewlett-Packard Development Company, L.P. Calculating unneeded data storage credits for a data transmission to a pair of storage devices
US7330910B2 (en) 2004-05-20 2008-02-12 International Business Machines Corporation Fencing of resources allocated to non-cooperative client computers
US7434087B1 (en) 2004-05-21 2008-10-07 Sun Microsystems, Inc. Graceful failover using augmented stubs
US7080173B2 (en) 2004-05-27 2006-07-18 Microsoft Corporation Reducing information reception delays
US20060059118A1 (en) * 2004-08-10 2006-03-16 Byrd Stephen A Apparatus, system, and method for associating resources using a behavior based algorithm
US8023417B2 (en) 2004-08-30 2011-09-20 International Business Machines Corporation Failover mechanisms in RDMA operations
US7418712B2 (en) 2004-08-31 2008-08-26 Microsoft Corporation Method and system to support multiple-protocol processing within worker processes
US7418709B2 (en) 2004-08-31 2008-08-26 Microsoft Corporation URL namespace to support multiple-protocol processing within worker processes
US20060067244A1 (en) 2004-09-30 2006-03-30 Microsoft Corporation Registration identifier reuse
US7451347B2 (en) 2004-10-08 2008-11-11 Microsoft Corporation Failover scopes for nodes of a computer cluster
US8156049B2 (en) 2004-11-04 2012-04-10 International Business Machines Corporation Universal DRM support for devices
US7457722B1 (en) 2004-11-17 2008-11-25 Symantec Operating Corporation Correlation of application instance life cycle events in performance monitoring
US8522293B2 (en) 2004-12-15 2013-08-27 Time Warner Cable Enterprises Llc Method and apparatus for high bandwidth data transmission in content-based networks
US8515490B2 (en) * 2004-12-30 2013-08-20 Alcatel Lucent Method and apparatus for providing same session switchover between end-user terminals
CN101116306A (zh) 2005-02-08 2008-01-30 艾利森电话股份有限公司 在分组交换网络上的按需多频道流会话
US7743245B2 (en) 2005-03-10 2010-06-22 Intel Corporation Security protocols on incompatible transports
US7453879B1 (en) 2005-04-04 2008-11-18 Sun Microsystems, Inc. Method and apparatus for determining the landing zone of a TCP packet
US20060281525A1 (en) 2005-05-17 2006-12-14 Milo Borissov Slot type game with player input opportunity
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
EP1727055B1 (en) 2005-05-25 2016-09-07 Microsoft Technology Licensing, LLC Data communication coordination with sequence numbers
EP1727056B1 (en) 2005-05-25 2008-11-05 Microsoft Corporation Data communication protocol
US8108548B2 (en) 2005-12-22 2012-01-31 Microsoft Corporation Methodology and system for file replication based on a peergroup
US8051179B2 (en) 2006-02-01 2011-11-01 Oracle America, Inc. Distributed session failover
US8024439B2 (en) 2006-03-17 2011-09-20 Microsoft Corporation Server session management application program interface and schema
WO2008130983A1 (en) 2007-04-16 2008-10-30 Attune Systems, Inc. File aggregation in a switched file system
US9071623B2 (en) 2007-09-28 2015-06-30 Xcerion Aktiebolag Real-time data sharing
EP2066101B1 (en) 2007-11-28 2012-10-17 Alcatel Lucent System and method for an improved high availability component implementation
US8458298B2 (en) 2008-03-03 2013-06-04 Microsoft Corporation Failover in an internet location coordinate enhanced domain name system
JP4549408B2 (ja) 2008-06-24 2010-09-22 富士通株式会社 ファイルサーバのクラスタノード制御プログラム,クラスタノード制御方法及びクラスタノード制御装置
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8700760B2 (en) 2008-08-18 2014-04-15 Ge Fanuc Intelligent Platforms, Inc. Method and systems for redundant server automatic failover
US8275815B2 (en) 2008-08-25 2012-09-25 International Business Machines Corporation Transactional processing for clustered file systems
US8185566B2 (en) 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
US9749387B2 (en) 2009-08-13 2017-08-29 Sap Se Transparently stateful execution of stateless applications
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2118051C1 (ru) * 1996-04-30 1998-08-20 Лихачев Александр Геннадьевич Способ доступа к ресурсам "всемирной паутины" через шлюзы-представители
US7664991B1 (en) * 2002-12-17 2010-02-16 Symantec Operating Corporation System and method for distributed file system I/O recovery
RU2313824C2 (ru) * 2005-09-26 2007-12-27 Михаил Васильевич Беляев Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса
US7526668B2 (en) * 2006-06-08 2009-04-28 Hitachi, Ltd. Failover method of remotely-mirrored clustered file servers

Also Published As

Publication number Publication date
SG11201400442SA (en) 2014-04-28
EP2754059A2 (en) 2014-07-16
WO2013036697A2 (en) 2013-03-14
BR112014005191A2 (pt) 2017-03-21
KR20140064850A (ko) 2014-05-28
IL231373A0 (en) 2014-04-30
CN102932164A (zh) 2013-02-13
KR101941728B1 (ko) 2019-04-12
AU2012304549B2 (en) 2017-04-06
RU2014108995A (ru) 2015-09-20
NZ622122A (en) 2015-01-30
IL231373A (en) 2017-03-30
MX336341B (es) 2016-01-14
MX2014002783A (es) 2014-06-05
CL2014000539A1 (es) 2014-10-03
CN102932164B (zh) 2016-12-21
ZA201401381B (en) 2015-07-29
AU2012304549A1 (en) 2014-03-20
EP2754059A4 (en) 2015-03-18
JP2014529141A (ja) 2014-10-30
ES2626655T3 (es) 2017-07-25
EP2754059B1 (en) 2017-03-15
US8788579B2 (en) 2014-07-22
CO6900122A2 (es) 2014-03-20
JP6210987B2 (ja) 2017-10-11
CA2847597A1 (en) 2013-03-14
WO2013036697A3 (en) 2013-05-02
IN2014CN01748A (ru) 2015-05-29
US20130066941A1 (en) 2013-03-14

Similar Documents

Publication Publication Date Title
RU2595755C2 (ru) Восстановление после сбоя кластерного клиента
US11687555B2 (en) Conditional master election in distributed databases
US10412066B1 (en) Hierarchical input/output fencing in clustered environments
US9313274B2 (en) Isolating clients of distributed storage systems
US8775743B2 (en) Resolving ownership deadlock in a distributed shared memory
EP3180694B1 (en) Distributed workload reassignment following communication failure
US11349937B2 (en) Passive management of network connections
CN108023939B (zh) 分布式系统中锁服务器故障的处理方法及其系统
US11449241B2 (en) Customizable lock management for distributed resources
CN106462472B (zh) 使用多个租赁服务器获取资源租赁
US11563800B1 (en) Distributed semantic network for concurrent access to interconnected objects
US10200304B1 (en) Stateless witness for multiple sites
US11086846B2 (en) Group membership and leader election coordination for distributed applications using a consistent database
US20230401337A1 (en) Two person rule enforcement for backup and recovery systems
US10776036B2 (en) System and method for efficient restore
NZ622122B2 (en) Clustered client failover