De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda
La imagen describe la comunicación entre objetos distribuidos que residen en diferentes máquinas.

En la computación distribuida , los objetos distribuidos [ cita requerida ] son objetos (en el sentido de programación orientada a objetos ) que se distribuyen en diferentes espacios de direcciones , ya sea en diferentes procesos en la misma computadora, o incluso en múltiples computadoras conectadas a través de una red , pero que trabajan juntos compartiendo datos e invocando métodos. Esto a menudo implica la transparencia de la ubicación , donde los objetos remotos tienen el mismo aspecto que los objetos locales. El método principal de comunicación de objetos distribuidos es con la invocación de método remoto., generalmente mediante el paso de mensajes: un objeto envía un mensaje a otro objeto en una máquina o proceso remoto para realizar alguna tarea. Los resultados se envían de vuelta al objeto que realiza la llamada.

Los objetos distribuidos fueron populares a finales de la década de 1990 y principios de la de 2000, pero desde entonces han caído en desgracia. [1]

El término también puede referirse generalmente a una de las extensiones del concepto de objeto básico utilizado en el contexto de la computación distribuida, como objetos replicados u objetos distribuidos en vivo .

  • Los objetos replicados son grupos de componentes de software ( réplicas ) que ejecutan un protocolo distribuido de múltiples partes para lograr un alto grado de coherencia entre sus estados internos y que responden a las solicitudes de manera coordinada. Al referirse al grupo de réplicas de manera conjunta como un objeto, se refleja el hecho de que la interacción con cualquiera de ellas expone el mismo estado y comportamiento externamente visible.
  • Los objetos distribuidos en vivo (o simplemente objetos en vivo ) [2] generalizan elconcepto de objeto replicado a grupos de réplicas que podrían usar internamente cualquier protocolo distribuido, lo que quizás resulte en una consistencia débil entre sus estados locales. Los objetos distribuidos en vivo también se pueden definir como instancias en ejecución de protocolos distribuidos de múltiples partes, vistos desde la perspectiva orientada a objetos como entidades que tienen una identidad distinta y que pueden encapsular el estado y el comportamiento distribuidos.

Consulte también el conjunto de protocolos de Internet .

Objetos locales frente a distribuidos [ editar ]

Los objetos locales y distribuidos difieren en muchos aspectos. [3] [4] Estos son algunos de ellos:

  1. Ciclo de vida: la creación, migración y eliminación de objetos distribuidos es diferente de los objetos locales
  2. Referencia: las referencias remotas a objetos distribuidos son más complejas que simples punteros a direcciones de memoria
  3. Latencia de solicitud: una solicitud de objeto distribuido es órdenes de magnitud más lenta que la invocación del método local
  4. Activación de objetos: es posible que los objetos distribuidos no siempre estén disponibles para atender una solicitud de objeto en cualquier momento
  5. Paralelismo: los objetos distribuidos se pueden ejecutar en paralelo.
  6. Comunicación: hay diferentes primitivas de comunicación disponibles para solicitudes de objetos distribuidos.
  7. Falla: los objetos distribuidos tienen muchos más puntos de falla que los objetos locales típicos.
  8. Seguridad: la distribución los hace vulnerables a los ataques.

Ejemplos [ editar ]

Las facilidades RPC del protocolo de serialización multiplataforma, Cap'n Proto, equivalen a un protocolo de objeto distribuido. Las llamadas a métodos de objetos distribuidos se pueden ejecutar (encadenar, en una sola solicitud de red, si es necesario) a través de referencias / capacidades de interfaz . [5]

Los objetos distribuidos se implementan en Objective-C mediante la API Cocoa con la clase NSConnection y los objetos de apoyo.

Los objetos distribuidos se utilizan en Java RMI .

CORBA permite construir sistemas distribuidos de objetos mixtos.

DCOM es un marco para objetos distribuidos en la plataforma de Microsoft.

DDObjects es un marco para objetos distribuidos que utilizan Borland Delphi.

Jt es un marco para componentes distribuidos que utiliza un paradigma de mensajería.

JavaSpaces es una especificación de Sun para una memoria compartida distribuida (basada en el espacio)

Pyro es un marco para objetos distribuidos que utilizan el lenguaje de programación Python .

Distributed Ruby (DRb) es un marco para objetos distribuidos que utilizan el lenguaje de programación Ruby .

Ver también [ editar ]

Referencias [ editar ]

  1. ^ Microservicios y la primera ley de objetos distribuidos , Martin Fowler, 13 de agosto de 2014
  2. ^ Ostrowski, K., Birman, K., Dolev, D. y Ahnn, J. (2008). "Programación con objetos distribuidos en vivo", Actas de la 22ª Conferencia Europea sobre Programación Orientada a Objetos , Paphos, Chipre, 07-11 de julio de 2008, J. Vitek, Ed., Lecture Notes in Computer Science , vol. 5142, Springer-Verlag, Berlín, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536 .
  3. ^ W. Emmerich (2000) Ingeniería de objetos distribuidos, John Wiley & Sons Ltd.
  4. ^ Samuel C. Kendall, Jim Waldo , Ann Wollrath y Geoff Wyant. 1994. Una nota sobre la informática distribuida. Reporte técnico. Sun Microsystems, Inc., Mountain View, CA, Estados Unidos.
  5. ^ https://kentonv.github.io/capnproto/rpc.html