Saltar al contenido

¿Qué es una operación idempotente?

Posterior a de una extensa recopilación de datos pudimos resolver este atasco que presentan muchos de nuestros lectores. Te brindamos la solución y nuestro objetivo es que sea de gran apoyo.

Solución:

En informática, una operación idempotente es aquella que no tiene ningún efecto adicional si se llama más de una vez con los mismos parámetros de entrada. Por ejemplo, eliminar un elemento de un conjunto puede considerarse una operación idempotente en el conjunto.

En matemáticas, una operación idempotente es aquella en la que f(f(x)) = f(x). por ejemplo, el abs() La función es idempotente porque abs(abs(x)) = abs(x) para todos x.

Estas definiciones ligeramente diferentes pueden reconciliarse considerando que X en la definición matemática representa el estado de un objeto, y F es una operación que puede mutar ese objeto. Por ejemplo, considere el Python set y es discard método. los discard elimina un elemento de un conjunto y no hace nada si el elemento no existe. Asi que:

my_set.discard(x)

tiene exactamente el mismo efecto que hacer la misma operación dos veces:

my_set.discard(x)
my_set.discard(x)

Las operaciones idempotentes se utilizan a menudo en el diseño de protocolos de red, donde se garantiza que una solicitud para realizar una operación se realizará al menos una vez, pero también podría ocurrir más de una vez. Si la operación es idempotente, entonces no hay daño en realizar la operación dos o más veces.

Consulte el artículo de Wikipedia sobre idempotencia para obtener más información.


La respuesta anterior anteriormente tenía algunos ejemplos incorrectos y engañosos. Los comentarios a continuación escritos antes de abril de 2014 se refieren a una revisión anterior.

Una operación idempotente puede repetirse un número arbitrario de veces y el resultado será el mismo que si se hubiera hecho una sola vez. En aritmética, sumar cero a un número es idempotente.

Se habla mucho de la idempotencia en el contexto de los servicios web “RESTful”. REST busca aprovechar al máximo HTTP para brindar a los programas acceso al contenido web y, por lo general, se establece en contraste con los servicios web basados ​​en SOAP, que simplemente canalizan los servicios de estilo de llamada de procedimiento remoto dentro de las solicitudes y respuestas HTTP.

REST organiza una aplicación web en “recursos” (como un usuario de Twitter o una imagen de Flickr) y luego usa los verbos HTTP de POST, PUT, GET y DELETE para crear, actualizar, leer y eliminar esos recursos.

La idempotencia juega un papel importante en REST. Si OBTIENES una representación de un recurso REST (por ejemplo, OBTIENES una imagen jpeg de Flickr) y la operación falla, puedes repetir OBTENER una y otra vez hasta que la operación tenga éxito. Para el servicio web, no importa cuántas veces se obtenga la imagen. Del mismo modo, si utiliza un servicio web RESTful para actualizar la información de su cuenta de Twitter, puede PONER la nueva información tantas veces como sea necesario para obtener la confirmación del servicio web. PONERLO mil veces es lo mismo que PONERLO una vez. Del mismo modo, DELETE-ing un recurso REST mil veces es lo mismo que eliminarlo una vez. Por lo tanto, la idempotencia facilita mucho la construcción de un servicio web resistente a los errores de comunicación.

Otras lecturas: RESTful Web Services, de Richardson y Ruby (la idempotencia se analiza en las páginas 103-104), y la tesis doctoral de Roy Fielding sobre REST. Fielding fue uno de los autores de HTTP 1.1, RFC-2616, que habla de idempotencia en la sección 9.1.2.

No importa cuántas veces llames a la operación, el resultado será el mismo.

No se te olvide comunicar este tutorial si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *