Bienvenida

Como todo en la vida, la innovación es la clave del éxito por lo que nos hemos visto en la necesidad de "evolucionar" este blog para abarcar muchos otros temas que estaban quedando de lado en nuestros cursos "oficiales".

Si deseas aprender o profundizar algunos temas en particular, no dudes en contactarnos.


viernes, 29 de abril de 2011

Cloud Computing y DAW-II

Para los interesados en el tema de cloud computing hace un tiempo hicimos un par de ejemplos en clase y despues los colgamos en la infraestructura de Google App Engine  ( usa Struts 2 y JPA ).


  • El primer ejemplo, es un mantenimiento a una tabla de empleados ( en este caso los datos que modifiques o agregues solo son válidos en tu sesión  ... no hay persistencia ).
  • En el segundo ejemplo, usando Struts 2 cargamos un archivo de imagen y lo almacenamos usando JPA en el motor de Google App Engine ( que se llama BigTable ). 

"BigTable es un motor de bases de datos creado por Google con las características de ser: distribuido, de alta eficiencia y propietario construído sobre GFS (Google File System), Chubby Lock Service, y algunos otros servicios y programas de Google." (según la definición de Wikipedia ).

Aquí tienes más información sobre Google App Engine.




¿ que opinas ?

Sesion 2 : Struts 2 con el Plugin jQuery

"A Plugin for the popular java web framework struts2 to provide ajax functionality and UI Widgets based on the jQuery javascript framework."
Descarga los archivos .jar y ejemplos .war desde la zona de download en  Google Code.

La primera parte de esta sesion es mostrar rápidamente los principales tags que proporciona el plugin:
  • El material de esta parte de la clase lo puedes descargar aquí. Completa el proyecto inicial agregando el codigo JSP respectivo en base al material descargado ( es opcional ). 
  • La otra opción es que descargues desde Google Code el archivo llamado struts2-jquery-showcase-2.5.3.war desde éste link y veas como funciona ( en tu PC o en éste link ).

La segunda parte de esta sesión considera el ejemplo de la "grid" muy similar a jMesa o a DisplayTag ( acuerdate de LP-II ).  El objetivo es consultar una tabla ( "Person" ) y mostrar los datos dentro de una "grilla": 
  • Aquí está el material en formato PDF correspondiente a las páginas JSP.
  • Descarga la aplicación base aquí. En esta aplicación funciona el ejemplo 1 completamente ( no te olvides de incluir el driver de MySQL en el folder lib del proyecto ... sino, te dará un error ).
  • Descarga el esquema de la base de datos MySQL aquí. La base de datos se llama "quickstart" y sólo tiene una tabla "person".
  • Tambien tienes la opción de analizar el ejemplo de Google Code descargando el archivo struts2-jquery-grid-showcase-2.5.3.war desde este link. Mira como funciona aquí.

Observa la notación empleada en el archivo struts.xml para que comprendas como se invocan los actions y los métodos respectivos:



Como tarea completa las otras 3 opciones del proyecto: puedes hacerlo en grupo o individual. El objetivo es que repases Struts2, DAO's y JDBC, además de analizar como funciona la "grid" de éste plugin. Si gustas lo pruebas con Tomcat o con WAS ( igual va a funcionar ) ...

Y ya sabes que cualquier duda o consulta la puedes hacer por medio del formulario de contacto o colocando un comentario en este Post al cual cualquiera pueda responder ayudando o comentando.

¡ Hasta la próxima !

miércoles, 27 de abril de 2011

Rational Application Developer for WebSphere Software

El RAD está basado en Eclipse 3.6 así que la interfaz de usuario es muy similar. La única diferencia aparente es que es más "pesado" ( consume más recursos de la máquina ).

Si quieres descargar la versión TRIAL del software da click aquí. A diferencia del Eclipse, aquí tendrás que descargar casi 6 GB ( no es mi culpa ...  ). El uso del RAD requiere una licencia ( Por tanto un costo ) a diferencia de Eclipse que es free.

