ES2626655T3 - Conmutación por error de clientes agrupados - Google Patents

Conmutación por error de clientes agrupados Download PDF

Info

Publication number
ES2626655T3
ES2626655T3 ES12829430.3T ES12829430T ES2626655T3 ES 2626655 T3 ES2626655 T3 ES 2626655T3 ES 12829430 T ES12829430 T ES 12829430T ES 2626655 T3 ES2626655 T3 ES 2626655T3
Authority
ES
Spain
Prior art keywords
client
resource
application
request
application instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12829430.3T
Other languages
English (en)
Inventor
David M. KRUSE
Diaa Fathalla
James T. Pinkerton
Mathew George
Prashanth Prahalad
Thomas E. JOLLY
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2626655T3 publication Critical patent/ES2626655T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Landscapes

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

Abstract

Un procedimiento para proporcionar acceso continuo a un recurso, comprendiendo el procedimiento: recibir en un grupo (106) de servidores, que incluye al menos un servidor (106A, 106B, 106C; 208, 216), una primera solicitud (222) para acceder a un recurso (226) desde una aplicación (203) cliente, ejecutándose la aplicación cliente en un primer cliente (102A; 202), en el que la primera solicitud se recibe desde el primer cliente en un grupo (106; 201) de clientes; asociar en el grupo de servidores un primer identificador de instancia de aplicación con el recurso; permitir por el grupo de servidores el primer acceso solicitado al recurso; recibir en el grupo de servidores una segunda solicitud (224) para el recurso desde la aplicación cliente después de recuperarse de un fallo, en el que la segunda solicitud se recibe desde un segundo cliente (102B; 204) diferente del primer cliente; recibir en el grupo de servidores un segundo identificador de instancia de aplicación asociado con la segunda solicitud; determinar si el primer identificador de instancia de aplicación y el segundo identificador de instancia de aplicación son los mismos; y cuando los identificadores de instancia de aplicación primero y segundo son los mismos, realizar por el grupo de servidores las etapas que comprenden: invalidar la primera solicitud; y conceder la segunda solicitud de acceso al recurso.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Conmutacion por error de clientes agrupados Antecedentes
Los entornos agrupados, por ejemplo, los entornos donde se distribuye la carga de trabajo a traves de multiples maquinas, se usan habitualmente para proporcionar conmutacion por error y alta disponibilidad de informacion a los clientes. Los entornos agrupados permiten a los clientes acceder a recursos a traves del uno o mas nodos que son una parte del entorno. Un entorno agrupado puede actuar como un cliente, un servidor, o ambos. En un servidor de grupo de clientes, una aplicacion puede residir en cualquiera de los nodos que forman el grupo. La aplicacion puede emitir solicitudes de recursos que se almacenan localmente en el grupo de clientes o se almacenan a distancia. Si se produce un error en el nodo, el cliente realiza una conmutacion por error, o migra, a un nodo diferente del grupo. Sin embargo, cuando el cliente solicita de nuevo el acceso a un recurso con el que estaba trabajando en el momento del error, el recurso puede estar acotado o bloqueado por el servidor para el nodo cliente anterior en el que residfa la aplicacion.
Se han hecho realizaciones con respecto a estas y otras consideraciones. Ademas, aunque se han discutido problemas relativamente espedficos, debe entenderse que las realizaciones no deben limitarse a resolver los problemas espedficos identificados en los antecedentes.
El documento EP 1 643 406 A2 se refiere a la reutilizacion del identificador de registro. Se proporciona una funcion para generar y usar un unico identificador como una clave para identificar una unica instancia de agente de usuario entre los multiples agentes de usuario del mismo usuario. La instalacion genera un identificador para una primera instancia de agente de usuario, que es una instancia de un usuario en una instancia de aplicacion. La funcion usa el identificador para un registro de la primera instancia de agente de usuario con un servidor logico y asocia el identificador con la primera instancia de agente de usuario y el par de registro de servidor logico. A continuacion, la funcion usa el identificador para un registro posterior de la primera instancia de agente de usuario con el servidor logico.
El documento US 7 664 991 B1 se refiere a un sistema y un procedimiento para la recuperacion de E/S de sistemas de archivos distribuidos. Las realizaciones pueden detectar una perdida de acceso a un servidor en la red de almacenamiento y recuperar las solicitudes de E/S de aplicacion en tiempo real una vez que se restablece el acceso al servidor. Las realizaciones pueden detectar fallos en el servidor y/o en la red y almacenar solicitudes de E/S fallidas y nuevas. Puede detectarse la recuperacion del fallo (por ejemplo, reconexion de la red, reinicio del nodo servidor o conmutacion por error, si se trata de un entorno agrupado) y, despues de que se detecte la recuperacion, puede enviarse al servidor cualquier solicitud de E/S fallida y nueva almacenada. En una realizacion, para detectar la recuperacion del fallo, una solicitud de E/S fallida puede volver a emitirse repetidamente hasta que la solicitud de E/S tenga exito. Las realizaciones pueden implementarse en una diversidad de entornos de almacenamiento, incluyendo entornos donde los clientes emiten E/S directas a traves de una red de almacenamiento para almacenar y controlar las E/S a traves de una red a un servidor.
Sumario
El presente sumario se proporciona para presentar una seleccion de conceptos en una forma simplificada que se describen adicionalmente a continuacion en la seccion Descripcion Detallada. El presente sumario no pretende identificar las caractensticas clave o las caractensticas esenciales del objeto reivindicado, ni pretende usarse como ayuda para determinar el ambito del objeto reivindicado.
En el presente documento se desvelan sistemas y procedimientos que proporcionan una aplicacion o un procedimiento con acceso continuo a un recurso despues de que la aplicacion migre a un nuevo nodo en un entorno de cliente agrupado. Una aplicacion o un procedimiento residente en un nodo en un grupo de clientes envfa una solicitud a un servidor para acceder a un recurso. En las realizaciones, se usa un unico identificador de instancia de aplicacion para identificar una aplicacion que solicita un recurso. El unico identificador de aplicacion puede estar provisto de la solicitud. Cuando el cliente accede a un recurso, el identificador de instancia de aplicacion se asocia con el recurso solicitado.
Antes de que la aplicacion o el procedimiento complete sus operaciones en el recurso, el nodo en el que reside el cliente en el entorno agrupado puede experimentar un error que hace que falle o se pierda el acceso de otro modo al recurso antes de que la aplicacion libere correctamente el recurso. En tales circunstancias, el recurso puede permanecer en un estado acotado o bloqueado en el servidor por la solicitud del cliente anterior. Tras fallar en un nodo diferente en el grupo de clientes, la aplicacion en el nuevo nodo cliente puede restablecer una conexion con el servidor que gestiona el recurso y realizar una segunda solicitud del recurso al que la aplicacion tema acceso anteriormente en el momento del error. La segunda solicitud puede incluir el identificador de instancia de aplicacion que se envio con la primera solicitud. Aunque la segunda solicitud del recurso puede recibirse de un nodo diferente en el entorno agrupado, el identificador de instancia de aplicacion permite que el servidor que gestiona la solicitud determine que la segunda solicitud pertenece a la misma aplicacion o procedimiento que habfa bloqueado previamente el recurso. Si lo hace, el servidor puede invalidar el recurso y conceder la segunda solicitud del cliente
5
10
15
20
25
30
35
40
45
50
55
para acceder al recurso mientras garantiza que no se produzca una situacion de conflicto.
Las realizaciones pueden implementarse como un procedimiento informatico, un sistema informatico o como un artfculo de fabricacion tal como un producto de programa informatico o un medio legible por ordenador. El producto de programa informatico puede ser un medio de almacenamiento informatico legible por un sistema informatico y que codifica un programa informatico de instrucciones para ejecutar un procedimiento informatico. El producto de programa informatico tambien puede ser una senal propagada en un soporte legible por un sistema informatico y que codifica un programa informatico de instrucciones para ejecutar un procedimiento informatico.
Breve descripcion de los dibujos
Se describen realizaciones no limitantes y no exhaustivas con referencia a las siguientes figuras.
La figura 1 ilustra un sistema que puede usarse para implementar las realizaciones descritas en el presente documento.
La figura 2 es un diagrama de bloques que ilustra un entorno de software que puede usarse para implementar las realizaciones desveladas en el presente documento.
La figura 3 es una realizacion de un procedimiento que un cliente puede realizar para obtener acceso continuo a un recurso en un entorno agrupado.
La figura 4 es una realizacion de un procedimiento realizado por un nodo en un entorno agrupado para proporcionar acceso continuo a un recurso.
La figura 5 ilustra un diagrama de bloques de un entorno informatico adecuado para implementar las realizaciones.
Descripcion detallada
A continuacion, se describen mas detalladamente diversas realizaciones con referencia a los dibujos adjuntos, que forman parte de la misma, y que muestran realizaciones espedficas a modo de ejemplo. Sin embargo, las realizaciones pueden implementarse en muchas formas diferentes y no deben interpretarse como limitadas a las realizaciones expuestas en el presente documento; por el contrario, estas realizaciones se proporcionan de manera que la presente divulgacion sera minuciosa y completa y transmitira con todo detalle el ambito de las realizaciones a los expertos en la materia. Las realizaciones pueden ponerse en practica como procedimientos, sistemas o dispositivos. En consecuencia, las realizaciones pueden adoptar la forma de una implementacion de hardware, una implementacion completamente de software o una implementacion que combina aspectos de software y hardware. Por lo tanto, la siguiente descripcion detallada no debe tomarse en un sentido limitante.
Las realizaciones de la presente divulgacion estan relacionadas con la provision de mecanismos de conmutacion por error de cliente agrupado que permiten a un solicitante volver a obtener acceso a un recurso despues de un suceso de conmutacion por error. En las realizaciones, un solicitante puede ser un procedimiento, una aplicacion o uno o mas procedimientos secundarios de una aplicacion. Un recurso puede ser un archivo, un objeto, datos o cualquier otro tipo de recurso en un entorno informatico. En las realizaciones, un recurso puede residir en un servidor independiente o puede residir en un entorno agrupado. En las realizaciones desveladas en el presente documento, un entorno agrupado puede incluir uno o mas nodos (por ejemplo, dispositivos de cliente y/o de servidor).
En una realizacion a modo de ejemplo, una aplicacion que reside en un nodo en un entorno agrupado puede solicitar acceso a un recurso espedfico. En las realizaciones, el recurso puede almacenarse localmente (por ejemplo, en el nodo cliente), en un dispositivo remoto (por ejemplo, un servidor remoto o un nodo diferente en el entorno agrupado de cliente), o en un entorno agrupado (por ejemplo, un entorno que contiene multiples nodos) que es diferente del entorno agrupado de cliente. Por ejemplo, en las realizaciones el entorno agrupado puede ser un grupo de clientes o de servidores; sin embargo, los expertos en la materia apreciaran que los sistemas y los procedimientos desvelados en el presente documento pueden emplearse en cualquier otro tipo de entorno, tal como, pero sin limitarse a, una red virtual.
En dichos entornos, los recursos pueden compartirse entre clientes y aplicaciones. Cuando una aplicacion accede a un recurso, el recurso puede estar acotado o bloqueado, prohibiendo de este modo que otras aplicaciones accedan al recurso hasta que la aplicacion de acceso libere el recurso. El acotamiento o bloqueo del recurso puede emplearse para proteger contra un conflicto, es decir, proteger contra la modificacion del recurso por otra aplicacion antes de que la aplicacion de acceso haya realizado sus operaciones en el recurso. Sin embargo, si falla el nodo en un entorno de cliente agrupado, la aplicacion que accede al recurso puede no liberar correctamente el recurso de un estado acotado o bloqueado. Por ejemplo, el nodo cliente que accede al recurso en nombre de la aplicacion puede perder una conexion de red, puede colgarse, o puede perder de otro modo el acceso al recurso antes de que la aplicacion complete sus operaciones y libere adecuadamente el recurso. Por lo tanto, el recurso puede permanecer en un estado en el que no esta disponible para otros clientes o aplicaciones. Pueden emplearse mecanismos que liberen automaticamente un recurso de un estado acotado o bloqueado, evitando de este modo que el recurso se bloquee permanentemente. Sin embargo, estos mecanismos a menudo esperan un penodo de tiempo antes de liberar un recurso acotado o bloqueado.
5
10
15
20
25
30
35
40
45
50
55
60
En algunos casos, cuando la aplicacion realiza una conmutacion por error para migrar desde el nodo cliente fallido a un nodo cliente diferente en el grupo de clientes, la aplicacion puede intentar restablecer su conexion anterior con el servidor y reanudar su o sus operaciones en el recurso a traves del nodo cliente diferente. Sin embargo, debido a que el recurso no se ha liberado correctamente por el nodo cliente fallido, que ha accedido previamente al recurso en nombre de la aplicacion, debido al error, la aplicacion que tema acceso previo al recurso puede no ser capaz de reanudar su acceso al recurso hasta que el servidor libere el recurso de su estado acotado o bloqueado. Sin embargo, debido a que ahora un nodo diferente esta intentando acceder al recurso en nombre de la aplicacion, el servidor puede no ser capaz de identificar la aplicacion como la misma aplicacion que establecio previamente el bloqueo en el recurso. Sin embargo, debido a que la misma aplicacion esta intentando acceder al recurso, no existe una situacion de conflicto. En estas situaciones, esperar que el servidor libere el bloqueo anterior en el recurso puede provocar un retraso inaceptable para la aplicacion.
Tal como se ha descrito, debido a que la aplicacion esta operando en un entorno de cliente agrupado, cuando la aplicacion solicita acceder al recurso una segunda vez, la solicitud de acceso al recurso puede realizarse desde una localizacion diferente, tal como un nodo diferente en el entorno de cliente agrupado. Por lo tanto, la segunda solicitud puede proceder de una localizacion o direccion IP diferente. Debido a que la solicitud puede realizarse desde una localizacion diferente, un servidor puede tener dificultades para garantizar que el cliente o la aplicacion que intenta volver a acceder al recurso sea, en realidad, el mismo cliente que accedio previamente al recurso. Los sistemas y procedimientos desvelados en el presente documento proporcionan mecanismos para identificar situaciones donde la misma aplicacion esta intentando acceder a un recurso, evitando de este modo dicho retraso y proporcionando un acceso continuo de la aplicacion al recurso.
La figura 1 ilustra un sistema 100 que puede usarse para implementar algunas de las realizaciones desveladas en el presente documento. El sistema 100 incluye un grupo 102 de clientes y un grupo 106 de servidores. El grupo de clientes incluye multiples nodos, tales como los clientes 102A y 102B. Los clientes 102A y 102B pueden ser un dispositivo o aplicacion que reside en el grupo 102 de clientes. El grupo 102 de clientes puede comunicarse con el grupo 106 de servidores a traves de la red 108. En las realizaciones, la red puede ser Internet, una WAN, una LAN o cualquier otro tipo de red conocida en la tecnica. El grupo 106 de servidores almacena los recursos a los que acceden las aplicaciones del grupo 102 de clientes (por ejemplo, las aplicaciones que residen en el cliente 102A o el cliente 102B). En las realizaciones, un cliente (por ejemplo, el cliente 102A) puede establecer una sesion con el grupo 106 para acceder a los recursos del grupo 106 en nombre de una aplicacion que reside en el cliente. Aunque en la figura 1, el grupo 102 de clientes solo incluye dos clientes (por ejemplo, el cliente 102A y el cliente 102B), los expertos en la materia apreciaran que puede incluirse cualquier numero de clientes en el grupo 102 de clientes.
Como se muestra en la figura 1, el grupo 106 de servidores incluye los servidores 106A, 106B y 106C, que proporcionan una alta disponibilidad y redundancia para la informacion almacenada en el grupo 106. En las realizaciones, el grupo 106 puede tener un sistema de archivos, una base de datos u otra informacion a la que acceden los clientes 102 y 104. Aunque en la figura 1 se muestran tres servidores, en otras realizaciones el grupo 106 puede incluir mas de tres servidores, o menos de tres servidores. Ademas, aunque las realizaciones descritas en el presente documento se refieren a un cliente que se comunica con un servidor que es parte de un grupo de servidores, los expertos en la materia apreciaran que las realizaciones desveladas en el presente documento tambien pueden realizarse usando un servidor independiente.
En las realizaciones, el grupo 102 de clientes proporciona mecanismos de conmutacion por error que permiten a un cliente migrar desde un primer nodo cliente a un segundo nodo cliente en caso de que se produzca un error o un fallo en el primer nodo cliente. Los expertos en la materia apreciaran que puede emplearse cualquier tipo de mecanismo de conmutacion por error con los sistemas y procedimientos desvelados en el presente documento. Los procedimientos y sistemas desvelados en el presente documento pueden emplearse para evitar un retraso indebido cuando una aplicacion intenta volver a obtener el acceso a un recurso que migra de un cliente a otro (por ejemplo, del cliente 102a al cliente 102B) en el caso de una conmutacion por error. En las realizaciones, un identificador de instancia de aplicacion que identifica la aplicacion que accede al recurso puede asociarse con el recurso. El identificador de instancia de aplicacion puede ser un identificador unico global (GUID) que esta asociado con una aplicacion, una accion realizada por una aplicacion o un procedimiento secundario de una aplicacion. Por ejemplo, en una realizacion, una aplicacion puede asociarse con un identificador de instancia de aplicacion que es un GUID. En otra realizacion, un identificador de instancia de aplicacion puede asociarse con una operacion o accion espedfica realizada por una aplicacion. Por ejemplo, si la aplicacion emite dos solicitudes abiertas diferentes para dos archivos diferentes, cada solicitud abierta puede tener su propio identificador de instancia de aplicacion. En otra realizacion mas, un identificador de instancia de aplicacion puede asociarse con uno o mas procedimientos secundarios de la aplicacion. Como sera evidente para los expertos en la materia a partir de las realizaciones descritas en el presente documento, la asociacion del identificador de instancia de aplicacion de una aplicacion con sus uno o mas procedimientos secundarios permitira que los procedimientos secundarios accedan al recurso si el recurso se coloca en un estado bloqueado o acotado que pertenece a la aplicacion. En las realizaciones, el identificador de instancia de aplicacion puede enviarse por el cliente en el momento de, o despues de, enviar una solicitud para un recurso.
De acuerdo con otra realizacion, ademas de almacenar la informacion a la que acceden los clientes que forman parte del grupo 102 de clientes, el grupo 106 de servidores tambien proporciona un mecanismo de conmutacion por
5
10
15
20
25
30
35
40
45
50
55
60
error que permite el acceso continuo de un recurso en caso de fallo de un nodo servidor. De nuevo, los expertos en la materia apreciaran que puede emplearse cualquier tipo de mecanismo de conmutacion por error con los sistemas y procedimientos desvelados en el presente documento.
En las realizaciones, cuando un cliente solicita acceso a un recurso en nombre de una aplicacion, el identificador de instancia de aplicacion de la aplicacion se envfa con la solicitud. El servidor que recibe la solicitud puede asociar el identificador de instancia de aplicacion con el recurso. Por ejemplo, el grupo de servidores puede almacenar el identificador de instancia de aplicacion en una tabla o cache localizada en uno o mas nodos (por ejemplo, servidores tales como los servidores 106a, 106B y/o 106C) localizados en el grupo 106 de servidores de tal manera que el identificador de instancia de aplicacion se asocia con el recurso. Antes de que el cliente se haga con el recurso, el cliente puede experimentar un error que lo obligara a perder la conexion con el recurso. Por ejemplo, el cliente que aloja la aplicacion o que realiza solicitudes u operaciones en nombre de la aplicacion puede perder su conexion de red al grupo de servidores, el cliente puede colgarse o puede producirse cualquier otro tipo de error que interfiera con el uso de las aplicaciones del recurso. Tras experimentar el error, la aplicacion puede conmutar por error a un nuevo nodo cliente en el grupo 102 de clientes. El nuevo nodo cliente puede volver a conectarse al grupo de servidores y enviar una segunda solicitud para acceder al recurso en nombre de la aplicacion. En las realizaciones, el cliente puede volver a conectar con el mismo nodo en el grupo 106 de servidores o un nodo diferente. La segunda solicitud para acceder al recurso puede incluir el identificador de instancia de aplicacion de la aplicacion. Tras recibir la segunda solicitud, el servidor (por ejemplo, un servidor 106A del grupo 106 de servidores) compara el identificador de instancia de aplicacion de la segunda solicitud con el identificador de instancia de aplicacion asociado con el recurso. Si coinciden los dos identificadores de instancia de aplicacion, el grupo de servidores invalida el recurso. En las realizaciones, la invalidacion del recurso puede comprender cerrar un archivo, eliminar un bloqueo del recurso o realizar de otro modo cualquier accion que libere el recurso para su uso. A continuacion, el nodo servidor puede conceder la segunda solicitud de la aplicacion para acceder al recurso. Si el identificador de instancia de aplicacion del segundo nodo no coincide con el identificador de aplicacion asociado con el recurso, el servidor no permitira el acceso al recurso hasta que se libere el recurso.
Para ilustrar una realizacion, un solicitante (por ejemplo, un procedimiento, una aplicacion, etc.) en el cliente 102A en el grupo 102 de clientes puede solicitar que el cliente 102A establezca una sesion con un servidor del grupo 106 de servidores. Por ejemplo, el cliente 102A puede establecer una sesion con el servidor 106A para acceder a una base de datos almacenada que esta en el servidor 106A o que forma parte del grupo 106 de servidores, en el que el servidor 106A puede acceder a la base de datos. A continuacion, el cliente 102A envfa una solicitud de un recurso en nombre del solicitante. Un identificador de instancia de aplicacion que identifica al solicitante esta asociado con la solicitud. En las realizaciones, la solicitud puede incluir el identificador de instancia de aplicacion o el identificador de instancia de aplicacion puede enviarse por separado de una manera tal que el servidor 106A pueda determinar que el identificador de instancia de aplicacion se asocia con la solicitud. En otra realizacion mas, el servidor 106A o el grupo 106A de servidores puede tener ya la informacion necesaria para asociar el identificador de instancia de aplicacion con la solicitud sin tener que recibir el identificador de instancia de aplicacion junto con la solicitud. A continuacion, el servidor 106A concede al solicitante acceso al recurso, permitiendo de este modo al solicitante realizar operaciones sobre o acceder de otro modo al recurso. Cuando se concede al solicitante acceso al recurso, el servidor 106A asocia un identificador de instancia de aplicacion con el recurso de una manera tal que indica que el solicitante esta actualmente accediendo al recurso. A continuacion, el recurso puede acotarse o bloquearse para que otros clientes o aplicaciones no puedan acceder o modificar el recurso hasta que el cliente 102 haya completado su operacion.
Antes de que el solicitante complete sus operaciones en el recurso, se produce un error que hace que el cliente 102A falle o pierda de otro modo su conexion al recurso. Debido a que el solicitante del cliente ha completado su operacion, no ha liberado el control del recurso. Por lo tanto, el recurso puede permanecer en un estado acotado o bloqueado. El grupo 102 de solicitantes o clientes puede emplear un mecanismo de conmutacion por error para hacer migrar el solicitante del cliente 102A al cliente 102B. Una vez completada la operacion de conmutacion por error, el cliente 102B puede volver a conectarse al grupo 106 de servidores en nombre del solicitante. El cliente 102B puede volver a conectarse al servidor 106A o establecer una nueva conexion con cualquier otro servidor en el grupo 106 de servidores (por ejemplo, el servidor 106B o 106C). En una situacion a modo de ejemplo, el cliente 102B vuelve a conectarse al servidor 106A. Tras volver a conectarse, el cliente 102B puede enviar una segunda solicitud para acceder al recurso en nombre del solicitante. Como se ha indicado anteriormente, debido a que el solicitante no ha liberado el control del recurso, el recurso aun puede estar en un estado bloqueado o acotado. Con el fin de acceder al recurso sin esperar que el servidor cambie automaticamente el estado del recurso, por ejemplo, a traves de una operacion de tiempo de espera, el solicitante puede proporcionar de nuevo su identificador de instancia de aplicacion con la segunda solicitud. El servidor 106A compara el identificador de instancia de aplicacion provisto de la segunda solicitud al identificador de instancia de aplicacion asociado con el recurso. Por ejemplo, comparando el identificador de instancia de aplicacion recibido o asociado de otro modo con la segunda solicitud a un identificador de instancia de aplicacion que el servidor 106A ha asociado con el recurso. El identificador de instancia de aplicacion asociado puede almacenarse en una cache o tabla local del servidor 106A, o puede almacenarse en otro lugar en el grupo 106 de servidores. Si el identificador de instancia de aplicacion almacenado en la cache coincide con el identificador de instancia de aplicacion que esta asociado con el recurso, el servidor 106A invalida o libera de otro modo el recurso y permite al cliente 102B acceder de nuevo al recurso en nombre del
5
10
15
20
25
30
35
40
45
50
55
60
solicitante sin esperar a que se libere el recurso por algun otro mecanismo (por ejemplo, por el tiempo de espera de estado acotado o bloqueado). Si los identificadores de instancia de aplicacion no coinciden, el cliente 102B tendra que esperar a que el recurso se libere antes de acceder al mismo.
Aunque en el ejemplo anterior, el cliente 102B se ha vuelto a conectar al mismo servidor 106A, tambien es posible, en otras realizaciones, que el cliente se conecte a otro nodo en el grupo 106 de servidores. Por ejemplo, el cliente 102B puede volver a conectarse al servidor 106B y presentar una segunda solicitud para volver a obtener el acceso al recurso en nombre del solicitante. La segunda solicitud puede asociarse de nuevo con el identificador de instancia de aplicacion del solicitante, por ejemplo, al incluirse en la segunda solicitud o asociarse de otro modo con la segunda solicitud. En este ejemplo, el servidor 106B puede no tener el identificador de instancia de aplicacion asociado con el recurso almacenado en su cache local debido a que el acceso original del recurso estaba en el servidor 106A. En tal situacion, el servidor 106B puede contactar con los otros servidores del grupo 106 de servidores para determinar si tienen un identificador de aplicacion asociado con el recurso. Si el identificador de aplicacion asociado con el recurso se almacena en un nodo diferente del grupo de servidores (por ejemplo, el servidor 106A), el identificador de instancia de aplicacion en el otro nodo del grupo de servidores se compara con el identificador de instancia de aplicacion provisto de la segunda solicitud. Si coinciden, el servidor 106B puede enviar una solicitud al servidor 106A para invalidar el recurso y, a continuacion, el servidor 106B puede permitir al solicitante (ahora en el cliente 102B) acceder al recurso. Si los identificadores de instancia de aplicacion no coinciden, el cliente 102B tendra que esperar a que se libere el recurso.
Basandose en los ejemplos anteriores, los expertos en la materia apreciaran que cualquier nodo cliente en el grupo 102 de clientes puede solicitar acceso y, a continuacion, proporcionar acceso, a un solicitante en el grupo 102 de clientes. Ademas, cualquier nodo servidor en un grupo de servidores (por ejemplo, cualquier servidor en el grupo 106 de servidores) es capaz de determinar si el solicitante tema acceso previamente al recurso incluso si el acceso se produjo en un nodo servidor diferente en el grupo de servidores. Los expertos en la materia apreciaran que la siguiente descripcion es simplemente un ejemplo de como puede operar la realizacion mostrada en la figura 1 y de que existen otras realizaciones. Por ejemplo, en lugar de acceder a recursos en un servidor remoto o en un grupo de servidores, los nodos cliente pueden realizar las realizaciones descritas en el presente documento para proporcionar a los solicitantes (por ejemplo, aplicaciones o procedimientos) acceso continuo a recursos que residen en el entorno agrupado (por ejemplo, en los mismos o diferentes nodos de grupo de clientes que forman el grupo de clientes). Como se describe con mayor detalle a continuacion, las realizaciones descritas en el presente documento pueden implicar diversas etapas u operaciones diferentes. Ademas, las realizaciones descritas en el presente documento pueden implementarse usando cualquier componente o modulo de software o hardware apropiado.
Volviendo ahora a la figura 2, la figura ilustra un diagrama de bloques de un entorno 200 de software que muestra un grupo 201 de nodos cliente con multiples nodos cliente (por ejemplo, los clientes 202 y 204) y un grupo 206 de nodos servidor con multiples nodos servidor (por ejemplo, el nodo 1 208 y el nodo 2 216). En las realizaciones, el cliente 202 solicita el acceso a un recurso, tal como el recurso 226, en un entorno 206 de grupo de servidores en nombre de un solicitante. El grupo 201 de nodos cliente puede ser un grupo de clientes, tal como el grupo 102 de clientes (figura 1). Aunque no se ilustra, el grupo de clientes puede contener mas de dos clientes. El grupo 206 de nodos servidor, puede ser un grupo de servidores, tal como el grupo 106 de servidores (figura 1) o puede ser cualquier otro tipo de entorno agrupado, tal como, pero sin limitarse a, una red virtual. El recurso 226 puede almacenarse en un almacen 228 de datos que es parte del entorno agrupado. Aunque no se muestra, en unas realizaciones alternativas, el almacen 228 de datos puede no ser parte del entorno agrupado, pero puede conectarse al entorno agrupado a traves de una red. Ejemplos de dicha red incluyen, pero sin limitarse a, Internet, una WAN, una LAN, o cualquier otro tipo de red conocida en la tecnica. En otras realizaciones mas, el almacen de datos puede ser parte de un nodo (por ejemplo, un dispositivo) que es una parte del grupo 206.
El grupo 206 de nodos servidor puede incluir uno o mas nodos, tales como el nodo 1 208 y el nodo 2 216. Aunque en la figura 2 solo se ilustran dos nodos, puede incluirse cualquier numero de grupos de nodos en el entorno 206 agrupado. En las realizaciones, los grupos 208 y 216 de nodos son capaces de recibir una solicitud para realizar una operacion en y/o conceder el acceso al recurso 226. En las realizaciones, el recurso 226 puede ser un archivo, un objeto, una aplicacion, datos o cualquier otro tipo de recurso almacenado en o accesible para un nodo en el grupo 206 de nodos o para un servidor independiente.
En las realizaciones, un cliente envfa una solicitud 222 inicial al entorno 206 agrupado. Como se ilustra en la figura 2, la solicitud 222 inicial puede enviarse por el cliente 202 y recibirse por el nodo 1 208. Sin embargo, en realizaciones alternativas, la solicitud 222 inicial puede enviarse por el cliente o cualquier otro nodo cliente en el grupo 201 de clientes y recibirse por el nodo 2 216 o cualquier otro nodo en el grupo 206 de servidores. Un ejemplo de solicitudes incluye, pero sin limitarse a, solicitudes para crear, abrir o acceder de otro modo a un archivo. La solicitud 222 puede transmitirse desde el cliente al grupo de nodos a traves de una red, tal como, pero sin limitarse a, Internet, una WAN, una LAN o cualquier otro tipo de red conocida en la tecnica. La solicitud 222 inicial puede incluir una solicitud de acceso a un recurso, tal como el recurso 226. En las realizaciones, la solicitud 222 tambien puede incluir un identificador de instancia de aplicacion que identifica el solicitante en cuyo nombre esta haciendo la solicitud el cliente 202. En las realizaciones, la solicitud 222 inicial puede consistir en uno o mas mensajes. Por ejemplo, la solicitud 222 puede ser un unico mensaje que contiene tanto la solicitud como un identificador de instancia de aplicacion. En otra realizacion, la solicitud 222 pueden ser multiples mensajes que incluyen una o mas
5
10
15
20
25
30
35
40
45
50
55
60
solicitudes, asf como uno o mas identificadores de instancia de aplicacion. En las realizaciones, el cliente 202 puede incluir una cache 214 de instancia de aplicacion que se usa para almacenar y/o generar uno o mas identificadores de instancia de aplicacion que pueden transmitirse con la solicitud 222.
Como se muestra en la figura 2, el nodo 1 208 puede recibir la solicitud 222 y un identificador de instancia de aplicacion del cliente 202. Si el recurso 226 solicitado esta disponible, por ejemplo, no acotado o bloqueado por otro cliente o aplicacion, el nodo 1 puede conceder a la solicitud del cliente (por ejemplo, el cliente 202) el acceso al recurso 226 en nombre de un solicitante que se esta ejecutando en el cliente. Tras conceder acceso al recurso 226, el controlador 210 de filtro puede asignar o crear de otro modo una asociacion entre el cliente 202 y el recurso 226 almacenando el identificador de instancia de aplicacion que ha recibido del cliente 202. En las realizaciones, la asociacion puede almacenarse como un objeto en la cache 212 de instancia de aplicacion que es una parte del nodo 1. Aunque la realizacion ilustrada muestra la cache 212 de instancia de aplicacion como una parte del nodo 1 208, en las realizaciones, la cache 212 de instancia de aplicacion puede almacenarse en otro lugar como una parte del grupo 206 de nodos. Los expertos en la materia apreciaran que el grupo 206 de nodos puede incluir una o mas caches de instancia de aplicacion, tal como la cache 220 de instancia de aplicacion en el nodo 2 216. En las realizaciones, cuando hay mas de una cache de instancia de aplicacion, los datos almacenados en las multiples caches de instancia de aplicacion pueden replicarse a traves de todas las caches de instancia de aplicacion o cada cache de instancia de aplicacion puede almacenar datos por separado.
En una realizacion, el identificador de instancia de aplicacion recibido del cliente, un identificador de instancia de aplicacion que identifica un solicitante (por ejemplo, una aplicacion o un procedimiento), puede almacenarse en una estructura _NETWORK_APP_INSTANCE_ECP_CONTEXT. La estructura
_NETWORK_APP_INSTANCE_ECP_CONTEXT puede definirse de la siguiente manera:
typdef struct _NETWORK_APP_INSTANCE_ECP_CONTEXT {
USHORT Size;
USHORT Reserved;
GUID AppInstancelD;
} _NETWORK_APP_INSTANCE_ECP_CONTEXT,
*PNETWORK_APP_INSTANCE_ECP_CONTEXT;
En tales realizaciones, el tamano variable puede almacenar informacion relacionada con el tamano de la estructura y el AppInstancelD variable puede ser un identificador de instancia de aplicacion unico para una aplicacion cliente de grupo de conmutacion por error, tal como un solicitante que ejecuta en el cliente 202. En las realizaciones, la _NETWORK_APP_INSTANCE_ECP_CONTEXT, u otro objeto o variable que contiene el identificador de instancia de aplicacion del solicitante pueden almacenarse en la cache 214 de identificador unico global (GUID). En las realizaciones, la estructura _NeTWORK_APP_INSTANCE_ECP_CONTEXT puede enviarse desde un cliente a un servidor en asociacion con una solicitud de acceso a un recurso (por ejemplo, una solicitud de creacion o de apertura). En una realizacion, el identificador de instancia de aplicacion del solicitante puede almacenarse en la cache GUID del nodo cliente que el solicitante esta ejecutando en el entorno 201 de cliente agrupado. En otra realizacion, aunque no se muestra en la figura 2, el grupo 201 de nodo cliente puede tener un deposito central que almacena identificadores de instancia de aplicacion. En tal realizacion, multiples nodos cliente en el grupo 201 de nodos cliente pueden acceder al deposito centralizado. En otra realizacion mas, los identificadores de instancia de aplicacion pueden almacenarse a traves de multiples caches GUID (por ejemplo, el cache 214 GUID y el cache 216 GUID). En tales realizaciones, el grupo 201 de nodos cliente puede emplear un algoritmo de replicacion para garantizar que las multiples caches GUID contengan los mismos identificadores de instancia de aplicacion.
Como se ha descrito anteriormente, el identificador de instancia de aplicacion puede asociarse con el recurso 226 mientras que el cliente 202 accede al recurso 226 en nombre de un solicitante. Un nodo 206 servidor puede almacenar dicha asociacion en una o mas caches de instancia de aplicacion que forman parte del grupo 206 de nodos servidor, tales como las caches 212 y 220 de instancia de aplicacion. En una realizacion, el identificador de instancia de aplicacion puede asociarse con el recurso anadiendolo a una lista de parametros extra creados (ECP) del recurso 226. La lista de ECP puede almacenarse en una cache de instancia de aplicacion que forma parte del grupo 206 de nodos servidor, tales como las caches 212 y 220 de instancia de aplicacion. En las realizaciones, cuando un ECP se recibe por un servidor, el servidor extrae un identificador de instancia de aplicacion del ECP y lo anade a una cache para asociarse con un recurso, un manipulador de recursos, etc. Como se ha descrito con respecto al almacenamiento de identificadores de instancia de aplicacion en el grupo 201 de clientes, los identificadores de instancia de aplicacion asociados con un nodo pueden almacenarse en una cache de instancia de aplicacion individual en un nodo en el grupo 206 de nodos servidor, en un deposito central en el grupo 206 de servidores o replicarse a traves de multiples caches de instancia de aplicacion en multiples nodos en el grupo 206 de nodos servidor.
En las realizaciones, el recurso 226 esta acotado o bloqueado mientras que un solicitante que ejecuta en el cliente 202 tiene acceso al recurso 226, impidiendo de este modo que otros clientes o aplicaciones accedan al recurso 226 y evitando cualquier conflicto potencial. En las realizaciones, antes de que el solicitante complete su operacion en el recurso 226, el cliente 202 experimenta un error que hace que pierda la conexion con el recurso. Por ejemplo, el cliente puede colgarse, desconectarse o perder su conexion de red con el nodo 208 servidor. En tales casos, el
5
10
15
20
25
30
35
40
45
50
55
60
recurso 226 puede estar todavfa en un estado acotado o bloqueado debido a que el solicitante no ha liberado un bloqueo en el recurso, evitando de este modo que otros clientes accedan al recurso 226.
Cuando el error se produce en el cliente 202, el solicitante puede utilizar un mecanismo 232 de conmutacion por error de cliente para migrar a un nuevo nodo cliente (por ejemplo, el cliente 204) en el grupo 201 de clientes. Los expertos en la materia apreciaran que puede emplearse cualquier tipo de mecanismo de conmutacion por error en la conmutacion 232 por error de cliente. En las realizaciones, el mecanismo 232 de conmutacion por error tambien puede incluir la migracion del identificador de instancia de aplicacion del solicitante que puede haberse almacenado en la cache 214 GUID en el cliente 202 fallido. Una vez completada la migracion, el solicitante puede intentar volver a obtener el acceso al recurso 226. En las realizaciones, el cliente 204 puede enviar una segunda solicitud 224 al nodo 1 para solicitar acceso al recurso 226 en nombre del solicitante. Sin embargo, sin las realizaciones de acceso continuo desveladas en el presente documento, cuando el nodo 1 208 recibe una solicitud para acceder al recurso 226 en nombre del cliente 204 (el remitente de la segunda solicitud 224), puede denegar la solicitud debido a que el recurso 226 esta todavfa en un estado acotado o bloqueado desde el acceso previo que el cliente 202 hizo en nombre del recurso. Sin las realizaciones desveladas en el presente documento, el nodo 1 208 reconocena que la segunda solicitud de acceso al recurso 226 fue desde una localizacion diferente (por ejemplo, el cliente 204). El nodo 1 208 no podna determinar que la solicitud es para el mismo solicitante que mantiene el bloqueo del recurso 226 y, por lo tanto, determinana que la concesion de la solicitud dana como resultado un conflicto. Sin embargo, si el mismo solicitante esta intentando acceder al recurso 226, no hay ningun motivo de conflicto y obligar al cliente a esperar que el recurso se libere por el sistema puede dar como resultado retrasos indebidos.
El identificador de instancia de aplicacion puede usarse para resolver este problema. En las realizaciones, la segunda solicitud 224 tambien puede incluir que el identificador de instancia de aplicacion identifique que el solicitante ha migrado al cliente 204 durante la conmutacion por error mostrada en 232. En las realizaciones, el identificador de instancia de aplicacion del solicitante puede estar presente en la cache 228 GUID del cliente 204 antes de la migracion del solicitante durante la conmutacion 232 por error de cliente. Por ejemplo, puede haberse empleado un mecanismo de replicacion para replicar el identificador de instancia de aplicacion del solicitante a traves de los nodos en el grupo 201 de clientes. En otra realizacion, el solicitante 203 puede almacenar su identificador de instancia de aplicacion. En otra realizacion mas, puede hacerse migrar el identificador de instancia de aplicacion del solicitante 203 durante la conmutacion 232 por error de cliente.
Tal como se ha descrito con respecto a la solicitud 222, el identificador de instancia de aplicacion puede transmitirse en el mismo mensaje que la segunda solicitud 224 o la segunda solicitud 224 puede estar compuesta por un numero de mensajes diferentes. Cuando la segunda solicitud se recibe en el grupo 206 de nodos, o un nodo individual en el grupo, tal como el nodo 1 208, y el servidor de recepcion determina que el recurso esta acotado o bloqueado, se determina si el identificador de instancia de aplicacion en la segunda solicitud 224 es el mismo que el identificador de instancia de aplicacion asociado con el recurso 226. En las realizaciones, el nodo 2 216 comparara el identificador de instancia de aplicacion recibido con la segunda solicitud 222 con el identificador de instancia de aplicacion que esta asociado con el recurso 226. El identificador de aplicacion asociado con el recurso 226 puede almacenarse en la cache 212 de instancia de aplicacion del nodo 1 212. En las realizaciones donde existen multiples caches de instancia de aplicacion en el grupo 206 de nodos, la determinacion puede comprobar mas de una cache de instancia de aplicacion en el grupo 206 de nodos. En tales realizaciones, si un identificador de instancia de aplicacion coincidente no esta localizado en la cache 212 de instancia de aplicacion, el nodo 1 216 puede enviar una solicitud al nodo 2 212 para determinar si un identificador de instancia de aplicacion coincidente esta localizado en la cache 220 de instancia de aplicacion.
En una realizacion, si el identificador de instancia de aplicacion recibido en la segunda solicitud 224 no coincide con el identificador de instancia de aplicacion asociado con el recurso 226 (que puede almacenarse en la cache 212 y/o 220 de instancia de aplicacion), la segunda solicitud 224 puede no concederse hasta que el recurso 226 este libre. Sin embargo, si se encuentra una coincidencia, el servidor de recepcion (por ejemplo, el nodo 1 208) y/o el grupo 206 de nodos servidor realizan acciones para conceder acceso al recurso 226 sin provocar un retraso indebido al cliente 204 y al solicitante 203. En tales casos, el grupo 206 de nodos puede invalidar el recurso 226, sacando de este modo el recurso 226 de un estado acotado o bloqueado. En las realizaciones, invalidar un acceso previo puede comprender cualquier accion que saque un recurso fuera de un estado acotado o bloqueado. Un ejemplo no limitante es cerrar un archivo abierto (por ejemplo, si el recurso 226 es un archivo). Una vez que el acceso anterior esta invalidado, puede concederse la segunda solicitud 224 para acceder al recurso 226, proporcionando de este modo un acceso continuo al solicitante 203.
En una realizacion, el nodo que recibe la segunda solicitud 224, tal como el nodo 1 208 en la figura 2, puede realizar las acciones necesarias para invalidar el acceso previo del recurso 226 si un nodo diferente (por ejemplo, el nodo 2 216) tiene acceso y/o permiso para invalidar el acceso previo. Sin embargo, en algunos casos, el nodo que recibe la solicitud puede no tener acceso o permiso para invalidar el acceso previo. Por ejemplo, tal instancia puede producirse si la solicitud 222 original se hizo al nodo 2 216, en cuyo caso, el nodo 2 216 puede tener control sobre el recurso. En tales casos, el nodo que recibe la segunda solicitud 224 puede enviar una solicitud al nodo de control para invalidar el acceso previo. Una vez que el nodo de control ha invalidado el acceso previo, el nodo que recibe la segunda solicitud 224 puede conceder la segunda solicitud 224. En otras realizaciones, el nodo que recibe la segunda solicitud 224 puede enviar una solicitud a un nodo diferente para conceder al cliente 204 y/o al solicitante
5
10
15
20
25
30
35
40
203 (ahora residente en el cliente 204) el acceso al recurso 226.
El procedimiento descrito evita un retraso indebido en la concesion de una segunda solicitud 224 para acceder a un recurso 226 de un solicitante 203 que ha accedido previamente y aun mantiene un bloqueo en el recurso 226 a traves del uso de identificadores de instancia de aplicacion. Ademas, los identificadores de instancia de aplicacion ofrecen la ventaja de garantizar que cualquier solicitud concedida no cree un conflicto en el recurso 226. Por ejemplo, si la solicitud se ha recibido de una aplicacion diferente, la solicitud incluira un identificador de instancia de aplicacion que es diferente del identificador de instancia de aplicacion asociado con el recurso que dana como resultado que se rechazara la solicitud. Debido a que los identificadores de instancia de aplicacion son identificadores globalmente unicos, el identificador de instancia de aplicacion para diferentes aplicaciones no sera el mismo.
La figura 3 es una realizacion de un procedimiento 300 que un solicitante puede emplear para obtener acceso continuo a un recurso en un entorno agrupado de cliente. Por ejemplo, un solicitante puede ser un cliente, tal como el cliente 202 (figura 2), que emplea el procedimiento 300 para acceder a un recurso (por ejemplo, el recurso 226). En las realizaciones, el recurso puede residir en una maquina remota, tal como un servidor. El servidor puede ser un servidor independiente o parte de un entorno agrupado, tal como el grupo 206 de servidores (figura 2). El flujo comienza en la operacion 302 donde se envfa una solicitud de un recurso a un servidor. En las realizaciones, la solicitud puede ser acceder a un recurso. En las realizaciones, el acceso a un recurso puede comprender abrir un archivo, crear un archivo, o acceder o realizar de otro modo una operacion en un recurso que puede ser remoto para un cliente. En las realizaciones, un solicitante puede operar en un entorno agrupado de cliente. En tales realizaciones, la solicitud enviada en la operacion 302 puede enviarse desde un primer cliente en el entorno agrupado de cliente.
El flujo continua hacia la operacion 304 donde se envfa un identificador de instancia de aplicacion, por ejemplo, a un servidor (por ejemplo, un servidor independiente o un nodo en un entorno agrupado). En una realizacion, el primer cliente que envio la solicitud tambien puede enviar el identificador de instancia de aplicacion en nombre del solicitante. Como se ha descrito anteriormente, un identificador de instancia de aplicacion es un GUID que identifica al solicitante (por ejemplo, una aplicacion, un cliente o un procedimiento secundario de una aplicacion que solicita acceso a un recurso). En una realizacion, el identificador de instancia de aplicacion puede enviarse en un mensaje transmitido a traves de una red. El identificador de instancia de aplicacion puede transmitirse en el mismo mensaje que contiene la solicitud en la operacion 302 o puede transmitirse en un mensaje diferente. En dichas realizaciones, un objeto que contiene el identificador de instancia de aplicacion, tal como, pero sin limitarse a, la _NETWORK_APP_INSTANCE_ECP_CONTEXT descrita con respecto a la figura 2, puede enviarse en la operacion 302.
En una realizacion, puede usarse una interfaz para enviar el identificador de instancia de aplicacion en la operacion 304. La interfaz puede ser una interfaz de nivel de nucleo localizada en un cliente o disponible para un cliente que opera en un entorno agrupado de cliente. En las realizaciones, la interfaz de nivel de nucleo puede usarse por el solicitante y/o el cliente para enviar un identificador de instancia de aplicacion a un servidor. El siguiente es un ejemplo no limitante de una interfaz de nivel de nucleo que puede emplearse en la operacion 304 para enviar un identificador de instancia de aplicacion:
# if(NTDDI_VERSION >= NTDDI_WIN8)
//
// Contexto de ECP para una aplicacion para proporcionar su ID de instancia, //
typedef struct _NETWORK_APP_INSTANCE_ECP_CONTEXT {
//
// Esto debe establecerse para el tamano de esta estructura,
//
USHORT Size;
//
5
10
15
20
25
// Esto debe establecerse a cero,
//
USHORT Reserved;
//
// El llamante coloca un GUID que siempre debe ser unico para una unica instancia de la aplicacion.
//
GUID AppInstancelD;
} NETWORK_APP_INSTANCE_ECP_CONTEXT,
*PNETWORK_APP_INSTANCE_ECP_CONTEXT;
//
// El GUID usado para la estructura 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
Aunque se proporciona una interfaz de nivel de nucleo espedfica, los expertos en la materia apreciaran que pueden emplearse otras interfaces de nivel de nucleo en la operacion 304 para enviar el identificador de instancia de aplicacion.
En otra realizacion, puede emplearse una interfaz de usuario de aplicacion (API) en la operacion 304 para enviar un identificador de instancia de aplicacion. En dicha realizacion, el solicitante y/o el cliente pueden enviar un identificador de instancia de aplicacion haciendo una llamada a la API. La API puede alojarse en el cliente que realiza la operacion 304 (por ejemplo, el primer cliente en un grupo de servidores) o la API puede alojarse en otro dispositivo y acceder a la misma por el solicitante u otra aplicacion o procedimiento. El siguiente es un ejemplo no limitante de una API que puede emplearse en la operacion 304 para enviar un identificador de instancia de aplicacion:
NTSTATUS RegisterAppInstance (
_in PGUID AppInstance );
Aunque se proporciona una API espedfica, los expertos en la materia apreciaran que pueden emplearse otras API en la operacion 304. Ademas, aunque la operacion 304 se ilustra como una operacion discreta, los expertos en la materia apreciaran que el envfo del identificador de instancia de aplicacion puede realizarse simultaneamente con el envfo de la solicitud en la operacion 302.
Cuando el recurso solicitado no esta bloqueado, la solicitud enviada en la operacion 302 se concede y el flujo continua hacia la operacion 306 donde se accede al recurso. Como se ha descrito anteriormente, el servidor o dispositivo que controla el recurso puede colocar el recurso en un estado acotado o bloqueado mientras el solicitante accede al recurso en la operacion 306. En algun momento, mientras se accede al recurso, se produce un error, tal como los errores descritos con referencia a la figura 2, que hace que el cliente falle o pierda de otro modo la conexion al recurso. El error puede hacer que el cliente (por ejemplo, el primer cliente en el grupo de servidores) pierda el acceso al recurso antes de que el solicitante complete su uso del recurso. En tales circunstancias, el recurso puede no liberarse de su estado acotado o bloqueado.
5
10
15
20
25
30
35
40
45
50
55
60
El flujo continua hacia la operacion 308, donde se realiza una operacion de conmutacion por error. En las realizaciones, la operacion de conmutacion por error puede comprender la clonacion del solicitante y su estado a un cliente diferente en el grupo de nodos cliente (por ejemplo, un segundo cliente). En las realizaciones, el estado del solicitante puede clonarse en el segundo y el solicitante puede ejecutarse en el segundo cliente de una manera tal que pueda reanudar la ejecucion desde el punto donde fallo el primer cliente. En otra realizacion, el solicitante puede estar en comunicacion con el primer cliente (en lugar de ejecutarse en el mismo) en el momento de la primera conmutacion por error de los clientes. En tales realizaciones, la operacion de conmutacion por error puede comprender que el solicitante establezca comunicaciones con un segundo cliente en el grupo de clientes.
En las realizaciones, la informacion de estado, incluyendo pero sin limitarse al identificador de instancia de aplicacion de solicitantes, puede transferirse desde el primer cliente al segundo cliente. En una realizacion, el primer cliente puede enviar un mensaje que incluye el identificador de instancia de aplicacion del solicitante y/o la informacion de estado del solicitante. El identificador de instancia de aplicacion y/o el estado pueden enviarse durante el procedimiento de conmutacion por error o, en las realizaciones, pueden enviarse antes de que el primer cliente fracase, tal como durante un procedimiento de replicacion que clona informacion a traves de los clientes en un entorno agrupado de cliente. En otra realizacion, el identificador de instancia de aplicacion del solicitante y/o la informacion de estado pueden almacenarse en una localizacion o deposito central en la red agrupada de cliente. En dichas realizaciones, el procedimiento de conmutacion por error puede proporcionar al segundo cliente la localizacion del identificador de instancia de aplicacion del solicitante y/o informacion de estado. En otra realizacion mas, el solicitante puede mantener su identificador de instancia de aplicacion. En tales realizaciones, la operacion de conmutacion por error de cliente puede comprender volver a localizar o establecer de otro modo una conexion entre el solicitante y un segundo cliente.
En las realizaciones, despues de la operacion de conmutacion por error de cliente, el flujo continua hacia la operacion 310. En la operacion 310, se envfa una segunda solicitud para el mismo recurso al entorno agrupado. En las realizaciones, la segunda solicitud se envfa por el segundo cliente en el grupo de clientes en nombre del solicitante. La segunda solicitud puede enviarse usando la misma manera que se ha descrito con respecto al primer recurso en la operacion 302. Con el fin de mantener un acceso continuo al recurso y evitar un retraso indebido, el flujo continua hacia la operacion 312 donde el identificador de instancia de aplicacion se envfa nuevamente al entorno agrupado. El identificador de instancia de aplicacion puede enviarse en la operacion 308 de acuerdo con una de las realizaciones descritas con respecto a la operacion 304. En las realizaciones, debido a que un cliente diferente (por ejemplo, el segundo cliente) esta enviando la segunda solicitud, el servidor que recibe la solicitud puede no ser capaz de identificar la segunda solicitud como perteneciente al mismo solicitante que mantiene un bloqueo en el recurso (por ejemplo, debido a que la solicitud se realiza desde una maquina diferente, una direccion diferente, etc.). Sin embargo, enviando los identificadores de instancia de aplicacion en las operaciones 304 y 308, el servidor sera capaz de identificar las solicitudes como pertenecientes al mismo solicitante y concedera acceso continuo al recurso como se ha descrito anteriormente con respecto a las figuras 1 y 2. El flujo continua hacia la operacion 314 y el solicitante reanuda el acceso al recurso. En las realizaciones, el segundo cliente puede recibir una respuesta a la segunda solicitud desde el servidor indicando que el servidor ha concedido la segunda solicitud. En las realizaciones, tras recibir la indicacion, el segundo cliente puede acceder al recurso en nombre del solicitante.
La figura 4 es una realizacion de un procedimiento 400 realizado por un nodo en un entorno agrupado de servidor para proporcionar acceso continuo a un recurso. Las realizaciones del procedimiento 400 pueden realizarse por un nodo tal como el nodo 1 208 (figura 2) en un entorno agrupado, tal como el grupo 206 de nodos (figura 2). En las realizaciones, el procedimiento 400 puede realizarse por un nodo que tiene acceso a un recurso. El flujo comienza en la operacion 402 donde el nodo recibe una solicitud de un recurso. En las realizaciones, un recurso puede ser un archivo, un objeto, un procedimiento, datos o cualquier otro tipo de recurso que este bajo el control de y/o al que pueda accederse por el nodo que realiza la operacion 400. Un identificador de instancia de aplicacion puede recibirse con la solicitud en la operacion 402.
El flujo continua hacia la operacion de decision 404 donde se determina si el recurso esta en un estado acotado o bloqueado. Los expertos en la materia apreciaran que en la operacion 404 puede emplearse cualquier manera de determinar si un recurso esta acotado o bloqueado. Si el recurso no esta en un estado acotado o bloqueado, el flujo se ramifica hacia NO en la operacion 412 donde se concede la solicitud del recurso. En las realizaciones, la concesion de la solicitud puede comprender permitir al solicitante el acceso al recurso, realizar una operacion en el recurso en nombre del solicitante, o permitir cualquier tipo de acceso o modificacion al recurso. Por ejemplo, la concesion de la solicitud en la operacion 412 puede incluir abrir un archivo o crear un archivo.
Si el recurso esta en un estado acotado o bloqueado, el flujo se ramifica hacia Sf desde la operacion 404 a la operacion de decision 406. En la operacion de decision 406, el identificador de instancia de aplicacion recibido con la solicitud en la operacion 402 se compara con un identificador de instancia de aplicacion que esta asociado con el recurso. Por ejemplo, como se describe con respecto a la figura 2, un nodo puede asociar un identificador de instancia de aplicacion con un recurso cuando un cliente o aplicacion accede a un recurso. Como se ha descrito anteriormente, la asociacion del identificador de instancia de aplicacion de un solicitante que accede a un recurso puede almacenarse en un nodo, por ejemplo, en una cache de instancia de aplicacion, como se describe en varias realizaciones expuestas en la figura 2. En las realizaciones, el identificador de instancia de aplicacion que se proporciona en un ECP enviado con una solicitud para un recurso, por ejemplo, en una estructura
5
10
15
20
25
30
35
40
45
50
55
_NETWORK_APP_INSTANCE_ECP_CONTEXT, puede anadirse a una lista de ECP asociada con el recurso.
En una realizacion, la asociacion del recurso de instancia de aplicacion puede residir localmente en el nodo que realiza el procedimiento 400. En tales casos, la comparacion puede realizarse en una cache de instancia de aplicacion local residente en el servidor. Sin embargo, tal como se ha expuesto con respecto a la figura 2, un entorno agrupado puede contener un numero de caches de instancia de aplicacion distribuidas a traves de diferentes nodos. Ademas, cada una de las diferentes caches de instancia de aplicacion puede almacenar datos separados y/o diferentes. El identificador de aplicacion asociado con el recurso acotado o bloqueado puede almacenarse en un nodo diferente en el entorno agrupado. En tales casos, la operacion 406 puede incluir el envfo de una solicitud a un nodo diferente para realizar la comparacion en la operacion 406. La solicitud puede incluir el identificador de instancia de aplicacion recibido en la operacion 402.
Si el identificador de instancia de aplicacion recibido no es el mismo que el identificador de instancia de aplicacion asociado con el recurso, el flujo se ramifica hacia NO en la operacion 410. En la operacion 410 se deniega la solicitud de acceso al recurso recibido en la operacion 402. En las realizaciones, la solicitud puede denegarse con el fin de evitar un conflicto de recursos. Debido a que el identificador de aplicacion recibido no es el mismo que el identificador de instancia de aplicacion asociado, la solicitud de acceso al recurso recibido en la operacion 402 es de un solicitante o aplicacion diferente. La concesion de una solicitud al cliente o aplicacion diferente, como puede ser en este caso, puede provocar una situacion de conflicto que interfiera con la aplicacion que actualmente accede al recurso. Por ejemplo, la aplicacion diferente puede modificar el recurso de una manera que modifica o interfiere de otro modo con las operaciones realizadas en el recurso por el solicitante que actualmente mantiene un bloqueo en el recurso.
Sin embargo, recibir un identificador de aplicacion con la solicitud 402 que es el mismo que el identificador de aplicacion asociado con los recursos acotados o bloqueados indica que puede haber ocurrido un error que provoco que el solicitante que accedfa al recurso perdiera su acceso al recurso sin liberar adecuadamente el recurso. Por ejemplo, el solicitante puede operar en un grupo de nodos cliente. El cliente espedfico en el que el solicitante estaba operando podna haber perdido la conexion al servidor o fallado antes de que el solicitante completara sus operaciones sobre el recurso. Con el fin de proporcionar acceso continuo al recurso, es decir, para permitir al solicitante volver a obtener el acceso al recurso sin experimentar retrasos indebidos o inaceptables, el flujo se ramifica hacia Sf en la operacion 408.
En la operacion 408, el recurso esta invalidado. Como se ha descrito anteriormente, la invalidacion del recurso puede incluir el cambio del estado acotado del recurso o eliminar de otro modo un bloqueo en el recurso. Por ejemplo, si el recurso es un archivo, invalidar el recurso puede incluir el cierre del archivo. Los expertos en la materia apreciaran que en la operacion 408 puede emplearse cualquier procedimiento de liberacion de un recurso acotado o bloqueado.
Haciendo referencia de nuevo a la figura 2, en las realizaciones, el acceso a un recurso puede estar bajo el control de un nodo en el entorno agrupado diferente del nodo que recibe la solicitud de acceso al recurso en la operacion 402. Por ejemplo, un manipulador del recurso puede residir en un nodo diferente en el entorno agrupado. En tales realizaciones, invalidar el recurso puede incluir enviar una solicitud al nodo que controla el acceso al recurso para invalidar el recurso. En respuesta al envfo de la solicitud, el nodo remoto puede invalidar el recurso.
Despues de que el recurso se invalide, el flujo continua hacia la operacion 412 donde se concede la solicitud de acceso al recurso. La concesion de la solicitud puede comprender permitir al solicitante el acceso al recurso, realizar una operacion en el recurso en nombre del solicitante, o permitir cualquier tipo de acceso o modificacion al recurso. Por ejemplo, la concesion de la solicitud en la operacion 412 puede incluir abrir un archivo o crear un archivo. La concesion de dicho acceso puede realizarse por el nodo que recibe la solicitud en la operacion 402, o por otro nodo en el entorno agrupado.
Los procedimientos 300 y 400 son simplemente algunos ejemplos de flujos operativos que pueden realizarse de acuerdo con las realizaciones. Las realizaciones no estan limitadas a la descripcion espedfica proporcionada anteriormente con respecto a las figuras 3-6 y pueden incluir operaciones adicionales. Ademas, las etapas operativas representadas pueden combinarse en otras etapas y/o reordenarse. Ademas, pueden usarse mas o menos etapas con respecto a las empleadas con los procedimientos descritos en las figuras 3-4.
La figura 5 ilustra un sistema 500 informatico general, que puede usarse para implementar las realizaciones descritas en el presente documento. El sistema 500 informatico es solo un ejemplo de un entorno informatico y no pretende sugerir ninguna limitacion en cuanto al ambito de uso o funcionalidad de las arquitecturas informaticas y de red. Tampoco debe interpretarse que el sistema 500 informatico tenga ninguna dependencia o requisito relacionado con uno cualquiera o una combinacion de los componentes ilustrados en el sistema 500 informatico a modo de ejemplo. En las realizaciones, el sistema 500 puede usarse como los clientes y/o servidores descritos anteriormente con respecto a las figuras 1 y 2.
En su configuracion mas basica, el sistema 500 incluye habitualmente al menos una unidad 502 de procesamiento y una memoria 504. Dependiendo de la configuracion exacta y del tipo de dispositivo informatico, la memoria 504
5
10
15
20
25
30
35
40
45
50
puede ser volatil (tal como RAM), no volatil (tal como ROM, memoria flash, etc.) o alguna combinacion. Esta configuracion mas basica se ilustra en la figura 5 por la lmea 506 discontinua. La memoria 504 de sistema almacena las instrucciones 520, tales como las instrucciones para realizar los procedimientos de disponibilidad continua desvelados en el presente documento y los datos 522, tales como los identificadores de instancia de aplicacion que pueden almacenarse en un sistema de almacenamiento de archivos con un almacenamiento tal como el almacenamiento 508.
La expresion medio legible por ordenador tal como se usa en el presente documento puede incluir medios de almacenamiento informatico. Los medios de almacenamiento informatico pueden incluir medios volatiles y no volatiles, extrafbles y no extrafbles, implementados en cualquier procedimiento o tecnologfa para el almacenamiento de informacion, tales como instrucciones legibles por ordenador, estructuras de datos, modulos de programa u otros datos. La memoria 504 de sistema, el almacenamiento extrafble y el almacenamiento 508 no extrafble son todos ejemplos de medios de almacenamiento informatico (por ejemplo, el almacenamiento de memoria). Los medios de almacenamiento informatico pueden incluir, pero sin limitarse a, RAM, ROM, memoria de solo lectura borrable electricamente (EEPROM), memoria flash u otra tecnologfa de memoria, CD-ROM, discos versatiles digitales (DVD) u otro almacenamiento optico, cinta magnetica, almacenamiento en disco magnetico u otros dispositivos de almacenamiento magnetico, o cualquier otro medio que pueda usarse para almacenar informacion y al que pueda accederse por el dispositivo 500 informatico. Cualquiera de tales medios de almacenamiento informatico puede ser parte del dispositivo 500. El dispositivo 500 informatico tambien puede tener un dispositivo(s) (514) de entrada, tal como un teclado, un raton, un puntero, un dispositivo de entrada de sonido, un dispositivo de entrada tactil, etc. Tambien puede incluirse un dispositivo(s) 516 de salida, tal como una pantalla, unos altavoces, una impresora, etc. Los dispositivos mencionados anteriormente son ejemplos y pueden usarse otros.
La expresion medio legible por ordenador tal como se usa en el presente documento tambien puede incluir medios de comunicacion. Los medios de comunicacion pueden incorporarse mediante instrucciones legibles por ordenador, estructuras de datos, modulos de programa u otros datos en una senal de datos modulada, tal como una onda portadora u otro mecanismo de transporte, e incluyen cualquier medio de suministro de informacion. La expresion “senal de datos modulada” puede describir una senal que tiene una o mas caractensticas establecidas o cambiadas de tal manera que codifican informacion en la senal. A modo de ejemplo, y sin limitacion, los medios de comunicacion pueden incluir medios cableados, tales como una red cableada o una conexion directa por cable, y medios inalambricos, tales como medios acusticos, de radiofrecuencia (RF), infrarrojos y otros medios inalambricos.
Las realizaciones de la invencion pueden ponerse en practica a traves de un sistema en un chip (SOC) donde cada uno o muchos de los componentes ilustrados en la figura 5 pueden integrarse en un unico circuito integrado. Un dispositivo SOC de este tipo puede incluir una o mas unidades de procesamiento, unidades graficas, unidades de comunicaciones, unidades de virtualizacion de sistemas y diversas funcionalidades de aplicacion, todas las cuales estan integradas (o “quemadas”) sobre el sustrato de chip como un unico circuito integrado. Cuando se opera a traves de un SOC, la funcionalidad, descrita en el presente documento, con respecto a proporcionar acceso continuo a un recurso puede operar a traves de una logica de aplicacion espedfica integrada con otros componentes del dispositivo/sistema 500 informatico en el unico circuito integrado (chip).
Se ha hecho referencia a lo largo de la presente memoria descriptiva a “una realizacion”, lo que significa que un rasgo, estructura o caractenstica descrita espedfica se incluye en al menos una realizacion. Por lo tanto, el uso de tales frases puede referirse a mas de una realizacion. Ademas, los rasgos, estructuras o caractensticas descritas pueden combinarse de cualquier manera adecuada en una o mas realizaciones.
Sin embargo, los expertos en la materia pueden reconocer que las realizaciones pueden ponerse en practica sin uno o mas de los detalles espedficos, o con otros procedimientos, recursos, materiales, etc. En otros casos, no se han mostrado o descrito en detalle estructuras, recursos u operaciones bien conocidas, simplemente para evitar complicar aspectos de las realizaciones.
Aunque se han ilustrado y descrito realizaciones y aplicaciones a modo de ejemplo, debe entenderse que las realizaciones no se limitan a la configuracion y los recursos precisos descritos anteriormente. Pueden hacerse diversas modificaciones, cambios y variaciones evidentes para los expertos en la materia en la disposicion, operacion y detalles de los procedimientos y sistemas desvelados en el presente documento.

