Archivo de July, 2009

A continuación voy a poner en consideración algunas de las características de la tecnología Flex, que aunque nació ya hace algunos años (Flex 1.0 en 2004) ha incrementado sus capacidades y es una herramienta importante para el desarrollo.

Adobe Systems dándole continuidad a sus productos que permiten cada vez mejorar la experiencia gráfica y visual de sus usuarios, línea que le ha caracterizado desde su inicio, presenta la tecnología Adobe Flex. Esta es una tecnología para crear aplicaciones tipo RIA ( Rich Intenet Aplications). Su primera versión fue presentada en el año 2004 y para la fecha se cuenta con la versión estable 3.0 (aunque se procura sacar al mercado la versión 4.0 en este año). Flex permite al desarrollador generar aplicaciones muy sofisticadas, de alta usabilidad, y multiplataforma. Funciona sobre Flash (de la misma manera que Java sobre su JVM) de manera que permite ser visualizado en la mayoría de exploradores web (internet Explorer, mozila firefox, google chrome, opera, etc) a través de un plugin de Flash.

Para lograr aplicaciones empresariales, es posible utilizar J2EE para el manejo de modelo y lógica de negocio e incluso el control de la vista. Y para le manejo de la interfaz de usuario se puede usar Flex que es posible a través de un producto llamado Flamingo que permite la conversación entre Java y Flex de manera segura y sencilla. Así mismo Flex puede ser utilizado con una variedad más de lenguajes y tecnologías como .Net o PHP.

Flex hace uso de ActionScript y de MXML que es un lenguaje de marcado basado en XML diseñado para ser usado con Flex. A continuación un pequeño ejemplo de su simplicidad para codificar, la encapsulación de código, facilidad de reuso, etc que permite productividad al desarrollador.

Para ver el código fuente del ejemplo:
http://examples.adobe.com/flex3/devnet/configurator/srcview/index.html
Para ver el ejemplo en acción:
http://examples.adobe.com/flex3/devnet/configurator/Configurator.html#

Java siempre está en la búsqueda de aplicaciones cada vez más portables, distribuidas, mantenibles, veloces, seguras y confiables. Es por eso que en su versión Enterprise 5 (JEE5), introdujo un API de manejo de persistencia que permite el mapeo objeto/relacional en Enterprise Beans, Web Beans o incluso dentro de Java SE. Todo esto a través de anotaciones sencillas que permiten enlazar correctamente el mundo de los objetos de Java con el mundo Entidad/Relación de las bases de datos.

Entre los beneficios que trae JPA están:

  • Está totalmente basado en estándares de la industria, de manera que es compatible con la mayoría de proveedores de persistencia como Hibernate, TopLink y demás.
  • Reduce la complejidad al momento de programar ya que incluye nuevas anotaciones al estándar EJB 3.0. Por ejemplo si se desea crear la entidad “Persona”, simplemente se anota a la clase “Persona.java” con @Entity. De esa manera JPA le indicará al proveedor de persistencia que esa clase debe ser (valga la redundancia) persistida a un almacén de datos como una base de datos, en forma de una tabla llamada “Persona”. El proveedor de persistencia se encargará a su vez de negociar en el lenguaje propio de la base de datos (MySQL , Oracle, Postgres, etc. Dependiendo del proveedor de persistencia).
  • Así mismo para especificar los atributos de las entidades, con JPA se introducen anotaciones que permiten determinar las propiedades de los atributos que se convertirán en columnas de las tablas. Dentro de estas anotaciones se incluye defaults para que JPA reconozca los nombres, tipo de datos y otras características de los atributos sin que éstos sean indicados explícitamente.
  • Con las anotaciones de JPA se puede también indicar las relaciones entre las entidades. Un ejemplo es la relación “muchos a uno” que se mapea con la anotación @ManyToOne. Igualmente soporta defaults y una gran cantidad de opciones para el mapeo deseado. Se elimina el uso de archivos XML como descriptores del mapeo ( en EJB 2.1 existen así) de manera que en ciertos casos el simple uso de JPA con sus defaults basta.
  • Incluye la tecnología JPA QL ( Quero Lenguaje) para realizar operaciones DML o consultas. Es una mejora a EJB QL que no permitía borrado o actualización masiva de datos. JPA QL permite hacer operaciones DML estáticas o dinámicas.

En resumen a través de JPA se puede convertir los POJOs en entidades persistibles de manera sencilla y  eficiente mejorando la productividad y portabilidad entre plataformas, bases de datos y servidores de aplicaciones. Sigue estándares y especificaciones Java y es compatible con varios proveedores de persistencia. Usa anotaciones básicas que soportan defaults y muchas de las operaciones válidas dentro de una base de datos.

1. Press ALT + F1 in your VMware ESXi console.

2. Type ‘unsupported’ (you won’t see what you type). Press Enter.

3. Enter your root password.

4. Edit file /etc/inetd.conf (vi /etc/inetd.conf).

5. Remove comment character ‘#‘ from line starts with ‘ssh‘. In my ESXi 3.5 U3, it’s line 32.

6. Save your changes.

7. Restart management service /sbin/services.sh

It’s possible you need to kill process inetd to finally enable SSH.

Posted by: AJ

Continuando con su desarrollo, Fonality ha liberado este martes trixbox CE 2.8.0.1, el primer release de su nueva versión 2.8, luego de unas pocas semanas de haberla lanzado.

La principal novedad de esta versión (2.8) es la incorporación de la última de Asterisk, la 1.6 y la inclusión de DAHDI (Digium Asterisk Hardware Device Interface) para el manejo de tarjetas análogas y digitales de interconexión con la PSTN. A la vez, con esta actualización se ha habilitado el script setup-pstn para que trabaje con Zaptel o DAHDI sin inconvenientes.

Además, recordando que trixbox CE tiene como sistema operativo a CentOS, se ha actualizado su kernel al último disponible, lo que elimina posibles conflictos de instalación en hardware de reciente fabricación y la hace más sencilla.

Esta versión se ha publicado luego de varios meses de expectativa de la comunidad y trabajo por parte de Fonality en corrección de errores y bugs resultando en un producto estable y de adecuado funcionamiento.

El último release (2.8.0.1) incluye DAHDI 2.2, ya no en su versión Beta y mejora la funcionalidad del producto para su implementación en un ambiente de virtualización xen.

Estaremos atentos a las novedades de los nuevos releases de la maquinita verde.

Les dejo el enlace de descarga de trixbox 2.8.0.1

Escrito por: AJ

JBoss creó SEAM como una alternativa para el desarrollo de aplicaciones Web. Integra tecnologías como AJAX, JSF, EJB3, JSR-168 Portlets y BPM en una arquitectura que reduce la complejidad al momento del desarrollo. La complejidad es reducida gracias a el manejo de anotaciones en los POJOs, etiquetas XML y otros componentes a nivel de vista.

SEAM elimina la concepción de componentes EJB pesados, convirtiendo POJOs simples en Beans EJB a través de simples anotaciones como por ejemplo:

@Stateless
@Name("miBean")
public class miBean
{
@In
private User user;

@PersistenceContext
private EntityManager em;

@Logger
private Log log;

………………………

De esta manera se pueden combinar ambientes EJB3 con ambientes J2EE o simplemente ambientes que corren sobre Tomcat. Se integra con el estándar JPA para el manejo de persistencia y mapeo objeto-relacional.

Con respecto a la fabricación de páginas Web, SEAM integra herramientas como JSF y AJAX. Pudiendo embeberse la capacidad asincrónica de AJAX con los componentes ricos de RichFaces o ICEFaces. El desarrollador no tiene que manejar AJAX o JavaScript ya que los componentes son simples etiquetas XML como por ejemplo:


<h:inputText value="#{bean.text}">
<a4j:support event="onkeyup" reRender="repeater"/>
</h:inputText>
<h:outputText id="repeater" value="#{bean.text}"/>

En este ejemplo se usa AJAX para asincrónicamente y sin que se refresque el explorador, se cambie el valor del componente “repeater”. Como se puede ver no se requiere conocimiento de AJAX.

Para manejar el Flujo entre páginas o incluso procesos de negocio que deben ser persistidos a lo largo de su ciclo de vida, SEAM utiliza jBPM una herramienta poderosa creada por JBoss para controlar estos propósitos. Además maneja “Conversaciones” para mantener el alcance y contexto de variables de aplicación, sesión, etc.

Algunos ejemplos de páginas que se han desarrollado en SEAM:

Desarrollado en Seam 2.0.1. Se usó RichFaces 3.2.0 y Tomcat 6.0.16. Mapeado a la base de datos MySql 5.0.45

http://www.crotouristguide.com/main/home.seam

Esta es la página de una empresa de turismo de Croacia que maneja registro para los turistas, búsquedas, interacción con Google Mapsy Wikipedia entre otras funcionalidades.

Desarrollado en Seam 2.01 sobre un servidor JBoss AS.

http://www.trendrr.com/trends/category/brands.seam

En ésta página se sigue la pista a muchas páginas sociales (Twitter, Facebook) y crea comparaciones de tráfico de las mismas.

En Refundation tenemos algunos cursos de capacitación en Ecuador por si te interesa aprender mas sobre este tema.

Por: Gary Vergara – gv[at]refundation.com