Este es una pequeña guía para instalar el RAD en tu casa :
  • Requiere conexión a internet
  • Requiere que seas Administrador de tu máquina.
No olvides que para probar tus aplicaciones primero debes crear un "perfil"  de WebSphere ( acuerdate de usar la opción de "avanzada" para no generar el perfil como servicio y que ellos afecte el rendimiento de tu máquina ).
    Comenta que te pareció el procedimiento de instalación.

    WebSphere Application Server

    Algunos tienen sus preferencias respecto a que determinado producto es mejor que otro, sin embargo pienso que todos los Application Servers que cumplen con las especificaciones JEE son iguales. Iguales en el sentido de la funcionalidad, pues todos soportan los formatos clásicos .EAR, .WAR, .JAR. y quizás .RAR.

    Creo que las preferencias vienen por el lado de la “primera impresión” con el producto: algunos son tan simples como entrar al sitio web, descargar, descomprimir y ejecutar el script de inicio. Otros son más complejos como que requieren descargar e instalar múltiples archivos antes de tener un ambiente disponible.

    Por otro lado, algunos servidores de aplicaciones tiene facilidades de administración que los hacen atractivos: unas consolas web vistosas, desarrolladas con Ajax, mientras otros tienen consolas más simples. Pero en el fondo, las tareas que se deben ejecutar son las mismas, lo único que cambia es la manera de hacerlas o como dice el dicho “todos los caminos conducen a Roma”.

    Los primeros servidores de aplicaciones que evalué (hace uuufffff de años ... ) fueron el WebSphere Application Server v3.5 (WAS), el Dynamo ATG y el BEA WebLogic 4.5 cuando el JDK estaba en sus versiones 1.1 y 1.2. Por ahí que apareció EnHydra y la verdad que de todos ellos, la instalación del WAS me pareció por demás complicada ( eran varios CD-ROMs ) mientras que en el caso del WebLogic ( WLS ) era un único archivo ( .ZIP o .EXE ). Al final, por cuestiones del destino, trabajo con WebLogic  y a lo largo de estos años he usado las versiones 5.1, 6.1, 7.0, 8.1 y actualmente la versión 10.3 etiquetada bajo la marca de Oracle ( Oracle adquirió a BEA en el 2008 pienso que debido a las malas experiencias con el OC4J ).

    Instalar WebLogic o el GlassFish  es tan simple como ejecutar  el archivo instalador. Actualizar la versión es tan simple como ejecutar el instalador del  “service pack” más conocido ahora como “maintenance pack”.  En cambio, trabajar como el WebSphere Application Server ( WAS ) me parece "complicado" ¿ cuestión de paradigmas ? ( ¡ el OC4J también me parece complicado ! ).

    Bajo la premisa que “todos los Application Servers fueron creados iguales”, te dejo este documento (Da click aquí) que explica paso a paso como instalar el WAS (WebSphere Application Server ) con lo necesario para el curso. 

    IBM proporciona una versión "Free for Developers" y te recomiendo que la descargues usando el DownloadDirector ( pues si se corta la conexión, no tienes que comenzar de nuevo ). La versión que se descarga es la 7.0.0.0 y se requiere actualizarla a la 7.0.0.15 pues para la parte de JPA, necesitamos instalar un "Feature Pack" que soporte JPA 2.0 ( WAS por defecto soporta JPA 1 ). 


    Ten en cuenta que esto es válido si instalas el WAS únicamente, ya que si instalas el RAD ( Rational Application Developer, éste viene con una versión de WAS que será motivo de otro POST ).

    Si tienes curiosidad puedes profundizar leyendo la Guía de Administración y Configuración del WAS 7.0 ( está en inglés ).

    Si tienes problemas/dudas con la instalación, podemos aplicar la política del "BYOL" en clase ( Bring Your Own Laptop ).

    Por favor comenta que te pareció la instalación. Hasta la próxima.

    Sesion 01 : Uso del Plugin de Dojo con Struts 2

    http://dojotoolkit.org

    En esta sesión veremos el plugin de Dojo que viene dentro de la distribución de Struts 2 (esta es una buena noticia ) ... la mala noticia es que el plugin de Dojo está "deprecated" segun indica la página web del proyecto Struts 2 ( http://struts.apache.org/2.2.1.1/docs/ajax-tags.html ) . 
    Como quien repasa los conceptos de Struts 2, lee el siguiente resumen. O en todo caso, navega por el sitio web del proyecto en este enlace: http://struts.apache.org/2.x/index.html

    Para practicar/repasar los temas de clase: 
    • Descarga la aplicación base aquí. Es la aplicación base para el ciclo 2010-II. 
    • Lee y trata de completar la guía de laboratorio. Esta guía corresponde al 2010-II. 
    • Tambien tienes el PPT del 2011-I aquí. Como tarea, termina los ejemplos.

      Para conocer más sobre los plugins para Ajax lee este enlace.

      • Si quieres aprender más sobre Ajax te recomiendo leer este libro: "Introducción a Ajax" ( que lo puedes descargar como PDF ).
      • Si quieres aprender JavaScript, lee este libro : "Introducción a JavaScript" ( que tambien lo puedes descargar como PDF ).
      Hasta la próxima.

      martes, 12 de abril de 2011

      Contenido del Curso : Parte II

      En el post anterior hablamos sobre el entorno necesario para trabajar. Ahora hablaremos sobre los temas a tratar en el curso.

      Para ubicarnos dentro de tantos temas, siglas y nombres, descargar el siguiente mapa conceptual haciendo click aqui. Luego busca en el directorio donde ejecutaste la descarga y abre la pagina HTML usando el Internet Explorer y permite la ejecución de ActiveX (si es que apareciera la alerta).

      Unidad 1:
      Asumimos que ya conoces Struts-2 por lo que ahora nos enfocaremos en los aspectos avanzados del framework: el uso de Ajax y el manejo de interceptores para páginas de espera y control del doble submit de formularios. En el uso de Ajax, podremos trabajar con las librerías de Dojo o con las librerías de jQuery. Debemos recordar que Struts ha dejado de dar soporte a Dojo y que ademas el plugin para jQuery es proporcionado por Google Code. ¿ Cual escoger ? ... humm pues depende de lo que quieras hacer y de tus preferencias por una u otra librería.

      Unidad 2:
      Asumimos que ya sabes JDBC ( dado que has llevado el curso de LP-II) y tambien asumimos que ya sabes iBatis (dado que has pasado el curso de DAW-I). Entonces ahora nos toca aprender el modelo de persistencia Objeto-Relacional con la especificación JPA ( Java Persistence API).

      Al ser una especificacion ( es decir un conjunto de caracteristicas ), requiere que se implemente respetando las características aprobadas. Es así que para JPA v2 tenemos implementaciones como la de EclipseLink (Fundacion Eclipse - Oracle), OpenJPA (Fundación Apache ) e Hibernate ( Grupo JBoss ).

      La diferencia fundamental respecto a todo lo que ya aprediste es que, antes trabajabas con TABLAS relacionales y ahora trabajarás con Objetos Java denominados "ENTIDADES".  Tambien, si ya sabías SQL ( Lenguaje Estructurado de Consultas ), ahora aprenderás el manejo de JP-QL.

      ¡ No te asustes que es muy sencillo ! ... y es más ¡ escribirás menos código !


      Unidad 3:
      En esta unidad aprenderemos a utilizar las bondades que proporciona JSF v2.0 ( Java Server Faces ), que es una especificación que recupera y engloba lo mejor de los frameworks anteriormente existentes para el desarrollo web : xWork, Struts2 y Spring.



      Es más, existe una implementación de referencia (algo así como una versión base) denominada "Mojarra" la cual usaremos a lo largo del curso.

      Por otro  lado, sobre "Mojarra" podemos agregar implementaciones de otros fabricantes, las cuales enriquecen la funcionalidad de las páginas y aplicaciones que podamos desarrollar como por ejemplo:

      • IceFaces
      • RichFaces
      • PrimeFaces.


      Finalmente, verifica si has comprendido el contenido y alcance del curso mediante esta pequeña evaluación haciendo click aquí para descargarla a tu pc o laptop. De igual manera, abre la página HTML usando el Internet Explorer.

      lunes, 11 de abril de 2011

      Contenido del Curso : Parte I

      En esta primera parte hablaremos sobre el entorno de desarrollo y pruebas de las aplicaciones que se desarrollarán a lo largo del curso.
      Basicamente, todo el curso gira en torno al mundo Java ( aunque en otra galaxia muy lejana existe .NET y PHP principalmente)  y para ellos necesitamos tener instalado:
      • El JDK de Java version 1.6
      • Alguna herramienta de desarrollo IDE : por ejemplo Rational Application Developer (IBM), Eclipse IDE ( Proyecto Eclipse ), Netbeans (Oracle ) o JDeveloper ( Oracle ).
      • Un servidor de aplicaciones compatible con la especificación JavaEE ( Enterprise Edition ): Tomcat, WebSphere, Oracle WebLogic, JBoss, GlassFish, etc.

      Todas las herramientas mencionadas se conocen como IDE ( Integrated Development Environment) o ambiente integrado de desarrollo debido a que facilitan la labor de programación, pruebas y depuración del código Java que se escriba.

      Un reporte de preferencias en los IDE's indique los siguientes resultados:

      Los servidores de aplicaciones se conocen como "App Servers" o simplemente "servidores". En el caso especifico de Tomcat, no cumple totalmente la especificación JavaEE porque no implementa la parte de EJB (enterprise Java Beans).

      De la misma forma, un sondeo de uso de servidores de aplicaciones muestra que:


      En este caso, la lógica es la siguiente: escribimos nuestra aplicación en el IDE y luego la probamos en el servidor de aplicaciones. Justamente el IDE sirve para empaquetar e instalar la aplicación en el servidor de pruebas, pues de otra forma tendriamos que hacer el proceso a mano.

      Para el desarrollo de los ejemplos hemos seleccionado como IDE a Eclipse en su versión 3.6 ( conocida como Galileo ) y tambien "Rational Application Developer for Websphere Software" (v 8.0.2) e indistintamente usaremos Apache Tomcat 6.0.29 o IBM WebSphere App Server v7 ( 7.0.15 ). Tambien usaremos la base de datos MySQL 5.5.9

      Para recordar algunos conceptos basicos del uso de Eclipse IDE y de Servlets y JSP mira el siguiente video ( está en inglés ):


      Introducción

      El objetivo de este Blog es servir de complemento al curso "Desarrollo de Aplicaciones Web II" el cual ha sido diseñado bajo la modalidad de Unidades de Aprendizaje, las que desarrollan determinados temas a lo largo de las semanas establecidas para el dictado del curso. 

      En el manual que acompaña al curso cada capítulo indica los temas a ser tratados, los logros que se deben alcanzar y los contenidos que se deben desarrollar. Finalmente, se encontrará las actividades recomendadas que el alumno  deberá desarrollar para reforzar lo trabajado y aprendido en la clase. Se incluye bibliografía y recursos de Internet que puede colaborar en el logro de un autoaprendizaje efectivo. En este blog publicaremos material complementario así como trucos y consejos para sacar el máximo provecho a las tecnologías de la información aplicadas a la enseñanza.


      El curso es eminentemente práctico, pero requiere horas adicionales de investigación y práctica por parte del alumno:
      • Se inicia con un repaso del Framework Struts-2 para abordar las características que brinda al incorporar funcionalidades de tipo AJAX con los plug-ins de Dojo y jQuery así como la utilización de las opciones de validación. 
      • Posteriormente, se desarrolla ampliamente los conceptos de “OR-Mapping” con la especificación JPA (Java Persistence API) y su implementación en EclipseLink: se abordan las anotaciones, mapeo y relaciones entre entidades así como los fundamentos básicos de JP-QL para la construcción de consultas. 
      • Finalmente, la tercera unidad del manual aborda la especificación JSF (Java Server Faces ) tratando de abarcar gran parte de la funcionalidad que proporciona.