Tema 4: INVOCACIÓN REMOTA
|
|
|
- Agustín Maldonado Valverde
- hace 10 años
- Vistas:
Transcripción
1 Tema 4: INVOCACIÓN REMOTA E. U. Informática en Segovia Departamento de Informática Universidad de Valladolid SD_TE04_ EUI-SG/INFOR.UVA.ES 1
2 4.1 Introducción Invocación remota: integra programas con arquitectura cliente/servidor y lenguajes de programación Invocación remota (IR) modelada a imagen de invocación local (IL). Diferencia algún módulo ejecutado remotamente Módulo = servicio Exporta procedimientos y métodos que Proveen un conjunto de operaciones sobre Una clase de recursos con Interfaz que especifica accesibilidad de operaciones y variables IR proporciona a aplicaciones: Un modelo de programación a alto nivel Transparencia de ubicación Independencia de protocolos, sistemas operativos, hardware... SD_TE04_ EUI-SG/INFOR.UVA.ES 2
3 Interfaz de la invocación remota Diferencias IR - IL: Argumentos de entrada siempre por valor (referencia requiere IDL) Sin paso de punteros (espacios de direcciones no coincidentes) Un módulo de un proceso no accede a las variables de otro módulo de otro proceso (encapsulamiento) Definición de la interfaz: Integrar el interfaz en el lenguaje: Java RMI Utilizar un lenguaje de definición de interfaz (IDL): Sun RPC, que define un IDL para RPC (Remote Procedure Call) Corba IDL, que define un IDL para RMI (Remote Method Invocation) La interfaz define: Los nombres de los métodos Argumentos: tipos y movimientos (de entrada, salida o entrada/salida) SD_TE04_ EUI-SG/INFOR.UVA.ES 3
4 Diseño de la invocación remota En IL tiempo de espera por respuesta ilimitado inaceptable en IR Semántica basada en un protocolo petición-respuesta. Diferentes fuentes de error (el mensaje de petición no llega, el mensaje de respuesta no se recibe, el resultado de la operación se modifica si se reejecuta,...) Diferentes alternativas para tratar los posibles errores: Uso de temporizadores + reenvíos (en origen), para evitar pérdida de mensajes petición Reejecución (en destino), para evitar pérdida de mensajes de petición (relativas a operaciones idempotentes, es decir, aquellas en las que no se altera el resultado si se reejecutan) Mantenimiento historial peticiones + filtrado + retransmisión (en destino), para evitar reejecución de operaciones no idempotentes Tres tipos de semántica de IR: Semántica de IR Reintento Filtrado Reejecución tal-vez No - - al-menos-una-vez Sí No Reejecución como-mucho-una-vez Sí Sí Retransmisión SD_TE04_ EUI-SG/INFOR.UVA.ES 4
5 Semántica tal-vez (maybe): el cliente espera un rato y sigue con su procesamiento normal al cabo de un tiempo sin saber qué ocurrió: Se cayó el servidor No llegó la solicitud Se perdió la respuesta No es aceptable Semántica al-menos-una-vez (at-least-once): el cliente reintenta tras temporización. El servidor no filtra duplicados. El cliente recibe una o más respuestas. Sólo válido para operaciones idempotentes (la reiteración de la misma operación no altera el resultado final) Ejemplo operaciones idempotentes: Sumar(a, b); UnionConjuntos(A,B) Ejemplo operaciones no idempotentes: Concatenar(lista1, lista2) Semántica como-mucho-una-vez (at-most-once): cliente reintenta tras temporización. El servidor filtra duplicados servicio de historial en servidor El proceso en el servidor se puede ejecutar una o cero veces: Una vez: el servidor no cayó y el cliente recibió una respuesta Cero veces: el cliente recibe algún tipo de informe de error SD_TE04_ EUI-SG/INFOR.UVA.ES 5
6 4.2. Llamada a Procedimientos Remotos Características generales PROCESO CLIENTE PROCESO SERVIDOR Alinear argumentos Desalinear argumentos Llamada Enviar solicitud Recibir solicitud Ejecutar procedimiento Seleccionar procedimiento Retorno Recibir respuesta Enviar respuesta Retornar Cliente Desalinear resultados Suplente del cliente Módulo de comunic. Módulo de comunic. Repartidor Alinear resultados Bandera del servidor Procedimiento de servicio Esquema general de Llamada a Procedimientos Remotos (RPC) SD_TE04_ EUI-SG/INFOR.UVA.ES 6
7 Componentes necesarios: Procedimiento suplente (stub del cliente): Alinear los argumentos de entrada Enviar la solicitud Esperar la respuesta Desalinear los argumentos de salida Procedimiento bandera (stub del servidor): Desalinear los argumentos de entrada Llamar al procedimiento correspondiente Alinear los argumentos de salida Enviar la respuesta Procedimiento repartidor (dispatcher): Averigua la identidad del procedimiento remoto Llama al stub que corresponda Para esto: compilador de IDL (Interface Definition Language) SD_TE04_ EUI-SG/INFOR.UVA.ES 7
8 Compilador de IDL: a partir de la definición de interfaz se consiguen Stubs de cliente y servidor Repartidor Cabeceras de los procedimientos del servidor para ser usadas en el cliente Filtro para los argumentos que se pueden enviar (en principio, cliente y servidor pueden ser máquinas con hardware distinto) SD_TE04_ EUI-SG/INFOR.UVA.ES 8
9 Binding (registro): servicio que establece correspondencia nombre - identificador de comunicación Funciones del binder: Asociar, a petición del servidor, el nombre del servicio, su puerto y su número de versión Buscar, a solicitud del cliente, el puerto de un servidor cuya interfaz sea de la misma versión que la del cliente Migración del servidor nuevo registro localizable por clientes Nota: migración = transferencia de un proceso en ejecución entre dos nodos Alternativas al binding: Servidor en un puerto fijo y conocido: Dado que el cliente conoce la localización del servidor, la migración de éste requiere la recompilación del cliente El cliente envía solicitud por difusión: Dado que el cliente descubre la localización del servidor, la migración de éste no requiere ningún cambio en el cliente SD_TE04_ EUI-SG/INFOR.UVA.ES 9
10 Diferencias entre IL y IR en la práctica: Llamadas diferentes: argumentos adicionales y los de siempre hay que usarlos a través de punteros Notación ligeramente distinta (se verán ejemplos en Sun RPC) Hay paquetes de usuarios que gestionan llamadas y retornos de forma análoga a las librerías de entrada/salida de Unix: Se ejecutan en el cliente, Es una capa adicional disminuye capacidad de control SD_TE04_ EUI-SG/INFOR.UVA.ES 10
11 Sun RPC Características generales: Muy conocido y extendido En algunas cosas no sigue al pie de la letra el modelo de RPC previamente expuesto Diseñado para la comunicación cliente/servidor en Sun NFS, y admite llamadas a procedimientos remotos tanto sobre TCP como sobre UDP Dos componentes fundamentales: Un lenguaje de interfaz: XDR (external Data Representation) Un compilador de interfaz: rpcgen SD_TE04_ EUI-SG/INFOR.UVA.ES 11
12 Sun XDR Interfaz definida por: Un número de programa y un número de versión. Las definiciones de procedimientos y de los tipos asociados. Cada procedimiento: Una cabecera Un número Argumentos: varios de entrada, uno de salida Número 0 de procedimiento reservado para comprobaciones Admite (con sintaxis de C): constantes, estructuras, uniones, enumeraciones, typedefs y programas /* calc.x */ program CALCULADORA version VERCALC long sum(long, long) = 1; long res(long, long) = 2; long mul(long, long) = 3; long div(long, long) = 4; = 1; = 0x ; SD_TE04_ EUI-SG/INFOR.UVA.ES 12
13 rpcgen Vemos un ejemplo sencillo: mostrar un número en el servidor. Interfaz: rpcgen compila el fichero mensaje.x y genera: /* mensaje.x */ program MENSAJE version MENSAJE_VER void escribe(int) = 1; = 1; = 9999; Stub del cliente: mensaje_clnt.c El procedimiento main con todo el binder y el repartidor del servidor: mensaje_svc.c Los procedimientos de alineación y desalineación XDR: mensaje_xdr.c, de ser necesario (aquí no hace falta) Un fichero de cabecera mensaje.h que contiene: Definiciones de constantes y tipos comunes. En este caso MENSAJE y MENSAJE_VER con el valor numérico dado Cabeceras de los procedimientos a implementar Opcionalmente, el rpcgen puede crear plantillas para el programa servidor y el cliente e incluso un Makefile SD_TE04_ EUI-SG/INFOR.UVA.ES 13
14 CLIENTE cliente.c #include mensaje.h <<include>> /* función main cliente */ int main (...) {... /* invocación stub local */ escribe_clnt(...);... 1 mensaje_clnt.c /* definición stubs cliente */ void escribe_clnt (...) {... mensaje_xdr.c /* rutinas empaquetado/alineamiento datos XDR */ bool_t xdr_xxxxx (...) {... Código escrito programador mensaje.x program MENSAJE version MENSAJE_VER void escribe(int) = 1; =1; =9999; rpcgen mensaje.h /* declaración macros y tipos */... /* declaración prototipos stubs cliente y servicios */ extern void escribe_clnt(...); extern void escribe_svc(...); 1 Invocación stub local 8 Retorno stub local 4 Invocación serv. remoto 5 Retorno serv. remoto 6 Envio mensaje respuesta 7 Recepción mensaje respuesta servidor.c #include mensaje.h <<include>> /* definición servicios: nombre impuesto */ void escribe_svc (...) {... 5 mensaje_svc.c void mensaje_prog_1(...) { 4... /* dispacher servicios / escribe_svc(...) ; /* invocación servicio*/ int main (...) {/* función main servidor */... mensaje_xdr.c /* rutinas empaquetado/alineamiento datos XDR */ bool_t xdr_xxxxx (...) {... Soporte Comunicaciones Sun RPC (LIBRERÍA S.O.) (Protocolo Petición-Respuesta) 2 Envio mensaje petición 3 Recepción mensaje petición SD_TE04_ EUI-SG/INFOR.UVA.ES SERVIDOR Código generado
15 El programa cliente El cliente importa la interfaz de servicio y llama a sus procedimientos. El binding no se hace a nivel de red: los servicios se registran en sus máquinas locales utilizando el portmapper: Hay un portmapper en cada ordenador Registra el puerto de cada servicio local a su máquina El cliente debe especificar: El ordenador del servidor El número de programa y la versión del mismo Forma de realizar la invocación: Se llama al procedimiento número x del programa y versión w de la máquina z Previamente se consulta al portmapper del servidor el puerto del servicio SD_TE04_ EUI-SG/INFOR.UVA.ES 15
16 Ejemplo de cliente: #include "mensaje.h" int main (int argc, char *argv[]) { char *host; CLIENT *clnt; void *result_1; int escribe_1_arg; if (argc < 2) { printf ("usage: %s server_hostverb++n", argv[0]); exit (1); host = argv[1]; clnt = clnt_create (host, MENSAJE, MENSAJE_VER, "udp"); if (clnt == NULL) { clnt_pcreateerror (host); exit (1); do { printf("número: "); scanf("%d",&escribe_1_arg); result_1 = escribe_1(&escribe_1_arg, clnt); if (result_1 == (void *) NULL) { clnt_perror (clnt, "call failed"); while (escribe_1_arg!= 0); clnt_destroy (clnt); exit (0); SD_TE04_ EUI-SG/INFOR.UVA.ES 16
17 La llamada se realiza a través del procedimiento suplente en el cliente: suplente = procedimiento + _ número El suplente recibe el handle del cliente, obtenido mediante clnt_create En su creación se especifica el protocolo (udp o tcp) La llamada a clnt_create consulta al portmapper El suplente invoca a clnt_call, que hace la LPR: Utiliza semántica al-menos-una-vez Otras funciones fijan la temporización entre reintentos y el tiempo de espera total Si acaba el tiempo total y no hay respuesta error SD_TE04_ EUI-SG/INFOR.UVA.ES 17
18 Prototipo de clnt_call: clnt_call(clnt, procnum, inproc, in, outproc, out, tout) CLIENT *clnt es el handle del cliente u_long procnum es el identificador del procedimiento xdrproc_t inproc, outproc son los procedimientos de alineación y desalineación de argumentos char *in, *out son los argumentos de entrada y salida struct timeval tout es el tiempo total que puede durar la llamada remota Esto se compila: gcc mensaje_client.c mensaje_clnt.c [mensaje_xdr.c] -o cliente SD_TE04_ EUI-SG/INFOR.UVA.ES 18
19 El programa servidor La implementación del servicio sigue el prototipo suministrado por rpcgen #include "mensaje.h" void * escribe_1_svc(int *argp, struct svc_req *rqstp) { static char * result; printf("número: %d\n",*argp); return (void *) &result; Argumentos: punteros a argumentos de entrada + una estructura con información sobre la invocación Resultados: puntero al argumento de salida (este caso no hay) En el stub del servidor hay un procedimiento main: Establece una comunicación (socket) para recibir las solicitudes Exporta la interfaz de servicio, comunicando al portmapper local el número del programa, y su versión. El portmapper asigna un puerto SD_TE04_ EUI-SG/INFOR.UVA.ES 19
20 El repartidor es invocado cuando se lanza el servidor como un proceso ya dado por el rpc. Funciones del repartidor: Aceptar las solicitudes de llamadas a procedimientos remotos Comprobar el número de programa y de versión Desalinear los argumentos Llamar al procedimiento correspondiente Alinear el resultado del procedimiento llamado Transmitir el mensaje de vuelta al cliente Para compilar el servidor: gcc mensaje_server.c mensaje_svc.c [mensaje_xdr.c] -o servidor SD_TE04_ EUI-SG/INFOR.UVA.ES 20
21 El enlace El servidor arranca y registra el número de programa y su versión en el portmapper local. El portmapper deberá estar ejecutándose en el servidor, en Linux es un ejecutable llamado portmap El cliente arranca y cliente averigua el número de puerto del servidor enviando una solicitud al portmapper. El enlace se establece por sockets hay que saber el puerto SD_TE04_ EUI-SG/INFOR.UVA.ES 21
22 Facilidades de nivel inferior RPC provee gran número de funcionalidades a bajo nivel: Para el cliente: En la llamada a clnt_create() se especifica el protocolo de comunicación ( tcp y udp ) clnt_control permite especificar el tiempo total permitido para que el procedimiento remoto termine y el tiempo entre reintentos Es posible utilizar un socket creado previamente para hacer la llamada Para el servidor: Se pueden registrar procedimientos a mano Se puede especificar el protocolo que usan o usar un socket previamente definido Para el cliente y el servidor: Hay utilidades para crear rutinas de alineamiento y desalineamiento de los datos y especificar que son esas las rutinas a utilizar SD_TE04_ EUI-SG/INFOR.UVA.ES 22
23 Un ejemplo completo Funcionalidad: aplicación que permite ver la primera línea de un fichero remoto El fichero rmore.x define la interfaz const MAX_CHAR=255; struct linea { char cadena[max_char]; ; struct lineaint { int error; char cadena[max_char]; ; program RMORE_PROG { version RMORE_VER { struct lineaint rmore(struct linea) = 1; = 1; = 9999; El formato de fichero para rpcgen no admite líneas #define hay que recurrir a constantes Al compilar se genera un fichero.h en el que estarán los #define Las matrices son problemáticas uso de estructuras SD_TE04_ EUI-SG/INFOR.UVA.ES 23
24 Servidor: #include "rmore.h" struct lineaint * rmore_1_svc(struct linea *argp, struct svc_req *rqstp) { static struct lineaint result; FILE *f; printf("voy a abrir fichero %s\n",argp->cadena); f = fopen(argp->cadena,"r"); if (f == NULL) { printf("error abriendo fichero %s\n",argp->cadena); result.error = 1; else { fgets(result.cadena,max_char,f); result.error = 0; fclose(f); if (result.error == 0) printf("resultado: %s",result.cadena); return &result; SD_TE04_ EUI-SG/INFOR.UVA.ES 24
25 Cliente: #include "rmore.h" void rmore_prog_1(char *host, char *fichero) { CLIENT *clnt; struct lineaint *result_1; struct linea rmore_1_arg; strcpy(rmore_1_arg.cadena,fichero); printf("fichero remoto: %s\n",rmore_1_arg.cadena); clnt = clnt_create (host, RMORE_PROG, RMORE_VER, "udp"); if (clnt == NULL) { clnt_pcreateerror (host); exit (1); result_1 = rmore_1(&rmore_1_arg, clnt); if (result_1 == (struct lineaint *) NULL) clnt_perror (clnt, "call failed"); clnt_destroy (clnt); if (result_1->error) printf("hay algún problema en el servidor\n"); else printf("resultado: %s",result_1->cadena); int main (int argc, char *argv[]) { char *host; if (argc!= 3) { printf ("uso: %s servidor fichero\n", argv[0]); exit (1); host = argv[1]; rmore_prog_1 (host, argv[2]); SD_TE04_ EUI-SG/INFOR.UVA.ES 25
26 4.3. Invocación de Métodos Remotos Características generales PROCESO CLIENTE PROCESO SERVIDOR Delegado de A Solicitud Esqueleto de A B Suplentes de A Banderas de A A Respuesta X Módulo de ROR Módulo de comunic. Módulo de comunic. Módulo de ROR Esquema general de Invocación de Métodos Remotos (RMI, Remote Method Invocation) C SD_TE04_ EUI-SG/INFOR.UVA.ES 26
27 Módulo de comunicaciones: protocolo de comunicación y semántica de invocación invocación remota igual que completamente local Para cada objeto remoto invocable: Se crea un delegado o proxy (para el cliente es como un objeto local) Invocación mensaje pasado al objeto remoto El objeto remoto ejecuta y responde sin saber que la respuesta va a ir a un cliente remoto la distancia cliente/servidor es transparente En el delegado se implementan los métodos como métodos suplentes Una clase que representa a objetos accesibles de forma remota tiene: Un esqueleto (skeleton): implementa los métodos del objeto como métodos bandera Un repartidor (dispatcher) que invoca el método bandera adecuado basándose en la identificación de éste método Forma de hacer las cosas: Interfaz delegado, repartidor y esqueleto En Java RMI, la interfaz se define como una interfaz Java estándar SD_TE04_ EUI-SG/INFOR.UVA.ES 27
28 Pasos de la invocación remota En el cliente: invocación de un método de un objeto remoto (OR) se invoca un método suplente en el delegado del OR El suplente construye y envía una solicitud con identificación del OR, la identificación del método y argumentos El módulo de comunic. del servidor (del objeto remoto) pasa la solicitud al repartidor del OR El repartidor del OR invoca el método bandera en el esqueleto El método bandera desalinea argumentos e invoca El método bandera alinea el resultado y envía respuesta al delegado El método suplente desalinea respuesta y la pasa al emisor El programa del servidor incluirá la clase de los repartidores y los esqueletos y las secciones de inicialización El programa del cliente incluirá la clase de los delegados. Para crear los métodos delegado, no se puede utilizar un constructor convencional, sino que se usan los denominados métodos factoría SD_TE04_ EUI-SG/INFOR.UVA.ES 28
29 Módulo de ROR El módulo de referencias de objetos remotas (ROR) gestiona los delegados y las RORs La mayoría de las ROR se obtienen por RMI: se busca por su nombre un objeto remoto se crea un delegado que asocia nombre textual a la referencia del objeto remoto Los delegados se crean bajo demanda : Se invoca un método de un OR que no tiene delegado Si se incluye una referencia a un OR en una respuesta el método bandera pide al módulo de ROR la referencia y la incluye en la respuesta Módulo de ROR = tabla de correspondencias identificadores locales identificadores remotos Para objetos locales accesibles por remotos: correspondencia referencia de acceso local ROR con la que se accede remotamente a dicho método Para objetos remotos accesibles por locales: correspondencia ROR del objeto remoto delegado local De esto, en el caso de Java se encarga el RMIregistry, mientras que en caso de CORBA se encarga el Naming Service SD_TE04_ EUI-SG/INFOR.UVA.ES 29
30 Recolección de basura En IL el recolector de basura (garbage collector) elimina de la memoria los objetos que ya no se usan En IR: Mantener un objeto mientras exista una ROR al mismo Cuando nadie mantenga la ROR, el objeto será liberado (siempre y cuando no haya referencias locales) Forma de realizar esto: Cuando llega una ROR a un cliente, se informará de esta ROR al servidor donde reside el OR Cuando la ROR se deja de usar, deberá informarse al servidor En un servidor, el módulo de ROR registra cuántos clientes tienen RORs de los objetos del servidor En un cliente, el módulo de ROR informa a los servidores de las incorporaciones o eliminaciones de las RORs de los objetos de dichos servidores En Java RMI el módulo de ROR de la JVM colabora con la recolección local para proporcionar recolección distribuida SD_TE04_ EUI-SG/INFOR.UVA.ES 30
31 Objetos persistentes Objeto persistente: debe sobrevivir entre activaciones de los procesos Se construyen almacenes de objetos persistentes que: Cuando dejan de ser necesarios, se desactivan (se guardan en disco de forma aplanada) Cuando se vuelven a invocar se activan (el llamante no debe percibir si ya estaba en memoria o si se ha activado) SD_TE04_ EUI-SG/INFOR.UVA.ES 31
32 Java RMI Java RMI extiende el modelo de objeto de Java a objetos distribuidos. Permite IMR de forma casi transparente: Con la misma sintaxis Se debe manejar la excepción RemoteException El OR debe implementar la interfaz Remote No es necesario un IDL, pues todo se hace definiendo una interfaz de Java estándar Si la IMR implica comunicación de objetos entre cliente y servidor, éstos deberán extender la interfaz Serializable las instancias serán alineables Instancias alineables almacenables en disco SD_TE04_ EUI-SG/INFOR.UVA.ES 32
33 Definición de la interfaz Interfaces en Java RMI como una interfaz normal: Extendiendo la interfaz java.rmi.remote Lanzando la excepción RemoteException Argumentos y resultados: tipos primitivos, objetos normales y objetos remotos (denotados por el nombre de su interfaz remota) Comunicación entre cliente y servidor Todos los argumentos de entrada salvo el resultado. Entre los argumentos: datos de tipos primitivos (alineables, por valor), objetos locales (alineables, por valor), objetos remotos (como RORs) Al alinear, cualquier objeto que implemente Remote es sustituido por su ROR y el receptor la descarga por su URL la máquina en la cual resida deberá correr algún de servidor HTTP Cuando se pasa una clase de una JVM a otra, se descarga el código: Si se pasa por valor y el receptor no posee la clase Si es remoto (referencia) y el receptor no posee la clase del delegado SD_TE04_ EUI-SG/INFOR.UVA.ES 33
34 RMIRegistry El RMIRegistry es el binder de la JVM: mantiene una tabla de correspondencias entre la ROR y el objeto local Deberá haber un registro en cualquier máquina que aloje objetos que sean accesibles de forma remota Esto no da servicios a través de red, solamente actúa de binder El RMIRegistry es accedido a través de métodos de la clase Naming, con la siguiente sintaxis: rmi://maquina:puerto/objeto donde maquina y puerto especifican la ubicación del RMIRegistry SD_TE04_ EUI-SG/INFOR.UVA.ES 34
35 Un ejemplo completo La construcción de la aplicación involucra los siguientes pasos: 1. Escribir y compilar el código Java para las interfaces 2. Escribir y compilar el código Java para la implementación de las clases accesibles remotamente 3. Generar las clases delegado y esqueleto (con los métodos suplente ybandera, respectivamente) a partir de la implementación 4. Escribir el código Java para el programa servidor 5. Escribir el código Java para el programa cliente 6. Instalar y ejecutar el sistema Ejemplo: un servidor que imprime por pantalla los mensajes que le van llegando desde el cliente SD_TE04_ EUI-SG/INFOR.UVA.ES 35
36 1. Escribir y compilar el código Java para las interfaces Definición de la interfaz: /* Mensajes.java */ public interface Mensajes extends java.rmi.remote { public void escribe(string mensaje) throws java.rmi.remoteexception; Observaciones: Se extiende la interfaz Remote Los métodos accesibles remotamente deberán lanzar la excepción RemoteException El interfaz se compila mediante $javac Mensajes.java y deberá estar disponible tanto en el servidor como en el cliente SD_TE04_ EUI-SG/INFOR.UVA.ES 36
37 2. Código Java para la implem. de las clases accesibles remotamente Esta es la implementación que habrá en el servidor: /* MensajesImpl.java */ public class MensajesImpl extends java.rmi.server.unicastremoteobject implements Mensajes { public MensajesImpl() throws java.rmi.remoteexception { super(); public void escribe(string s) throws java.rmi.remoteexception { System.out.println(s); Se usa UnicastRemoteObject para enlace con el sistema RMI Debe haber un constructor que invoque al constructor del padre para hacer el enlace RMI y la inicialización del objeto remotos (alternativa: no extender esta clase y usar exportobject()) Se compila mediante $javac MensajesImpl.java SD_TE04_ EUI-SG/INFOR.UVA.ES 37
38 3. Generar las clases delegado y esqueleto (con los métodos suplente y bandera, respectivamente) a partir de la implementación Esto se consigue utilizando el compilador RMI rmic sobre el fichero Java que incluye la implementación de las clases MensajesImpl.java: Esto generará las clases: $rmic MensajesImpl MensajesImpl_Skel (esqueleto del servidor) MensajesImpl_Stub (delegado del cliente y métodos suplente y bandera) SD_TE04_ EUI-SG/INFOR.UVA.ES 38
39 4. Escribir el código Java para el programa servidor La clase MensajesServer proporciona la funcionalidad esencial: Se compila mediante /* MensajesServer.java */ import java.rmi.naming; public class MensajesServer { public MensajesServer() { try { Mensajes c = new MensajesImpl(); Naming.rebind( "rmi://localhost:1099/mensajesservice", c); catch (Exception e) { System.out.println("Problema: " + e); public static void main(string args[]) { new MensajesServer(); $javac MensajesServer.java SD_TE04_ EUI-SG/INFOR.UVA.ES 39
40 5. Escribir el código Java para el programa cliente /* MensajesClient.java */ import java.io.*; import java.rmi.naming; import java.rmi.remoteexception; import java.net.malformedurlexception; import java.rmi.notboundexception; public class MensajesClient { public static void main(string[] args) { String mensaje =""; try { Mensajes c = (Mensajes) Naming.lookup("rmi://localhost/MensajesService"); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); do { mensaje = in.readline(); c.escribe(mensaje); while (!mensaje.startswith("fin")); catch (Exception e) { System.out.println("Problema: "+e); Se compila mediante $javac MensajesClient.java SD_TE04_ EUI-SG/INFOR.UVA.ES 40
41 6. Instalar y ejecutar el sistema En primer lugar, se debe iniciar el registro RMI en el servidor: $rmiregistry & Y se ejecutan las clases del servidor y del cliente. En el servidor: $java MensajesServer y en el cliente: $java MensajesCliente NOTA: la clase MensajesImpl_Stub fue generada a partir de la implementación del servicio (en el servidor) e incluye los métodos suplentes, necesarios en el cliente dos posibilidades: Llevar el fichero MensajesImpl_Stub.class al cliente Poner esta clase accesible en el servidor para los clientes instalar algún tipo de servicio HTTP en el servidor SD_TE04_ EUI-SG/INFOR.UVA.ES 41
Modelo de Objetos Distribuidos
Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo
Práctica 2: Java Remote Method Invocation (RMI)
Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones ([email protected]) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga
1. Visión general de RMI
1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina
SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX.
RPC RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. El RPC es una interfaz de programación de aplicación (API) disponible para el desarrollo de
Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2
Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo:
RMI [Remote Method Invocation]
RMI [Remote Method Invocation] Cuando utilizamos sockets, hemos de preocuparnos de cómo se transmiten físicamente los datos entre los extremos de una conexión (a nivel de bytes, ya que usamos los streams
Java RMI. Sistemas Distribuidos Rodrigo Santamaría
+ Java RMI Sistemas Distribuidos Rodrigo Santamaría RMI Java RMI 2 + RMI 3 Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en
Interacción entre Aplicaciones: objetos distribuidos e invocación remota
Interacción entre Aplicaciones: objetos distribuidos e invocación remota En la anterior práctica se ha visto cómo extender la funcionalidad de un servidor web incorporando servlets que atienden peticiones
en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina
Máquina A Máquina B Máquina C Lo ideal sería tener un sistema distribuido orientado a objetos que permita: 1)Invocar un método de un objeto que se localiza en otra máquina exactamente de la misma manera
JAVA RMI (REMOTE METHOD INVOCATION)
JAVA RMI (REMOTE METHOD INVOCATION) RMI RMI (Remote Method Invocation) Mecanismo RPC de Mecanismo mediante el cual los procesos cliente y servidor en una aplicación distribuida se comunican Una aplicación
Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU
Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU Contenido Interfaz Implementación Servidor Cliente Puesta en marcha de la aplicación: Compilador
Ingeniería del Software Arquitectura Física en 3 niveles
Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre
Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos
Invocación de Métodos Remotos RMI: Remote Method Invocation Prof Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos
Remote Method Invocation (RMI) de Java
Remote Method Invocation (RMI) de Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. Introducción El mecanismo RMI (Remote Method Invocation)
2.3 Llamada a procedimientos remotos (RPC)
2.3 Llamada a procedimientos remotos (RPC) (a) Concepto y objetivos Idea: Ocultar/abstraer los detalles relativos a la comunicación que son comunes a diversas aplicaciones Gestión de los diálogos petición-respuesta
FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información
FSD Práctica Invocación Remota: JavaRMI Tipo de entrega: por grupos de prácticas Fecha límite: sesión de laboratorio Lugar: Campus Digital Comentario: No hay que entregar el estudio previo Objetivo de
Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid
las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.
Práctica 4: Java Remote Method Invocation (RMI)
Práctica 4: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción Hasta el momento hemos visto aplicaciones remotas donde un cliente utiliza un objeto remoto que ha sido publicado
Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru.
Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru. 1 Paradigmas de desarrollo Desarrollo basado en protocolos Se diseña el protocolo Se elaboran los módulos para manejo
JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005
JAVA - Serializacíon / RMI (C) Philippe Roose - 2004, 2005 Serializar objetos- concepto Desde el JDK 1.1 Serializar objetos permite de escribir un objeto en un fichero como un flujo de octets (archivo
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET 3.1- ARQUITECTURA DE COMPONENTES GIS La presente tesis trata del diseño y desarrollo de una aplicación basado en el Web para servir datos geográficos
Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java
Java RMI Remote Method Invocation Invocación Remota de Métodos en Java Contenido Introducción Implementación Diseño de la interfaz remota. Implementación de la interfaz remota. Obtención de las clases
CONTENIDO. Serialización. Carga dinamica de stubs RMI AVANZADO. Callbacks. Carga dinámica de Stubs
CONTENIDO RMI AVANZADO Carga dinamica de stubs Callbacks Carga dinámica de Stubs Para tener acceso a un objeto remoto mediante RMI, el cliente debe recibir un stub serializado y deserializarlo. El stub
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Práctica 5: Common Object Request Broker Architecture CORBA
Práctica 5: Common Object Request Broker Architecture CORBA Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es entender mejor el funcionamiento de CORBA (Common Object Request Broker
RPC. Llamadas a Procedimientos Remotos (RPC) Paradigmas. Conceptos. Modelo Conceptual
Llamadas a Procedimientos Remotos (RPC) Basado en el libro Internetworking with TCP/IP. Vol III. D. E Comer y D. Stevens Algunas Ilustraciones se tomaron de Practical Unix Programming. K. Robbins y Robbins
Lab 01: Programación de Sockets en TCP
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO Departamento Académico de Informática REDES Y TELECOMUNICACIONES 2 Lab 01: Programación de Sockets en TCP Ingº Manuel Peñaloza Figueroa Dime y lo olvidaré.
Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Universidad de Oviedo / Dpto. de Informática
Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Objetivo Extender a los sistemas distribuidos el mecanismo de llamadas a procedimientos y subrutinas de los lenguajes de programación.
PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI
PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI Héctor Pérez 2 MobileTracker: Especificación El computador de la torre de control ejecuta el servicio Follower que registra los
TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA
TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura
Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
ARQUITECTURA DE DISTRIBUCIÓN DE DATOS
4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia
Tema 1. Introducción a JAVA
Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems
Java RMI. Sistemas distribuidos
Java RMI Sistemas distribuidos Entornos orientados a objetos Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí. Un programa solicita servicios invocando los
MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I 75.35. Facultad de Ingeniería, UBA. Junio 2002. Cátedra: Pablo Cosso
MICQ Facultad de Ingeniería, UBA. Junio 2002 Trabajo Práctico Final Seminario de Ingeniería en Informática I 75.35 Cátedra: Pablo Cosso Alumno: Diego Fernando Montaldo 75.300 1 de 1 Introducción Este documento
11. Algunas clases estándar de Java (II)
122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación
Práctica sobre compartición de instancias remotas.
Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)
Manual del Protocolo XML-RPC de Mensajería Negocios
Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...
8. Sentencia return y métodos
92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente
Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets
Uso de Sockets Este pequeño manual, le muestra cómo funciona el Socket Server para crear un pequeño servidor web que envía una página HTML a cualquier Navegador Web como Firefox, Internet Explorer, etc..
Clases y Objetos. Informática II Ingeniería Electrónica
Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),
COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA
COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador
ARQUITECTURAS CLIENTE/SERVIDOR
Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza 1 ARQUITECTURAS CLIENTE/SERVIDOR Conceptos básicos Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza 2 Conceptos básicos
1. Manejo de memoria estática 2. Manejo de memoria dinámica
1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo
5.1 Introducción a Servicios Web
5.1 Introducción a Servicios Web Introducción Continuando con el ejemplo de intercambio de información de películas... => Actualmente ya no es necesario implementar la solución sugerida a mano Se han estandarizado
Servicios web con SOAP y Eclipse
PRÁCTICA 8 Servicios web con SOAP y Eclipse E l objetivo de esta práctica es invocar e implementar servicios web en Java desde el entorno Eclipse. La práctica está estructurada en tres partes según se
Introducción a Java LSUB. 15 de enero de 2015 GSYC
Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios
INTRODUCCION Tema: Protocolo de la Capa de aplicación. FTP HTTP Autor: Julio Cesar Morejon Rios Qué es FTP? FTP (File Transfer Protocol) es un protocolo de transferencia de archivos entre sistemas conectados
CAPÍTULO 3 Servidor de Modelo de Usuario
CAPÍTULO 3 Servidor de Modelo de Usuario Para el desarrollo del modelado del estudiante se utilizó el servidor de modelo de usuario desarrollado en la Universidad de las Américas Puebla por Rosa G. Paredes
Las clases Java Socket y ServerSocket
Las clases Java Socket y ServerSocket Lenguajes y Herramientas de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática
Java Inicial (20 horas)
Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción
SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO
SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3
Java: Clases Abstractas e Interfaces
Clases abstractas e interfaces Java: Clases Abstractas e Interfaces Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile [email protected] A nivel conceptual,
CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa [email protected]
CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa [email protected] En este documento explicaré brevemente cómo construir un servicio web con Java Axis2 y cómo invocarlo desde un cliente
Introducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
SISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo
SISTEMAS DISTRIBUIDOS Profesor: José Luis Montoya Restrepo AGENDA El modelo Cliente Servidor. Introducción a RMI Practica Cliente Servidor utilizando RMI. Modelo Cliente Servidor El modelo Cliente Servidor
GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.
GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.
Redes (IS20) Ingeniería Técnica en Informática de Sistemas. http://www.icc.uji.es. CAPÍTULO 8: El nivel de transporte en Internet
Redes (IS20) Ingeniería Técnica en Informática de Sistemas http://www.icc.uji.es CAPÍTULO 8: El nivel de transporte en Internet ÍNDICE 1. Introducción Curso 2002-2003 - Redes (IS20) -Capítulo 8 1 1. Introducción
ENVÍO DE E-MAIL POR MEDIO DE SMTP
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA DEPARTAMENTO DE ELECTRÓNICA ELO 322: REDES DE COMPUTADORES I ENVÍO DE E-MAIL POR MEDIO DE SMTP Alumnos Ariel Mancilla G. 2521040-9 Daniel Spataris J. 2521029-8
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Conceptos básicos 1 Conceptos básicos 1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea
Introducción a las Redes de Computadoras. Obligatorio 2 2011
Introducción a las Redes de Computadoras Obligatorio 2 2011 Facultad de Ingeniería Instituto de Computación Departamento de Arquitectura de Sistemas Nota previa - IMPORTANTE Se debe cumplir íntegramente
ATEL ASESORES C.A IP Multimedia Subsystem Prof. Diógenes Marcano
SIP Capítulo 3 Pág. 1 SIP es un protocolo para señalización definido por el IETF según el RFC3261. SIP permite establecer, liberar y modificar sesiones multimedia y está basado en un modelo de transacciones
Edición de Ofertas Excel Manual de Usuario
Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE
5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI
5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI Contenidos Tutorial de Java RMI Caso de estudio: diseño e implementación de la capa modelo de MiniBank con Java RMI Arquitectura
Modulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Programación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Middleware. Introducción: capas de middleware
Middleware ] Introducción ] Representación externa de datos y empaquetado ] Protocolos de petición respuesta ] Comunicación en grupo ] Comunicación entre objetos distribuidos ] Llamada a un procedimiento
SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA
SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura
En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
El lenguaje de Programación C. Fernando J. Pereda <[email protected]>
El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por
Solución al Examen de Prácticas de Programación (Ingeniería Informática)
Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
3.9 Patrón Distributed callback
3.9 Patrón Distributed callback Motivación (1) Queremos que la aplicación de administración de los termostatos Monitorize la temperatura de algunos termostatos, avisándonos si ésta baja o sube por encima
La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la
Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes
Capítulo 5. Cliente-Servidor.
Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor
Arquitectura de sistema de alta disponibilidad
Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los
Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República
Web Services en Java Taller de Programación Instituto de Computación Facultad de Ingeniería Universidad de la República Contenido Motivación y Conceptos Funcionamiento Annotations Desarrollando una aplicación
CORBA desde Java. Diego Sevilla Ruiz Sistemas Distribuidos. 1. Introducción
CORBA desde Java Diego Sevilla Ruiz Sistemas Distribuidos Índice 1. Introducción 1 2. Primeros pasos 1 2.1. Fichero IDL................................... 1 2.2. Cliente......................................
UNIVERSIDAD DE SALAMANCA
UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA
Cliente/Servidor en Java
Cliente/Servidor en Java Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Introducción: 1. Paradigma cliente/servidor 2. Entorno
SISTEMAS DISTRIBUIDOS
Sesión 5: Tema 8: Objetos Distribuidos e Invocación Remota. Java RMI SISTEMAS DISTRIBUIDOS GRADO EN INGENIERÍA INFORMÁTICA UNED Introducción Índice (1/2) Modelos de programación de aplicaciones distribuidas.
Examen de Redes - ETSIA 9 de septiembre - Primer Parcial
Apellidos, Nombre: Grupo: Examen de Redes - ETSIA 9 de septiembre - Primer Parcial AUTORIZO a los profesores de la asignatura Redes de 2º curso de la ETSIA a publicar las calificaciones de los exámenes
Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código
Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación
TEMA: PROTOCOLOS TCP/IP
TEMA: PROTOCOLOS TCP/IP HISTORIA: El Protocolo de Internet (IP) y el Protocolo de Transmisión (TCP), fueron desarrollados inicialmente en 1973 por el informático estadounidense Vinton Cerf como parte de
GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD
GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...
Problemas de Redes de Computadores. Conjunto de problemas 1
Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,
Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.
Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;
SOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
TRANSFERENCIA DE FICHEROS FTP
TRANSFERENCIA DE FICHEROS FTP INTRODUCCIÓN Internet basa su funcionamiento en un conjunto de protocolos de red sin los cuales la comunicación, a cualquier nivel, sería imposible. Algunos de los protocolos
Guía de uso del Cloud Datacenter de acens
guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar
INTRODUCCIÓN A JAVA. Índice
INTRODUCCIÓN A JAVA Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía 2 1 Qué es Java? La tecnología Java
Programación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
3.1 Introducción a Wireshark
3.1 Introducción a Wireshark Una herramienta básica para observar los mensajes intercambiados entre aplicaciones es un analizador de protocolos (packet sniffer). Un analizador de protocolos es un elemento
Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:
SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas
