RU2595755C2 - Восстановление после сбоя кластерного клиента - Google Patents
Восстановление после сбоя кластерного клиента Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols 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, при этом система дополнительно содержит:
- первый клиент, содержащий:
- по меньшей мере, один процессор, выполненный с возможностью осуществлять машиноисполняемые инструкции;
- по меньшей мере, один машиночитаемый носитель хранения данных, сохраняющий машиноисполняемые инструкции, которые при выполнении посредством, по меньшей мере, одного процессора выполняют:
- отправку первого запроса;
- отправку идентификатора экземпляра приложения во второй клиент.
- первый клиент, содержащий:
- по меньшей мере, один процессор, выполненный с возможностью осуществлять машиноисполняемые инструкции;
- по меньшей мере, один машиночитаемый носитель хранения данных, сохраняющий машиноисполняемые инструкции, которые при выполнении посредством, по меньшей мере, одного процессора выполняют:
- отправку первого запроса;
- отправку идентификатора экземпляра приложения во второй клиент.
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)
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)
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)
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 |
-
2011
- 2011-09-09 US US13/228,732 patent/US8788579B2/en active Active
-
2012
- 2012-09-07 WO PCT/US2012/054038 patent/WO2013036697A2/en active Application Filing
- 2012-09-07 JP JP2014529876A patent/JP6210987B2/ja active Active
- 2012-09-07 BR BR112014005191A patent/BR112014005191A2/pt not_active Application Discontinuation
- 2012-09-07 MX MX2014002783A patent/MX336341B/es unknown
- 2012-09-07 EP EP12829430.3A patent/EP2754059B1/en active Active
- 2012-09-07 KR KR1020147006256A patent/KR101941728B1/ko active IP Right Grant
- 2012-09-07 SG SG11201400442SA patent/SG11201400442SA/en unknown
- 2012-09-07 AU AU2012304549A patent/AU2012304549B2/en active Active
- 2012-09-07 IN IN1748CHN2014 patent/IN2014CN01748A/en unknown
- 2012-09-07 CA CA2847597A patent/CA2847597A1/en not_active Abandoned
- 2012-09-07 ES ES12829430.3T patent/ES2626655T3/es active Active
- 2012-09-07 CN CN201210330725.8A patent/CN102932164B/zh active Active
- 2012-09-07 RU RU2014108995/08A patent/RU2595755C2/ru active
-
2014
- 2014-02-24 ZA ZA2014/01381A patent/ZA201401381B/en unknown
- 2014-03-06 CL CL2014000539A patent/CL2014000539A1/es unknown
- 2014-03-06 IL IL231373A patent/IL231373A/en active IP Right Grant
- 2014-03-07 CO CO14049366A patent/CO6900122A2/es unknown
Patent Citations (4)
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 |