Claims (10)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Un procedimiento para proporcionar acceso continuo a un recurso, comprendiendo el procedimiento:
    recibir en un grupo (106) de servidores, que incluye al menos un servidor (106A, 106B, 106C; 208, 216), una primera solicitud (222) para acceder a un recurso (226) desde una aplicacion (203) cliente, ejecutandose la aplicacion cliente en un primer cliente (102A; 202), en el que la primera solicitud se recibe desde el primer cliente en un grupo (106; 201) de clientes;
    asociar en el grupo de servidores un primer identificador de instancia de aplicacion con el recurso; permitir por el grupo de servidores el primer acceso solicitado al recurso;
    recibir en el grupo de servidores una segunda solicitud (224) para el recurso desde la aplicacion cliente despues de recuperarse de un fallo, en el que la segunda solicitud se recibe desde un segundo cliente (102B; 204) diferente del primer cliente;
    recibir en el grupo de servidores un segundo identificador de instancia de aplicacion asociado con la segunda solicitud;
    determinar si el primer identificador de instancia de aplicacion y el segundo identificador de instancia de aplicacion son los mismos; y
    cuando los identificadores de instancia de aplicacion primero y segundo son los mismos, realizar por el grupo de servidores las etapas que comprenden:
    invalidar la primera solicitud; y
    conceder la segunda solicitud de acceso al recurso.
  2. 2. El procedimiento de la reivindicacion 1, en el que el primer identificador de instancia de aplicacion esta asociado con una instancia de aplicacion de una solicitud abierta.
  3. 3. El procedimiento de la reivindicacion 1, en el que el primer identificador de instancia de aplicacion esta asociado con un procedimiento.
  4. 4. El procedimiento de la reivindicacion 1, en el que el primer identificador de instancia de aplicacion esta asociado con al menos un procedimiento secundario de una aplicacion.
  5. 5. El procedimiento de la reivindicacion 1, en el que la asociacion del primer identificador de instancia de aplicacion comprende recibir el primer identificador de instancia de aplicacion en una estructura _NETWORK_APP_INSTANCE_ECP_CONTEXT.
  6. 6. Un procedimiento para proporcionar una conmutacion por error de clientes agrupados para hacer migrar una aplicacion (203) cliente desde un primer cliente (102A; 202) a un segundo cliente (102B; 204), comprendiendo el procedimiento:
    recibir, desde el primer cliente (102A; 202) en el segundo cliente (102B; 204), un identificador de instancia de aplicacion para la aplicacion (203) cliente;
    enviar, desde el segundo cliente a un grupo (106) de servidores que incluye al menos un servidor (106A, 106B, 106C; 208, 216), una solicitud (224) para acceder al recurso en nombre de la aplicacion cliente; enviar, desde el segundo cliente al grupo de servidores, el identificador de instancia de aplicacion para la aplicacion cliente; y
    acceder, por el segundo cliente, cuando se permite por el grupo (106) de servidores, al recurso en nombre de la aplicacion cliente.
  7. 7. El procedimiento de la reivindicacion 6, en el que un servidor que previamente ha concedido una solicitud para acceder al recurso desde el primer cliente en nombre de la aplicacion cliente es el servidor que ha permitido el acceso al recurso por el segundo cliente.
  8. 8. El procedimiento de la reivindicacion 6, en el que el segundo cliente envfa la solicitud en respuesta a una conmutacion por error de aplicacion cliente.
  9. 9. Un sistema para facilitar la conmutacion por error de aplicacion cliente en un entorno agrupado, comprendiendo el sistema:
    un grupo (106) de servidores que incluye al menos un servidor (106A, 106B, 106C; 208, 216) que comprende:
    al menos un procesador (502) configurado para ejecutar instrucciones ejecutables por ordenador; al menos un medio de almacenamiento legible por ordenador que almacena las instrucciones ejecutables por ordenador que cuando se ejecutan por el al menos un procesador se adaptan para realizar las siguientes etapas:
    recibir una primera solicitud (222) para acceder a un recurso (226) desde un primer cliente (102A; 202) en nombre de una aplicacion (203) cliente;
    10
    15
    20
    asociar un primer identificador de instancia de aplicacion con el recurso; permitir el acceso de la aplicacion cliente al recurso;
    recibir una segunda solicitud (224) para el recurso desde un segundo cliente (102B; 204), en el que el segundo cliente es diferente del primer cliente;
    recibir, desde el segundo cliente, un segundo identificador de instancia de aplicacion asociado con la segunda solicitud;
    determinar si el primer identificador de instancia de aplicacion y el segundo identificador de instancia de aplicacion son los mismos;
    cuando los identificadores de instancia de aplicacion primero y segundo son los mismos, realizar las etapas que comprenden:
    invalidar la primera solicitud; y
    conceder la segunda solicitud de acceso al recurso.
  10. 10. El sistema de la reivindicacion 9, en el que el sistema comprende ademas:
    el primer cliente, que comprende:
    al menos un procesador configurado para ejecutar instrucciones ejecutables por ordenador; al menos un medio de almacenamiento legible por ordenador que almacena las instrucciones ejecutables por ordenador que cuando se ejecutan por el al menos un procesador se adaptan para realizar las siguientes etapas:
    enviar la primera solicitud;
    enviar el identificador de instancia de aplicacion a un segundo cliente.
