sígueme ...

    Arranca decharlas.com con un taller gratuito sobre TDD y jUnit

    decharlas.com es una iniciativa abierta que persigue la difusión de las últimas tecnologías en programación, desarrollo web y seguridad.

    El objetivo de este nuevo proyeto en el que nos hemos embarcado, es ofrecer charlas gratuitas mensualmente que sirvan para que los estudiantes y los desarrolladores en general se inicien en los últimos frameworks, tecnologías y entornos de desarrollo.

    Las charlas, las cuales se realizarán en las instalaciones de la Universitat Jaume I de Castellón, serán totalmente gratuitas y estarán accesibles a través de la web de decharlas.com.

    Este proyecto arranca con mucha ilusión y una colaboración muy interesante. El día 1 de Marzo a las 18:00 y el día 2 de Marzo a las 17:00, disfrutaremos de un conferencia y de un taller práctico sobre TDD y jUnit.

    Este taller, impartido por Carlos Ble (autor del libro en castellano Diseño Ágil con TDD), nos ofrecera una visión de como se desarrolla software mediante el uso iterativo de ejemplos definidos por el cliente, en contraposición a los métodos de análisis tradicional. Por otra parte, en el taller práctico, podremos aprende a utilizar el framework JUnit para escribir tests unitarios y otros tests esenciales para el equipo de desarrollo.

    Para inscribiros sólo teneis que enviar un correo a contacto@decharlas.com.

    Para más información de esta y otras charlas, consultad nuestra web o seguidnos en twitter.

    Os esperamos!!!!

    Monitorización de Tomcat con JMX

    JMX define toda una arquitectura para la monitorización y administración de aplicaciones basadas en Java.

    Aplicado a los servidores de aplicaciones, y más concretamente a Apache Tomcat, JMX nos permite obtener métricas del estado del servidor, de la máquina virtual que ejecuta, valores de configuración, acceso a operaciones de administración, estadísticas, etc.

    Para extraer todos estos valores, primero es necesario configurar nuestro servidor de aplicaciones con el fin de activar el soporte JMX. En el caso de Tomcat, la configuración es muy sencilla y sólo tenemos que editar el catalina.sh y añadir la siguiente línea al principio el fichero:

    CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9696 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

    Una vez configurado y arrancado, podemos utilizar la aplicación JConsole que incorpora el JDK6 por defecto. Esta consola permite conectar a servicios JMX e interatuar con los MBeans expuestos:

    $ jconsole service:jmx:rmi://localhost/jndi/rmi://localhost:9696/jmxrmi

    Si ya utilizamos un mecanismo de monitorización basado en SNMP, existe la posibilidad de utilizar un adaptador de JMX a SNMP con el fin de poder extraer y explotar los datos:

    http://www.webnms.com/snmpadaptor/index.html

    Si utilizamos JBoss, este adaptador está disponible directamente en la consola. En el siguiente artículo se explica como configurarlo para exportar los valores a Cactis:

    http://ivanator.wordpress.com/2010/01/30/monitorizar-jboss-con-cacti-de-jmx-a-snmp/

    Por último, si nuestra plataforma es Nagios, también existen algunos plugins disponibles:

    http://sourceforge.net/projects/nagioscheckjmx/ y http://sourceforge.net/projects/jboss2nagios/

    Curso de especialización en desarrollo web avanzado 2009/2010

    Con el fin de conocer más a fondo los nuevos entornos y tecnologías relacionadas con el desarrollo de aplicaciones Web, se presenta desde la Universitat Jaume I de Castellón, la tercera edición del “Curso de especialización en desarrollo web avanzado”. Este año totalmente online !!!

    En esta tercera edición prevista desde Noviembre del 2009 a Junio de 2010, se abordarán las siguientes temáticas:

    • - Web 2.0: Conceptos e implicaciones
    • - Activos de información: Gestión, protección y control
    • - Herramientas y nuevos entornos de desarrollo: Wiki, Subversion, Eclipse, Trac
    • - Tecnologías base de cliente: XHTML/XML, CSS, JavaScript, SVG en cuanto a las tecnologías base y algunos frameworks de cliente rico como Prototype, JQuery o ExtJS
    • - Tecnologías de servidor: PHP y Java
    • - Seguridad en entornos web
    • - Arquitecturas orientadas a servicios: SOA, Web Services, WSDL y REST

    Para más información, se encuentra disponible la página del curso donde, además, se pueden ver algunos ejemplos descargables de los materiales proporcionados:

    http://cursowebavanzado.uji.es/
    Fundación Universitat Jaume I – Empresa

    Os esperamos!!!

    Múltiples firmas enveloped en un documento XML Signature

    Según la especificación del estándar XML Signature del W3C, las firmas “enveloped” son aquellas que están embebidas en los datos originales, de forma que son capaces de excluir su contenido a la hora de verificar el documento original.

    Destacan por tener siempre definida una referencia (Reference), con el valor establecido del atributo URI a cadena vacia:

    <Reference URI="">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
    <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
    <DigestValue></DigestValue>
    </Reference>

    Ejemplo de una firma “enveloped”:

    El problema es que cuando tenemos más de una firma de este tipo en un mismo documento, es necesario que cada una se excluya a si misma y a las demás firmas a la hora de calcular cualquier digest. Con la transformación “enveloped”, sólo se elimina la propia referencia, quedando en el documento el resto de firmas y haciendo que los cálculos de los digest sean incorrectos.

    Para resolver este problema, debemos utilizar XPath Filtering.

    Según la especificación, el filtrado XPath en una transformación que nos permite quedarnos con el conjunto de nodos necesario para poder calcular de forma correcta la firma.

    En nuestro caso, sustituyendo la transformación “enveloped” por un correcto filtrado, podemos soportar múltiples firmas “enveloped” en un mismo documento:

    <Reference URI="">
    <Transforms>
    <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
    <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
    not(ancestor-or-self::dsig:Signature)
    </XPath>
    </Transform>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue></DigestValue>
    </Reference>

    Si estamos desarrollando en Java, podemos generar este tipo de referencia de la siguiente forma:

    Transform transform = fac.newTransform(Transform.XPATH, new XPathFilterParameterSpec(
    "not(ancestor-or-self::dsig:Signature)", Collections.singletonMap("dsig", XMLSignature.XMLNS)));
    Reference ref = fac.newReference("", fac.newDigestMethod(DigestMethod.SHA1, null),
    Collections.singletonList(transform), null, null);

    Crea tus facturas electrónicas de forma sencilla y gratuita

    “Hazte una Facturae” es un nuevo servicio disponible de forma gratuita y que permite realizar la emisión y firma digital de facturas en formato Facturae 3.1, generando adicionalmente una visualización de la misma en formato PDF.

    Gracias a este servicio, las empresas pequeñas que tienen un volumen de facturación reducido, pueden emitir sus facturas electrónicas sin necesidad de adquirir un sotware especializado de facturación.

    Como aspecto a reseñar, las facturas emitidas por este servicio validan perfectamente contra el servicio de validación que ofrece el Ministerio de Economía y Hacienda.

    Maven Generators

    Maven generators es el nombre que le he dado a un nuevo proyecto que he abierto en Google Code y que intenta hacer una primera recopilación de scripts de Maven para la generación de distintos tipos de salida, de forma que sea muy sencillo incorporar estas funcionalidades a nuestros proyectos.

    En esta versión, podremos generar:

    • Clientes de acceso a Web Services a partir de un WSDL (soporta Axis2 y JAX-WS)
    • Clases de manejo de ficheros XML (marshall y unmarshall) con JAXB
    • Clases de manejo y persistencia de ficheros XML (marshall, unmarshall y almacenamiento con JPA) con HyperJAXB3
    • Clases de mapeo objeto/relacional con JPA e Hibernate

    El proceso de generación siempre produce la salida en el directorio “target”, pudiéndose configurar en todos los casos el “package” de destino con el parámetro “-Dpackage=xxx”.
    El primer paso en muchos de ellos es incluir el fichero a generar en el directorio “src/main/resources” y luego ejecutar el script de Maven asociado (todos cuentan con un README.txt explicativo con los pasos a seguir).

    Página siguiente »