Desarrollo de servicios distribuidos usando gsoap

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Desarrollo de servicios distribuidos usando gsoap"

Transcripción

1 Desarrollo de servicios distribuidos usando gsoap Introducción a SOAP En los últimos años se han presentado varias plataformas de propósito general para hacer computación distribuida. El objetivo es asegurar un mínimo de seguridad, disponibilidad, escalabilidad, confiabilidad y manejabilidad en aplicaciones distribuidas. Algunos ejemplos son Charlotte, Javalin++, HARNESS, Legion y Globus (entre otros). Estas infraestructuras incluyen las tecnologías necesarias para desarrollar grids computacionales. Un grid es un entorno persistente que permite a las aplicaciones software integrar instrumentos de cualquier tipo junto con recursos computacionales y de información que son gestionados por varias organizaciones. Muchas de estas infraestructuras usan Java como el lenguaje de programación único. Este lenguaje tiene muchas características que lo hacen adecuado para computación distribuida. A pesar de la baja eficiencia de los programas Java, siempre se puede mejorar usando paquetes propietarios y mediante técnicas de compilación. Sin embargo, la integración de software de sistema, el software de tiempo real o los sistemas embebidos aún resultan problemáticos. En 1998 Microsoft, IBM y otros crearon el protocolo SOAP (Service Oriented Architecture Protocol), que se convirtió en estándar del W3C. SOAP es un formato de intercambio de mensajes bastante simple y muy ligero. SOAP define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP es uno de los protocolos utilizados en los servicios Web. Está basado en XML y es neutral tanto en cuanto al lenguaje de programación como en cuanto a la plataforma hardware. SOAP tiene un diseño que cumple el patrón cabecera desarrollo de diseño de software, como otros muchos diseños (p.ej. HTML). La cabecera Header es opcional y contiene metadatos sobre enrutamiento (routing), seguridad o transacciones. El desarrollo Body contiene la información principal, que se conoce como carga útil (payload). A diferencia de DCOM y CORBA, que son binarios, SOAP usa el código en XML. Esto es una ventaja ya que facilita su lectura por parte de humanos, pero también es un inconveniente dado que los mensajes resultantes son más largos. El intercambio de mensajes se realiza mediante tecnología de componentes. SOAP es un marco extensible y descentralizado que permite trabajar sobre múltiples pilas de protocolos de redes informáticas. Los procedimientos de llamadas remotas pueden ser modelados en la forma de varios mensajes SOAP interactuando entre sí. CORBA, DCOM y Enterprise Java permiten compartir recursos dentro de una organización, mientras que la tecnología SOAP permite compartir recursos entre organizaciones muy diferentes, con plataformas y flujos de información muy dispares, incluso estando detrás de cortafuegos. SOAP funciona sobre cualquier protocolo de Internet, generalmente HTTP, que es el único homologado por el W3C. Esto permite el desarrollo de agentes que acceden a la información en 1

2 tiempo real. Como ejemplos, cabe destacar la posibilidad de acceder a datos de un proceso de fabricación y su visualización en una PDA, el control y visualización de simulaciones desde un ordenador portátil, el acceso a bases de datos remotas, o el intercambio de resultados de un experimento de laboratorio utilizando teléfonos móviles. Qué es SOAP? SOAP significa Simple Object Access Protocol SOAP es un protocolo de comunicaciones SOAP está pensado para comunicar aplicaciones SOAP es un formato para enviar mensajes SOAP está diseñado para comunicaciones via Internet SOAP es independente de la plataforma SOAP es independente del lenguaje SOAP está basado en XML SOAP es un protocolo simple y extensible SOAP funciona aún cuando haya cortafuegos SOAP es un estándar del W3C La comunicación entre aplicaciones a través de Internet es muy importante. Hasta hace poco, las aplicaciones solían comunicarse a través de RPC (Remote Procedure Calls) entre objetos, como DCOM o CORBA, pero HTTP no se diseñó para estos procedimientos. RPC plantean problemas de compatibilidad y seguridad, además, los cortafuegos y proxys suelen bloquear este tipo de tráfico. La solución es comunicarse a través de HTTP, que es soportado por todos los navegadores y servidores. Así, SOAP representa un medio para comunicar aplicaciones que se están ejecutando en diferentes sistemas operativos, con diferentes tecnologías y lenguajes de programación. Reglas de sintaxis en SOAP Un mensaje SOAP debe codificarse usando XML Un mensaje SOAP debe usar el espacio de nombres (namespace) de SOAP Envelope Un mensaje SOAP debe usar el namespace de SOAP Encoding Un mensaje SOAP no debe contener referencias a un DTD Un mensaje SOAP no debe contener instrucciones de procesamiento XML A continuación mostramos un ejemplo de mensaje SOAP (el esqueleto básico) en el que podemos apreciar cómo se trata de un documento XML en el que la etiqueta <soap:envelope> engloba el resto del mensaje, que debe incluir la cabecera <soap:header> y el cuerpo <soap:body> : <?xml version="1.0"?> 2

3 <soap:envelope xmlns:soap=" envelope" soap:encodingstyle=" encoding"> <soap:header> </soap:header> <soap:body> <soap:fault> </soap:fault> </soap:body> </soap:envelope> Interoperabilidad del protocolo SOAP Como hemos comentado, SOAP es un protocolo de llamadas remotas neutral desde el punto de vista de la plataforma y del lenguaje de programación y que usa XML como formato. Además, usa el protocolo HTTP (lo que ahorra problemas con los cortafuegos). Estas ventajas y otras están detalladas a continuación: Ubicuidad: SOAP tiene un buen soporte en la industria, lo que le asegura poder ofrecer servicios a cualquier usuario en cualquier sitio (teléfonos móviles, PDAs, sistemas empotrados o aplicaciones de escritorio). Simplicidad: SOAP es un protocolo muy ligero basado en XML. Un ejemplo de un servicio SOAP podría ser un dispositivo con un sensor que responde a una petición enviando una cadena XML con el valor leido por el sensor. Dicho dispositivo requeriría pocos recursos computacionales y se podría incluir fácilmente en un sistema empotrado. Servicios: los servicios Web creados con SOAP ofrecen datos y servicios software a otras aplicaciones sobre Internet o en una intranet. Un servicio Web puede ser un simple script de shell o un CGI o un servidor Apache o un ASP, JSP o PHP... WSDL: el Web Service Description Language es un formato XML para describir servicios en red. Al igual que SOAP, WSDL es neutral respecto a la plataforma y el lenguaje, lo que facilita la creación automática de funciones software para desarrollar clientes en cualquier lenguaje. Esas funciones se usarían para acceder a los métodos remotos del servicio Web. UDDI: la especificación Universal Description, Discovery and Integration ofrece un servicio universal para registrar, buscar, descubrir e integrar servicios Web. WSDL complementa al UDDI, facilitando interfaces para los servicios. Transporte: un mensaje SOAP se puede enviar usando HTTP, SMTP, TCP, UDP, etc. Además puede ser enrutado utilizando diferentes protocolos de transporte entre los diferentes nodos. Seguridad: SOAP sobre HTTPS es seguro. El mensaje HTTP completo, incluyendo la 3

4 cabecera y el cuerpo del mensaje HTTP se encriptan. Además, para desarrollar sistemas de computación en grid se pueden utilizar fácilmente mecanismos de autentificación y delegación en SOAP. Cortafuegos: se pueden configurar los cortafuegos para permitir pasar los mensajes SOAP, ya que la cabecera del mensaje contiene la información sobre destino y puertos. Compresión: el protocolo HTTP 1.1 permite transferencias usando el formato GZIP, lo cual comprime los mensajes SOAP sobre la marcha. Persistencia: las aplicaciones suelen actualizarsee incluso pueden dejar de recibir soporte. Esto puede complicar la extracción de ciertos datos guardados con formatos binarios o propietarios, lo que puede significar la pérdida de información valiosa. Sin embargo, un mensaje SOAP, al estar basado en XML permite leer su contenido fácilmente (la estructura del documento XML lo hace auto descriptivo), lo que lo hace persistente. Transacciones: la cabecera del mensaje SOAP facilita el manejo de transacciones. Excepciones: SOAP soporta el manejo de excepciones remotas. Por otro lado, las posibles desventajas de SOAP son: Recogida de basura (garbage collection): no posee dicho mecanismo. Tampoco la posibilidad de hacer referencias a objetos. Representación de números en coma flotante: este formato numérico se representa en formato decimal (texto) en el XML, lo que puede suponer una pérdida de precisión. Otras codificaciones SOAP, como hexbinary y Base64 se pueden usar para codificar números en el formato estándar IEEE754, pero eso puede suponer un problema para la interoperabilidad de los sistemas (si en alguna plataforma no se usa dicha representación). A modo de ejemplo, a continuación se muestra un mensaje SOAP en formato XML. Primero vemos la forma en que un cliente solicitaría información de un producto a un proveedor de servicios Web: <soap:envelope xmlns:soap=" <soap:body> <getproductdetails xmlns=" <DECODE>ASCII</DECODE> <IP> </IP> <USER>MICUENTA</USER> <PASS>CLAVE</PASS> <BASE>MUSICA</BASE> <TABLA>CANCIONES</TABLA> <MAXREG>10</MAXREG> <PARAMETROS>[TITULO == 'ZOOROPA']</PARAMETROS> </getproductdetails> </soap:body> </soap:envelope> Y esta sería la respuesta del proveedor: <soap:envelope xmlns:soap=" <soap:body_musica> 4

5 <CANCIONES xmlns=" "> <RECORDSET_1> <TITULO>ZOOROPA</TITULO> <BANDA>U2</BANDA> <ALBUM>ZOOROPA</ALBUM> <COMENTARIO>texto y otras cosas</comentario> <TRACK>1</TRACK> </RECORDSET_1> </CANCIONES> </soap:body> </soap:envelope> Herramientas para desarrollar programas Hay bastantes herramientas de desarrollo, para muchos lenguajes de programación, que permiten trabajar con SOAP. Estas herramientas van desde simples APIs hasta SDK (software development kit) muy elaborados y completos para desarrollos SOAP tipo servidor cliente. Entre otros cabe destacar SOAP::Lite para Perl, Apache SOAP for Java, el.net SDK, y el gsoap Toolkit para C/C++. Para que una aplicación que usa SOAP forme parte de una infraestructura de computación distribuida más o menos compleja no se requiere necesariamente un SDK muy complejo y elaborado. La aplicación puede ser tan simple como un script de shell. Lenguajes como Perl permiten crear aplicaciones rápidamente utilizando las descripciones WSDL. Por ejemplo, el siguiente código corresponde a un cliente SOAP, desarrollado en Perl usando SOAP::Lite, para acceder al servicio Delayed Stock Quote de Xmethods: use SOAP::Lite; print SOAP::Lite >service(' >getquote('aol'); Un servicio SOAP sencillo para almacenar y recuperar valores, implementado en Perl podría ser algo similar a: use SOAP::Transport::HTTP; my $daemon = SOAP::Transport:: >new ( LocalPort => 8002 ) >dispatch_to( "/opt/programs/services", "Almacen", "Almacen::incluir", "Almacen::extraer"); print "Contact to SOAP server at ", join(':', $daemon >sockhost, $daemon >sockport), "\n"; $daemon >handle; Las herramientas SOAP para C++ ofrecen clases que facilitan la formación de tipos de datos SOAP a partir de los tipos nativos. Cada tipo de datos SOAP (viene a ser un esquema XML) tiene una clase en la librería. Normalmente el usuario está forzado a adaptar su aplicación a la lógica de las librerías, o bien a implementar funciones que transformen los datos específicos de la aplicación en estructuras SOAP y viceversa. 5

6 Ejemplo completo de cliente/servidor SOAP usando SOAP::Lite para Perl Para probar el ejemplo debemos contar con: Un servidor web que ejecute CGI Un intérprete de Perl en la misma máquina El módulo SOAP::Lite A continuacion mostramos un servidor simple que implementa dos metodos: saludo() y despedida() #!/usr/bin/perl w use SOAP::Transport::HTTP; SOAP::Transport:: > dispatch_to('demo') > handle; package Demo; sub saludo() { my ($class,$nombre)=@_; return "Hola $nombre, el ejemplo de SOAP::Lite funciona"; sub despedida() { return "Hasta luego"; Llamemos a este script servidor.cgi y coloquémoslo en el directorio correspondiente a los CGI de nuestro servidor. El método saludo() recibe el parámetro $nombre y construye un saludo en base al mismo. A continuación mostramos el código Perl de un cliente que llama a un servicio anterior: #!/usr/bin/perl use SOAP::Lite; my $soap = SOAP::Lite > uri(' > proxy(' bin/servidor.cgi'); my $result = $soap >saludo("juan"); if ($result >fault) { print "ERROR: ". $result >faultcode." ". $result >faultstring ; else { print $result >result(); El cliente comprueba si hubo algún error. En el ejemplo, uri es la url del servidor y el nombre del paquete (package), proxy es la url del script cgi que implementa el servidor. 6

7 Características de gsoap gsoap permite crear aplicaciones en C/C++ para compartir recursos computacionales y de información con otras aplicaciones, posiblemente a través de diferentes plataformas, lenguajes de programación, redes y organizaciones. Como resultado, aplicaciones científicas, sistemas empotrados, y software de tiempo real pueden interactuar como clientes o como servidores. En cuanto al tipo de arquitectura de red, gsoap no establece una estructura cliente servidor estricta pero tampoco establece una arquitectura P2P (peer to peer o entre pares). Para crear una infraestructura P2P independiente de la plataforma se puede usar JXTA o el.net SDK. Las características de diseño de gsoap son: Rutinas precompiladas: las funciones para (de)serialización están optimizadas y precompiladas para minimizar las inspecciones dinámicas de tipos de datos. Soporte de tipos nativos: las funciones precompiladas serializan y deserializan los tipos de datos nativos de C/C++ y los definidos por el usuario, sin necesidad de incluir información extra como etiquetas. De esta forma se pueden usar técnicas de compilación para, por ejemplo, optimizar la colocación de datos en memoria para reducir los accesos. Minimización de las operaciones con memoria: para evitar copiar repetidas veces los datos, las funciones de serialización se llevan a cabo in situ, sobre los datos nativos de la aplicación, ya estén en la pila o en el segmento de datos. Minimización del uso de la memoria: los ejecutables de un servidor o cliente típicos suelen ser pequeños (unos 150 KB). Esto permite implementar clientes y servidores en sistemas empotrados muy pequeños. Procesamiento eficiente del XML: la librería de gsoap incluye un procesador XML muy eficiente y modificado para procesar XML bajo demanda sin necesidad de mantener todo el documento en memoria. Preservación de la estructura: cuando una estructura se codifica en un mensaje SOAP y luego se decodifica en el destino, es una copia exacta del original. Sin embargo la copia puede ocupar una posición diferente dentro de la pila o del segmento de memoria. También los punteros en la copia pueden tener valores de las direcciones diferentes al original. En estructuras complejas se usa la codificación de objetos multireferenciados de SOAP. Integración de aplicaciones: el uso de funciones de transformación para tipos de datos nativos de C/C++ y del usuario permite incluir aplicaciones desarrolladas en C/C++ en clientes y servicios. Independencia de la plataforma: gsoap genera código C/C++ independiente de la plataforma para todas las funciones, por lo que se pueden obtener ejecutables para cualquier plataforma para la que exista un compilador de C/C++. 7

8 Para una descripción más detallada de estas características, se puede ampliar esta información en las siguientes páginas mantenidas por los creadores de gsoap: La interoperabilidad de gsoap se ha verificado con las siguientes herramientas o implementaciones: Apache 2.2 Apache Axis ASP.NET Cape Connect Delphi easysoap++ esoap Frontier GLUE Iona XMLBus ksoap MS SOAP Phalanx SIM SOAP::Lite SOAP4R Spray SQLData Wasp Adv. Wasp C++ White Mesa xsoap ZSI 4S4C Especificación del servicio y la funcionalidad El desarrollo de una aplicación con gsoap pasa por la creación de una especificación WSDL del servicio que después será traducida a una serie de declaraciones de función C/C++ que se guardarán en un archivo de cabecera estándar. Esta traducción hace que la interfaz del servicio (y la descripción del servicio en WSDL) sea transparente al usuario. La aplicación soapcpp incluida en el paquete gsoap lleva a cabo estas tareas, generando todos los ficheros WSDL y XML necesarios, sin que el usuario se deba preocupar por estos detalles. Un poco más adelante veremos un ejemplo completo de desarrollo de un servicio y de un cliente. Dicho servicio almacenará cadenas de caracteres y podrá recibir o enviar una cadena bajo demanda. Esto lo indicaremos en un archivo de cabecera llamado (p.ej.) funciones.h con las siguientes líneas: //gsoap ns service name: funciones //gsoap ns service style: rpc //gsoap ns service encoding: encoded //gsoap ns service namespace: //gsoap ns service location: //gsoap ns schema namespace: urn:func int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado); Realmente sólo nos interesan la primera línea (nombre del servicio) y las dos últimas que definen la cabecera de las dos funciones del servicio. El cliente de dicho servicio incluirá el archivo funciones.nsmap y simplemente debe llamar a las funciones que ofrece el servicio (anteponiendo soap_call_): 8

9 #include "soaph.h" #include "funciones.nsmap" const char server[] = " :9999"; struct soap soap; soap_init(&soap); soap_call_ns enviar(&soap, server, "", nodo, cadena, resultado); Transformación de tipos de datos nativos en mensajes SOAP La herramienta soapcpp genera las funciones para transformar y codificar los tipos de datos nativos en mensajes SOAP. Estos mensajes siguen los formatos de las versiones SOAP 1.1 y 1.2. La codificación de los tipos de datos nativos de C/C++ se hace de la siguiente forma: Tipos básicos: los tipos primitivos de C (incluidos bool, char*, wchar_t*, time_t) se codifican como los tipos primitivos XML xsd:int, xsd:double, xsd:string. Con una redefinición de tipos (typedef) podemos informar a la herramienta soapcpp cómo codificar los tipos: typedef double xsd decimal; Enumeraciones: las enumeraciones de C se reconocen y serializan usando nombres simbólicos. Estructuras: existe el tipo ComplexType para transformar las estructuras en formato XML. Clases: se usa el tipo ComplexType para transformar las clases en formato XML. Sólo hay que tener en cuenta que sólo está soportada la herencia simple. Punteros: no son parte de SOAP. Sin embargo sí están soportados los objetos multireferenciados y los objetos nil, lo que permite la serialización de estructuras que usen punteros. Arrays: los arrays de tamaño fijo están soportados a través de SOAP ENC:Array. Los arrays dinámicos se pueden usar de una forma similar. Tipos especiales: los tipos xsd:base64binary, SOAP ENC:base64 y xsd:hexbinary son útiles para transmitir datos binarios tales como imágenes. Internamente son declarados como arrays dinámicos de unsigned char. Las principales funciones de la librería de gsoap para crear nuestras aplicaciones son las que aparecen en la siguiente tabla: Función Descripción soap_new() soap_init(struct soap *soap) crea e inicializa el contexto gsoap inicializa la pila gsoap (se ejecuta sólo una vez por 9

10 programa) soap_bind(struct soap *soap, char *host, int port, int backlog) soap_accept(struct soap *soap) soap_end(struct soap *soap) soap_free_temp(struct soap *soap) soap_destroy(struct soap *soap) soap_done(struct soap *soap) soap_free(struct soap *soap) soap_serve(struct soap *soap) devuelve un socket (maxreq es el tamaño máximo de la cola de peticiones). Si host es NULL entonces host es la máquina en la que está el servicio devuelve un socket esclavo destruye los datos no serializados y datos temporales (pero no las instancias de clases) destruye los datos temporales sólamente destruye las instancias de las clases cierra los sockets maestro/esclavo libera el espacio ocupado por el contexto gsoap atiende la petición de un cliente y ejecuta la función que corresponda (de las definidas en el archivo de cabecera) Para un listado completo y más detallado de las funciones disponibles así como de las características avanzadas de gsoap y ejemplos de todo tipo, se recomienda consultar el siguiente documento: Un cliente gsoap utiliza la descripción WSDL traducida a C++ para hacer la llamada al servicio implementado en el servidor: El servidor gsoap implementa varias funciones C++ que se ajustan a la descripción WSDL. Cuando 10

11 recibe una petición en formato SOAP (documento XML), ésta se traduce a los tipos nativos de C++ y se ejecuta la función C++ asociada al servicio llamado en la petición SOAP: Desarrollo de una aplicación usando gsoap. Ejemplo En esta sección se describirán en detalle los pasos necesarios para crear un servicio SOAP sencillo y el cliente asociado. Se trata del ejemplo en el que basaremos las prácticas de esta parte del curso. Para desarrollar programas que utilicen gsoap para llevar a cabo las comunicaciones, debemos bajar el paquete gsoap linux 2.7.tgz disponible en: Debemos descomprimirlo y entrar en el directorio que habrá creado: tar xvfpz gsoap linux 2.7.tgz cd gsoap linux 2.7 Como ejemplo para esta práctica desarrollaremos un ejemplo sencillo que constará de un servidor y varios clientes. El servidor estará escuchando cierto puerto por el que aceptará conexiones para recibir o enviar cadenas a los clientes. Un cliente puede conectarse para enviarle una cadena o bien para solicitarla (en este caso, el servidor toma la más antigua de las que tiene almacenadas y la envía al cliente). Para trabajar crearemos una carpeta nueva llamada ejemplo_basico Una vez que sabemos qué funcionalidad debe tener el servidor, debemos crear el fichero 11

12 funciones.h que especificará las funciones a las que se puede acceder, y los parámetros que se esperan. El contenido del fichero será similar al siguiente: //gsoap ns service name: funciones //gsoap ns service style: rpc //gsoap ns service encoding: encoded //gsoap ns service namespace: //gsoap ns service location: //gsoap ns schema namespace: urn:func int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado); Vemos que en este ejemplo sólo permitimos dos tipos de acceso al servidor: para enviar un nuevo valor y para recibirlo. Una vez tenemos el fichero funciones.h debemos compilarlo para que gsoap nos genere todos los ficheros necesarios para manejar las comunicaciones:../bin/soapcpp2 funciones.h ** The gsoap Stub and Skeleton Compiler for C and C a ** Copyright (C) , Robert van Engelen, Genivia Inc. ** All Rights Reserved. This product is provided "as is", without any warranty. ** The gsoap compiler is released under one of the following three licenses: ** GPL, the gsoap public license, or the commercial license by Genivia Inc. Saving soapstub.h Saving soaph.h Saving soapc.cpp Saving soapclient.cpp Saving soapclientlib.cpp Saving soapserver.cpp Saving soapserverlib.cpp Using ns service name: funciones Using ns service style: rpc Using ns service encoding: encoded Using ns service location: Using ns schema namespace: urn:calc Saving funciones.wsdl Web Service description Compliance warning: operation 'ns enviar' is not compliant with WS I Basic Profile 1.0a, reason: uses SOAP encoding Compliance warning: operation 'ns recibir' is not compliant with WS I Basic Profile 1.0a, reason: uses SOAP encoding Saving soapfuncionesproxy.h client proxy Saving soapfuncionesobject.h server object Saving funciones.enviar.req.xml sample SOAP/XML request Saving funciones.enviar.res.xml sample SOAP/XML response Saving funciones.recibir.req.xml sample SOAP/XML request Saving funciones.recibir.res.xml sample SOAP/XML response Saving funciones.nsmap namespace mapping table Saving ns.xsd XML schema Compilation successful El código del proceso cliente (fichero cliente.c) es bastante sencillo, y sólo debe tener en cuenta contactar con el servidor adecuado: #include <stdlib.h> #include <stdio.h> #include <time.h> #include <math.h> 12

13 #include <iostream> #include <fstream> #include <string> #include <vector> #include <sstream> using namespace std; #include "soaph.h" #include "funciones.nsmap" // poner la IP:PUERTO del servidor const char server[] = " :9999"; struct soap soap; int main(int argc, char **argv){ if (argc < 3){ cout << "Uso: cliente [enviar recibir] cadena nodo \n"; return 1; char *accion=argv[1]; string cadena=argv[2]; unsigned nodo = atoi(argv[3]); soap_init(&soap); string resultado; if(accion[0]=='e'){ soap_call_ns enviar(&soap, server, "", nodo, cadena, resultado); cout <<" > enviar devuelve = "<<resultado<<endl; else{ soap_call_ns recibir(&soap, server, "", nodo, resultado); cout <<" > recibir devuelve = "<<resultado<<endl; soap_destroy(&soap); soap_end(&soap); soap_done(&soap); return 0; Para compilar el cliente.c debemos usar la siguiente orden: g++ Wall O2 I.. o cliente cliente.c soapc.cpp soapclient.cpp../stdsoap2.cpp El proceso servidor (fichero servidor.c) constará de un bucle infinito en el que se aceptan conexiones SOAP y las sirve, utilizando las dos funciones creadas al principio (enviar o recibir). El servidor tiene un vector de cadenas de texto donde se van almacenando las cadenas que los clientes envían, y de donde extrae la más antigua para enviarla a un cliente que lo solicite: #include <stdlib.h> #include <stdio.h> #include <time.h> #include <math.h> #include <iostream> #include <fstream> #include <string> #include <vector> #include <sstream> using namespace std; #include "soaph.h" #include "funciones.nsmap" vector<string> almacen; 13