ES12829430.3T 2011-09-09 2012-09-07 Conmutación por error de clientes agrupados Active ES2626655T3 (es)

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
US201113228732 2011-09-09
PCT/US2012/054038 WO2013036697A2 (en) 2011-09-09 2012-09-07 Clustered client failover

Publications (1)

Publication Number Publication Date
ES2626655T3 true ES2626655T3 (es) 2017-07-25

Family

ID=47646871

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12829430.3T Active ES2626655T3 (es) 2011-09-09 2012-09-07 Conmutación por error de clientes agrupados

Country Status (18)

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

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
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 西安奕斯伟材料科技股份有限公司 一种通讯连接方法、装置、设备、介质及产品

Family Cites Families (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399504A (en) 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4825354A (en) 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4914570A (en) 1986-09-15 1990-04-03 Counterpoint Computers, Inc. Process distribution and sharing system for multiple processor computer system
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5202971A (en) 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US4791566A (en) 1987-03-27 1988-12-13 Digital Equipment Corporation Terminal device session management protocol
US5008853A (en) 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4891785A (en) 1988-07-08 1990-01-02 Donohoo Theodore J Method for transferring data files between computers in a network response to generalized application program instructions
US5124909A (en) 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
CA1323448C (en) 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
US5109519A (en) 1989-03-28 1992-04-28 Wang Laboratories, Inc. Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer
US5560008A (en) 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US5113519A (en) 1989-05-15 1992-05-12 International Business Machines Corporation Maintenance of file attributes in a distributed data processing system
US5218696A (en) 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5261051A (en) 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
US5265261A (en) 1989-08-14 1993-11-23 Microsoft Corporation Method and system for network communications using raw mode protocols
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
US6438691B1 (en) 1996-04-01 2002-08-20 Hewlett-Packard Company Transmitting messages over a network
RU2118051C1 (ru) * 1996-04-30 1998-08-20 Лихачев Александр Геннадьевич Способ доступа к ресурсам "всемирной паутины" через шлюзы-представители
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
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
US6453354B1 (en) 1999-03-03 2002-09-17 Emc Corporation File server system using connection-oriented protocol and sharing data sets among data movers
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
WO2000068856A2 (en) 1999-05-11 2000-11-16 Webvan Group, Inc. Electronic commerce enabled delivery system and method
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
JPWO2001077844A1 (ja) * 2000-04-10 2004-04-30 富士通株式会社 情報処理システム及び方法並びにサーバ
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
JP2002328828A (ja) 2001-04-27 2002-11-15 Fujitsu Ltd ストレージサービス方法、ストレージサービスユーザ及びストレージサービスプロバイダ
JP3797236B2 (ja) 2001-04-27 2006-07-12 日本ビクター株式会社 記録再生装置および記録再生方法
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
DE60214590T2 (de) 2001-12-07 2007-09-13 Research In Motion Ltd., Waterloo Verfahren und vorrichtung zur steuerung der informationsverteilung zu mobilstationen
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 ソニー株式会社 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
WO2003105439A1 (en) 2002-06-10 2003-12-18 Caplin Systems Limited Resource management
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
US7290141B2 (en) 2002-06-27 2007-10-30 Nokia, Inc. Authentication of remotely originating network messages
AU2003246189A1 (en) * 2002-07-01 2004-01-19 Kabushiki Kaisha Toshiba Seamless system, recording medium, computer system processing continuation method
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
US6928577B2 (en) 2002-07-29 2005-08-09 Eternal Systems, Inc. Consistent message ordering for semi-active and passive replication
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
US7664991B1 (en) * 2002-12-17 2010-02-16 Symantec Operating Corporation System and method for distributed file system I/O recovery
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 株式会社エヌ・ティ・ティ・ドコモ 通信システム、データ送信方法、通信装置、プログラムおよび記録媒体
US7571463B1 (en) * 2003-01-24 2009-08-04 Nortel Networks Limited Method an apparatus for providing a scalable and secure network without point to point associations
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
US7526640B2 (en) 2003-06-30 2009-04-28 Microsoft Corporation System and method for automatic negotiation of a security protocol
US7698115B2 (en) 2003-06-30 2010-04-13 Microsoft Corporation System and method for dynamically allocating resources in a client/server environment
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
JP4490917B2 (ja) 2003-07-24 2010-06-30 パナソニック株式会社 ファイル管理方法及び情報処理装置
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
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
US7177941B2 (en) 2003-12-11 2007-02-13 International Business Machines Corporation Increasing TCP re-transmission process speed
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
EP1728249B1 (en) 2004-03-17 2008-08-27 Koninklijke Philips Electronics N.V. Method and device for scanning a disc-shaped information storage medium
US7444536B1 (en) 2004-04-16 2008-10-28 Sun Microsystems, Inc. RMI-IIOP request failover mechanism
US7627627B2 (en) 2004-04-30 2009-12-01 Hewlett-Packard Development Company, L.P. Controlling command message flow in a network
US20050246803A1 (en) 2004-04-30 2005-11-03 Spencer Andrew M Peripheral device for processing data from a computing device
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
US7418709B2 (en) 2004-08-31 2008-08-26 Microsoft Corporation URL namespace to support multiple-protocol processing within worker processes
US7418712B2 (en) 2004-08-31 2008-08-26 Microsoft Corporation Method and system 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
WO2006084503A1 (en) 2005-02-08 2006-08-17 Telefonaktiebolaget Lm Ericsson (Publ) On-demand multi-channel streaming session over packet-switched networks
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
EP1727055B1 (en) 2005-05-25 2016-09-07 Microsoft Technology Licensing, LLC Data communication coordination with sequence numbers
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
EP1727056B1 (en) 2005-05-25 2008-11-05 Microsoft Corporation Data communication protocol
RU2313824C2 (ru) * 2005-09-26 2007-12-27 Михаил Васильевич Беляев Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса
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
US7526668B2 (en) 2006-06-08 2009-04-28 Hitachi, Ltd. Failover method of remotely-mirrored clustered file servers
US20090077097A1 (en) 2007-04-16 2009-03-19 Attune Systems, Inc. File Aggregation in a Switched File System
US20090193410A1 (en) 2007-09-28 2009-07-30 Xcerion Aktiebolag Network operating system
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

Also Published As

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

Similar Documents

Publication Publication Date Title
ES2626655T3 (es) Conmutación por error de clientes agrupados
US20210382859A1 (en) System and method for connection concentration in a database environment
CN114787781B (zh) 用于启用高可用性受管理故障转移服务的系统和方法
US9218299B2 (en) Recovering data segment contents in a distributed shared memory
EP3834088B1 (en) One-sided reliable remote direct memory operations
US20140143367A1 (en) Robustness in a scalable block storage system
US20200257790A1 (en) Provisioning persistent, dynamic and secure cloud services
BR112017011541B1 (pt) Método para processar uma solicitação de bloqueio, aparelho de gerenciamento de solicitação de bloqueio e servidor
US10419390B2 (en) Using dynamic host configuration protocol to protect data
US10996873B2 (en) System and method for I/O fencing based on storage array access control list
NZ622122B2 (en) Clustered client failover