LLAMADO A PROCEDIMIENTOS ALMACENADO
Enviado por roxanna23 • 20 de Abril de 2014 • 2.275 Palabras (10 Páginas) • 219 Visitas
1. LLAMADA A PROCEDIMIENTOS REMOTOS (RPC) COMO MIDDLEWARE
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.
RPC fue desarrollado por Sun Microsystems, y es una colección de herramientas y funciones de librería. Ejemplos de aplicaciones construidas sobre RPC son NFS (sistema de ficheros en red), y NIS (sistema de información de red)
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 a este de vuelta el resultado de dicha operación al cliente.
ENLACE CLIENTE/SERVIDOR
El enlace especifica la relación entre un procedimiento remoto y el programa llamador.
Enlaces no persistentes:
La conexión lógica se establece entre dos procesos en el momento de la llamada remota.
Enlaces persistentes:
Una conexión se mantiene después de que el procedimiento termina. Las conexiones persistentes son enlaces que no se cierran cuando termina la ejecución del archivo de comandos. Cuando se pide una conexión persistente, PHP comprueba si hay ya una conexión persistente idéntica (que permanecía abierta desde antes) - y si existe, la usa. Si no existe, crea un enlace.
SINCRONISMO FRENTE A ASINCRONISMO
RPC síncrona:
Las llamadas tradicionales a procedimiento remoto son síncronas, lo que requiere que el proceso llamador espere hasta que el proceso llamado devuelva un valor.
Se comporta de manera muy parecida a una llamada a subrutina.
RPC asíncrona:
No bloquea al llamador.
Permite que un cliente invoque repetidamente a un servidor, generando una serie de peticiones de una vez.
DESCRIPCIÓN DE RPC:
• RPC usa el mecanismo de solicitud respuesta presentado previamente.
• Oculta los detalles relacionados con la creación envío y recepción de los mensajes.
• El cliente y el servidor se comunican mediante dos stub.
• Un stub es una interfaz de comunicación que implementa el protocolo RPC y especifica cómo se construyen y como se intercambian los mensajes.
• Los stub son generados por un compilador de protocolo y se enlazan con los clientes y los servidores.
IMPLEMENTACIÓN DE LLAMADA REMOTA:
Primer Paso: El programa cliente (o procedimiento) llama al procedimiento stub enlazado en su propio espacio de direcciones. Los parámetros pueden pasarse de la manera usual y hasta aquí el cliente no nota nada inusual en esta llamada ya que es una llamada local normal. El stub cliente reúne los parámetros y los empaqueta en un mensaje. Esta operación se conoce como reunión de argumentos (parameter marshalling).
Segundo Paso: Después que se ha construido el mensaje, se lo pasa a la capa de transporte para su transmisión.
Tercer Paso: En un sistema LAN con un servicio sin conexiones, la entidad de transporte probablemente sólo le agrega al mensaje un encabezamiento y lo coloca en la subred sin mayor trabajo. En una WAN, la transmisión real puede ser más complicada.
Cuarto Paso: Cuando el mensaje llega al servidor, la entidad de transporte lo pasa al stub del servidor que desempaqueta los parámetros.
Quinto Paso: El stub servidor llama luego al procedimiento servidor, pasándole los parámetros de manera estándar. El procedimiento servidor no tiene forma de saber que está siendo activado remotamente, debido a que se lo llama desde un procedimiento local que cumple con todas las reglas estándares. Únicamente el stub sabe que está ocurriendo algo particular.
Sexto Paso: Después que ha completado su trabajo, el procedimiento servidor retorna de la misma forma en que retornan otros procedimientos cuando terminan y, desde luego, puede retornar un resultado a un llamador.
Séptimo Paso: El stub servidor empaqueta luego el resultado en un mensaje y lo entrega a la interfaz con transporte, posiblemente mediante una llamada al sistema, al igual que en el Segundo Paso.
Octavo Paso: La respuesta retorna a la máquina cliente.
Noveno Paso: La misma se entrega al stub cliente que desempaqueta las respuestas.
Décimo Paso: Finalmente, el stub cliente retorna a su llamador, el procedimiento cliente y cualquier valor devuelto por el servidor en el paso 6, se entrega al cliente en el paso 10.
Figura
VENTAJA
• La ventaja está en que el desarrollador se preocupa de las interfaces que soporta el servidor. Para especificar dichos interfaces se dispones de un IDL (lenguaje de definición de interfaces). Los sistemas RPC disponen de mecanismos de RPC integrados en un lenguaje de programación particular que incluye además una notación para definir interfaces entre clientes y servidores (IDL específico). Un IDL permite definir el nombre de las operaciones soportadas por el servidor y sus parámetros (tipo y dirección). También se deben proveer mecanismos para manejo de excepciones, garantizar la ejecución de las operaciones, así como la detección de fallos. Todo ello de la forma más transparente posible.
• La llamada a procedimiento es una abstracción muy usada, aceptada y bien comprendida.
• Como la interfaz es estándar y está definida de forma precisa, el código de comunicaciones de una aplicación puede generarse automáticamente.
• Como la interfaz es estándar y está definida de forma precisa, los desarrolladores de software pueden escribir módulos clientes y servidores que pueden trasladarse ente computadores y sistemas operativos con pocas modificaciones.
• En RPC las llamadas a los procedimientos son sincrónicas. Esto quiere decir que cuando una aplicación hace una llamada a un procedimiento RPC debe esperar que el servidor le responda para poder continuar con el procesamiento.
Tiene dos ventajas:
• Uso de múltiples componentes: Si su aplicación distribuida depende de muchos componentes que se llaman entre sí, esto hace que la aplicación sea más susceptible a fallas.
• Balanceo de Carga y Tolerancia a fallos: Es el problema de como las aplicaciones descubren la información necesaria para poder conectarse otros servidores en el caso de que el que está utilizando falle.
DESVENTAJA
...