14 unsigned accede_nodo; int main(int argc, char **argv){ int m, s; struct soap soap; soap_init(&soap); //poner la IP y PUERTO del servidor m = soap_bind(&soap, " ", 9999, 100); if (m < 0){ soap_print_fault(&soap, stderr); exit( 1); for ( ; ; ){ s = soap_accept(&soap); if (s < 0){ soap_print_fault(&soap, stderr); exit( 1); else{ if (soap_serve(&soap)!= SOAP_OK) soap_print_fault(&soap, stderr); else cout << "servido NODO="<<accede_nodo<<" ELEMS="<<almacen.size()<<endl; soap_destroy(&soap); soap_end(&soap); return 0; // el cliente envia al servidor => insertar en el vector int ns enviar(struct soap *soap, unsigned nodo, std::string cadena, std::string &resultado){ accede_nodo = nodo; almacen.push_back( cadena ); resultado = "enviar"; return SOAP_OK; // el cliente recibe del servidor => sacar del vector y devolverlo int ns recibir(struct soap *soap, unsigned nodo, std::string &resultado){ accede_nodo = nodo; if( almacen.size() > 0 ){ resultado = (string)(almacen[0]); almacen.erase( almacen.begin(), almacen.begin()+1 ); else{ resultado="<vacio>"; return SOAP_OK; Para compilar el servidor.c debemos usar la siguiente orden: g++ Wall O2 I.. o servidor servidor.c soapc.cpp soapserver.cpp../stdsoap2.cpp lm Ahora, en la máquina que hará de servidor ejecutamos el programa servidor y en una o varias máquinas ejecutamos el programa cliente Código de ejemplo para gsoap en otros lenguajes Hemos estudiado un ejemplo en detalle para Perl y otro para C++. Sin embargo casi todos los lenguajes modernos tienen módulos para desarrollar aplicaciones compatibles con SOAP. 14

15 Veamos un ejemplo de cliente SOAP programado en Axis (programación en Java). Este cliente se supone que llamará a un servidor gsoap ya activo. El ejemplo completo se puede examinar en: El primer paso trata de la creación de las clases Java del cliente. Para ello usamos el parser WSDL (WSDL2Java) y el fichero descriptor del servicio WSDL. Esto nos generará el archivo JavaTextClient.wsdl. El valor del puerto debe ser el 1444 (tenemos que editar el archivo y asegurarnos). java org.apache.axis.wsdl.wsdl2java JavaTextClient.wsdl Se creará un directorio automáticamente en el que se alojan las clases stub, locator e interfaces. El segundo paso es crear el cliente en sí. El código debemos editarlo nosotros. A continuación mostramos cómo llamar a un método de un servicio instalado en el servidor: TextService service = new TextServiceLocator(); // use the service to get a stub which implements the SDI TextServicePortType port = service.gettextservice(); // make the actual call String response = port.processdata(stringdata); Compilamos el ejemplo: javac d build <package path>javatextclient.java y lanzamos el cliente: java <package path>javatextclient ExampleOutput_RDF Otros ejemplos (programando bajo Windows) Hay servicios web programados con gsoap bastante complejos. Un ejemplo es el desarrollo de un predictor de series temporales implementado en C++ con gsoap bajo Windows. El servicio se encuentra en: services time series forecasting tutorial cpp.ashx El tutorial detallado para el desarrollo usando Visual Studio 2005 y el código fuente está en: services time series forecasting tutorial cpp.ashx 15

16 Bibliografía A. Baratloo, M. Karaul, Z. Kedem, and P. Wyckoff. Charlotte: Metacomputing on the web. In The 9 th Int'l Conference on Parallel and Distributed Computing Systems, Beck et al. HARNESS: A next generation distributed virtual machine. Future Generation Computer Systems, 15, D. Box et al. Simple object access protocol 1.1. Technical report, W3C, I. Foster and C. Kesselman. Globus: A metacomputing infrastructure toolkit. International Jnl. of Supercomputer Applications, 11(2): , A. Grimshaw and W. Wulf. The legion vision of a worldwide virtual computer. CACM, 40(1):39 45, P. Kulchenko. Soap::lite for perl. M. Neary, S. Brydon, P. Kmiec, S. Rollins, and P. Cappello. Javalin++: Scalability issues in global computing. In ACM Java Grande, pages , San Fransisco, CA, M. Neary, B. Christansen, P. Cappello, and K. Schauser. Javalin: Parallel computing on the internet. Future Generation Computing Systems, 15: , OMG. CORBA component model. Sun Microsystems. Enterprise java beans technology. Sun Microsystems. Project JXTA: Technical specification, version 1.0, UDDI. The universal description, discovery, and integration (UDDI) specification. R. van Engelen. The gsoap toolkit 2.0. Technical report, Florida State University, XMethods. XMethods service listings

17 R. van Engelen. The gsoap toolkit 2.0. Technical report, Florida State University, P.A. Castillo, M.G.Arenas, J.C. Castellano, J. J. Merelo, V.M. Rivas, G.Romero. Optimization of Multilayer Perceptrons using a Distributed Evolutionary Algorithm with SOAP. Lecture Notes in Computer Science, Volumen 2439, pp , Springer Verlag, ISSN: Granada, 2002 J.J. Merelo; J.G. Castellano; P.A. Castillo; G. Romero. Algoritmos genéticos distribuidos usando SOAP. Actas de las XII Jornadas de Paralelismo, pp , ISBN: , Valencia, 2001 J.J. Merelo; J.G. Castellano; P.A. Castillo. Algoritmos Evolutivos P2P usando SOAP. Actas del Primer Congreso Español de Algoritmos Evolutivos y Bioinspirados (AEB02). E.Alba, F.Fernández, J.A.Gómez, F.Herrera, J.I. Hidalgo, J. Lanchares, J.J. Merelo, J.M Sánchez Editores. ISBN: pp Mérida

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado);

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado); Práctica de gsoap Para desarrollar programas que utilicen gsoap para llevar a cabo las comunicaciones, debemos bajar el paquete gsoap linux 2.7.tgz disponible en: http://atc.ugr.es/pedro/docencia/irhc/irhc.html

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

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

Más detalles

5.1 Introducción a Servicios Web

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

Más detalles

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

servicios. El API es definido al nivel de código fuente y proporciona el nivel de GLOSARIO API Application Program -ming- Interface Es la interfaz por la cual una aplicación accede al sistema operativo u a otros servicios. El API es definido al nivel de código fuente y proporciona el

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el

Más detalles

4. Base de datos XML nativa: Marklogic

4. Base de datos XML nativa: Marklogic 4. Base de datos XML nativa: Marklogic XML ha ganado con el paso de los años protagonismo a la hora de trabajar con la información. Su lenguaje fuertemente tipado permite la comunicación entre distintas

Más detalles

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS La introducción de las redes locales marca una nueva etapa en la evolución de las computadoras personales al permitir ligar varias

Más detalles

WEBSERVICES CON FIRMA DIGITAL Versión 1.2

WEBSERVICES CON FIRMA DIGITAL Versión 1.2 WEBSERVICES CON FIRMA DIGITAL Versión 1.2 FEBRERO 2007 Página: 1 1 TABLA DE CONTENIDO 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 HERRAMIENTA DE DESARROLLO ANT... 3 4 CREACION SERVICIO WEB... 3 5 CREACIÓN

Más detalles

Aplicaciones y Servicios Web (Web Services)

Aplicaciones y Servicios Web (Web Services) Aplicaciones y Servicios Web (Web Services) Joaquín Salvachúa DIT- jsalvachua@.upm.es -1- Internet NG Índice Problema a resolver Arquitectura SOAP WSDL UDDI Conclusiones -2- Internet NG Aplicaciones WEB

Más detalles

WbS Web Services. Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Web Services

WbS Web Services. Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Web Services WbS Web Services Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez mx/rogomez Lámina 1 Web Services Servicios web. Interfaz red a una aplicación basada en tecnologías internet

Más detalles

Desarrollo de Servicios Web con JBuilder

Desarrollo de Servicios Web con JBuilder Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Primera parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Febrero 2003 - (902) 123146 www.danysoft.com Desarrollo

Más detalles

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB Existen varios tipos de tecnologías para los Servidores Web, estas tecnologías se pueden dividir en 4 grupos principales que son: Tecnologías al lado del cliente

Más detalles

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto Introducción: Sobre casi cualquier tema del quehacer humano que se aborde, existen

Más detalles

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales.

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales. 1 Arquitectura de una Aplicación Android Para empezar con el desarrollo de aplicaciones en Android es importante conocer cómo está estructurado este sistema operativo. A esto le llamamos arquitectura y

Más detalles

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 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

Más detalles

FRAMEWORK 2 Creación de Servicios Web

FRAMEWORK 2 Creación de Servicios Web Creación de Versión 1.1 Área de Aplicaciones Especiales y Arquitectura de Software Página 1 de 21 Hoja de Control Título Documento Referencia Responsable de Creación de Área de Aplicaciones Especiales

Más detalles

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) APRENDERAPROGRAMAR.COM GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) Sección: Cursos Categoría: Tutorial básico del programador web: HTML desde cero Fecha

Más detalles

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor. Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios

Más detalles

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid Descarga Automática Manual de Usuario Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, 6 28014 Madrid Versión 5.2 Fecha: 2008-10-15 Ref : MU_DescargaAutomática.doc ÍNDICE 1 INTRODUCCIÓN...

Más detalles

Arquitectura cliente/servidor

