Técnicamente se entiende que un Workflow corresponde a un conjunto de actividades o tareas que se ejecutan en un contexto de negocio, y que pueden interactuar con otros sistemas.
Para diseñar un Workflow, un proceso de negocio o un flujo de tareas en una organización, nos podemos ayudar de alguna herramienta de diseño de procesos, un diseñador bpmn o power point, dependiento el alcance o detalle que queremos agregar al proceso sera necesario optar con alguna especificacion para el diseño de Workflow.
Las redes de Petri son una herramienta establecida para el modeling y procesos de análisis. Por una parte, las redes de Petri se pueden utilizar como un lenguaje de diseño para la especificación de los flujos de trabajo complejos/ Workflows. Por otro lado, las redes de Petri proporciona técnicas de análisis de gran alcance que puede ser utilizado para verificar la corrección de procedimientos de flujo de trabajo (Workflow).
http://www.yasper.org/
Yasper aporta simulación manual y automática de un flujo de proceso, en el que el usuario selecciona pasos de ejecución haciendo clic en el modelo, y la simulación automática, que aleatoriza la elección de pasos y produce un informe agregado con estadísticas relevantes.
Los modelos Yasper apoyan directamente las ampliaciones de las redes de Petri, y pueden emular varias otras técnicas, tales como máquinas de estado, diagramas de flujo, diagramas UML, de actividad y EPC (event process chain).
http://www.yasper.org/
Notación:
Ejemplo:
lunes, 11 de noviembre de 2013
jueves, 17 de octubre de 2013
Enviar email con java
Buenas, un amigo cuyo nombre no quiero decir me pidio esto, ojala funcione, ya que hay otras formas y otros parametros que se pueden utilizar dependiendo el servidor de correo y sus configuraciones
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* Ejemplo de envio de correo simple con JavaMail
*
* @author slack
*
*/
public class EnviarMail
{
/**
* main de prueba
* @param args Se ignoran.
*/
public static void main(String[] args)
{
try
{
// Propiedades de la conexión
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.port", "25");
props.setProperty("mail.smtp.user", "lcorneteros@gmail.com");
props.setProperty("mail.smtp.auth", "true");
// Preparamos la sesion
Session session = Session.getDefaultInstance(props);
// Construimos el mensaje
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("yo@yo.com"));
message.addRecipient(
Message.RecipientType.TO,
new InternetAddress("linSlackware@gmail.com"));
message.setSubject("Hola");
message.setText("eeelllla la q envia email con java ");
// Lo enviamos.
Transport t = session.getTransport("smtp");
t.connect("lconajeros@gmail.com", "clave");
t.sendMessage(message, message.getAllRecipients());
// Cierre.
t.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Saludos !!
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* Ejemplo de envio de correo simple con JavaMail
*
* @author slack
*
*/
public class EnviarMail
{
/**
* main de prueba
* @param args Se ignoran.
*/
public static void main(String[] args)
{
try
{
// Propiedades de la conexión
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.port", "25");
props.setProperty("mail.smtp.user", "lcorneteros@gmail.com");
props.setProperty("mail.smtp.auth", "true");
// Preparamos la sesion
Session session = Session.getDefaultInstance(props);
// Construimos el mensaje
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("yo@yo.com"));
message.addRecipient(
Message.RecipientType.TO,
new InternetAddress("linSlackware@gmail.com"));
message.setSubject("Hola");
message.setText("eeelllla la q envia email con java ");
// Lo enviamos.
Transport t = session.getTransport("smtp");
t.connect("lconajeros@gmail.com", "clave");
t.sendMessage(message, message.getAllRecipients());
// Cierre.
t.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Saludos !!
Patrones de Diseño
¿Qué es un patrón de diseño ?
La manera más simple para describir un patrón es que proporciona una solución probada a un problema común documentado individualmente en un formato coherente y por lo general como parte de una colección más grande .
La noción de un patrón que ya es una parte fundamental de la vida cotidiana. Sin reconocer que cada vez , es natural que utilizamos soluciones de probada eficacia para resolver los problemas comunes de todos los días. Patrones en el mundo de TI que giran en torno al diseño de sistemas automatizados se conocen como patrones de diseño.
Los patrones de diseño son útiles porque :
representan soluciones probadas en el campo de los problemas comunes de diseño organizar la inteligencia del diseño en un formato estandarizado y fácilmente " referenciable " generalmente son repetibles por la mayoría de los profesionales de TI que participan en el diseño se puede utilizar para garantizar la coherencia en cómo se diseñan los sistemas y construido puede ser la base de las normas de diseño
suelen ser flexibles y opcionales ( y abiertamente documentar los impactos de su aplicación e incluso proponer enfoques alternativos ) se puede utilizar como ayudas educativas mediante la documentación de aspectos específicos de diseño del sistema ( independientemente de si se aplican ) a veces puede ser aplicado antes y después de la aplicación de un sistema de se puede apoyar a través de la aplicación de otros patrones de diseño que son parte de la misma colección enriquecer el vocabulario de un determinado campo de TI , ya que cada patrón se le da un nombre significativo, además, dado que las soluciones aportadas por los patrones de diseño son probados , su aplicación sistemática tiende a mejorar naturalmente la calidad de los diseños de sistemas .
Tenga en cuenta que a pesar de que los patrones de diseño proporcionan soluciones de diseño probadas , su mera utilización no puede garantizar que los problemas de diseño siempre se resuelven según sea necesario. Hay muchos factores que pesan en el éxito final de la utilización de un patrón de diseño , incluyendo las limitaciones impuestas por el entorno de aplicación , la competencia de los practicantes , divergencias entre los requisitos de negocio , y así sucesivamente . Todos estos representan los aspectos que afectan a la medida en que un patrón puede ser aplicado con éxito .
modelo de la notación
La SOA patrones de diseño de catálogo utiliza una notación sencilla para representar sistemáticamente diferentes tipos de patrones .
patrón Símbolos
Cuando se trabaja con patrones de diseño SOA , ligeramente diferentes símbolos se usan para representar :
Además, los colores se incorporan para indicar si un patrón de diseño que aparece justo es que se hace referencia y no se discute en realidad , frente a uno que es el tema actual de discusión.
Estos símbolos se utilizan en todo el libro Design Patterns SOA , especialmente en los diagramas de relación de patrón. En este sitio web se dará cuenta de que todo cuando se analizan los patrones de compuestos.
figuras de patrónes
Los símbolos patrón antes mencionados se utilizan en las siguientes tres tipos principales de diagramas :
Vamos a echar un vistazo más de cerca a cada uno de estos tres tipos de diagramas principales:
Patrón aplicación Secuencias Figuras
Al documentar las secuencias recomendadas modelo de solicitud , los grupos de patrones relacionados y los patrones individuales que pertenecen a un grupo en particular se muestran de la siguiente manera :
Estos patrones se muestran en una secuencia de aplicación recomendada.
Estos patrones se muestran en una secuencia de aplicación recomendada .
En este caso, no hay requisitos firmes en cuanto al orden en que deben aplicarse los tres patrones de la derecha.
Patrón de relación Figuras
Cada patrón se documenta con un diagrama de relaciones entre patrón , como se muestra aquí:
Una convención estilo aplicado a todos los diagramas de relación patrón es el uso del color , de la siguiente manera :
Cada diagrama de relaciones patrón explora las relaciones de un patrón . Por lo tanto , que el patrón de diseño se pone de relieve en rojo , como por la notación símbolo previamente establecido .
Relaciones preestablecidas se documentarán de manera unidireccional. Para las relaciones en que el patrón que se está debatiendo en la actualidad afecta o se refiere a otros modelos, una línea roja se utiliza junto con una flecha apuntando hacia el otro patrón. Cuando los documentos de línea de relación cómo otros patrones se relacionan con el modelo actual , las líneas son de color verde , y las flechas se invierten.
Tenga en cuenta que la direccionalidad de las relaciones se conserva en diferentes diagramas. Por ejemplo , la línea de relación emisor de luz verde de Normalización de servicio y apuntando a la centralización de lógica en la figura anterior se invertirían ( y de color rojo ) en la figura relación de patrón para el patrón de Normalización de servicio . Tenga en cuenta que los diagramas de relación patrón se proporcionan en un solo libro.
Compuesto Jerarquía Patrón Figura
Patrones compuestas se componen de combinaciones de patrones de diseño . Cuando se muestra un patrón compuesto , por lo general se requiere una representación jerárquica , en la que aparece el nombre del patrón compuesto en la parte superior , y los patrones que forman el compuesto se muestra debajo.
Estos tipos de diagramas pueden ser considerados figuras relación simplificados en que sólo se identifican patrones que pertenecen a cada compuesto , sin entrar en los detalles de cómo estos patrones se relacionan .
patrón Perfil
Además del nombre del patrón y el nombre del contribuyente ( s ) , cada uno de los modelos de este catálogo se describe el uso de un formato de perfil constante y la estructura sobre la base de las siguientes partes:
En las siguientes secciones se describe cada parte de un perfil de patrón de forma individual . Tenga en cuenta que de acuerdo con los requisitos de publicación de Prentice Hall, sólo con el requisito, icono , cuadro sinóptico , una figura de la muestra, y los vínculos con los patrones relacionados se publican para cada patrón en este sitio Web para los patrones que forman parte del catálogo maestro . Las secciones detalladas , ejemplos de casos de estudio , diagramas de relación, y el contenido suplementaria se proporcionan en el libro. Dado que los patrones candidatos se publican para fines de revisión , la información más detallada a veces se pone a disposición .
requisito
Un requisito es una declaración concisa , simple frase que presenta el requisito fundamental dirigida por el patrón en la forma de una pregunta. Cada descripción del patrón comienza con esta declaración.
Un ejemplo de una declaración de necesidad:
¿Cómo puede un servicio de ser diseñado para minimizar las posibilidades de capacidad de lógica deconstrucción ?
icono
La descripción de cada patrón se acompaña de una imagen de icono que actúa como un identificador visual .
Un ejemplo de un icono de patrón:
Los iconos se muestran junto con los estados exigencia en cada perfil de patrón , así como en el interior de la portada del libro .
Cuadro Resumen
Tras la declaración de obligación , se muestra un cuadro resumen , compuesto por las declaraciones que en conjunto proporcionan una sinopsis concisa del patrón para fines de referencia rápida .
Las siguientes partes del perfil se resumen en la siguiente tabla:
Además, la tabla de perfiles proporciona referencias a los principios de diseño de servicios de orientación relacionados y tipos de arquitectura orientadas al servicio a través de las siguientes secciones:
Principios
arquitectura
Las partes de la descripción del patrón no representado en la tabla de resumen son las relaciones y las secciones de caso de estudio .
problema
El problema que causa un problema y los efectos del problema se describen en esta sección , que típicamente se acompaña de una figura que ilustra aún más el " estado de problema . " Es este problema para el que se espera que el patrón para proporcionar una solución . A menudo incluyen con descripciones de los problemas son las circunstancias comunes que pueden conducir al problema (también conocido como " fuerzas ") .
solución
Esto representa la solución de diseño propuesto por el patrón para resolver el problema y cumplir con el requisito . A menudo, la solución está a una corta declaración seguida de un diagrama que se comunica de forma concisa el estado de solución final. " How-to " datos no se proporcionan en esta sección, pero en cambio se encuentran en la sección de aplicaciones.
aplicación
Esta parte está dedicada a la descripción de cómo se puede aplicar el patrón. En Puede incluir directrices, los detalles de implementación y, a veces incluso un proceso sugerido.
Impactos
La mayoría de los modelos vienen con ventajas y desventajas . Esta sección destaca las consecuencias comunes , costos y requisitos asociados con la aplicación de un patrón y también puede proporcionar alternativas que se pueden considerar .
Tenga en cuenta que estas consecuencias son frecuentes, pero no necesariamente predecible. Por ejemplo , las cuestiones relacionadas con los requisitos de rendimiento comunes a menudo se plantean , sin embargo , estos problemas no pueden afectar un entorno con una infraestructura ya altamente escalable.
Patrones SOA y tecnologías de aplicación
Es importante para ver y posicionar SOA como un modelo arquitectónico que es neutral a cualquier plataforma de tecnología y la orientación a servicios como un paradigma que es neutral a cualquier medio de aplicación distribuida . Al hacer esto, usted tiene la libertad de ejercer continuamente los objetivos estratégicos relacionados con SOA y la orientación a servicios , aprovechando en curso avances tecnológicos .
Por ejemplo , un servicio puede ser construido e implementado como un componente , un servicio web basado en SOAP o un servicio REST. Esencialmente , cualquier tecnología de aplicación que se puede utilizar para crear un sistema distribuido puede ser adecuado para la orientación a servicios . Muchos de los patrones de diseño de este catálogo no son específicos de uno cualquiera de estos tres medios de aplicación , pero algunos son . Varios ejemplos se basan en el uso de los servicios Web basados en SOAP porque este medio de la implementación del servicio ha sido históricamente los más populares. Esto no le impide aplicar los patrones con otras tecnologías apropiadas . Algunos patrones , en particular, pueden llevarse a cabo con productos específicos de proveedor y tecnologías que se basan en protocolos de comunicación alternativos y las API que no se basan en estándares de la industria .
Al decidir sobre qué tecnologías a utilizar para un determinado patrón , puede ser útil tomar algunas de las pautas relativas a la normalización en cuenta , tales como Protocolo de Canonical, protocolos duales, recursos canónicos y esquema Canónicos . Este tipo de patrones pueden proporcionar orientación normativa para ayudarle a establecer unos criterios básicos para la selección de la tecnología.
La manera más simple para describir un patrón es que proporciona una solución probada a un problema común documentado individualmente en un formato coherente y por lo general como parte de una colección más grande .
La noción de un patrón que ya es una parte fundamental de la vida cotidiana. Sin reconocer que cada vez , es natural que utilizamos soluciones de probada eficacia para resolver los problemas comunes de todos los días. Patrones en el mundo de TI que giran en torno al diseño de sistemas automatizados se conocen como patrones de diseño.
Los patrones de diseño son útiles porque :
representan soluciones probadas en el campo de los problemas comunes de diseño organizar la inteligencia del diseño en un formato estandarizado y fácilmente " referenciable " generalmente son repetibles por la mayoría de los profesionales de TI que participan en el diseño se puede utilizar para garantizar la coherencia en cómo se diseñan los sistemas y construido puede ser la base de las normas de diseño
suelen ser flexibles y opcionales ( y abiertamente documentar los impactos de su aplicación e incluso proponer enfoques alternativos ) se puede utilizar como ayudas educativas mediante la documentación de aspectos específicos de diseño del sistema ( independientemente de si se aplican ) a veces puede ser aplicado antes y después de la aplicación de un sistema de se puede apoyar a través de la aplicación de otros patrones de diseño que son parte de la misma colección enriquecer el vocabulario de un determinado campo de TI , ya que cada patrón se le da un nombre significativo, además, dado que las soluciones aportadas por los patrones de diseño son probados , su aplicación sistemática tiende a mejorar naturalmente la calidad de los diseños de sistemas .
Tenga en cuenta que a pesar de que los patrones de diseño proporcionan soluciones de diseño probadas , su mera utilización no puede garantizar que los problemas de diseño siempre se resuelven según sea necesario. Hay muchos factores que pesan en el éxito final de la utilización de un patrón de diseño , incluyendo las limitaciones impuestas por el entorno de aplicación , la competencia de los practicantes , divergencias entre los requisitos de negocio , y así sucesivamente . Todos estos representan los aspectos que afectan a la medida en que un patrón puede ser aplicado con éxito .
modelo de la notación
La SOA patrones de diseño de catálogo utiliza una notación sencilla para representar sistemáticamente diferentes tipos de patrones .
patrón Símbolos
Cuando se trabaja con patrones de diseño SOA , ligeramente diferentes símbolos se usan para representar :
- un patrón de diseño
- un patrón de diseño compuesto
- un grupo de patrones de diseño relacionados
Además, los colores se incorporan para indicar si un patrón de diseño que aparece justo es que se hace referencia y no se discute en realidad , frente a uno que es el tema actual de discusión.
Estos símbolos se utilizan en todo el libro Design Patterns SOA , especialmente en los diagramas de relación de patrón. En este sitio web se dará cuenta de que todo cuando se analizan los patrones de compuestos.
figuras de patrónes
Los símbolos patrón antes mencionados se utilizan en las siguientes tres tipos principales de diagramas :
- propuestas secuencias de aplicación de patrones
- relaciones patrón
- jerarquías patrón compuesto
Vamos a echar un vistazo más de cerca a cada uno de estos tres tipos de diagramas principales:
Patrón aplicación Secuencias Figuras
Al documentar las secuencias recomendadas modelo de solicitud , los grupos de patrones relacionados y los patrones individuales que pertenecen a un grupo en particular se muestran de la siguiente manera :
Estos patrones se muestran en una secuencia de aplicación recomendada.
Estos patrones se muestran en una secuencia de aplicación recomendada .
En este caso, no hay requisitos firmes en cuanto al orden en que deben aplicarse los tres patrones de la derecha.
Patrón de relación Figuras
Cada patrón se documenta con un diagrama de relaciones entre patrón , como se muestra aquí:
Una convención estilo aplicado a todos los diagramas de relación patrón es el uso del color , de la siguiente manera :
Cada diagrama de relaciones patrón explora las relaciones de un patrón . Por lo tanto , que el patrón de diseño se pone de relieve en rojo , como por la notación símbolo previamente establecido .
Relaciones preestablecidas se documentarán de manera unidireccional. Para las relaciones en que el patrón que se está debatiendo en la actualidad afecta o se refiere a otros modelos, una línea roja se utiliza junto con una flecha apuntando hacia el otro patrón. Cuando los documentos de línea de relación cómo otros patrones se relacionan con el modelo actual , las líneas son de color verde , y las flechas se invierten.
Tenga en cuenta que la direccionalidad de las relaciones se conserva en diferentes diagramas. Por ejemplo , la línea de relación emisor de luz verde de Normalización de servicio y apuntando a la centralización de lógica en la figura anterior se invertirían ( y de color rojo ) en la figura relación de patrón para el patrón de Normalización de servicio . Tenga en cuenta que los diagramas de relación patrón se proporcionan en un solo libro.
Compuesto Jerarquía Patrón Figura
Patrones compuestas se componen de combinaciones de patrones de diseño . Cuando se muestra un patrón compuesto , por lo general se requiere una representación jerárquica , en la que aparece el nombre del patrón compuesto en la parte superior , y los patrones que forman el compuesto se muestra debajo.
Estos tipos de diagramas pueden ser considerados figuras relación simplificados en que sólo se identifican patrones que pertenecen a cada compuesto , sin entrar en los detalles de cómo estos patrones se relacionan .
patrón Perfil
Además del nombre del patrón y el nombre del contribuyente ( s ) , cada uno de los modelos de este catálogo se describe el uso de un formato de perfil constante y la estructura sobre la base de las siguientes partes:
- requisito
- icono
- Cuadro Resumen
- Principios
- arquitectura
- problema
- solución
- aplicación
- Impactos
- relaciones
- Estudio de caso Ejemplo
En las siguientes secciones se describe cada parte de un perfil de patrón de forma individual . Tenga en cuenta que de acuerdo con los requisitos de publicación de Prentice Hall, sólo con el requisito, icono , cuadro sinóptico , una figura de la muestra, y los vínculos con los patrones relacionados se publican para cada patrón en este sitio Web para los patrones que forman parte del catálogo maestro . Las secciones detalladas , ejemplos de casos de estudio , diagramas de relación, y el contenido suplementaria se proporcionan en el libro. Dado que los patrones candidatos se publican para fines de revisión , la información más detallada a veces se pone a disposición .
requisito
Un requisito es una declaración concisa , simple frase que presenta el requisito fundamental dirigida por el patrón en la forma de una pregunta. Cada descripción del patrón comienza con esta declaración.
Un ejemplo de una declaración de necesidad:
¿Cómo puede un servicio de ser diseñado para minimizar las posibilidades de capacidad de lógica deconstrucción ?
icono
La descripción de cada patrón se acompaña de una imagen de icono que actúa como un identificador visual .
Un ejemplo de un icono de patrón:
Los iconos se muestran junto con los estados exigencia en cada perfil de patrón , así como en el interior de la portada del libro .
Cuadro Resumen
Tras la declaración de obligación , se muestra un cuadro resumen , compuesto por las declaraciones que en conjunto proporcionan una sinopsis concisa del patrón para fines de referencia rápida .
Las siguientes partes del perfil se resumen en la siguiente tabla:
- problema
- solución
- aplicación
- Impactos
Además, la tabla de perfiles proporciona referencias a los principios de diseño de servicios de orientación relacionados y tipos de arquitectura orientadas al servicio a través de las siguientes secciones:
Principios
arquitectura
Las partes de la descripción del patrón no representado en la tabla de resumen son las relaciones y las secciones de caso de estudio .
problema
El problema que causa un problema y los efectos del problema se describen en esta sección , que típicamente se acompaña de una figura que ilustra aún más el " estado de problema . " Es este problema para el que se espera que el patrón para proporcionar una solución . A menudo incluyen con descripciones de los problemas son las circunstancias comunes que pueden conducir al problema (también conocido como " fuerzas ") .
solución
Esto representa la solución de diseño propuesto por el patrón para resolver el problema y cumplir con el requisito . A menudo, la solución está a una corta declaración seguida de un diagrama que se comunica de forma concisa el estado de solución final. " How-to " datos no se proporcionan en esta sección, pero en cambio se encuentran en la sección de aplicaciones.
aplicación
Esta parte está dedicada a la descripción de cómo se puede aplicar el patrón. En Puede incluir directrices, los detalles de implementación y, a veces incluso un proceso sugerido.
Impactos
La mayoría de los modelos vienen con ventajas y desventajas . Esta sección destaca las consecuencias comunes , costos y requisitos asociados con la aplicación de un patrón y también puede proporcionar alternativas que se pueden considerar .
Tenga en cuenta que estas consecuencias son frecuentes, pero no necesariamente predecible. Por ejemplo , las cuestiones relacionadas con los requisitos de rendimiento comunes a menudo se plantean , sin embargo , estos problemas no pueden afectar un entorno con una infraestructura ya altamente escalable.
Patrones SOA y tecnologías de aplicación
Es importante para ver y posicionar SOA como un modelo arquitectónico que es neutral a cualquier plataforma de tecnología y la orientación a servicios como un paradigma que es neutral a cualquier medio de aplicación distribuida . Al hacer esto, usted tiene la libertad de ejercer continuamente los objetivos estratégicos relacionados con SOA y la orientación a servicios , aprovechando en curso avances tecnológicos .
Por ejemplo , un servicio puede ser construido e implementado como un componente , un servicio web basado en SOAP o un servicio REST. Esencialmente , cualquier tecnología de aplicación que se puede utilizar para crear un sistema distribuido puede ser adecuado para la orientación a servicios . Muchos de los patrones de diseño de este catálogo no son específicos de uno cualquiera de estos tres medios de aplicación , pero algunos son . Varios ejemplos se basan en el uso de los servicios Web basados en SOAP porque este medio de la implementación del servicio ha sido históricamente los más populares. Esto no le impide aplicar los patrones con otras tecnologías apropiadas . Algunos patrones , en particular, pueden llevarse a cabo con productos específicos de proveedor y tecnologías que se basan en protocolos de comunicación alternativos y las API que no se basan en estándares de la industria .
Al decidir sobre qué tecnologías a utilizar para un determinado patrón , puede ser útil tomar algunas de las pautas relativas a la normalización en cuenta , tales como Protocolo de Canonical, protocolos duales, recursos canónicos y esquema Canónicos . Este tipo de patrones pueden proporcionar orientación normativa para ayudarle a establecer unos criterios básicos para la selección de la tecnología.
viernes, 11 de octubre de 2013
Arquitectura TI Estandar Framework y Componentes, Basada en la especificación J2EE.
Arquitectura TI Estandar Framework y Componentes, Basada en la especificación J2EE.
Recursos.
Oracle GlassFish
Server.
Oracle
GlassFish Enterprise Server proporciona un servidor para el
desarrollo y el despliegue de la plataforma Java, Enterprise Edition
(plataforma Java EE) y tecnologías web basadas en la tecnología
Java, algunas de sus características son:
- Servidor de aplicaciones con asistencia gratuita de la comunidad
- Los mejores servidores de aplicaciones de código abierto del sector hoy en día.
- Arquitectura modular y extensible de nueva generación (OSGi)
- Fiabilidad y rendimiento con menor complejidad para las empresas
- usa un componente adicional llamado Grizzly que usa Java NIO para escalabilidad y velocidad.
Apache Software.
Apache
Software Foundation (ASF)
es una organización no lucrativa (en concreto, una fundación)
creada para dar soporte a los proyectos de software bajo
la denominación Apache,
incluyendo el popular servidor
HTTP Apache. La ASF se
formó a partir del llamado Grupo
Apache y fue
registrada en Delaware (Estados
Unidos), en junio de 1999.
Entre
los objetivos de la ASF se encuentran el de proporcionar tecnologías
basadas en librerías Java que componen los framework que son
utilizados por la industria de desarrollo de software.
Eclipse.
Eclipse es
un programa
informático, entorno de desarrollo de software ampliamente
utilizado, compuesto
por un conjunto de herramientas de programación de código
abierto multiplataforma
para desarrollar lo que el proyecto llama "Aplicaciones de
Cliente Enriquecido", basadas en navegadores. Esta plataforma,
típicamente ha sido usada para desarrollar entornos
de desarrollo integrados (del
inglés IDE), como el IDE de Java llamado Java
Development Toolkit (JDT)
y el compilador (ECJ) que se entrega como parte de Eclipse (y que son
usados también para desarrollar el mismo Eclipse).
Java .
El lenguaje
de programación Java fue
originalmente desarrollado por James
Gosling de Sun
Microsystems (la
cual fue adquirida por la compañía Oracle)
y publicado en el 1995 como un componente fundamental de
la plataforma
Java de
Sun Microsystems. Su sintaxis
deriva
mucho de C y C++,
pero tiene menos facilidades de bajo
nivel que
cualquiera de ellos. Las aplicaciones de Java generalmente pueden
ejecutarse en cualquier máquina
virtual Java (JVM)
sin importar la arquitectura
de la computadora subyacente.
Java es un lenguaje de programación de propósito
general, concurrente, orientado
a objetos y basado
en clases.
Su intención es permitir que los desarrolladores de
aplicaciones escriban el programa una vez y lo ejecuten en cualquier
dispositivo (conocido en inglés como WORA,
o "write
once, run anywhere"),
lo que quiere decir que el código que
es ejecutado en una plataforma no tiene que ser recompilado para
correr en otra. Java es, a partir del 2012, uno de los lenguajes de
programación más populares en uso, particularmente para
aplicaciones de cliente-servidor de
web, con unos 10 millones de usuarios reportados.
DisplayTag.
DisplayTag es un una
librería de tags jsp que es de gran utilidad a la hora de trabajar
con una arquitectura MVC, permite mostrar tablas dentro de los jsp
sin la necesidad de recurrir al Scriplet o la utilización de varios
tag de JSTL o Struts.
Entre las funcionalidades más destacadas de esta librería: paginación, ordenamiento, exportación de las tablas (en varios formatos: pdf, rtf, csv, Excel, XML).
Entre las funcionalidades más destacadas de esta librería: paginación, ordenamiento, exportación de las tablas (en varios formatos: pdf, rtf, csv, Excel, XML).
Junit .
JUnit es
un conjunto de bibliotecas que son utilizadas en programación para
hacer pruebas
unitarias de
aplicaciones Java.
JUnit
es un conjunto de clases (framework)
que permite realizar la ejecución de clases Java de manera
controlada, para poder evaluar si el funcionamiento de cada uno de
los métodos de la clase se comporta como se espera.
JUnit
es también un medio de controlar las pruebas
de regresión, necesarias cuando una parte del código ha sido
modificado y se desea ver que el nuevo código cumple con los
requerimientos anteriores y que no se ha alterado su funcionalidad
después de la nueva modificación.
Netbeans .
NETBEANS
es un entorno
de desarrollo integrado,
hecho principalmente para el lenguaje
de programación Java.
NetBeans
es un proyecto de código abierto de gran éxito con una gran base de
usuarios, una comunidad en constante crecimiento, y con más de 500
socios en todo el mundo. Sun MicroSystems fundó el proyecto de
código abierto NetBeans en junio de 2000 y Oracle continúa siendo
el patrocinador principal.
La
plataforma NetBeans permite que las aplicaciones sean desarrolladas a
partir de un conjunto de componentes
de software llamados módulos. Las aplicaciones
construidas a partir de módulos pueden ser extendidas agregándole
nuevos módulos. Debido a que los módulos pueden ser desarrollados
independientemente, las aplicaciones basadas en la plataforma
NetBeans pueden ser extendidas fácilmente por otros desarrolladores
de software.
Pentaho.
Pentaho
se define como una plataforma de BI “orientada a la solución” y
“centrada en procesos” que incluye todos los principales
componentes requeridos para implementar soluciones basados en
procesos. Las soluciones que Pentaho pretende ofrecer se componen
fundamentalmente de una infraestructura de herramientas de análisis
e informes integrados con un motor de workflow de procesos de
negocio. La plataforma será capaz de ejecutar las reglas de negocio
necesarias, expresadas en forma de procesos y actividades y de
presentar y entregar la información adecuada en el momento adecuado.
Algunos
módulos son reporting, analysis, dahsboards, data Mining y
herramientas para tratamiento de datos.
Hinernate.
Hibernate es
una herramienta de Mapeo
objeto-relacional (ORM)
para la plataforma
Java (y
disponible también para .Net con
el nombre de NHibernate)
que facilita el mapeo de atributos entre una base
de datos relacional
tradicional y el modelo de objetos de
una aplicación, mediante archivos declarativos (XML)
o anotaciones en los beans de
las entidades que permiten establecer estas relaciones.
Hibernate busca
solucionar el problema de la diferencia entre los dos modelos de
datos coexistentes en una aplicación: el usado en la memoria de la
computadora (orientación a objetos) y el usado en las bases de datos
(modelo relacional). Para lograr esto permite al desarrollador
detallar cómo es su modelo de datos, qué relaciones existen y qué
forma tienen. Con esta información Hibernate le permite a la
aplicación manipular los datos en la base de datos operando sobre
objetos, con todas las características de la POO.
Apache – Ant.
Apache
Ant es una herramienta
usada en programación para la realización de tareas mecánicas y
repetitivas, normalmente durante la fase de compilación y
construcción (build). Es, por tanto, un software para procesos
de automatización
de compilación,
desarrollado en lenguaje
Java.
Esta
herramienta, hecha en el lenguaje
de programación Java,
tiene la ventaja de no depender de las órdenes del shell de
cada sistema operativo, sino que se basa en archivos de
configuración XML y
clases Java para la realización de las distintas tareas, siendo
idónea como solución multi-plataforma.
Ant
es un proyecto de la Apache
Software Foundation, y se lanza bajo la licencia Apache
Software.
Spring Framework.
Spring es
un framework para
el desarrollo de aplicaciones y contenedor de inversión
de control para
la plataforma
Java.
El framework fue lanzado inicialmente
bajo la licencia Apache 2.0. Spring Framework a ontenido
reconocimientos Jolt Awards, Jax Innovation Awards, etc. desde el
2006 a la fecha.
Las
características fundamentales de Spring Framework pueden ser usadas
en cualquier aplicación desarrollada en Java y la plataforma Java
EE. A pesar que no impone ningún modelo de programación en
particular, este framework se ha vuelto popular en la comunidad al
ser ampliamente utilizado y soportado por la Industria de desarrollo
Java y J2EE para aplicaciones empresariales.
Log4j.
Log4j es una
biblioteca desarrollada en Java por
la Apache
Software Foundation que permite a los desarrolladores de
software elegir la salida y el nivel de granularidad de los mensajes
o “logs” (data
logging) a tiempo
de ejecución y no a tiempo
de compilación como es comúnmente realizado.
CVS.
Concurrent
Versions System o
simplemente CVS,
es una aplicación
informática que
implementa un sistema
de control de versiones:
mantiene el registro de todo el trabajo y los cambios en los ficheros
(código fuente principalmente) que forman un proyecto (de programa)
y permite que distintos desarrolladores (potencialmente situados a
gran distancia) colaboren. CVS se ha hecho popular en el mundo
del software.
Sus desarrolladores difunden el sistema bajo la licenciaGPL.
Jasper Report :
JasperReports es
una herramienta de creación de informes que
tiene la habilidad de entregar contenido enriquecido al usuario,
en distintos formatos como ficheros PDF, HTML, XLS, CSV y XML.
Está
escrito completamente en Java y
puede ser usado en gran variedad de aplicaciones,
incluyendo J2EE o aplicaciones
web, para generar contenido dinámico.
Su
propósito principal es ayudar a crear documentos dinámicos,
reportes gráficos, etc.
Se
encuentra bajo licencia libre GNU
de apache software foundation.
Oracle Database.
Oracle
Database es un sistema
de gestión de base de datos objeto-relacional
(u ORDBMS por
el acrónimo en inglés de Object-Relational Data Base Management
System), desarrollado por Oracle
Corporation.
Se
considera a Oracle Database como uno de los sistemas de bases de
datos más completos, destacando:
- soporte de transacciones,
- soporte multiplataforma.
URL’s.
http://java.sun.com/
http://netbeans.org/
http://soa.netbeans.org/soa/
http://www.springsource.org/
http://displaytag.sourceforge.net/
http://www.pentaho.com/
http://www.intalio.com/
http://www.hibernate.org/
http://linslackware.blogspot.com/
http://community.jaspersoft.com/
Etiquetas:
arquitectura,
componentes,
framework,
it,
j2ee,
ti
Validar firma xml utilizando certificado x509 y libreria xmlsec-1.4.3.jar
package xml;
import java.io.File;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
import org.apache.xml.security.keys.KeyInfo;
import org.apache.xml.security.signature.XMLSignature;
import org.w3c.dom.*;
import javax.xml.parsers.*;
/**
* Verifica un archivo firmado
* @author Jorge Salomon
* @see http://linSlackware.blogspot.com
*/
public class VerifySignature {
/**
* Punto de inicio
*/
public static void main(String args[]) throws Exception {
org.apache.xml.security.Init.init();
String signatureFileName = "/home/slack/desarrollo/testing/src/xml/xml/DTE_DOWN76828160-2 387.xml";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setAttribute("http://xml.org/sax/features/namespaces", Boolean.TRUE);
File f = new File(signatureFileName);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new java.io.FileInputStream(f));
Element sigElement = (Element) doc.getElementsByTagName("Signature").item(0);
XMLSignature signature = new XMLSignature(sigElement, f.toURL().toString());
KeyInfo keyInfo = signature.getKeyInfo();
if (keyInfo != null) {
X509Certificate cert = keyInfo.getX509Certificate();
if (cert != null) {
// Validamos la firma usando un certificado X509
if (signature.checkSignatureValue(cert)){
System.out.println("Válido según el certificado");
} else {
System.out.println("Inválido según el certificado");
}
} else {
// No encontramos un Certificado intentamos validar por la cláve pública
PublicKey pk = keyInfo.getPublicKey();
if (pk != null) {
// Validamos usando la clave pública
if (signature.checkSignatureValue(pk)){
System.out.println("Válido según la clave pública");
} else {
System.out.println("Inválido según la clave pública");
}
} else {
System.out.println("No podemos validar, tampoco hay clave pública");
}
}
} else {
System.out.println("No ha sido posible encontrar el KeyInfo");
}
}
}
Suscribirse a:
Entradas (Atom)