viernes, 5 de junio de 2015

Top 3 Frameworks que utilizan Java

Introducción



Existen diferentes tipos de herramientas para poder trabajar aplicaciones, tanto web como móviles, de escritorio, etc...
En este trabajo nos enfocaremos en los llamados frameworks, profundizando en los que utilizan java específicamente. Para esto primero necesitamos saber que es un framework, en que consiste y de que forma se emplea.





¿Qué es un framework?



El concepto framework se emplea un muchos ámbitos del desarrollo de sistemas software, no solo en el ámbito de aplicaciones Web. Podemos encontrar frameworks para el desarrollo de aplicaciones médicas, de visión por computador, para el desarrollo de juegos, y para cualquier ámbito que pueda ocurrírsenos.
En general, con el término framework, nos estamos refiriendo a una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.

Los objetivos principales que persigue un framework son: acelerar el proceso de desarrollo, reutilizar código ya existente y promover buenas prácticas de desarrollo como el uso de patrones.
Un framework Web, por tanto, podemos definirlo como un conjunto de componentes (por ejemplo clases en java y descriptores y archivos de configuración en XML) que componen un diseño reutilizable que facilita y agiliza el desarrollo de sistemas Web.




Top 10 Frameworks que utilizan java 

El siguiente top 10 está basado en la lista publicada por Veracode el 2012. Esta lista está basada en 5400 aplicaciones desarrolladas por clientes. El porcentaje de cada uno refleja el numero de aplicaciones Java en las cuales fue observado el framework.

  1. Spring MVC (23%)
  2. Struts 1.x (15%)
  3. Apache Axis (15%)
  4. Apache Xerces (14%)
  5. Hibernate (12%)
  6. JDOM (12%)
  7. Java Applet (8.1%)
  8. Apache Velocity (7.9%)
  9. Apache ORO (7.0%)
  10. JAX-WS (6.5%)
ahora en base a este top 10 escogeremos 3, los cuales explicaremos uno a uno.



Spring MVC:

Spring es un framework para el desarrollo de aplicaciones y contenedor de inversión de control, de código abierto para la plataforma Java.
Si bien las características fundamentales de Spring Framework pueden ser usadas en cualquier aplicación desarrollada en Java, existen variadas extensiones para la construcción de aplicaciones web sobre la plataforma Java EE. A pesar de que no impone ningún modelo de programación en particular, este framework se ha vuelto popular en la comunidad al ser considerado una alternativa, sustituto, e incluso un complemento al modelo EJB (Enterprise JavaBean).
Spring Framework comprende diversos módulos que proveen un rango de servicios:
  • Contenedor de inversión de control: permite la configuración de los componentes de aplicación y la administración del ciclo de vida de los objetos Java, se lleva a cabo principalmente a través de la inyección de dependencias.
  • Programación orientada a aspectos: habilita la implementación de rutinas transversales.
  • Acceso a datos: se trabaja con RDBMS en la plataforma java, usando Java Database Connectivity y herramientas de Mapeo objeto racional con bases de datos NoSQL.
  • Gestión de transacciones: unifica distintas APIs de gestión y coordina las transacciones para los objetos Java.
  • Modelo Vista Controlador: Un framework basado en HTTP y servlets, que provee herramientas para la extensión y personalización de aplicaciones web y servicios web REST.
  • Framework de acceso remoto: Permite la importación y exportación estilo RPC, de objetos Java a través de redes que soporten RMI, CORBA y protocolos basados en HTTP incluyendo servicios web (SOAP).
  • Convención sobre Configuración: el módulo Spring Roo ofrece una solución rápida para el desarrollo de aplicaciones basadas en Spring Framework, privilegiando la simplicidad sin perder flexibilidad.
  • Procesamiento por lotes: un framework para procesamiento de mucho volumen que como características incluye funciones de registro/trazado, manejo de transacciones, estadísticas de procesamiento de tareas, reinicio de tareas, y manejo de recursos.
  • Autenticación y Autorización procesos de seguridad configurables que soportan un rango de estándares, protocolos, herramientas y prácticas a través del subproyecto Spring Security (antiguamente Acegi).
  • Administración Remota: Configuración de visibilidad y gestión de objetos Java para la configuración local o remota vía JMX.
  • Mensajes: Registro configurable de objetos receptores de mensajes, para el consumo transparente desde la a través de JMS, una mejora del envío de mensajes sobre las API JMS estándar.
  • Testing: Soporte de clases para desarrollo de unidades de prueba e integración.



Apache Struts:

Apache Struts 1 es un framework de código libre para aplicaciones, para el desarrollo de aplicaciones web en Java EE. Este está descontinuado a causa de su sucesor Apache Struts 2. Trabaja con MVC gracias a la API Java Servlet.

El punto a favor en este Framework es que separa el modelo (aplicación lógica que interactúa con la base de datos) de la vista (páginas HTML presentadas al cliente) y el controlador (instancia en la que se pasa información entre vista y modelo). Struts provee el el control y las facilita la escritura de plantillas para la capa de presentación o de vista. El programador de la aplicación web es el responsable de escribir el código del modelo, y también de crear el archivo de configuración central "struts-config.xml" que brinda al mismo tiempo tanto el modelo, como la vista y el controlador.
Las peticiones hechas por el cliente son enviadas al controlador en la forma de Acciones definidas en el archivo de configuración.



Apache Axis:

Apache Axis es un framework de código abierto, basado en XML para servicios web. Consiste en una implementación en Java y otra en C++ del servidor SOAP, así como diversos utilitarios y APIs para generar y desplegar aplicaciones de servicios web. Por medio de Apache Axis, los desarrolladores pueden crear aplicaciones computacionales interoperables y distribuidas. 

Al emplear la variante Java de Axis, existen dos maneras de exponer código Java como servicio web. Lo más fácil es usar los archivos JWS (Java Web Service), nativos de Axis. La otra manera consiste en usar despliegues a la medida. Los despliegues a la medida permiten adaptar los recursos que se desea exponer como servicios web.



No hay comentarios:

Publicar un comentario