Arquitectura cliente/servidor Departamento de Lenguajes y Sistemas Informáticos Arquitectura cliente/servidor Programación en Internet Curso 2007-2008 Índice Introducción Tipos de servidores Ventajas Desventajas Arquitectura de una

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

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.

Más detalles

7.1 Java vs.net, la lucha se acrecienta

7.1 Java vs.net, la lucha se acrecienta 7.1 Java vs.net, la lucha se acrecienta Java fue capaz de introducir una cuña en el negocio de herramientas de Microsoft cuando fue introducida al mercado por primera vez a mediados de los '90 porque ofrecía

Más detalles

Proyectos Finales. Redes de Computadoras. 2009. Proyecto 1. Sistema de almacenamiento virtual sobre una plataforma P2P utilizando JXTA.

Proyectos Finales. Redes de Computadoras. 2009. Proyecto 1. Sistema de almacenamiento virtual sobre una plataforma P2P utilizando JXTA. Proyectos Finales. Redes de Computadoras. 2009. Proyecto 1. Sistema de almacenamiento virtual sobre una plataforma P2P utilizando JXTA. Se trata de crear una red P2P sobre la plataforma JXTA, la cual manejará

Más detalles

APLICACIONES WEB GOOGLE ANAYLITICS

APLICACIONES WEB GOOGLE ANAYLITICS APLICACIONES WEB GOOGLE ANAYLITICS Elena Berti Rebecca Thompson 2º DAW ÍNDICE Qué es una Aplicación Web Consideraciones técnicas Estructura de las Aplicaciones Web Ventajas Inconvenientes Diferencia entre

Más detalles

1.1.- Introducción a la Web Vemos una introducción al medio donde se encajan los lenguajes que vamos a tratar: la web.

1.1.- Introducción a la Web Vemos una introducción al medio donde se encajan los lenguajes que vamos a tratar: la web. Sesión 01: Introducción a los lenguajes web COMPUTACION E INFORMATICA WEB DEVELOPPER III Competencias a Conseguir: - Introducción general a la programación web. - Conocer y diferenciar el concepto de páginas

Más detalles

Módulo 2. Inicio con Java

Módulo 2. Inicio con Java Módulo 2. Inicio con Java Objetivos: -Clasificar el lenguaje de programación Java según las formas de clasificar los lenguajes de programación. -Describir el funcionamiento de la plataforma Java. -Explicar

Más detalles

4 ARQUITECTURA DE COMUNICACIONES

4 ARQUITECTURA DE COMUNICACIONES 4 ARQUITECTURA DE COMUNICACIONES Las redes de computadoras son típicamente heterogéneas. Por ejemplo, la red interna de una universidad puede estar hecha de múltiples plataformas. Puede haber un servidor

Más detalles

En esta unidad añadiremos información sobre EXT3 y trabajaremos con aspectos visibles que nos proporcionan estos sistemas de archivos.

En esta unidad añadiremos información sobre EXT3 y trabajaremos con aspectos visibles que nos proporcionan estos sistemas de archivos. ESTRUCTURA DEL SISTEMA DE ARCHIVOS 1. Introducción. En la unidad anterior se esbozó mediante la explicación de los formatos del disco duro, distintos tipos de sistemas de archivos: FAT16, FAT32, NTFS y

Más detalles

3.1 Introducción a Wireshark

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

Más detalles

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas... .NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS Definiciones...2 C# y Java.....3 Similitudes...4 Ventajas...4 Definiciones Sobre J2EE J2EE (Java 2 Platform Enterprise Edition)

Más detalles

Desarrollo y servicios web

Desarrollo y servicios web Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2014-2 Qué vimos la clase pasada? Introducción a Big Data Introducción a bases de datos NOSQL Características bases de datos NOSQL MongoDB como motor

Más detalles

9. Objetos y clases. 9.1. Clases

9. Objetos y clases. 9.1. Clases Programación orientada a objetos con Java 103 9. Objetos y clases Objetivos: a) Presentar el concepto de objeto, clase, atributo, método e instancia b) Interpretar el código fuente de una aplicación Java

Más detalles

Acceso al Disco Compartido y Dispositivos USB y DVD

Acceso al Disco Compartido y Dispositivos USB y DVD Acceso al Disco Compartido y Dispositivos USB y DVD Los Técnicos Académicos de las carreras de Matemáticas y Actuaría del Departamento de Matemáticas en el Tlahuizcalpan, ponen a su disposición este mini-manual,

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

El proceso de edición digital en Artelope y CTCE

El proceso de edición digital en Artelope y CTCE El proceso de edición digital en Artelope y CTCE Carlos Muñoz Pons Universitat de València carlos.munoz-pons@uv.es Introducción Una de las cuestiones más importantes a la hora de trabajar en proyectos

Más detalles

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca Ing. WILSON ALFREDO ORTEGA ORDOÑEZ Ing. JUAN CARLOS MENDEZ CAMACHO Universidad del Cauca Facultad

Más detalles

vgestorweb vgestorweb 1/9

vgestorweb vgestorweb 1/9 vgestorweb Esta aplicación pretende ser un tutor y campo de pruebas para la Open App de conexión con MySQL: vmysql y las interacciones para la gestión de contenidos de una página web. Para ello utiliza

Más detalles

2524 Developing XML Web Services Using Microsoft ASP.NET

2524 Developing XML Web Services Using Microsoft ASP.NET 2524 Developing XML Web Services Using Microsoft ASP.NET Introducción La meta de este curso es de proveer a los estudiantes con el conocimiento y habilidades requeridas para desarrollar soluciones basadas

Más detalles

Squipy v1.1. 0.-Introducción

Squipy v1.1. 0.-Introducción Squipy v1.1 0.-Introducción Squipy es un sencillo proxy que permite filtrar y modificar los datos que se envían desde el navegador hacia un servidor web. El interfaz está en castellano y en inglés y su

Más detalles

Service Oriented Architecture

Service Oriented Architecture Programación Concurrente y Distribuida Ingeniería en Informática Service Oriented Architecture José Carlos Cortizo Pérez josecarlos.cortizo@uem.es http://www.esp.uem.es/jccortizo D. Sistemas Informáticos

Más detalles

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento Simple tutorial we riseup Pequeña introducción a We Riseup #Qué es we.riseup o Crabgrass? #Como esta estructurado We.riseup? Lo Esencial Unirse a un grupo Metodo 1 Metodo 2 Crear contenido #1 ) Crear la

Más detalles

Guías técnicas Grupo Danysoft: Aplicaciones Web seguras con ASP.NET

Guías técnicas Grupo Danysoft: Aplicaciones Web seguras con ASP.NET Guías técnicas Grupo Danysoft: Aplicaciones Web seguras con ASP.NET Leonardo Diez Equipo Grupo Danysoft septiembre de 2003 - (902) 123146 www.danysoft.com Este documento se ha realizado utilizando Doc-To-Help,

Más detalles

La publicación. Pere Barnola Augé P08/93133/01510

La publicación. Pere Barnola Augé P08/93133/01510 La publicación Pere Barnola Augé P08/93133/01510 FUOC P08/93133/01510 La publicación Índice Introducción... 5 1. El dominio... 7 2. Alojamiento web... 9 3. FTP... 11 3.1. Cliente FTP... 11 3.1.1. Cómo

