SlideShare ist ein Scribd-Unternehmen logo
1 von 26
RPC
Llamada a Procedimiento Remoto
¿QUE ES RPC?


El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento
Remoto) es un protocolo que permite a un programa de ordenador
ejecutar código en otra máquina remota sin tener que preocuparse
por las comunicaciones entre ambos. El protocolo es un gran avance
sobre los sockets usados hasta el momento. De esta manera el
programador no tenía que estar pendiente de las
comunicaciones, estando éstas encapsuladas dentro de las RPC.

Una definición formal de RPC seria:

    quot;RPC es la transferencia sincrónica de datos y control entre dos
    partes de un programa distribuido a través de espacios de
    direcciones disjuntas.“
La manera en que RPC logra hacer esto, es por medio de lo que se conoce
como STUBs. En el caso del STUB servidor, se conoce como SKELETON. Estos
Stubs y Skeletons permiten que al momento de ser invocada la función
remota esta pueda ser quot;simulada localmentequot;
Objetivos de RPC

• Proporcionar un middelware que simplifique el desarrollo de aplicaciones distribuidas
• Evitar que programador tenga que interactuar directamente con el interfaz de Sockets
• Abstraer (ocultar) los detalles relativos a la red
• El Servidor ofrece procedimientos que el cliente llama como si fueran procedimientos
locales
• Se busca ofrecer un entorno de programación lo mas similar posible a un entorno no
distribuido.
• El sistema RPC oculta los detalles de implementación de esas llamadas remotas
Implementa la llamada remota mediante un dialogo petición respuesta

-- Mensaje de petición: identifica procedimiento llamado, contiene parámetros de la
llamada
-- Mensaje de respuesta: contiene valor/es devuelto/s
se encarga de enviar/recibir mensajes para comunicar ambas partes
se encarga de gestionar los contenidos de esos mensajes (empaquetado y formateado
de datos)
Diferencias con llamadas locales (LPC)

• Punto clave: manejo de errores.
• Con RPC pueden existir fallos en servidor remoto o en la red.
• Acceso a variables globales y efectos laterales en el cliente no son posible
• Procedimiento. Remoto (servidor) no tiene acceso al espacio de direcciones
del cliente / imposibilidad de usar punteros.
• RPC impone un mayor nivel de encapsulamiento
• Los parámetros para la llamada remota no pueden pasarse por referencia
(solo por valor).
• Mayor sobrecarga en llamadas RPC (transferencia por red, aplanamiento de
datos, etc.)
• En algunos entornos se limita el intercambio de estructuras complejas, en
otros se usan métodos de aplanado/desaplanado
El mecanismo de RPC


• El stub del cliente: se encarga de empaquetar los parámetros y la solicitud, enviarlos al
intermediario en el servidor, y luego esperar la respuesta, desempaquetarla y entregarla
a la aplicación.
• El programa principal del servidor (que incluye el stub y el dispatcher). se encarga de
recibir peticiones, desempaquetar los parámetros, invocar la función solicitada, pasarle
los parámetros, luego obtener el resultado, empaquetarlo y enviarlo al cliente.
• Las rutinas de serialización de datos: Se debe tomar en cuenta que las máquinas
cliente y servidor puedan ser de arquitectura diferente (y no compatible).
 •Servicio de binding: Responsable de la transparencia de localización, gestiona la
asociación entre el nombre del procedimiento remoto (y su versión) con su localización
en la maquina servidor (dirección, puertos, skeleton, etc). Realiza la búsqueda del
skeleton de la implementación concreta del procedimiento remoto llamado por un
cliente. Ejemplos: portmapper en Sun-RPC, protocolo UDDI en servicios web, rmiregistry
en Java-RMI.
Características del Stub

La base del mecanismo RPC consiste en la introducción de “representantes” que “hacen
como si” fuesen el cliente/servidor

    •En el lado cliente, el representante del servidor se denomina Stub (o Proxy)
    •El stub es quien proporciona transparencia en la invocación del cliente
    •El stub debe poseer llamadas con la misma declaración (forma) que el servidor
    •El cliente invoca las llamadas del stub “como si” fuese el servidor
    •El stub, a través de un protocolo RPC y con unos mecanismos de
    aplanamiento, envía un mensaje al extremo remoto solicitando la “ejecución real”
    de la llamada
    •El stub, a través de un protocolo RPC y con unos mecanismos de
    desaplanamiento, recibe un mensaje del extremo remoto y recupera el “resultado”
    de la invocación.
    •El stub oculta los detalles de referencia del objeto remoto. Es decir, debe saber en
    qué dirección IP y en qué puerto hay que contactar con el extremo remoto
    •Cada procedimiento que el cliente quiera invocar a través de RPCs necesita su
    propio stub
Características del Skeleton

En el lado servidor, el representante del cliente se llama Skeleton


     •El skeleton es quien proporciona transparencia en el lado del servidor
     •El skeleton debe conocer las llamadas ofrecidas por el servidor
     •El skeleton, a través de un protocolo RPC y con unos mecanismos de
     desaplanamiento, recibe un mensaje del extremo remoto solicitando la “ejecución
     real” de la llamada
     •El skeleton invoca la llamada del servidor “como si” fuese el cliente
     •El skeleton, a través de un protocolo RPC y con unos mecanismos de
     aplanamiento, envía un mensaje al extremo remoto indicando el “resultado” de la
                                           invocación.
     Cada procedimiento que el servidor exporte a través de RPCs requiere su propio
     skeleton
La Interface

La interfaz que proporciona el servidor se refiere a la “forma” de las llamadas
exportadas por el servidor

Una interface es el principal acuerdo entre el componente de software y el cliente.

El lenguaje de definición de interfaces (IDL) fue desarrollado para que los objetos en
     lenguajes diferentes puedan invocarse entre sí.

Corba usa CORBA IDL, Sun propone XDR para su RPC, DCE usa su IDL para RPC, Microsoft
   usa DCOM IDL.
Un punto interesante. Es si estos IDLs exponen las interfaces de manera tal que sean
   comprendidos por cualquier objeto invocante.
Funcionamiento del compilador de
           interfaces
La Interface de RPC

Para la comunicación entre el servidor y el cliente, se trabaja con interfaces, que
deben ser implementadas por el servidor y/o cliente, para que los STUBs puedan
realizar la transparencia para ambos. Además esto evita que deba existir una
definición local real de la clase remota, es decir, en el cliente solo debe estar definida
la interface, no la clase remota
Ejemplos de entornos RPC

Sun-RPC (ONC-RPC: Open Network Computing-RPC): RPC muy extendido en entornos
Unix, infraestructrua sobre la que se ejecuta NFS (servicio de sistema de ficheros en
red), NIS (servicio de directorio).

DCE/RPC (Distributed Computing Environmen RPC): RPC definido por la Open Software
Foundation

Java-RMI : invocación de métodos remotos en Java

CORBA (Common Object Requesting Broker Architecture): soporta la invocación de métodos
remotos bajo un paradigma orientado a objetos en diversos lenguajes

SOAP (Simple Object Access Protocol): protocolo RPC basado en el intercambio de datos
(parámetos+resultados) en formato XML

DCOM (Distributed Component Object Model): Modelo de Objetos de Componentes
Distribuidos de Microsoft, con elementos de DCE/RPC

.NET Remoting: Infraestructura de invocación remota de .NET
Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el
cliente el que inicia el proceso solicitando al servidor que ejecute cierto
procedimiento o función y enviando éste de vuelta el resultado de dicha
operación al cliente.
Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser:
• RPC de Sun denominado ONC RPC (RFC 1057)
• RPC de OSF denominado DCE/RPC
• Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM

Aunque ninguno de estos es compatible entre sí. La mayoría de ellos utilizan un
lenguaje de descripción de interfaz (IDL) que define los métodos exportados
por el servidor.
El Modelo de Objetos de Componentes Distribuidos, es una tecnología
propietaria de Microsoft para desarrollar componentes software distribuidos
sobre varios ordenadores y que se comunican entre sí. Extiende el modelo
COM de Microsoft y proporciona el sustrato de comunicación entre la
infraestructura del servidor de aplicaciones COM+ de Microsoft.

La adición de la quot;Dquot; a COM fue debido al uso extensivo de DCE/RPC, o más
específicamente la versión mejorada de Microsoft, conocida como MSRPC.
Éste último es el más utilizado debido a que, como ya hemos comentado
en bastantes ocasiones, es el sistema operativo más utilizado y por
tanto, los servicios (la mayoría) que ofrece su empresa creadora también
lo son.

