A day made of Glass: Corning
Video interesante que muestra las aplicaciones futuras mediante el uso del cristal. Visión del Futuro del fabricante norteamericano Corning, especializado en tecnologías de Display LCD,etc..
Tecnología en General
Video interesante que muestra las aplicaciones futuras mediante el uso del cristal. Visión del Futuro del fabricante norteamericano Corning, especializado en tecnologías de Display LCD,etc..
En el Voip2Day de este año, Iñaki Baz y José Luis Millán presentaron una novedosa ponencia sobre comunicación SIP sobre Websockets. El objetivo final es empotrar SIP en aplicaciones web.
El enlace de la recomendación en modo «draft» :
http://tools.ietf.org/html/draft-ibc-rtcweb-sip-websocket-00
Adjunto más info sobre este particular, de ambas personas, en los siguientes links:
Un certificado digital (también conocido como certificado de clave pública o certificado de identidad) es un documento digital mediante el cual un tercero confiable (una autoridad de certificación) garantiza la vinculación entre la identidad de un sujeto o entidad (por ejemplo: nombre, dirección y otros aspectos de identificación) y una clave pública.
Este tipo de certificados se emplea para comprobar que una clave pública pertenece a un individuo o entidad. La existencia de firmas en los certificados aseguran por parte del firmante del certificado (una autoridad de certificación, por ejemplo) que la información de identidad y la clave pública perteneciente al usuario o entidad referida en el certificado digital están vinculadas.
Un aspecto fundamental que hay que entender es que el certificado para cumplir la función de identificación y autenticación necesita del uso de la clave privada (que sólo el titular conoce). El certificado y la clave pública se consideran información no sensible que puede distribuirse perfectamente a terceros. Por tanto el certificado sin más no puede ser utilizado como medio de identificación, pero es pieza imprescindible en los protocolos usados para autenticar a las partes de una comunicación digital, al garantizar la relación entre una clave pública y una identidad.
El ejemplo por excelencia es la firma electrónica: aquí el titular tiene que utilizar su clave privada para crear una firma electrónica. A esta firma se le adjuntará el certificado. El receptor del documento que quiera comprobar la autenticidad de la identidad del firmante necesitará la clave pública que acompaña al certificado para que a través de una serie de operaciones criptográfica se comprueba que es la pareja de la clave privada utilizada en la firma. Es esta operación de asociación al dato secreto del firmante lo que hará la función de comprobar su identidad.
Si bien existen variados formatos para certificados digitales, los más comúnmente empleados se rigen por el estándar UIT-T X.509. El certificado debe contener al menos lo siguiente:
Los dos primeros apartados son el contenido fundamental del certificado (identidad y clave pública asociada), en tanto que los otros dos son datos imprescindibles para poder validar el certificado.
Esta información se firma de forma digital por la autoridad emisora del certificado. De esa forma, el receptor puede verificar que esta última ha establecido realmente la asociación.
Contenido
|
Un certificado emitido por una entidad de certificación autorizada, además de estar firmado digitalmente por ésta, debe contener por lo menos lo siguiente:
Cualquier individuo o institución puede generar un certificado digital, pero si éste emisor no es reconocido por quienes interactúen con el propietario del certificado, el valor del mismo es prácticamente nulo. Por ello los emisores deben acreditarse: así se denomina al proceso por el cuál entidades reconocidas, generalmente públicas, otorgan validez a la institución certificadora, de forma que su firma pueda ser reconocida como fiable, transmitiendo esa fiabilidad a los certificados emitidos por la citada institución.
La gran mayoría de los emisores tiene fines comerciales, y otros, gracias al sistema de anillo de confianza pueden otorgar gratuitamente certificados en todo el mundo, como:
Pero para que un certificado digital tenga validez legal, el prestador de Servicios de Certificación debe acreditarse en cada país de acuerdo a la normativa que cada uno defina.
Tabla de contenidos |
SOAP::Lite es un conjunto de módulos de Perl que proveen una interfaz simple y liviana para el protocolo SOAP, tanto en el lado cliente como en el del servidor. SOAP::Lite es actualmente el kit de desarrollo de web services para Perl más difundido y utilizado. Su página en SourceForge ha registrado más de 10,700 descargas en casi 2 años.
SOAP::Lite provee clases para implementar funcionalidades de un cliente SOAP, varios servidores, soporte a datos y muchas otras tareas. La siguiente es una lista resumida de sus características:
Soporte de Protocolos
Interoperabilidad
Protocolos de Transporte
Soporte para WSDL
Otras
WSDL::Generator es un módulo de Perl para crear archivos de descripción de servicios (WSDL) automáticamente a partir de módulos de perl expuestos como servicios web. Éste módulo, desarrollado por Pierre Denis <pdenis@fotango.com>, es tal vez el único que se ha creado hasta ahora con ésta funcionalidad en el mundo de Perl. SOAP::Lite y WSDL::Generator en la Práctica
A continuación, se muestra un ejemplo de la utilización del lenguaje Perl para exponer un servicio web sencillo. En la documentación de los módulos puede encontrarse una descripción extendida de todas las funcionalidades que poseen y cómo utilizarlas.
El siguiente es el código fuente de un módulo de Perl que implementa una clase llamada “Cafetera”, con un único método llamado “prepararCafe”, que recibe como parámetro el número de tasas y devuelve como resultado un mensaje indicando el número de tasas preparadas:
Código del archivo Cafetera.pm <perl>
#!/usr/bin/perl -w # Servicio web de ejemplo package Cafetera; use strict; # Este es el constructor sub new{ my $proto = shift; my $class = ref($proto) || $proto; my $tasas = 0; bless($tasas,$class); } sub prepararCafe{ shift; my $tasas = shift; print STDERR "Llamado con el parámetro $tasas"; return "Se prepararon ".$tasas." tasas"; } 1;
</perl> A continuación se muestra el uso del módulo SOAP::Lite para exponer el módulo Cafetera como un servicio web, usando el servidor tipo SOAP::Transport::HTTP::Daemon:
Código del archivo servidor.pl <perl>
#!/usr/bin/perl -w # Servidor SOAP use SOAP::Transport::HTTP; use Cafetera; #En el parámetro dispatch_to se especifica la ruta a los módulos disponibles my $daemonio = SOAP::Transport::HTTP::Daemon -> new(LocalAddr => 'localhost', LocalPort => 8070) -> dispatch_to('/home/tesis/thewala/preparacion/P.5-IP/productos/servicio-en-perl','Cafetera') ; print "La url del daemonio es:".$daemonio->url()." "; $daemonio->handle();
</perl> Desde éste momento, cualquier aplicación puede empezar a consumir el servicio web, si sabe cómo invocarlo. A continuación se muestra un cliente del servicio hecho en Perl con SOAP::Lite:
Código del archivo cliente.pl <perl>
#!/usr/bin/perl -w use strict; use SOAP::Lite; my $soap = SOAP::Lite ->uri('http://localhost:8070/Cafetera') ->proxy('http://localhost:8070/') ; my $resultado= $soap->prepararCafe(5)->result; print "Preparando cafe: ".$resultado." ";
</perl> Para que aplicaciones hechas en otros lenguajes o que no saben cómo invocar el servicio puedan acceder al mismo, se debe crear el archivo de descripción WSDL. A continuación se muestra el guión o “script” de perl que utiliza WSDL::Generator para crear el archivo WSDL:
Código del archivo generar-wsdl.pl <perl>
#!/usr/bin/perl -w use WSDL::Generator; my $init = { 'schema_namesp' => 'http://localhost:8070/Cafetera.xsd', 'services' => 'Cafetera', 'service_name' => 'Cafetera', 'target_namesp' => 'http://localhost:8070/Cafetera.wsdl', 'documentation' => 'Servicio Web de Prueba', 'location' => 'http://localhost:8070/Cafetera' }; my $w = WSDL::Generator->new($init); Cafetera->prepararCafe(5); print $w->get(Cafetera);
</perl> La salida de este guión de Perl constituye el documento wsdl que debe ser publicado para que cualquiera pueda acceder al servicio Cafetera. La siguiente es la salida del guión, la cuál puede guardarse en el archivo Cafetera.wsdl:
Código del archivo Cafetera.wsdl <xml>
<?xml version="1.0"?> <definitions name="Cafetera" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://localhost:8070/Cafetera.wsdl" xmlns:tns="http://localhost:8070/Cafetera.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsdl="http://localhost:8070/Cafetera.xsd"> <types> <xsd:schema targetNamespace="http://localhost:8070/Cafetera.xsd"> <xsd:element name="prepararCafeRequest" type="xsd:string" /> <xsd:element name="prepararCafeResponse" type="xsd:string" /> </xsd:schema> </types> <message name="prepararCafeRequest"> <part name="prepararCafeRequestSoapMsg" element="xsdl:prepararCafeRequest"/> </message> <message name="prepararCafeResponse"> <part name="prepararCafeResponseSoapMsg" element="xsdl:prepararCafeResponse"/> </message> <portType name="CafeteraCafeteraPortType"> <operation name="prepararCafe"> <input message="tns:prepararCafeRequest" /> <output message="tns:prepararCafeResponse" /> </operation> </portType> <binding name="CafeteraCafeteraBinding" type="tns:CafeteraCafeteraPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="prepararCafe"> <soap:operation style="document" soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="Cafetera"> <documentation> Servicio Web de Prueba </documentation> <port name="CafeteraCafeteraPort" binding="tns:CafeteraCafeteraBinding"> <soap:address location="http://localhost:8070/Cafetera"/> </port> </service> </definitions>
</xml>