Más detalles

1. Introducción... 3 2. Perfiles de Usuarios... 3 2.1 Definir el primer perfil... 3 3. Añadir perfiles... 6 4. Introducción a Internet... 7 4.1.

1. Introducción... 3 2. Perfiles de Usuarios... 3 2.1 Definir el primer perfil... 3 3. Añadir perfiles... 6 4. Introducción a Internet... 7 4.1. 1. Introducción... 3 2. Perfiles de Usuarios... 3 2.1 Definir el primer perfil... 3 3. Añadir perfiles... 6 4. Introducción a Internet... 7 4.1. World Wide Web... 8 4.2. Las páginas web... 8 4.3.1. Los

Más detalles

Desarrollo Web en Entorno Servidor

Desarrollo Web en Entorno Servidor Desarrollo Web en Entorno Servidor Tema 1: Introducción 1. Tipos de páginas Web. 2. Instalación del software. (XAMPP) 1 Tipos de páginas Web. Páginas estáticas. Páginas dinámicas. 2 Tipos de páginas Web.

Más detalles

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A)

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A) APRENDERAPROGRAMAR.COM QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A) Sección: Divulgación Categoría: Lenguajes y entornos

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET Cada capa de la pila añade a los datos a enviar a la capa inferior, información de control para que el envío sea correcto. Esta información

Más detalles

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados

Más detalles

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV Página 1 de 6 1. OBJETIVO El presente documento tiene la finalidad de citar los beneficios de la migración de la herramienta de análisis de riesgo, mantenimiento e inspección que en lo sucesivo se denominará

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

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