El ejemplo más común y el más claro con el que se puede explicar este
tipo de protocolo son las famosas actualizaciones de Windows. El cliente
(en este caso nuestro PC) se conecta con los servidores de Microsoft para
solicitar actualizaciones, de haber alguna de éstas, se realiza el proceso de
que caracteriza a los RPC. No solo existe este tipo de aplicación para este
tipo de protocolo en realidad son bastantes los usos que se les pueden
dar, pero este es el más sencillo y común de entender.
DCOM permite que el programador COM amplie sus componentes a través
de la red, dándoles los beneficios de la informática distribuida. Cuando el
cliente y el componente residen en el mismo equipo se comunican con la
ayuda de procedimientos de llamada local (LPC), pero a través de la red
tienen que utilizar el DCOM estándar construido por Microsoft. Los
Componentes COM a través de la red se comportan del mismo modo que si
estuviesen en la misma máquina con el cliente.
Component Object Model (COM) es una plataforma de Microsoft para
componentes de software introducida por dicha empresa en 1993. Esta
plataforma es utilizada para permitir la comunicación entre procesos y la
creación dinámica de objetos, en cualquier lenguaje de programación que
soporte dicha tecnología. El término COM es a menudo usado en el mundo
del desarrollo de software como un término que abarca las tecnologías
OLE, OLE Automation, ActiveX, COM+ y DCOM. Si bien COM fue introducido
en 1993, Microsoft no hizo énfasis en el nombre COM hasta 1997.
Esencialmente COM es una manera de implementar objetos neutral con
respecto al lenguaje, de manera que pueden ser usados en entornos distintos
de aquel en que fueron creados, a través de fronteras entre máquinas. Para
componentes bien creados, COM permite la reutilización de objetos sin
conocimiento de su implementación interna, porque fuerza a los
implementadores de componentes a proveer interfaces bien definidos que
están separados de la implementación.
Las diferentes semánticas de reserva de memoria están acomodadas
haciendo a los objetos responsables de su propia creación y destrucción por
medio del contador de referencias. Se puede hacer casting entre distintos
interfaces de un objeto por medio de la función QueryInterface(). El método
preferido de herencia en COM es la creación de subobjetos a los que se
delegan las llamadas a métodos ( llamado agregación ).
COM (Component Object Model: En este tipo de entornos las interfaces de los
componentes publican un conjunto de apuntadores a tablas de memoria (tablas
virtuales de funciones); el llamado entre componentes se hace a través de los
apuntadores, las interfaces son definidas utilizando el lenguaje IDL (Interface
Description Language). DCOM (Distributed Component Object Model) Se utiliza para
aplicaciones distribuidas, para el llamado de mensajes utiliza RPC (Remote Procedure
Call).
Autorooter

 Se trata de un gusano/troyano multi-componentes, que se aprovecha de la
vulnerabilidad en la interface RPC DCOM de Microsoft descrita como crítica en el
boletín de seguridad MS03-026 de Microsoft.

Peligrosidad: 1 - Mínima Difusión: Baja
Fecha de Alta:04-08-2003

Nombre completo: Worm.W32/Autorooter

Tipo: [Worm] - Programa que se replica copiándose entero (sin infectar otros
ficheros) en la máquina infectada, y a través de redes de ordenadores

Plataforma: [W32] - Ejecutable PE (.EXE, .SCR, .DLL) que corre en Windows de 32
bits: 95, 98, Me, NT, 2000, XP, 2003

Alias:Win32/Autorooter.A    (Enciclopedia    Virus),   Trj/Autorooter.A    (Panda
Security), CIREBOT (PerAntivirus), Backdoor.IRC.Cirebot (Symantec), Win32.RPC.A
(Computer     Associates),  Worm.Win32.Autorooter       (Kaspersky),    RPC    (F-
Secure), Downloader-DM (McAfee), Exploit-DcomRpc (McAfee), Troj/Autoroot-A
(Sophos)
Detalles del virus

Está diseñado para propagarse a través de redes locales y globales, pero sus rutinas no
están completadas en algunas de las versiones detectadas.

El nombre del gusano es tomado de los siguientes textos encontrados en su
componente principal:

rpc autorooter by ERIC RPC autorooter El gusano está compuesto por un archivo
comprimido auto extraíble, en formato Win32 SFX ZIP, de 114 Kb aprox., que incluye tres
archivos en su interior:

•rpc.exe : Es el componente principal, el gusano propiamente dicho.
•tftpd.exe : Es un servidor FTP legítimo (HaneWin TFTP server).
•rpctest.exe :Es el explotador usado para aprovecharse de la vulnerabilidad mencionada.
Cuando el paquete SFX es ejecutado, se extraen los tres archivos en el raíz de la
unidad C, y se ejecuta automáticamente el archivo principal: RPC.EXE.

RPC.EXE instala y ejecuta el servidor FTP (TFTPD.EXE), en el puerto 69, e intenta
descargar el archivo LOLX.EXE de un sitio remoto. Este último es un conocido
troyano de acceso remoto de la familia del SDBOT.
El gusano busca luego máquinas remotas e intenta establecer una conexión con el
puerto 445.
Los componentes principales están programados en Microsoft Visual Basic.

Seguramente es el prototipo de un nuevo tipo de gusano que explora las debilidades
en la interface RPC (Remote Procedure Call) que permiten la ejecución arbitraria de
código en Windows NT 4.0, 2000 y XP.
Se recomienda la instalación del parche de Microsoft y bloquear los puertos TCP
135, 139 y 445 con su cortafuegos local.
COMUNICACIÓN EN
                               RPC


                                                                  Procedimiento
B                                                                      (A)
I   Procedimiento
N        (A)
D
I
N
       Estructura
G
    ID_PARAMETERS               SKELETO
                                   N




D   Procedimiento
E        (B)                                     STUB



                    SERVIDOR                            CLIENTE

R    FUNCION X()
P
C
http://es.wikipedia.org/wiki/Component_Object_Model

http://es.wikipedia.org/wiki/Distributed_Component_Object_Model

http://es.wikipedia.org/wiki/RPC

Berger, Dan (2004). «COM: A Brief Introduction». Consultado el 6 de
febrero 2006.

Microsoft, Corp. (2006). . Consultado el 6 de febrero 2006.

Weitere ähnliche Inhalte

Was ist angesagt?

Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Shelisse De la Cruz
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de SoftwareRene Guaman-Quinche
 
Analisis de requerimientos, Ingenieria de Software
Analisis de requerimientos, Ingenieria de SoftwareAnalisis de requerimientos, Ingenieria de Software
Analisis de requerimientos, Ingenieria de SoftwareMarvin Romero
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de softwareEdgardo Rojas
 
Análisis y desarrollo de sistemas de información
Análisis y desarrollo de sistemas de informaciónAnálisis y desarrollo de sistemas de información
Análisis y desarrollo de sistemas de informaciónCaterine Ramírez Aldana
 
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosIDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosFranklin Parrales Bravo
 
Tarea1 programacion-distribuida
Tarea1 programacion-distribuidaTarea1 programacion-distribuida
Tarea1 programacion-distribuidaRJ Manayay Chavez
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Modelo OSI capa de Red
Modelo OSI capa de RedModelo OSI capa de Red
Modelo OSI capa de RedCarlos Estrada
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Unidad i-requerimientos-del-software
Unidad i-requerimientos-del-softwareUnidad i-requerimientos-del-software
Unidad i-requerimientos-del-softwareAngelina Montilla
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónNatalia Ludeña
 

Was ist angesagt? (20)

Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Base de datos distribuidos
Base de datos distribuidosBase de datos distribuidos
Base de datos distribuidos
 
Analisis de requerimientos, Ingenieria de Software
Analisis de requerimientos, Ingenieria de SoftwareAnalisis de requerimientos, Ingenieria de Software
Analisis de requerimientos, Ingenieria de Software
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de software
 
Arquitectura de aplicaciones
Arquitectura de aplicacionesArquitectura de aplicaciones
Arquitectura de aplicaciones
 
Ejemplo dfd
Ejemplo dfdEjemplo dfd
Ejemplo dfd
 
Análisis y desarrollo de sistemas de información
Análisis y desarrollo de sistemas de informaciónAnálisis y desarrollo de sistemas de información
Análisis y desarrollo de sistemas de información
 
Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosIDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
 
Tarea1 programacion-distribuida
Tarea1 programacion-distribuidaTarea1 programacion-distribuida
Tarea1 programacion-distribuida
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Modelo OSI capa de Red
Modelo OSI capa de RedModelo OSI capa de Red
Modelo OSI capa de Red
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Formato ieee830(srs lleno)
Formato ieee830(srs lleno)Formato ieee830(srs lleno)
Formato ieee830(srs lleno)
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Unidad i-requerimientos-del-software
Unidad i-requerimientos-del-softwareUnidad i-requerimientos-del-software
Unidad i-requerimientos-del-software
 
Requerimientos norma ieee830
Requerimientos norma ieee830Requerimientos norma ieee830
Requerimientos norma ieee830
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y Fragmentación
 

Andere mochten auch

Rpc (Distributed computing)
Rpc (Distributed computing)Rpc (Distributed computing)
Rpc (Distributed computing)Sri Prasanna
 
Remote procedure call on client server computing
Remote procedure call on client server computingRemote procedure call on client server computing
Remote procedure call on client server computingSatya P. Joshi
 
Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)Peter R. Egli
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure callSunita Sahu
 
Cuadro semejanzas y diferencias
Cuadro semejanzas y diferenciasCuadro semejanzas y diferencias
Cuadro semejanzas y diferenciasVioleta Hdez Schez
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure CallAbdelrahman Al-Ogail
 
remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure callsAshish Kumar
 
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Ravindra Raju Kolahalam
 
Inter process communication
Inter process communicationInter process communication
Inter process communicationRJ Mehul Gadhiya
 
Como hacer introduccion
Como hacer introduccionComo hacer introduccion
Como hacer introduccionortizximena
 

Andere mochten auch (14)

RPC - LLAMADAS REMOTAS
RPC - LLAMADAS REMOTASRPC - LLAMADAS REMOTAS
RPC - LLAMADAS REMOTAS
 
Interfaz dte dce
Interfaz dte dceInterfaz dte dce
Interfaz dte dce
 
Java Rmi
Java  RmiJava  Rmi
Java Rmi
 
Rpc (Distributed computing)
Rpc (Distributed computing)Rpc (Distributed computing)
Rpc (Distributed computing)
 
Remote procedure call on client server computing
Remote procedure call on client server computingRemote procedure call on client server computing
Remote procedure call on client server computing
 
Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure call
 
Cuadro semejanzas y diferencias
Cuadro semejanzas y diferenciasCuadro semejanzas y diferencias
Cuadro semejanzas y diferencias
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure Call
 
remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure calls
 
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]
 
Inter process communication
Inter process communicationInter process communication
Inter process communication
 
Inter Process Communication
Inter Process CommunicationInter Process Communication
Inter Process Communication
 
Como hacer introduccion
Como hacer introduccionComo hacer introduccion
Como hacer introduccion
 

Ähnlich wie RPC-Llamada a Procedimiento Remoto

Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Taty Millan
 
Conexion dinamica
Conexion dinamicaConexion dinamica
Conexion dinamicam_aguirre
 
COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDADiana
 
Sesion 08 tel202 2010-1
Sesion 08   tel202 2010-1Sesion 08   tel202 2010-1
Sesion 08 tel202 2010-1kevinXD123
 
Unidad 2
Unidad 2Unidad 2
Unidad 2rey
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosStalin Jara
 
Fundamentos de redes: 3. Funcionalidad y protocolos de la capa de aplicación
Fundamentos de redes: 3. Funcionalidad y protocolos de la capa de aplicaciónFundamentos de redes: 3. Funcionalidad y protocolos de la capa de aplicación
Fundamentos de redes: 3. Funcionalidad y protocolos de la capa de aplicaciónFrancesc Perez
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuidaTensor
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuidaTensor
 
Resumen capitulo 3
Resumen capitulo 3Resumen capitulo 3
Resumen capitulo 3jorge
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacionmauroykevin
 
Tarea 3.0.0
Tarea 3.0.0Tarea 3.0.0
Tarea 3.0.0jorge
 

Ähnlich wie RPC-Llamada a Procedimiento Remoto (20)

Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Remote Procedure Call (RPC)
Remote Procedure Call (RPC)
 
Conexion dinamica
Conexion dinamicaConexion dinamica
Conexion dinamica
 
Rpc te
Rpc teRpc te
Rpc te
 
SEMANA 6.pptx
SEMANA 6.pptxSEMANA 6.pptx
SEMANA 6.pptx
 
COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDA
 
Sesion 08 tel202 2010-1
Sesion 08   tel202 2010-1Sesion 08   tel202 2010-1
Sesion 08 tel202 2010-1
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
Fundamentos de redes: 3. Funcionalidad y protocolos de la capa de aplicación
Fundamentos de redes: 3. Funcionalidad y protocolos de la capa de aplicaciónFundamentos de redes: 3. Funcionalidad y protocolos de la capa de aplicación
Fundamentos de redes: 3. Funcionalidad y protocolos de la capa de aplicación
 
10 -capas_superiores
10  -capas_superiores10  -capas_superiores
10 -capas_superiores
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
 
Resumen capitulo 3
Resumen capitulo 3Resumen capitulo 3
Resumen capitulo 3
 
Networking
NetworkingNetworking
Networking
 
RMI en java
RMI en javaRMI en java
RMI en java
 
Edwin
EdwinEdwin
Edwin
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacion
 
Edwin
EdwinEdwin
Edwin
 
que es un socket
que es un socketque es un socket
que es un socket
 
Tarea 3.0.0
Tarea 3.0.0Tarea 3.0.0
Tarea 3.0.0
 

Kürzlich hochgeladen

EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 

Kürzlich hochgeladen (20)

EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 