Más detalles

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

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 (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga

Más detalles

iseries Operations Navigator Administración de aplicaciones

iseries Operations Navigator Administración de aplicaciones iseries Operations Navigator Administración de aplicaciones iseries Operations Navigator Administración de aplicaciones Copyright International Business Machines Corporation 1998, 2001. Reservados todos

Más detalles

Guía de uso de Moodle para participantes

Guía de uso de Moodle para participantes Guía de uso de Moodle para participantes ÍNDICE 1 ACCESO... 4 1.1 PORTAL... 4 1.2 INGRESAR A PLATAFORMA... 6 1.3 ESTRUCTURA DEL CURSO... 7 1.3.1 BLOQUES... 8 2 RECURSOS Y MÓDULOS... 10 LOS RECURSOS SE

Más detalles

Actualización de versión a Bizagi 10.x

Actualización de versión a Bizagi 10.x Actualización de versión a Bizagi 10.x Actualización de versión a Bizagi 10.x 1 Tabla de contenidos Introducción... 2 Actualizar un proyecto desde v9.1.x a 10.x... 2 Preparación... 3 Habilitación de formas

Más detalles

Sockets y otros objetos orientados a Internet en Delphi.

Sockets y otros objetos orientados a Internet en Delphi. CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d Arquitectura de Computadors Sockets y otros objetos orientados a Internet en Delphi. (Seminaris de CASO) Autors Patrick Mira Pedrol Antes de nada.

Más detalles

Modelo de Objetos Distribuidos

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

Más detalles

SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA

SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA RIF: V-16233325-5 SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA Sistema desarrollado bajo software libre, con orientación al manejo de base de datos a través de una interfaz gráfica

Más detalles

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN 3.3 Aplicaciones Definición de Aplicación (Application). Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las

Más detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

Servicio de publicación de información web (HTTP)

Servicio de publicación de información web (HTTP) Servicio de publicación de información web (HTTP) La Web es uno de los servicios más comunes en Internet, tanto que se ha convertido en su cara visible para la mayoría de los usuarios. Una página Web empezó

Más detalles

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 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

Más detalles

Administración Pública. Intercambio de datos y sustitución de certificados en soporte papel. HP Consulting & Integration

Administración Pública. Intercambio de datos y sustitución de certificados en soporte papel. HP Consulting & Integration Administración Pública Intercambio de datos y sustitución de certificados en soporte papel HP Consulting & Integration Intercambio de datos y sustitución de certificados en soporte papel Índice Servicio

Más detalles

ESCUELA POLITÉCNICA NACIONAL 28 DE OCTUBRE, 2015 ORTIZ JÁCOME LEONARDO JOSÉ

ESCUELA POLITÉCNICA NACIONAL 28 DE OCTUBRE, 2015 ORTIZ JÁCOME LEONARDO JOSÉ ESCUELA POLITÉCNICA NACIONAL INGENIERIA DE SISTEMAS INFORME 1 APLICACIONES WEB SERVICIOS SOBRE INTERNET 28 DE OCTUBRE, 2015 ORTIZ JÁCOME LEONARDO JOSÉ 1. INTRODUCCIÓN Internet es un conjunto descentralizado

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl 1 Colección de Tesis Digitales Universidad de las Américas Puebla Morales Salcedo, Raúl En este último capitulo se hace un recuento de los logros alcanzados durante la elaboración de este proyecto de tesis,

Más detalles

Solución de telefonía para empresas TL 200 - Presentación de producto. Telefonía IP

Solución de telefonía para empresas TL 200 - Presentación de producto. Telefonía IP Solución de telefonía para empresas TL 200 - Presentación de producto Telefonía IP Qué ofrece la telefonía IP? La Telefonía IP puede realizar las mismas funciones o características de la telefonía tradicional,

Más detalles

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Examen Curso 2001-2002. Convocatoria de Febrero Página 1 Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Este ejercicio se divide en dos partes con el fin de que el alumno no intente

Más detalles

SISTEMAS DE INFORMACIÓN III TEORÍA

SISTEMAS DE INFORMACIÓN III TEORÍA CONTENIDO: Introducción a los Web services Las bases de los Web services La nueva generación de la Web Interactuando con los Web services La tecnología de Web services XML: Lo fundamental WSDL: Describiendo

Más detalles

Manual del Usuario. Programa para el cálculo de los ángulos asociados a la geometría de iluminación y observación de la escena SAC-C MMRS. Versión 1.

Manual del Usuario. Programa para el cálculo de los ángulos asociados a la geometría de iluminación y observación de la escena SAC-C MMRS. Versión 1. Manual del Usuario Versión 1.0 Programa para el cálculo de los ángulos asociados a la geometría de iluminación y observación de la escena SAC-C MMRS Comisión Nacional de Actividades Espaciales 1 Indice

Más detalles

Capítulo 11. Conclusiones y trabajo futuro

Capítulo 11. Conclusiones y trabajo futuro Capítulo 11. Conclusiones y trabajo futuro En esta tesis ha realizado un entorno de desarrollo Web que proporciona herramientas para la mejora de la calidad del código de los desarrolladores. Para conseguir

Más detalles

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE OBJETIVOS Aprender el manejo de entrada/salida con ficheros

Más detalles

Manual del estudiante

Manual del estudiante Manual del estudiante Índice I. Primeros pasos pág.3 II. Al entrar al curso pág.7 III. Botonera de inicio pág.7 IV. Comunicación con el profesor pág.12 V. Participación de las entregas de los módulos pág.13

Más detalles

Curso: FT433 - Introducción a la virtualización con VirtualBox

Curso: FT433 - Introducción a la virtualización con VirtualBox forumtecnico.com Curso: FT433 - Introducción a la virtualización con VirtualBox Configuración de red Uno de los aspectos de la virtualización con más número de opciones es la configuración de red. Recordemos

Más detalles

C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o

C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o Capítulo 3 Trabajo relacionado Este capítulo describe una serie de proyectos enfocados a la generación automática de servidores OAI-PMH. Se describen

Más detalles

Sistema de Mensajería Empresarial para generación Masiva de DTE

Sistema de Mensajería Empresarial para generación Masiva de DTE Sistema de Mensajería Empresarial para generación Masiva de DTE TIPO DE DOCUMENTO: OFERTA TÉCNICA Y COMERCIAL VERSIÓN 1.0, 7 de Mayo de 2008 CONTENIDO 1 INTRODUCCIÓN 4 2 DESCRIPCIÓN DE ARQUITECTURA DE

Más detalles

AUTORES: OBREGON CARLA 20.621.330 ROMERO MARIA 19.118.452 MARACAIBO FEBRERO 2012

AUTORES: OBREGON CARLA 20.621.330 ROMERO MARIA 19.118.452 MARACAIBO FEBRERO 2012 REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL DE LAS FUERZAS ARMADAS BOLIVARIANA DOCENTE: JOSE PARRA CATEDRA: REDES MARACAIBO FEBRERO

Más detalles

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente 3 o curso de Ingeniería Técnica en Informática de Sistemas 13 de abril de 2007 El objetivo de esta práctica es realizar una

Más detalles

extensible Markup Language (XML)

extensible Markup Language (XML) extensible Markup Language (XML) 1. INTRODUCCIÓN Jennifer Pérez Benedí Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia C/Camino de Vera s/n E-46071 Valencia- España

Más detalles

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Resumen Todo documento XBRL contiene cierta información semántica que se representa

Más detalles

Servidores Donantonio

Servidores Donantonio Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...

Más detalles

CFDi Client Manual de Usuario

CFDi Client Manual de Usuario CFDi Client Manual de Usuario Título del documento: CFDi client Nombre del fichero: ES CFDiClient Manual de Usuario.odt Versión: Estado: VIGENTE Fecha: 28/02/2011 Autor: Oscar Albert Arcas Revisión, Aprobación

Más detalles

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 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

Más detalles

Introducción a Visual Studio.Net

Introducción a Visual Studio.Net Introducción a Visual Studio.Net Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones Web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones

Más detalles

TPV Virtual Santander Elavon: Guía de desarrollador- Almacenamiento seguro de tarjetas con definiciones XML. Versión: 1.1

TPV Virtual Santander Elavon: Guía de desarrollador- Almacenamiento seguro de tarjetas con definiciones XML. Versión: 1.1 TPV Virtual Santander Elavon: Guía de desarrollador- Almacenamiento seguro de tarjetas con definiciones XML Versión: 1.1 Índice 1 Acerca de esta guía 3 1.2 Destinatarios.4 1.3 Requisitos previos 4 1.4

Más detalles

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M. MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA Elaborado por: Julián A. Hernández M. PONTIFICIA UNIVERSIDAD JAVERIANA CALI SANTIAGO DE CALI 2011 CONTENIDO Pág. INTRODUCCIÓN...3 1. ANÁLISIS

Más detalles

Capítulo 7: Introducción a la dinámica de servicios Web

Capítulo 7: Introducción a la dinámica de servicios Web Servicios Web Capítulo 7: Introducción a la dinámica de servicios Web Pedro J. Álvarez alvaper@unizar.es José Ángel Bañares banares@unizar.es http://diis.unizar.es/postweb/ Departamento de Informática

Más detalles

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

TEMA 5. Otras arquitecturas distribuidas IV. Web Services TEMA 5. Otras arquitecturas distribuidas IV. Web Services IV. Web Services 1. Qué son los Web Services? 2. Ejemplos de Web Services 3. Tecnologías y arquitectura 3.1. Arquitectura 3.2. Lenguaje de descripción:

Más detalles

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I Licda. Consuelo Eleticia Sandoval OBJETIVO: ANALIZAR LAS VENTAJAS Y DESVENTAJAS DE LAS REDES DE COMPUTADORAS. Que es una red de computadoras?

Más detalles

Para tener una visión general de las revistas de estadística, ir a: http://www.statsci.org/jourlist.html

Para tener una visión general de las revistas de estadística, ir a: http://www.statsci.org/jourlist.html 8. Difusión 8.4. Documentos - Métodos La expresión "publicar o perecer" hace referencia a la presión de publicar trabajos constantemente para continuar o sostener una carrera en el sector académico. La

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Análisis de aplicación: Geany

Análisis de aplicación: Geany Análisis de aplicación: Geany Este documento ha sido elaborado por el Centro de excelencia de software libre de Castilla La Mancha (Ceslcam, http://ceslcam.com). Copyright 2011, Junta de Comunidades de

Más detalles

Descripción general printeract, Servicios remotos de Xerox

Descripción general printeract, Servicios remotos de Xerox Descripción general de printeract, Servicios remotos de Xerox 701P28670 Descripción general printeract, Servicios remotos de Xerox Un paso en la dirección correcta Diagnostica problemas Evalúa datos de

Más detalles

Problemas de Redes de Computadores. Conjunto de problemas 1

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,

Más detalles

PROBLEMAS Y SOLUCIONES EN EL DESARROLLO DE LA IDE EXTREMADURA

PROBLEMAS Y SOLUCIONES EN EL DESARROLLO DE LA IDE EXTREMADURA PROBLEMAS Y SOLUCIONES EN EL DESARROLLO DE LA IDE EXTREMADURA Alberto Aparicio Ríos Gobierno de Extremadura alberto.aparicio@juntaextremadura.net Resumen Se abordarán los problemas encontrados durante

Más detalles

Capítulo 5. Cliente-Servidor.

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

Más detalles

Sistemas de Información 12/13 XML (extensible Mark-up Language)

Sistemas de Información 12/13 XML (extensible Mark-up Language) 12/13 XML (extensible Mark-up Language) Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza (raqueltl@unizar.es) " Guión Introducción Ejemplos Documentos vs apliaciones XML Espacios

Más detalles

METODOLOGÍA E IMPLEMENTACIÓN DEL SIGGA (SISTEMA DE INFORMACION GEOGRAFICA: GOBERNANZA DEL AGUA)

METODOLOGÍA E IMPLEMENTACIÓN DEL SIGGA (SISTEMA DE INFORMACION GEOGRAFICA: GOBERNANZA DEL AGUA) METODOLOGÍA E IMPLEMENTACIÓN DEL SIGGA (SISTEMA DE INFORMACION GEOGRAFICA: GOBERNANZA DEL AGUA) I.1 Definición de SIG Es un sistema compuesto por hardware, software y procedimientos para capturar, manejar,

Más detalles