RPC-Llamada a Procedimiento Remoto

  • 2. ¿QUE ES RPC? El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC. Una definición formal de RPC seria: quot;RPC es la transferencia sincrónica de datos y control entre dos partes de un programa distribuido a través de espacios de direcciones disjuntas.“
  • 3. La manera en que RPC logra hacer esto, es por medio de lo que se conoce como STUBs. En el caso del STUB servidor, se conoce como SKELETON. Estos Stubs y Skeletons permiten que al momento de ser invocada la función remota esta pueda ser quot;simulada localmentequot;
  • 4. Objetivos de RPC • Proporcionar un middelware que simplifique el desarrollo de aplicaciones distribuidas • Evitar que programador tenga que interactuar directamente con el interfaz de Sockets • Abstraer (ocultar) los detalles relativos a la red • El Servidor ofrece procedimientos que el cliente llama como si fueran procedimientos locales • Se busca ofrecer un entorno de programación lo mas similar posible a un entorno no distribuido. • El sistema RPC oculta los detalles de implementación de esas llamadas remotas Implementa la llamada remota mediante un dialogo petición respuesta -- Mensaje de petición: identifica procedimiento llamado, contiene parámetros de la llamada -- Mensaje de respuesta: contiene valor/es devuelto/s se encarga de enviar/recibir mensajes para comunicar ambas partes se encarga de gestionar los contenidos de esos mensajes (empaquetado y formateado de datos)
  • 5. Diferencias con llamadas locales (LPC) • Punto clave: manejo de errores. • Con RPC pueden existir fallos en servidor remoto o en la red. • Acceso a variables globales y efectos laterales en el cliente no son posible • Procedimiento. Remoto (servidor) no tiene acceso al espacio de direcciones del cliente / imposibilidad de usar punteros. • RPC impone un mayor nivel de encapsulamiento • Los parámetros para la llamada remota no pueden pasarse por referencia (solo por valor). • Mayor sobrecarga en llamadas RPC (transferencia por red, aplanamiento de datos, etc.) • En algunos entornos se limita el intercambio de estructuras complejas, en otros se usan métodos de aplanado/desaplanado
  • 6. El mecanismo de RPC • El stub del cliente: se encarga de empaquetar los parámetros y la solicitud, enviarlos al intermediario en el servidor, y luego esperar la respuesta, desempaquetarla y entregarla a la aplicación. • El programa principal del servidor (que incluye el stub y el dispatcher). se encarga de recibir peticiones, desempaquetar los parámetros, invocar la función solicitada, pasarle los parámetros, luego obtener el resultado, empaquetarlo y enviarlo al cliente. • Las rutinas de serialización de datos: Se debe tomar en cuenta que las máquinas cliente y servidor puedan ser de arquitectura diferente (y no compatible). •Servicio de binding: Responsable de la transparencia de localización, gestiona la asociación entre el nombre del procedimiento remoto (y su versión) con su localización en la maquina servidor (dirección, puertos, skeleton, etc). Realiza la búsqueda del skeleton de la implementación concreta del procedimiento remoto llamado por un cliente. Ejemplos: portmapper en Sun-RPC, protocolo UDDI en servicios web, rmiregistry en Java-RMI.
  • 7. Características del Stub La base del mecanismo RPC consiste en la introducción de “representantes” que “hacen como si” fuesen el cliente/servidor •En el lado cliente, el representante del servidor se denomina Stub (o Proxy) •El stub es quien proporciona transparencia en la invocación del cliente •El stub debe poseer llamadas con la misma declaración (forma) que el servidor •El cliente invoca las llamadas del stub “como si” fuese el servidor •El stub, a través de un protocolo RPC y con unos mecanismos de aplanamiento, envía un mensaje al extremo remoto solicitando la “ejecución real” de la llamada •El stub, a través de un protocolo RPC y con unos mecanismos de desaplanamiento, recibe un mensaje del extremo remoto y recupera el “resultado” de la invocación. •El stub oculta los detalles de referencia del objeto remoto. Es decir, debe saber en qué dirección IP y en qué puerto hay que contactar con el extremo remoto •Cada procedimiento que el cliente quiera invocar a través de RPCs necesita su propio stub
  • 8. Características del Skeleton En el lado servidor, el representante del cliente se llama Skeleton •El skeleton es quien proporciona transparencia en el lado del servidor •El skeleton debe conocer las llamadas ofrecidas por el servidor •El skeleton, a través de un protocolo RPC y con unos mecanismos de desaplanamiento, recibe un mensaje del extremo remoto solicitando la “ejecución real” de la llamada •El skeleton invoca la llamada del servidor “como si” fuese el cliente •El skeleton, a través de un protocolo RPC y con unos mecanismos de aplanamiento, envía un mensaje al extremo remoto indicando el “resultado” de la invocación. Cada procedimiento que el servidor exporte a través de RPCs requiere su propio skeleton
  • 9. La Interface La interfaz que proporciona el servidor se refiere a la “forma” de las llamadas exportadas por el servidor Una interface es el principal acuerdo entre el componente de software y el cliente. El lenguaje de definición de interfaces (IDL) fue desarrollado para que los objetos en lenguajes diferentes puedan invocarse entre sí. Corba usa CORBA IDL, Sun propone XDR para su RPC, DCE usa su IDL para RPC, Microsoft usa DCOM IDL. Un punto interesante. Es si estos IDLs exponen las interfaces de manera tal que sean comprendidos por cualquier objeto invocante.
  • 11. La Interface de RPC Para la comunicación entre el servidor y el cliente, se trabaja con interfaces, que deben ser implementadas por el servidor y/o cliente, para que los STUBs puedan realizar la transparencia para ambos. Además esto evita que deba existir una definición local real de la clase remota, es decir, en el cliente solo debe estar definida la interface, no la clase remota
  • 12.
  • 13. Ejemplos de entornos RPC Sun-RPC (ONC-RPC: Open Network Computing-RPC): RPC muy extendido en entornos Unix, infraestructrua sobre la que se ejecuta NFS (servicio de sistema de ficheros en red), NIS (servicio de directorio). DCE/RPC (Distributed Computing Environmen RPC): RPC definido por la Open Software Foundation Java-RMI : invocación de métodos remotos en Java CORBA (Common Object Requesting Broker Architecture): soporta la invocación de métodos remotos bajo un paradigma orientado a objetos en diversos lenguajes SOAP (Simple Object Access Protocol): protocolo RPC basado en el intercambio de datos (parámetos+resultados) en formato XML DCOM (Distributed Component Object Model): Modelo de Objetos de Componentes Distribuidos de Microsoft, con elementos de DCE/RPC .NET Remoting: Infraestructura de invocación remota de .NET
  • 14. Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando éste de vuelta el resultado de dicha operación al cliente. Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser: • RPC de Sun denominado ONC RPC (RFC 1057) • RPC de OSF denominado DCE/RPC • Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM Aunque ninguno de estos es compatible entre sí. La mayoría de ellos utilizan un lenguaje de descripción de interfaz (IDL) que define los métodos exportados por el servidor.
  • 15. El Modelo de Objetos de Componentes Distribuidos, es una tecnología propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft y proporciona el sustrato de comunicación entre la infraestructura del servidor de aplicaciones COM+ de Microsoft. La adición de la quot;Dquot; a COM fue debido al uso extensivo de DCE/RPC, o más específicamente la versión mejorada de Microsoft, conocida como MSRPC.
  • 16. Éste último es el más utilizado debido a que, como ya hemos comentado en bastantes ocasiones, es el sistema operativo más utilizado y por tanto, los servicios (la mayoría) que ofrece su empresa creadora también lo son. El ejemplo más común y el más claro con el que se puede explicar este tipo de protocolo son las famosas actualizaciones de Windows. El cliente (en este caso nuestro PC) se conecta con los servidores de Microsoft para solicitar actualizaciones, de haber alguna de éstas, se realiza el proceso de que caracteriza a los RPC. No solo existe este tipo de aplicación para este tipo de protocolo en realidad son bastantes los usos que se les pueden dar, pero este es el más sencillo y común de entender.
  • 17. DCOM permite que el programador COM amplie sus componentes a través de la red, dándoles los beneficios de la informática distribuida. Cuando el cliente y el componente residen en el mismo equipo se comunican con la ayuda de procedimientos de llamada local (LPC), pero a través de la red tienen que utilizar el DCOM estándar construido por Microsoft. Los Componentes COM a través de la red se comportan del mismo modo que si estuviesen en la misma máquina con el cliente.
  • 18. Component Object Model (COM) es una plataforma de Microsoft para componentes de software introducida por dicha empresa en 1993. Esta plataforma es utilizada para permitir la comunicación entre procesos y la creación dinámica de objetos, en cualquier lenguaje de programación que soporte dicha tecnología. El término COM es a menudo usado en el mundo del desarrollo de software como un término que abarca las tecnologías OLE, OLE Automation, ActiveX, COM+ y DCOM. Si bien COM fue introducido en 1993, Microsoft no hizo énfasis en el nombre COM hasta 1997.
  • 19. Esencialmente COM es una manera de implementar objetos neutral con respecto al lenguaje, de manera que pueden ser usados en entornos distintos de aquel en que fueron creados, a través de fronteras entre máquinas. Para componentes bien creados, COM permite la reutilización de objetos sin conocimiento de su implementación interna, porque fuerza a los implementadores de componentes a proveer interfaces bien definidos que están separados de la implementación. Las diferentes semánticas de reserva de memoria están acomodadas haciendo a los objetos responsables de su propia creación y destrucción por medio del contador de referencias. Se puede hacer casting entre distintos interfaces de un objeto por medio de la función QueryInterface(). El método preferido de herencia en COM es la creación de subobjetos a los que se delegan las llamadas a métodos ( llamado agregación ).
  • 20. COM (Component Object Model: En este tipo de entornos las interfaces de los componentes publican un conjunto de apuntadores a tablas de memoria (tablas virtuales de funciones); el llamado entre componentes se hace a través de los apuntadores, las interfaces son definidas utilizando el lenguaje IDL (Interface Description Language). DCOM (Distributed Component Object Model) Se utiliza para aplicaciones distribuidas, para el llamado de mensajes utiliza RPC (Remote Procedure Call).
  • 21.
  • 22. Autorooter Se trata de un gusano/troyano multi-componentes, que se aprovecha de la vulnerabilidad en la interface RPC DCOM de Microsoft descrita como crítica en el boletín de seguridad MS03-026 de Microsoft. Peligrosidad: 1 - Mínima Difusión: Baja Fecha de Alta:04-08-2003 Nombre completo: Worm.W32/Autorooter Tipo: [Worm] - Programa que se replica copiándose entero (sin infectar otros ficheros) en la máquina infectada, y a través de redes de ordenadores Plataforma: [W32] - Ejecutable PE (.EXE, .SCR, .DLL) que corre en Windows de 32 bits: 95, 98, Me, NT, 2000, XP, 2003 Alias:Win32/Autorooter.A (Enciclopedia Virus), Trj/Autorooter.A (Panda Security), CIREBOT (PerAntivirus), Backdoor.IRC.Cirebot (Symantec), Win32.RPC.A (Computer Associates), Worm.Win32.Autorooter (Kaspersky), RPC (F- Secure), Downloader-DM (McAfee), Exploit-DcomRpc (McAfee), Troj/Autoroot-A (Sophos)
  • 23. Detalles del virus Está diseñado para propagarse a través de redes locales y globales, pero sus rutinas no están completadas en algunas de las versiones detectadas. El nombre del gusano es tomado de los siguientes textos encontrados en su componente principal: rpc autorooter by ERIC RPC autorooter El gusano está compuesto por un archivo comprimido auto extraíble, en formato Win32 SFX ZIP, de 114 Kb aprox., que incluye tres archivos en su interior: •rpc.exe : Es el componente principal, el gusano propiamente dicho. •tftpd.exe : Es un servidor FTP legítimo (HaneWin TFTP server). •rpctest.exe :Es el explotador usado para aprovecharse de la vulnerabilidad mencionada.
  • 24. Cuando el paquete SFX es ejecutado, se extraen los tres archivos en el raíz de la unidad C, y se ejecuta automáticamente el archivo principal: RPC.EXE. RPC.EXE instala y ejecuta el servidor FTP (TFTPD.EXE), en el puerto 69, e intenta descargar el archivo LOLX.EXE de un sitio remoto. Este último es un conocido troyano de acceso remoto de la familia del SDBOT. El gusano busca luego máquinas remotas e intenta establecer una conexión con el puerto 445. Los componentes principales están programados en Microsoft Visual Basic. Seguramente es el prototipo de un nuevo tipo de gusano que explora las debilidades en la interface RPC (Remote Procedure Call) que permiten la ejecución arbitraria de código en Windows NT 4.0, 2000 y XP. Se recomienda la instalación del parche de Microsoft y bloquear los puertos TCP 135, 139 y 445 con su cortafuegos local.
  • 25. COMUNICACIÓN EN RPC Procedimiento B (A) I Procedimiento N (A) D I N Estructura G ID_PARAMETERS SKELETO N D Procedimiento E (B) STUB SERVIDOR CLIENTE R FUNCION X() P C
  • 26. http://es.wikipedia.org/wiki/Component_Object_Model http://es.wikipedia.org/wiki/Distributed_Component_Object_Model http://es.wikipedia.org/wiki/RPC Berger, Dan (2004). «COM: A Brief Introduction». Consultado el 6 de febrero 2006. Microsoft, Corp. (2006). . Consultado el 6 de febrero 2006.