GC TENIS UDEA                                                       U. de A.VERSION 1 – RTF 3                             ...
GC TENIS UDEA                                                                         U. de A.VERSION 1 – RTF 3           ...
GC TENIS UDEA                                                                                                U. de A.VERSI...
GC TENIS UDEA                                                                                               U. de A.VERSIO...
GC TENIS UDEA                                                                                               U. de A.VERSIO...
GC TENIS UDEA                                                                 U. de A.VERSION 1 – RTF 3                   ...
GC TENIS UDEA                                                                        U. de A.VERSION 1 – RTF 3            ...
GC TENIS UDEA                                                                 U. de A.VERSION 1 – RTF 3                   ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                   U. de A.VERSION 1 – RTF 3                 ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                              U. de A.  VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                  U. de A.VERSION 1 – RTF 3                        Seminario deENFOQUE ARQUIT...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                 U. de A.VERSION 1 – RTF 3                   ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                   U. de A.VERSION 1 – RTF 3                 ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                 U. de A.  VERSION 1 – RTF 3                 ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                    U. de A.VERSION 1 – RTF 3                ...
GC TENIS UDEA                                                              U. de A.VERSION 1 – RTF 3                      ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                           U. de A.VERSION 1 – RTF 3                         ...
GC TENIS UDEA                                                                 U. de A.VERSION 1 – RTF 3                   ...
GC TENIS UDEA                                                                        U. de A.   VERSION 1 – RTF 3         ...
GC TENIS UDEA                                                                     U. de A.   VERSION 1 – RTF 3            ...
GC TENIS UDEA                                                                  U. de A.VERSION 1 – RTF 3                  ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                 U. de A.VERSION 1 – RTF 3                   ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                 U. de A.VERSION 1 – RTF 3                   ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                  U. de A.VERSION 1 – RTF 3                  ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                               U. de A.VERSION 1 – RTF 3                     ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                U. de A.VERSION 1 – RTF 3                    ...
GC TENIS UDEA                                                                        U. de A.VERSION 1 – RTF 3            ...
GC TENIS UDEA                                                                 U. de A.VERSION 1 – RTF 3                   ...
GC TENIS UDEA                                                                      U. de A.VERSION 1 – RTF 3              ...
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Rtf3
Upcoming SlideShare
Loading in …5
×

Rtf3

1,451 views
1,335 views

Published on

Published in: Real Estate
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,451
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Rtf3

  1. 1. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software Gestión de Canchas de préstamo de tenis de la Universidad de Antioquia Código: GC Tenis UdeA Número: 20121- 3 Equipo de Trabajo Asesor Juan Bernardo Quintero Integrantes Santiago Agudelo Ibarra Alejandro Suárez Jaime Alberto Flórez Nelson Puerta
  2. 2. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software HistoriaVersión Fecha Descripción o Cambios introducidos 1.1 24/07/2012 Investigación de las plataformas 1.2 26/07/2012 Selección de la plataforma 1.3 28/07/2012 Investigación de los Frameworks 1.4 1/08/2012 Selección del Framework 1.5 4/08/2012 Arquitectura del Framework 1.6 13/08/2012 Montaje de la aplicación e implementación 1.7 14/08/2012 Implementación Roles Nombre del Rol Numerales Asignados Nombre del EstudianteArquitecto 1 1,2 Nelson PuertaArquitecto 2 1,2 Jaime Alberto FlórezArquitecto 3 e 1,2,3 Alejandro SuárezImplementadorArquitecto 4 e 1,2,3 Santiago Agudelo IbarraImplementador 2
  3. 3. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software1. TABLA DE CONTENIDO Pág.1.SELECCIÓN DE LA PLATAFORMA...................................................................... 61.1.Ruby On Rails......................................................................................................61.1.1.Características a evaluar de la plataforma.......................................................71.2 Plataforma basada en PHP, LAMP................................................................... 121.2.1Características a evaluar de la plataforma......................................................141.3 Plataforma .NET (ASP/ASPX.NET)...................................................................181.3.1Características a evaluar de la plataforma......................................................231.4 JEE.....................................................................................................................251.4.1Características a evaluar de la plataforma......................................................271.4.2GlassFish......................................................................................................... 291.5 Valoración de las características.......................................................................341.6 Calificación de cada Plataforma........................................................................341.7 Computo de totales y selección de la mejor plataforma. ...................................352SELECCIÓN DEL FRAMEWORK.........................................................................352.1ICEfaces..............................................................................................................362.1.1Características a evaluar del Framework. .......................................................362.2 Java Persistence API (JPA)...............................................................................382.2.1Características a evaluar del framework. ........................................................392.3Hibernate.............................................................................................................412.3.1 Caracteristicas a evaluar del Framework....................................................... 442.4 TOP LINK..........................................................................................................452.4.1Características a evaluar del Framework........................................................492.5Valoración de las características........................................................................512.6 Calificación de cada Framework........................................................................512.7 Computo de totales y selección del mejor Framework. .....................................52 3
  4. 4. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software2. LISTA DE FIGURAS Pág.Figura 1 Ejemplo de codificación en Ruby................................................................7Figura 2 Flujo de datos en PHP...............................................................................13Figura 3 Common Language Runtime (CLR)..........................................................19Figura 4 Biblioteca de clases .NET..........................................................................22Figura 5 Flujo de datos en .NET..............................................................................23Figura 6 Capas de JEE............................................................................................26Figura 7 Características JEE...................................................................................29Figura 8 GlassFish...................................................................................................30Figura 9 Valoración de las características...............................................................34Figura 10 Calificación de cada plataforma..............................................................35Figura 11 Calificación total de cada plataforma......................................................35Figura 12 Librerías de excepciones.........................................................................40Figura 13 Arquitectura Hibernate.............................................................................42Figura 14 Arquitectura TOPLINK.............................................................................46Figura 15 Esquema TOPLINK.................................................................................48Figura 16..................................................................................................................48Figura 17 Valoración de las características.............................................................51Figura 18 Calificación de cada Framework.............................................................51Figura 19 Calificación total cada Framework..........................................................52Figura 20 Vista de alto nivel del API de Hibernate en una arquitectura por Capas 53Figura 21 Instalación complemento de Hibernate...................................................55Figura 22 Crear aplicación WEB.............................................................................56Figura 23 Servidor GlassFish..................................................................................56Figura 24 Configuración del documento hibernate.cfg.xml.....................................57Figura 25 Ingenieria inversa de Hibernate..............................................................58Figura 26..................................................................................................................59 4
  5. 5. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareFigura 27 Mapeo objetos Hibernate........................................................................59Figura 28..................................................................................................................59Figura 29 Generar el código de los POJOS............................................................60Figura 30 Crear archivo HibernateUtil.java.............................................................61 5
  6. 6. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software 1. SELECCIÓN DE LA PLATAFORMA 1.1. Ruby On RailsLa siguiente plataforma fue investigada por: Santiago Agudelo Ibarra Ruby On RailsDescripción: Ruby on Rails fue escrito por David Heinemeier Hansson a partir desu trabajo en Basecamp, una herramienta de gestión de proyectos, por 37signals.Fue liberado al público por primera vez en Julio de 2004.Ruby on Rails: es un entorno de desarrollo web de código abierto que estáoptimizado para satisfacción de los programadores y de la productividad. Tepermite escribir un buen código favoreciendo la convención antes que laconfiguración.Ruby: es un lenguaje con un balance cuidado. Su creador, Yukihiro “matz”Matsumoto, mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada, yLisp) para formar un nuevo lenguaje que incorporara tanto la programaciónfuncional como la programación imperativa.Rails: es un framework de desarrollo de aplicación web escrita en lenguaje Ruby.Está diseñado para hacer programación de aplicaciones web más fácil al hacersuposiciones sobre lo que todo desarrollador necesita para comenzar y te permiteescribir menos código.Rails es firme; esto hace la suposición que hay una “mejor” manera de hacer lascosas, y está diseñando para estimular de esa manera. Si puede aprender de“The Rails way” probablemente se descubrirá un gran incremento en laproductividad. 6
  7. 7. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareLa filosofía de Rails: • “No Repeat Yourself” – esto sugiere que escribir el código una y otra vez es malo. • Convención sobre configuración - significa que Rails hace suposiciones sobre lo que quieres hacer y cómo lo vamos a hacer, en lugar de pedirle que especifique cada pequeña cosa a través de los archivos de configuración sin fin. • El Orden es el mejor patrón para las aplicaciones web - la organización de su aplicación en torno a los recursos y verbos HTTP estándar es la forma más rápida de llegar a tu objetivo. 1.1.1. Características a evaluar de la plataforma • DocumentaciónLa documentación de Ruby on Rails principalmente esta en inglés, en su páginaoficial se puede encontrar desde sus principales características hasta unadescripción más detallada de todo su entorno de desarrollado.Ejemplo: este es la suma del número 5 con el numero 6 el cual es asignado a lavariable y. Figura 1 Ejemplo de codificación en RubyLa comunidad de desarrollo es amplia de la cual hay tres principalescomponentes los cuales son:WikiEl wiki Reils: es el sitio perfecto para las contribuciones de los usuarios a ladocumentaciónListas de correo 7
  8. 8. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareDonde los usuarios de Rails vienen a pedir ayuda, anunciar proyectos, y discutirtodo tipo de asuntos que envuelven al entorno y a la comunidad.Planeta RailsSe han creado multitud de blogs donde hablan y escriben mini tutoriales de Rubyon Rails. Para agrupar a todos, se ha creado Planeta Rails.Página oficial: http://rubyonrails.org/ • SeguridadManejo de usuarios: Existe un plugin para Ruby on Rails llamado Acts AsAuthenticated que nos ahorra la siempre repetitiva tarea de la autenticación (login)de usuarios en RoR, crea el modelo para el usuario, el controlador y las vistaspara realizar login, logout, comprobar si el usuario esta autenticado, etc …Mecanismos de personalización de menús para la adecuada implementaciónde rolesPosee soporte para múltiples proyectos, flexibilidad en el manejo de roles, sistemade seguimiento, diagrama de Gantt y calendario, noticias. Llama la atención por laposibilidad de crear Wikis y foros por proyecto. • Facilidad de uso:Para usuarios de Debian o Ubuntu:sudo apt-get install ruby irb rdocVersión WindowsDescargas el ruby desde la página oficial: Rubyonrails.orgSiguiente> Siguiente> Aceptar> No >deseo registrarme luego. Muy bien hastaaquí ya tenemos instalado Ruby.Los archivos deberán ser descargados en un sólo directorio y los comandosejecutados en ese directorio. Si disponemos de conexión a internet el trabajo seresumen en:gem install rails –include-dependencies. Para una instalación manual debemosdescargarnos cada uno de los módulos:  gem install rake-0.7.1.gem  gem install activesupport-1.3.1  gem install activerecord-1.14.4.gem 8
  9. 9. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software  gem install actionpack-1.12.5.gem  gem install actionmailer-1.2.5.gem  gem install actionwebservice-1.1.6.gem  gem install rails-1.1.6.gemActualizaciones:Esta también es hecha en la misma página oficial la cual tiene un link que dice“Add-ons” el cual permite hacer las actualizaciones correspondientes... • Manejo de errores:En Ruby on Rails, el tratamiento de excepciones se encapsula entrecláusulasbegin y end de la siguiente forma: 1. begin 2. # codigo... 3. rescue TIPO_EXCEPCION_1 4. STDERR.puts "Ha ocurrido un problema de tipo 1" 5. rescue TIPO_EXCEPCION_2 6. STDERR.puts "Ha ocurrido un problema de tipo 2" 7. else 8. STDERR.puts "Ha ocurrido otro problema" 9. ensure 10. # se ejecuta siempre haya o no excepción 11. endTipos de excepcionesA continuación mostramos los tipos de excepciones de Ruby: • Exception o fatal o NoMemoryError o ScriptError  LoadError  NotImplementedError  SyntaxError o SignalException  Interrupt o StandardError  ArgumentError 9
  10. 10. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software  IOError  EOFError  IndexError  LocalJumpError  NameError  NoMethodError  RangeError  FloatDomainError  RegexpError  RuntimeError  SecurityError  SystemCallError  Errorno::__ (ENOENT, etc.) (system-dependent)  ThreadError  TypeError  ZeroDivisionError o SystemExit o SystemStackErrorLanzar excepcionesPodemos lanzar excepciones propias usando la palabra raise: 1. def metodo_que_lanza_excepcion 2. raise "error 1" 3. end 4. metodo_que_lanza_excepcion rescue puts $!El código anterior definimos un método y luego fuera de este método definimosqué pasará cuando se lance la excepción. En este ejemplo imprimimos con elcomando puts el mensaje que se pasa por parámetro: "error • Soporte a nuevos estándares de la Web :Web 2.0Permite crear aplicaciones web más interactivas y fluidas, transformando la webtradicional en aplicaciones más parecidas a las que un usuario podría esperar ensu escritorio.Ruby on Rails se basa en la tecnología Web 2.0 y por lo tanto se puede enlazarfácilmente. Además, las aplicaciones web responden a las acciones del visitante 10
  11. 11. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Softwaresin tener que cargar toda la página web de nuevo, son una parte fundamental deléxito de una página web.Funciones web 2.0 que incluyen la implementación de técnicas relacionadas conAjax y el desarrollo de los efectos visuales están a disposición del programador.Web 3.0Los usuarios pueden conseguir un cambio drástico en la apariencia y la sensaciónde aplicaciones web e incluso en presencia de toda Internet.Adobe ® Flex ™ 2 es una solución de desarrollo de aplicaciones para crear yentregar aplicaciones con potencial para la web 3.0 • Mecanismos de Licenciamiento:Rails está liberado bajo la licencia MIT. Ruby bajo la licencia Ruby"Rails", "Ruby on Rails", y el logo de Rails son marcas registradas de DavidHeinemeier Hansson.Licencia MIT:Se concede permiso, de forma gratuita, a cualquier persona que obtenga unacopia de este software y los archivos de documentación asociadosLicencia Ruby:Rubí tiene derechos de autor de software libre por Yukihiro Matsumoto.Robustez:Carece de total robustez, con el solo hecho de permitirse redefinir un método 100veces en una misma clase. También porque me permite reabrir las clases paraseguir añadiendo métodos. En cuanto a Rails tiene una arquitectura 2 capas en laque las clases y no existe una capa de persistencia separada.Escalabilidad: es escalable porque no solo se centra en problemas comunes a suplataforma si no en muchas otras que se basa en el paradigma de convenciónfrente a configuración, la compañía refuerza esa idea de que realmente RoRescala, pero que es cuestión de ir madurando la plataforma y que aparezcan mássoluciones. 11
  12. 12. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareLa siguiente plataforma fue investigada por: Jaime Alberto Flórez.1.2 Plataforma basada en PHP, LAMPLAMP es una conjunto de sistemas de software que tienen como objetivo el darapoyo al desarrollo de aplicaciones Web; Linux, Apache, MySQL, PHP no fueronespecíficamente creadas para ser fusionadas entre sí; sin embargo debido a supopularización entre desarrolladores por la presentación de un gran número deventajas tales como bajos costos, adaptabilidad, eficacia en la organización decomponentes y el uso adecuado del paradigma Cliente/Servidor, el LAMP se hahecho una de las opciones más apetecidas para su uso en la ingeniería desoftware.Linux:Es un sistema operativo basado con énfasis en el software y libre y sobre todo laseguridad, Linux es combinado con herramientas del proyecto GNU por lo quecomúnmente se hace referencia a Linux como GNU/Linux, Linux posee variostipos de Distribuciones, tales como Ubuntu o Debian que son las distribucionesmás populares, siendo la primera una distribución comercial y la segunda unadistribución mantenida por la comunidad Linux.Apache (Servidor HTTP Apache):Apache es un servidor web de código abierto, es decir que puede ser usado deforma libre y modificado como sea conveniente, es el servidor web más usadoactualmente alrededor del mundo alojando paginas estáticas y dinámicas, muchasaplicaciones web están desarrolladas con base a Apache o utilizan característicaspropias de este, con apache también pueden ser compartidos archivos desde elinternet, con solo poner los archivos en la raíz de documentos de Apache, Apachetrabaja con una gran cantidad de Scripts, tales como PHP, Perl, Java y paginasJSP, es configurable para ejecutar scripts que ayuden en el manejo de errores.MySQL:Sistema de Base de Datos Relacional propiedad de Sun Mycrosystems y OracleCorporation, MySQL es software libre, mas no es de código abierto, por lo que elsoftware puede usarse sin necesidad de hacer compra de una licencia privativa 12
  13. 13. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Softwarepero su código fuente no puede ser modificado. SQL (Lenguaje de ConsultaEstructurado) es un estándar para las bases de datos relacionales, comercializadodesde 1981, MySQL maneja el estándar SQL pero proporcionando velocidad yfiabilidad; MySQL se adapta a una gran variedad de lenguajes de programacióndebido a que estos lenguajes contienen API para ligar se con MySQL, algunos delos lenguajes más populares que poseen esta característica son; Java, Perl, C++,Pascal, PHP, Python y Ruby.MySQL es fácil de instalar y configurar bajo cualquier sistema operativo, nosolamente posee facilidades en su instalación sino que también se accedefácilmente a las consultas con tan solo un comando (SELECT * FROM).PHP:PHP (Hypertext Pre-processor) es un Lenguaje de Programación Interpretadocreado en 1994 cuyo Software es Libre, su funcionalidad primordial es la creaciónde páginas web dinámicas, PHP se puede ejecutar en la mayoría de navegadoresy en casi todas las plataformas.PHP es un lenguaje muy fácil de usar compartiendo estructuras similares a las deC, por lo que los programadores deben dedicar poco tiempo a aprender estenuevo lenguaje.El PHP es un lenguaje interpretado que se ejecuta en el servidor y envía lasrespuestas en forma de html al navegador del usuario, por lo que casi cualquiermaquina (incluso dispositivos móviles) pueden ver páginas web php. Figura 2 Flujo de datos en PHP 13
  14. 14. GC TENIS UDEA U. de A. VERSION 1 – RTF 3 Seminario de ENFOQUE ARQUITECTONICO Arquitectura de Software1.2.1 Características a evaluar de la plataforma • Portabilidad: La portabilidad bajo la plataforma LAMP es un bastante eficaz, debido a que PHP y MySQL pueden estar contenidos ya sea en Windows o en Linux, por su parte PHP está disponible para casi cualquier sistema operativo desde Unix hasta Mac, PHP puede funcionar bajo cualquier sistema operativo sin necesidad de cambios en el código MySQL es un gestor de bases de datos multiplataforma que combinado con PHP posee una gran Portabilidad. • Seguridad: Al ser software Libre, Linux, Apache, PHP y MySQL, puede ser adaptada a las necesidades como nos sea conveniente (mediante el entendimiento de cómo funcionan), los errores encontrados en cada una de las aplicaciones son manejados y solucionados por la comunidad de uso LAMP alrededor del mundo, que sueles planear estrategias y mejoras, divulgándolas por medio de la Web, cuando se encuentran agujeros de seguridad, rápidamente se generan parches que solucionan el inconveniente, sin embargo la configuración de algunos servicios WEB requiere más tiempo que en el sistema operativo Windows aunque no es gran desventaja teniendo en cuenta que brinda mayor seguridad que en Windows. • Rendimiento: 14
  15. 15. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software La combinación de Linux con Apache es claramente superior al rendimiento que da Windows, utilizando a PHP para la lógica del negocio y MySQL para la persistencia, PHP y MySQL bajo Windows posee una gran serie de fallos, mientras que el uso de Linux nos ayuda a adaptar el desarrollo a nuestras necesidades y manejar fallos satisfactoriamente.• Documentación: Todos los aplicativos que componen el LAMP tienen un gran auge alrededor del mundo, por lo que no es raro hallar referencias variadas en la internet y una gran comunidad interesada en aprender y resolver dudas, Linux por ejemplo posee una gran comunidad de usuarios y desarrolladores en todo el planeta, dando apoyo y creando nuevas tecnologías para el uso de todos, además de los programadores aficionados en la internet también existe documentación oficial de cada uno de los aplicativos, para Apache, PHP y MySQL,; http://www.apache2.es/, http://www.mysql.com/, http://www.php- es.com/.• Facilidad de Uso / Curva de Aprendizaje: Aunque para algunos usuarios Novatos les resulte difícil la instalación de cualquier aplicación en Linux mediante el uso de comandos, la instalación de Apache, MySQL y PHP en Linux es bastante sencilla, simplemente utilizando el comando apt-get install típico se instala cada componente del LAMP (Apache, MySQL, PHP), sin embargo es recomendable primero instalar el servidor Apache, para que de este modo pueda configurarse correctamente php y MySQL, por otro lado el proceso de actualización para cada aplicación se lleva a cabo por Linux cada vez que sea conveniente, por lo que el usuario de LAMP no tiene mucho de qué preocuparse en cuanto a este tema, gracias a la documentación es de facilidad para cualquier usuario la adaptación a esta plataforma.• Manejo de Errores: Además de que Apache trata de controlar adecuadamente los errores mediante su lógica interna o con el uso de Scripts, PHP se encarga de manejar y capturar errores, por lo que nos es más fácil identificar donde están los problemas de desarrollo en nuestro Sistema, cuando se trabaja PHP en conjunto con MySQL es fácil identificar cuando hay problemas de conexión con la base de datos, por lo que con ello podríamos controlar la situación mostrando un simple mensaje al usuario o procediendo de una forma más compleja; al igual que Java PHP5 puede utilizar bloques try/catch, a diferencia 15
  16. 16. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software de su versión anterior.• Robustez: Linux se caracteriza por su Robustez, aunque sufra algún cambio de configuración no es necesario reiniciar el sistema, puede pasar meses e incluso años en uso sin que su estructura se afecte, si un programa llega a fallar no afecta el sistema, Linux posee un gran número de módulos muchos de estos hacen el trabajo de controlar situaciones de error y desbordamiento adicional, PHP posee una gran utilidad para el manejo de errores, mientras que MySQL es uno de los motores de bases de datos más potentes y robustos en el mercado caracterizado por soporte ACID, soporte de transacciones múltiples, asegura integridad de los datos mediante niveles de aislamiento de transacciones y detección de deadlocks.• Escalabilidad: LAMP es caracterizada por ofrecer lo último en escalabilidad ofrecida especialmente por MySQL, puede manejar bases de datos empotradas que manejan una pequeña cantidad de espacio en memoria, también podría manejar datos que contenga muchos terabytes de información, un software creado en LAMP tiene grandes posibilidades adaptarse a los cambios con respecto al tiempo, PHP, Linux, MySQL poseen facilidades de adaptación respecto a la evolución del software.• Interoperabilidad / Flexibilidad: Al basarse en OpenSource LAMP posee una gran ventaja, cualquier programador puede hacer ventaja de esto, adaptando el software como mas le sea conveniente, utilizando los componentes que desee e interactuando con diferentes tecnologías, MySQL, PHP y Apache son multiplataforma, por tanto la flexibilidad que ofrecen es enorme, pueden ser migrados a casi cualquier Sistema Operativo.• Licenciamiento: Al tener Licencia pública, LAMP cumple con una serie de ventajas, Garantiza la Posibilidad de Modificarse, se obtienen las actualizaciones y nuevas versiones de cada uno de los programas que lo componen de manera totalmente gratuita, contiene un gran número de bibliotecas distribuidas en la Web; sin embargo si sucede algún fallo con el uso de alguno de los programas, no se es redimido por el problema y el usuario deberá asumir los costos según sea el fallo. 16
  17. 17. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software 17
  18. 18. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software La siguiente plataforma fue investigada por: Alejandro Suárez1.3 Plataforma .NET (ASP/ASPX.NET)La plataforma .NET es la propuesta diseñada por Microsoft para el desarrollo deaplicaciones orientadas a objetos donde el código pueda ser ejecutado de maneralocal, distribuida o remota1.A grandes rasgos la plataforma .NET proporciona un entorno de ejecuciónadministrado donde el desarrollo y la implementación se vuelven procesossimplificados y la integración de una gran variedad de lenguajes de programaciónpermite la interoperabilidad y comunicación directa del software a través deinternet; todo esto de una manera coherente, segura y sencilla..NET ofrece muchas posibilidades para que servicios y programas puedaninteractuar. Si bien el concepto principal de la plataforma .NET es la idea deservicios web mediante el uso de las tecnologías de internet, la plataformatambién provee herramientas para otros tipos de aplicaciones.2Para desarrollar aplicaciones para la plataforma .NET (tanto servicios Web comoaplicaciones tradicionales) Microsoft ha publicado el denominado kit de desarrollode software conocido como .NET Framework.3 En la actualidad, la última versiónde .NET Framework es la versión 4.0 (22 de Marzo de 2010)..NET Framework está constituido en tres partes fundamentales: el CommonLanguage Runtime, la biblioteca de clases y ASP.NET. 18
  19. 19. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software • Common Language Runtime (CLR) Es el motor de la plataforma en tiempo de ejecución, se encarga de administrar la ejecución del código que ha sido compilado además de proporcionar servicios centrales tales como la comunicación remota, la administración de la memoria y el manejo de los subprocesos creados. Figura 3 Common Language Runtime (CLR)Una manera de entender la funcionalidad del CLR es asimilarlo con la máquinavirtual de java.4,5Las dos principales características del CLR son ser multiplataforma ymultilenguaje, la primera permite lograr que el CLR ejecute cualquier aplicacióndiseñada para la plataforma .NET, para que esto suceda es necesario que existael CLR para la plataforma en que se desarrolla la aplicación. Como laespecificación del CLR se encuentra abierta, es posible hoy en día ejecutaraplicaciones no solo en las diferentes versiones de Windows sino también enLinux y a futuro podría hacerse para otros sistemas operativos.Al ser multilenguaje la plataforma .NET permite desarrollar componentes desoftware utilizando casi cualquier lenguaje de programación, de forma que lo que 19
  20. 20. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Softwarese escribe en un lenguaje se pueda utilizar en otro de la manera más fácil, sencillay transparente posible, para lograr esto es necesario establecer ciertas reglas odirectrices comunes en los lenguajes; también es posible encontrar varioscompiladores para lenguajes para la plataforma .NET tales como Visual Basic.NET, C#, Eiffel entre otros.A la fecha la plataforma .NET soporta ya más de 20 lenguajes6 de programación loque ha permitido eliminar las diferencias que existían entre lo que se podía hacercon un lenguaje u otro.El CLR está diseñado para realizar las cosas de manera segura y sólida, esto esllevado a cabo mediante los siguientes servicios:  Cargador de Clases: permite cargar en memoria las clases que se van a utilizar.  Common Intermediate Language: Transforma a código intermedio de alto nivel de manera independiente del hardware que lo ejecuta y lo convierte a código maquina propio del dispositivo. Anteriormente conocido como MSIL por Microsoft Intermediate Language.  Administrador de Código: coordina toda la operación de los distintos subsistemas del CLR.  Recolector de Basura: elimina de memoria objetos no utilizados.  Motor de Seguridad: administra la seguridad del código que se ejecuta.  Motor de Depuración: permite hacer un seguimiento (paso a paso) de la ejecución del código aún cuando se utilicen lenguajes distintos.  Verificador de Tipos: controla que las variables de la aplicación usen el área de memoria que tienen asignado.  Administrador de Excepciones: maneja los errores que se producen durante la ejecución del código.  Soporte de multiproceso (threads): permite ejecutar código en forma paralela al trabajar con hilos.  Empaquetador de COM: coordina la comunicación con los componentes COM para que puedan ser usados por el .NET Framework.  Soporte de la Biblioteca de Clases Base: representa una interfaz con las clases base del .NET Framework. • Biblioteca de Clases: 20
  21. 21. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software Es una completa colección orientada a objetos con el fin de ser reutilizables y empleadas para desarrollar aplicaciones que abarcan desde las tradicionales (GUI) hasta las basadas en las innovaciones más recientes proporcionadas por ASP.NET, como los formularios Web Forms y los servicios Web XML. Los tipos de .NET Framework utilizan un esquema de nomenclatura con sintaxis de punto lo que indica la existencia de una jerarquía. Esta técnica agrupa tipos relacionados en espacios de nombres para que se pueda buscar y hacer referencia a ellos más fácilmente y permite integrar fácilmente los componentes de terceros. 21
  22. 22. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software Figura 4 Biblioteca de clases .NET • ASP.NET Es la parte más importante de la capa superior de la plataforma, ASP.NET es usada para la construcción de sitios web dinámicos, aplicaciones web y servicios web XML, es conocida como sucesora de la tecnología ASP pero reconsiderada hoy en día como mas que su evolución debido a las diferentes incorporaciones que se le han hecho. Una de las principales características de ASP.NET es lograr separar de una manera limpia la parte lógica de la aplicación de la interfaz lo cual ha supuesto una nueva idea y forma de programar las aplicaciones web al hacerlo más fácil (el desarrollo de las aplicaciones web no es considerado como un trabajo fácil debido a la mezcla de lenguajes de etiquetas y 22
  23. 23. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software conexiones y a que implica tener otros conocimientos con respecto a la aplicaciones tradicionales).7 Al incorporar los servicios web se ha permitido la descentralización del software en la red lo cual ofrece un nuevo enfoque: el de la web orientada a objetos. Las páginas de ASP.NET, conocidas oficialmente como "web forms" (formularios web), son el principal medio de construcción para el desarrollo de aplicaciones web, su extensión es .aspx y está constituido por etiquetas y código dinámico. ASP.NET fomenta la separación de la presentación y del código mediante el modelo Code-behind el cual distribuye el código de cada una de las capas en archivos diferentes logrando una alta cohesión, este modelo se puede asemejar con la separación del modelo vista controlador (MVC). Adicionalmente, ASP.NET permite la creación de componentes reutilizables lo cual se realiza a través de la biblioteca de clases. Por último, ASP.NET sólo funciona sobre el servidor de Microsoft IIS, lo que supone una desventaja respecto a otros lenguajes del lado de servidor, ejecutables sobre otros servidores más populares como Apache7. Figura 5 Flujo de datos en .NET 1.3.1 Características a evaluar de la plataforma • Portabilidad: la plataforma .NET es teóricamente agnóstica con respecto a la plataforma debido al CLR pero como se mencionó anteriormente ya se ha implementado para Linux y a futuro puede hacerse para otros sistemas operativos. 23
  24. 24. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software • Seguridad: la plataforma cuenta con un motor de seguridad (Código de Acceso de Seguridad, validador y verificado), además, debido a su diseño se hace frente a vulnerabilidades anteriormente explotadas como desbordamiento de buffer o el acceso a la memoria a nivel de procesos. • Rendimiento: el motor en tiempo de ejecución está diseñado para mejorar el rendimiento ya que el código administrado nunca se interpreta. Una característica denominada compilación JIT (Just-In-Time) permite ejecutar todo el código administrado en el lenguaje máquina nativo del sistema que se ejecuta. Otro aspecto relacionado con el rendimiento es que el administrador de memoria evita que la memoria se pueda fragmentar y aumenta la zona de referencia de la memoria para mejorar aún más el rendimiento. • Documentación: la plataforma .NET ofrece mucha documentación de ayuda (herramientas, debuggers, editores) que se encuentra incluida en la IDE, además en la web se puede encontrar bastante información debido al éxito que ha tenido la plataforma. • Facilidad de uso / Curva de aprendizaje: gracias a la documentación y soporte de ayuda .Net se vuelve fácil de usar, además, al ser multilenguaje es fácil para un usuario integrarse de manera rápida en de desarrollo de aplicaciones. • Manejo de errores: mediante el motor de depuración que permite el seguimiento paso a paso y al administrador de excepciones el manejo de errores es tratable y fácil de manejar. • Madurez / Robustez: la plataforma se ha consolidado hoy en día como una de las más importantes del mercado y su madurez llega a ser casi de una década, la robustez está dada por la biblioteca de clases y la misma composición de la plataforma. • Escalabilidad: la plataforma permite diseñar aplicaciones donde la escalabilidad es imperante, por ejemplo hay métodos de carga balanceada para el trabajo de servidores clúster de tal manera que estos colaboren y funcionen como uno solo. 24
  25. 25. GC TENIS UDEA U. de A. VERSION 1 – RTF 3 Seminario de ENFOQUE ARQUITECTONICO Arquitectura de Software • Interoperabilidad / Flexibilidad: al ser multilenguaje la plataforma permite la colaboración de gran cantidad de componentes escritos en los diferentes lenguajes; mediante la biblioteca de clases de permite la comunicación de manera correcta de dichos componentes. • Licenciamiento: Microsoft y sus socios trataron de conseguir patentes para C# (lenguaje desarrollado para la plataforma) y el CLI pero por cuestiones de estándares (ECMA e ISO) se solicitó que era esencial que la implementación estuviera disponible bajo “términos no discriminatorios” y ahora las patentes están disponibles, sin embargo esto no ocurrió para el .NET Framework ya que hasta octubre de 2007 solo se liberó el código fuente de la biblioteca de clases de la plataforma. A la fecha es posible crear aplicaciones comerciales sin llegar a pagar algún costo pero depende de las herramientas que se utilizaron. La siguiente plataforma fue investigada por: Nelson Puerta1.4 JEE Java Platform, Enterprise Edition o Java EE (anteriormente conocido como J2EE hasta la versión 1.4), es una plataforma para desarrollar y ejecutar software de aplicaciones en Lenguaje de programación Java con arquitectura de N capas distribuidas y que se apoya ampliamente en componentes de software modulares, ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está definida por una especificación, similar a otras especificaciones del Java CommunityProcess, Java EE es también considerada informalmente como un estándar debido a que los proveedores deben cumplir ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EE; estandarizado por The Java CommunityProcess / JCP. 25
  26. 26. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareJava EE incluye varias especificaciones de API, tales como JDBC, RMI, e-mail, JMS, Servicios Web, XML, etc y define cómo coordinarlos. Java EE tambiénconfigura algunas especificaciones únicas para Java EE para componentes estasincluyenEnterprise JavaBeans, servlets, portlets (siguiendo la especificación dePortlets Java), JavaServerPages y varias tecnologías de servicios web. Ellopermite al desarrollador crear una Aplicación de Empresa portable entreplataformas y escalable, a la vez que integrable con tecnologías anteriores. Otrosbeneficios añadidos son, por ejemplo, que el servidor de aplicaciones puedemanejar transacciones, la seguridad, escalabilidad, concurrencia y gestión de loscomponentes desplegados, significando que los desarrolladores puedenconcentrarse más en la lógica de negocio de los componentes en lugar de entareas de mantenimiento de bajo nivel. Figura 6 Capas de JEE 26
  27. 27. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software 1.4.1 Características a evaluar de la plataformaJEE presenta diversas características que se van a mencionar brevemente acontinuación con lo que se • Documentación: o Java Platform, Enterprise Edition (Java EE) Technical Documentation http://download.oracle.com/javaee/ o Java Tips http://www.java-tips.org/java-ee-tips/ • Seguridad: Aunque otros modelos de aplicaciones empresariales, requieren medidas de seguridad para una plataforma específica en cada aplicación, el entorno de seguridad JEE permite que los problemas de seguridad se determinen en el tiempo de implementación. La plataforma Java EE hace aplicaciones portátiles para una amplia variedad de implementaciones de seguridad, protegiendo a los desarrolladores de una compleja implementación de funciones de seguridad. La plataforma Java EE proporciona reglas declarativas estándar de control de acceso que son definidos por el desarrollador e interpretado cuando se implementa la aplicación en el servidor. Java EE también proporciona mecanismos estándar de inicio de sesión para que los desarrolladores no tengan que emplear estos mecanismos en sus aplicaciones. Con JEE una misma aplicación funciona en una gran variedad de entornos de seguridad sin necesidad de cambiar el código fuente. • Facilidad de uso: El proceso de instalación de JEE no es complejo, es bastante sencillo e intuitivo, ya que se puede descargar de la página oficial y seguir tranquilamente las instrucciones del wizzard. • Internacionalización: mecanismos para el manejo de parámetros que permitan la internacionalización del portal. • Manejo de errores: Las técnicas de manejos de errores que se implementan en JEE son las mismas que se hacen con java ya que al interior de la plataforma se trabaja con este lenguaje. • Soporte a nuevos estándares de la Web 2.0 o Web 3.0. Web 2.0: Tiene características específicas que hacen difícil al elección de Java EE como implementación. Las aplicaciones utilizan las APIs para acceder a los servicios de otras mucho más que en las típicas aplicaciones de Web 1.0, inclinación por la interacción de tipo consumidor a consumidor (C2C), es 27
  28. 28. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software decir, el propietario sólo genera una pequeña parte del contenido de la aplicación; la mayor parte es generada por el usuario. SOA+B2C+Web 2.0 = Latencia muy altaLas aplicaciones Web 2.0 utilizan frecuentemente servicios y feeds que estánatados a la API del servicio SOA. Estas aplicaciones necesitan consumirservicios en un contexto B2C. Por ejemplo, una aplicación puede mostrarinformación sobre las condiciones climáticas, información sobre el tráfico yun mapa de carreteras, obteniendo cada información de un recurso distinto.El tiempo de conseguir cada parte se añade al tiempo global de procesar lapetición. Existen técnicas de cacheo que pueden aliviar la latencia, pero no sonaplicables en todas las situaciones. No es práctico e impensable, porejemplo, cachear resultados de consultas o tráfico de información que seobtiene en tiempo real.Por su propia naturaleza, la invocación de servicios es un proceso lento y con unaalta latencia que normalmente coloca sólo una pequeña porción de losrecursos de CPU en el cliente y en el servidor. La mayor parte de laduración de la invocación de un servicio se gasta en establecer la conexióny en trasmitir los datos. Por lo tanto, mejorar el rendimiento en el cliente o enel lado del servidor generalmente es sólo una pequeñareducción en laduración de la llamada.La latencia de las operaciones afecta más a las aplicaciones Java EE que elthroughput de cada operación. Incluso si el servicio de una aplicaciónpuede manejar un gran volumen de operaciones, tiene la misma latenciae incluso puede incrementarse. El conjunto de las aplicaciones Java EEno manejan bien está situación porque viola la suposición de que la latencia estáimplícita en el diseño de estas APIs. • Mecanismos de Licenciamiento: Evaluar el tipo de licencias, ventajas de tener software libre o propietario, interconexión con diferentes DBMS, utilización en empresas desarrolladoras de software. • Interoperabilidad: La interoperabilidad en JEE se puede manejar con EJB que es un protocolo basado en Internet Inter-ORB Protocolo (IIOP/GIOP 1.2), el protocolo CommonSecureInteroperabilityversion 2 (CSIv2).Es bastante robusto y permite manejar también seguridad y persistencia en caso de tener que lidiar con sistemas tipo legacy. 28
  29. 29. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software • Robustez: JEE se ha consolidado como una de las plataformas más importantes del mercado y su madurez llega a ser casi de al menos quince años, la robustez está dada por la biblioteca de clases y la misma composición de la plataforma. A demás de eso la metodología desarrollada por Sun conocida como SunTone 2 am permite desplegar al máximo las características de esta plataforma. Figura 7 Características JEE 1.4.2 GlassFish¿Qué es GlassFish?Es un servidor de aplicaciones de código abierto desarrollado por SUNMICROSYSTEMS, que implementa las tecnologías definidas en laplataforma Java EE y permite ejecutar aplicaciones que siguen estaespecificación. GlassFish está basado en el código fuente donado por Sun, queproporcionó el módulo de persistencia TopLink. GlassFish tiene como base alservidor Sun Java System Application Server de Oracle Corporation, un derivadode Apache Tomcat, y que usa un componente adicional llamado Grizzly que usaJava NIO para escalabilidad y velocidad. Además Soporta todo tipo deplataformas, Linux, Windows, Solaris, Solaris_X86 y MacOS. 29
  30. 30. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software • Figura 8 GlassFishA continuación se presentara un conjunto de características en donde se comparalas dos versiones de Glassfish 2.1.1 y 3.0.1Tabla de Comparación de GlassFish versión 2.1.1 y 3.0.1Característica GlassFishversión GlassFish versión 2.1.x 3.0.x versión 2.1.1 lanzada versión 3.0.1 LanzadaFecha de Lanzamiento en Octubre 2009 en Junio 2010Soporte Comercial Disponible X XSailFin (Telco Application Server) XJava Plataform, Enterprise Edition Java EE 5 Java EE 6 [2]Certificado con Java EE 30
  31. 31. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareWeb Application Servlet 2.5JSP 2.1, Servlet 3.0JSP 2.2,Tecnologías Java Web JSF 1.2 JSF 2.0Metro Web Services Stack Interoperabilidad con Interoperabilidad .NET .NET 3.0Web Services 3.5Web ServicesNext Generation WebjMaki (Ajax Framework) X[4] X[4]Jersey / JAX-RS JAX-RS 1.0 JAX-RS 1.1AdministraciónAdmin Consola y CLI X X(Administración Centralizada)JMX X XAgente Nodo & Manejo de XClustersHerramientas de Actualización X XRESTful admin API XPaquetes de Instalación con perfil X [5]WEB[5]Monitoreo (btrace, dtrace) XClienteContenedores para Aplicaciones X Xtipo ClienteSoporte de Java WebStart X XAplicaciones tipo EnterpriseJava DB, JDBC Pooling de Java DB 10.4.2.1 Java DB 10.5.3.0Connexiones 31
  32. 32. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareJTA 1.1/JTS 1.0 X XJ2EE Conectores 1.5 Conectores 1.6Enterprise JavaBeans (EJB) EJB 3.0 EJB 3.1JMS 1.1 X X JPA 1.0(TopLink) JPA 2.0(EclipseLink)Java Pertistence API (JPA)ScriptingjRuby/Rails Web Archive (.war) X XdeploymentjRuby “Nativo”/Rails deployment – Xsin necesidad de un contenedorServletAjuste dinamico de jRuby en Xtiempo de ejecución X [4]Groovy/GrailsEarly Jython/Django support X [4]Herramientas de DesarrolloNetBeans IDE X[6] X[6]Eclipse IDE X XCentro de Actualizaciones X XCentro de actualizaciones Xintegrado con una consola deadministraciónHerramientas de Verificación X 32
  33. 33. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareFrameworks 1.9.18Grizzly (Java NIO) 1.0.34Comet (HTTP Push) X X XCORBA XArquitectura Modular basada en XOSGiGlassFish Embedded XFuncionalidades Extendidas deGlassFish (Consola de XAdministracion, asadmin CLI utility,etc)Rendimiento X[3]Clustering XIntegración XIntegración con Identity Manager,Access Manager (OpenSSO),Registry Server, y Java BusinessIntegration (OpenESB)[1]Soporte para Desarrolladores únicamente.[2] GlassFish 3.0.1 Correrá aplicaciones Java Enterprise y Enterprise Edition 5.[3] Soporte para clustering básico usando mod_jk.[4] GlassFish posee un Update Center que permite la descarga de actualizacionesa través de un entorno grafico llamado "updatetool", o a través de la consola deadministración GlassFish 3.[5] GlassFish 3.0.1 posee cada uno de los perfiles web para Java EE. Elupdatetool permite actualizar o mantener las características deseadas.[6] Soportado en NetBeans 6.9. 33
  34. 34. GC TENIS UDEA U. de A. VERSION 1 – RTF 3 Seminario de ENFOQUE ARQUITECTONICO Arquitectura de Software1.5 Valoración de las características Todas las características se evaluaran entre 0 y 5 siendo 0 la nota más baja. A continuación se describe las valoraciones de manera porcentual. Figura 9 Valoración de las características1.6 Calificación de cada Plataforma 34
  35. 35. GC TENIS UDEA U. de A. VERSION 1 – RTF 3 Seminario de ENFOQUE ARQUITECTONICO Arquitectura de Software Figura 10 Calificación de cada plataforma1.7 Computo de totales y selección de la mejor plataforma. Figura 11 Calificación total de cada plataforma 2 SELECCIÓN DEL FRAMEWORK. 35
  36. 36. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software 2.1 ICEfaces.El siguiente Framework fue investigado por: Santiago Agudelo IbarraICEFaces: Es un framework de código abierto para construir aplicaciones webcon AJAX tipo RIA (Rich Internet Application). Permite al programador incluir unaserie de Ajax-tags en sus JSP o xhtml de tal manera que el código Ajax esgenerado por el propio framework automáticamente.ICEFaces aísla completamente al desarrollador de AJAX. No hacen falta etiquetasespeciales: se ponen los controles en la pantalla e ICEFaces se encarga de enviarsólo la información necesaria entre cliente y servidor. Es decir, ya no se envían losformularios a la antigua usanza, en un POST de HTTP, sino que sólo se envíanlos cambios que ha hecho el usuario del cliente al servidor, y los cambios en lapantalla del servidor al cliente. Además, con la inclusión de la libreríaScriptaculous en ICEFaces, se dispone de arrastrar + soltar y de efectos(fundidos, parpadeos, apariciones) para los controles.2.1.1 Características a evaluar del Framework.Documentación:documentos de todas las versiones en la página oficial:http://www.icefaces.org/main/resources/.Foros:http://www.icefaces.org/JForum/forums/list.pageDemos de los componentes ICEfaces:http://component-showcase.icefaces.org/component-showcase/showcase.ifaceSeguridad:ICEfaces es una de las soluciones Ajax más seguras del mercado. Es compatiblecon SSL, previene los scripts de cross-site (es un tipo de inseguridad informáticao agujero de seguridad basado en la explotación de vulnerabilidades del sistemade validación de HTML incrustado.), inyección de código malicioso. Es unasolución Ajax basada en servidor, la cual no utiliza datos de usuarios, además esespecialmente efectivo en la prevención de fallos en los submits de los formulariosy el ataque SQL por inyección. 36
  37. 37. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareFacilidad de uso:La instalación de la aplicación se hace por medio de un plugin, el cual se puededescargar gratuitamente en la página oficial del framework.http://www.icefaces.org/main/downloads/os-downloads.iface?category=Stable%20Releases,NetBeans.Este plugin es agregado a la plataforma de la cual será utilizado de esta manerafácil y sencilla puede instalarse y estar listo para usarcé en unos cuantos pasos.Mensajes de error y validación: Suele ser una fuente de errores el que losmensajes de validación o error desaparezcan debido a que esos campos notengan el atributo inmediate situado a true. Este problema es debido a que sólo sehace submit de una parte del formulario. JSF permite que se modifiquen el textode los mensajes de error. A continuación se muestra cómo se hace: • Se indica la lista de mensajes que se pretenden reemplazar, por ejemplo para validar la longitud: javax.faces.validator.LengthValidator.MAXIMUM_MESSAGE_ID = Tu mensaje • Por último sólo es necesario agregar en el faces-config.xml el bundle de los mensajes: <application> <message-bundle>com.yourcompany.resources</message-bundle> </application>Internacionalización: La internacionalización es un requisito común de lasaplicaciones web modernas, y es fácil de lograr en JSF e ICEfaces. Idiomassoportados se pueden especificar y cambiar dinámicamente por marcado de lapágina o desde el servidor. Además JSF detectará automáticamente laconfiguración regional de un navegador web cliente y aplicarlo si el proyecto estáconfigurado correctamente.Tutorial de internacionalización:http://translate.google.com.co/translate?hl=es&langpair=en|es&u=http://wiki.icefaces.org/display/ICE/Internationalization%2Bin%2BICEfacesLa versión más estable lanzada por la empresa propietaria de ICEfaces (IceSoft)es la versión 1.6 del framework. No obstante, ya se encuentra una nueva versiónICEfaces con un conjunto de mejoras y arreglos (nuevo popup contextual, google 37
  38. 38. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Softwaremaps, soporte para funciones adicionales...) aunque actualmente se encuentra enfase de pruebas y debe ser considerada no apta para su uso en producción.Licenciamiento:ICEfaces está bajo una licencia de código abierto Mozilla Public License (MPL).Con el fin de usar e implementar la versión de código abierto de ICEfaces másproductiva, los desarrolladores y administradores de proyectos deben ser capacesde / dispuestos a:Soporte Estándares en la web:Basado en estándares Java EE:ICEfaces es el líder tecnológico en la integración de AJAX con la pila de JEE. Suproveedor, ICEsoft, ofrece un amplio soporte para servidores de aplicaciones,servidores de portal, e importantes marcos de código abierto. (usandoAJAX Push,JSF, Facelets, Spring y JPA / Hibernate) sin necesidad de utilizar una línea decódigo JavaScript. El libro tiene un enfoque especial en la tecnología Facelets quees ahora unaMPL: Fue desarrollada originalmente por Netscape CommunicationsCorporation (una división de la empresa América Online), y más tarde su controlfue traspasado a la Fundación Mozilla.El siguiente Framework fue investigado por: Jaime Alberto Flórez. 2.2 Java Persistence API (JPA).La plataforma Java EE 5 debe su éxito a la implementación de la tecnologíaEnterprise JavaBeans (EJB), una tecnología para desarrollar componentesempresariales de una aplicación Java llamados Enterprise Beans, los EnterpriseBeans proveen la lógica y representación de los datos para desarrollar 38
  39. 39. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Softwareoperaciones especificas del negocio dentro de la aplicación, un Enterprise Beanpor ejemplo podría encargarse de desarrollar el “Carrito de Compras”, necesariopara realizar ventas online, realizando operaciones estándar que ahorran trabajo alos desarrolladores de software y provee una gran simplificación del software, JPAes una adición a la tecnología EJB encargándose de simplificar el modelo entidadpersistencia y añadiendo capacidades que no posea EJB; por tanto JavaPersistence API provee herramientas para estandarizar el mapeo objeto-relacional(ORM) utilizado para la simplificación del acceso a una Base de datos relacionausando la programación basada en objetos.JPA está basado en algunos de los mejores Frameworks y APIs, tales como;Hibernate, Oracle TopLink y Java data Objects (JDO), también usa los objetos depersistencia POJO para las bases de Datos Relacionales representando los datospara acceder a las bases de datos como objetos de negocio (Objetos Java).JPA usa algo llamado entidades lo cual representa una tabla de datos, una entidaddebe cumplir tres características, persistencia, identidad y soporte transaccional(CRUD), JPA se basa en las anotaciones, así por ejemplo si queremos indicar queuna clase POJO es en verdad una entidad debemos hacer la anotación @entityjusto antes de nombrar la clase, las anotaciones indican al contenedor comoacceder a la base de datos, algunas anotaciones sirven para identificar qué tipo declave se posee, relaciones unos a muchos, control de acceso a las tablas y un sinfin de medios para interactuar con la base de datos.2.2.1 Características a evaluar del framework. • Documentación: JPA posee documentación oficial y una gran comunidad de seguidores que generan tutoriales y ejemplos para el desarrollo de aplicaciones bajo la plataforma J2EE, podemos hallar un manual muy completo en la página oficial de Sun Java: http://java.sun.com/javaee/6/docs/tutorial/doc/bnbpz.html El cual además de describirnos el java Persistence API, nos da un tutorial completo de cómo usarlo. • Seguridad: Permite hacer validaciones por medio de dos clases, JTA (Java Transición Api) que hace las validaciones automáticamente o Resource-Local donde el programador tiene que determinar cómo hacer las validaciones y determinar si debe hacerse una transacción (commit o rollback). Debido a que JPA trabaja con EJB puede trabajar en conjunto con el 39
  40. 40. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software Servicio Java de Autenticación y Autorización (JAAS) permitiendo acceder a servicios de control de autorización y acceso, también está protegido contra datos corruptos y vulnerabilidades, además puede hacerse uso del JPA Security que provee soluciones de seguridad para las aplicaciones desarrolladas bajo Java con JPA , con el por ejemplo podrás configurar el control de acceso mediante anotaciones o XML y modificar el control basándose en roles. • Facilidad de Uso: Además de JPA se encarga de abordar todos los inconvenientes que poseen los Enterprise Java Beans también tiene una serie de características que son demasiado sencillas en cuanto a su utilización, el manejo de anotaciones es una de ellas, así con tan solo una simple anotación podremos controlar numerosos aspectos de nuestra base de datos relacional, también tiene la facilidad de encapsular un gran conjunto de operaciones, hacer Join y subconsultas muy fácil y eficazmente. • Internacionalización: La internacionalización es el aspecto de una aplicación de software para que pueda adaptarse a varios idiomas y regiones, en el desarrollo de aplicaciones web, este es un aspecto muy importante pues la World Wide Web, puede ser accesible desde cualquier lugar del mundo por cualquier persona a pesar de ello JPA no ha podido resolver el tema del lenguaje debido a que genera mensajes, enlaces y comentarios, específicamente en inglés. • Manejo de Errores: Ya de por si Java tiene la capacidad de manejar errores eficazmente mediante sentencia try y catch, sin embargo mediante JPA también podemos manejar esta clase de situaciones con sentencias try y catch, esto se hace mediante el uso de una completa estructura, todas las excepciones son detectadas por diversas partes de esta estructura y controladas 40 Figura 12 Librerías de excepciones
  41. 41. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software mediante IllegalArgumentExeption e IllegalStateException, también es controlada por algunas excepciones JPA incluidas en el paquete java.persistence. • Mecanismos de Licenciamiento: Debido a que JPA es simplemente una especificación, posee un mecanismo de licenciamiento Freeware por lo que se posee de licencia ilimitada, pero sin la posibilidad de modificar el código fuente (no es opensource), muchos otros framework usan JPA y al mismo tiempo están bajo licencia libre algunos de ellos son Hibernate y EclipseLink. 2.3 HibernateEste framework fue investigado por: Alejandro Suárez HIBERNATE FRAMEWORK (JAVA)Hibernate es un framework de Mapeo Objeto-Relacional (ORM) para la plataformaJava que facilita el mapeo de una base de datos relacional a un modelo dedominio de tipo orientado a objetos.Hibernate permite el desarrollo de clases persistentes que asimilan las bondadesdel paradigma de programación orientada a objetos (herencia, polimorfismo,composición, etc.) y que son capaces de utilizar las librerías Java (debido a que ellenguaje es Java), pero no sólo se ocupa de la asignación de las clases Java atablas de bases de datos (y de tipos de datos Java a tipos de datos SQL), sinoque también proporciona consulta y recuperación de estos, lo cual reduce 41
  42. 42. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Softwaresignificativamente el tiempo de desarrollo al no tener que hacerlo de manera manual. De manera simple, la arquitectura tiene tres componentes principales: un administrador de conexiones, un administrador de transacciones y el ORM, el primero administra de forma eficiente la conexión a la base de datos (este proceso se considera el que más gasta recurso debido a que en se debe abrir y cerrar muchas veces la conexión), el segundo permite el manejo de las transacciones, incluso más de una a la vez y el tercero se encarga de comunicar los dos modelos (modelo de domino orientado a objetos y modelo de bases de datos relaciones).Figura 13 Arquitectura Hibernate La imagen contigua muestra a un nivel alto de abstracción la arquitectura de Hibernate. Los objetos de persistencias, comúnmente llamados como POJO (Objeto Plain Old Java) son instancias de clases que no extienden (heredan) y no implementan nada en especial, sus atributos son accesibles mediante métodos setter y getter.Para poder asociar un POJO con su tabla en la base de datos Hibernate hace usode ficheros XML (con extensiones hbm.xml) los cuales permiten mapear la clase ala base de datos al definir en ellos las propiedades del POJO y suscorrespondientes nombres de columna, asociación de tipos, referencias,relaciones, etc.Las características, datos de configuración y la manera en que la aplicación seconecta a la base de datos se describen en el archivo de Hibernate.properties;este archivo debe estar en el path de la aplicación.Una de las características únicas de Hibernate es que no requiere que losdesarrolladores implementen interfaces propietarios o extiendan clases basepropietaria para poder persistir las clases. En vez de eso, Hibernate trata con lareflexión de Java y el aumento de clases en tiempo de ejecución utilizando unalibrería de generación de código Java muy poderosa y de alto rendimiento llamada 42
  43. 43. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareCGLIB. CGLIB se utiliza para extender clases Java e implementar interfaces Javaen tiempo de ejecución.El concepto clave más importante dentro Hibernate es la clase Session la cual seencarga de definir las operaciones relacionadas dentro del proceso de negocio,delimitar una transacción y además prestar servicios adicionales (por ejemplocache que ahorra recursos al evitar abrir y cerrar conexiones con la bases dedatos nuevamente), una manera de entender su funcionalidad es compararla conel concepto de conexión de JDBC solo que es más sencilla al tener métodosdiseñados para trata con objetos.Es también lógico que tenga que existir una clase superior para crear sesiones yrealizar operaciones comunes a los diferentes threads (cada uno asociado a unasesión) como lo es la gestión de la cache. A esta clase se le denominaSessionFactory la cual está inspirada en el patrón de diseño que la denomina,también es posible que la aplicación tenga más de una SessionFactory lo cualcobra sentido si se está utilizando más de una base de datos.Otros conceptos claves son los tipos de objetos que maneja Hibernate: transient ypersistent, los primeros son objetos que sólo existen en memoria y no en la basede datos, estos objetos corresponden en su mayoría al estado de los objetosantes de ser almacenados en el repositorio, es decir, antes de que existan,aunque también hay objetos transient que nunca serán almacenados; lossegundos objetos corresponden a instancias que han sido creadas y almacenadasen una sesión o bien devueltos en una consulta realizada con la sesión.Hibernate proporciona además el HQL (Hibernate Query Language), un lenguajemultimotor orientado a objetos con el que realizar consultas a la base de datos sehace similar a SQL y es usado para obtener los objetos de la base de datossegún los criterios dados. El uso de HQL permite usar un lenguaje intermedio quesegún la base de datos que usemos y el dialecto que especifiquemos serátraducido al SQL dependiente de cada base de datos de forma automática ytransparente.Hibernate tiene la ventaja de que es totalmente transparente el uso de la base dedatos pudiendo cambiar de base de datos sin necesidad de cambiar una línea decódigo de la aplicación, simplemente cambiando los ficheros de configuración deHibernate. Otros de los problemas que trata Hibernate son la granularidad, lossubtipos, la identidad, las asociaciones y la navegación de los datos. 43
  44. 44. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareHibernate es una herramienta ORM completa que ha conseguido en un tiemporecord una excelente reputación en la comunidad de desarrollo posicionándoseclaramente como el producto OpenSource líder en este campo gracias a susprestaciones, buena documentación y estabilidad.A la fecha Hibernate se encuentra en la versión 4.02.3.1 Caracteristicas a evaluar del Framework. • Documentación: Hibernate cuenta con muy buena documentación, se pueden encontrar gran cantidad de foros, tutoriales e incluso libros que abordan de manera llana el uso del framework, además la comunidad de JBoss (a la cual se integró Hibernate) cuenta con una completa información acerca de este. • Seguridad: Hibernate implementa mecanismos de seguridad estableciendo limites en las transacciones y a partir de versión 3 la seguridad se gestiona de manera declarativa, cabe aclara que para entornos no gestionados la seguridad es la que establece los límites. Algo a considerar es que Hibernate no es tan invasivo con respecto a otras herramientas ORM (ya que es usa la reflexión de Java) lo cual no lo compromete a mayor grado con otras herramientas en caso en caso de infracciones de seguridad. • Facilidad de uso: al comparar Hibernate con la manera de conectar los modelos de dominio orientado a objetos y modelos relacional, se reduce la complejidad al usar el framework, y si bien esta es una caracterices de la mayoría de herramientas ORM Hibernate saca una ligera ventaja de la otras herramientas ya que tiene su propio lenguaje “HQL” que lo hace multimotor de base de datos, este componente es uno de los atractivos de Hibernate al permitir de manera elegante y fácil realizar las transacciones s al base de datos. Por último Hibernate ya viene integrado al IDE de NetBeans por lo cual su proceso de instalación y configuración es muy sencillo. • Internacionalización; este aspecto llega a estar cubierto por el JBoss Portal en su contendedor de portales a través del uso de recursos en los porlets. 44
  45. 45. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software • Manejo de errores: Hibernate cuenta con un manejador de excepciones lo cual permite detectar errores y solucionarlos de manera fácil y rápida, también es cierto que Hibernate no trata de corregir los errores en modo de ejecución pero esto tiene sentido si consideramos el riesgo al tener dos modelos integrados. • Soporte a nuevos estándares: Hibernate se encuentra en evolución desde sus inicios y por su carácter OpenSource se ha popularizado, tanto que inspiro la especificación EJB 3 la cubre el área del estándar JDO, a la fecha hay conflicto entre estos dos estándares pero se debe a cuestiones de preeminencia. • Mecanismo de licenciamiento: Hibernate es software libre, distribuido bajo los términos de la licencia GNU LGPL y mantiene la portabilidad entre todos los motores de bases de datos con un ligero incremento en el tiempo de ejecución.El siguiente Framework fue investigado por: Nelson Puerta 2.4 TOP LINKToplink construye aplicaciones de alto rendimiento que permiten persistencia delos datos almacenándolos en una base de datos relacional. A su vez ejecutaexitosas transformaciones de datos orientados a objetos en cualquier tipo de datorelacional o elemento XML.Arquitectura de ejecución de TOPLINK. 45
  46. 46. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software Figura 14 Arquitectura TOPLINKLa figura muestra como TopLink se ajusta en una arquitectura típica de JavaEEcompuesta por un servidor de aplicaciones. De esta forma TopLink, es uncontenedor opcional para JavaEE que a su vez es un source de datos.Este framework está compuesto por un front-end de sesiones y un acceso a datosdel tipo back-end, esto permite hacer uso de mapeos, Query Frameworks, cache ycomponentes de transacción. De esta manera las aplicaciones del cliente comoJSP, Servlet y Struts los cuales ingresan a través de la sesión la cual proveeaccesos al query framewok y al componente de transacción.Ambos componentes se benefician de la caché para reducir al mínimo los viajes alas bases de datos.Usando Toplink, se puede integrar a una aplicación persistencia y transformaciónde objetos. Este framework también es adecuado para un vasto rango dearquitecturas que a su vez se puede usar para diseñar, implementar, desplegary optimizar, la persistencia y transformación de objetos lo que permite soportaruna gran variedad de fuentes de datos y formatos, incluyendo los siguientes: • Formato Relacional: Es comúnmente utilizado para la persistencia de las transacciones de los objetos a una base de datos relacional. Se 46
  47. 47. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software puede acceder haciendo uso de los drivers de Java Database Connectivity (JDBC). • Formato para los tipos de datos Objeto relacional: Es utilizado para manejar la persistencia de las transacciones, de los objetos que tienen como propósito especial, representaciones estructuradas del origen de los datos, optimizando el almacenamiento en una base de datos. Estos objetos pueden ser accedidos a través de una Oracle Database. • Enterprise Information System(EIS): Es utilizado comúnmente para manejar la persistencia de las transacciones de objetos a una fuente de datos no relacionales, se pueden acceder mediante una aplicación Java EE conocida como Connector Architecture (JCA). Toplink también puede manejar cualquier tipo de registro soportado por EIS, incluyendo indexado, mapeo, o XML. • XML: Es frecuentemente utilizado, para manejar la conversión entre los objetos y documentos de esquemas XML (XSD) a base de documentos XML, utilizando la arquitectura Java para la vinculación XML (JAXB).Toplink soporta EJB 2.n y EJB 3.0 para los entornos Java EE y Java SE incluye asu vez la integración con una amplia variedad de servidores de aplicaciones, comolo son Oracle WebLogic Server, OC4J, SunAS, JBoss e IBM WebSphereapplication server.Un amplio conjunto de herramientas de desarrollo que provee toplink, incluyendoOracle JDeveloper TopLink Editor, Eclipse Dali y Oracle TopLink Workbench,permite capturar y definir rápidamente, un objeto a una fuente de datos y un objetoa una representación de datos, con mapeos en un formato de metadatos flexible yeficiente. A su vez en tiempo de ejecución, permite a la aplicación explotar elmapeo de metadatos, con una simple sesión tipo facade, que provee un profundorespaldo al acceso de los datos, consultas, transacciones (con o sin uncontrolador de transacción externa) y caching. 47
  48. 48. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software Figura 15 Esquema TOPLINKToplink en síntesis es un subconjunto gratuito de software java de acceso a datosde Oracle. Dicha empresa le añadió varias capas de abstracción para hacerlocompatible con JPA.Toplink la cual fue donada por Oracle para a la comunidad de Eclipse en el 2007,lleva mucho tiempo funcionando, no como implementación JPA, sino como capade acceso a datos. Oracle añadió capas para que fuera accesible vía JPA,exactamente igual que hicieron los de Hibernate. Por lo tanto, TopLink aún tieneque madurar más si se compara con Hibernate. Figura 16Toplink no posee el mejor rendimiento ya que la memoria ocupada aumentadramáticamente, poniendo en evidencia que hay algún tipo de memory leak (fugade memoria) que no posee control alguno. En concreto, el máximo de memoriautilizada (60 mb) triplica al utilizado por Hibernate 48
  49. 49. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de SoftwareLa memoria ocupada, aun después de forzar el recolector de basura (GC), puedequedar hasta en 43 mb, lo cual casi triplica la ocupada por Hibernate (13 o 15 mb).Los tiempos de respuesta, por otro lado, fueron el doble que los de Hibernate.2.4.1 Características a evaluar del Framework • Documentación: La documentación referente a la definición de los elementos que contiene el Framework no es mucha, comparado con otros Framework pero igual dispone de una buena documentación la cual se define muchos de sus elementos más relevantes. • Seguridad: En cuanto a la seguridad esta depende e parte de los medios físicos con los servidores los cuales pueden ser afectados físicamente, pero también a elementos como ataques la base de datos mediante el uso SQL Injection, trabajar Backdoor en el servidor, manipulación de parámetros con en elementos del browser, etc. Otros riesgos de seguridad están asociados directamente con el aplicativo y el manejo de este como la bidireccional de mantenimiento automático de Top link del otro extremo de una relación, cuando uno de los extremos es manipulado, que forma parte de las especificaciones de EJB 2.0) suena como una muy buena idea, pero su aplicación parece inestable y el apoyo a esta función desde el equipo de desarrollo parece estar lejos de ser seguro • Facilidad de uso: Facilita el mapeo de atributos entre una base de datos relacional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) que permiten establecer estas relaciones. Top link Proporciona una Interfaz web amigable y de fácil manejo. Top link permite una consulta de fácil lectura además es muy fácil de construir diversas expresiones de consulta independientes que luego se combinan en una sola consulta. 49
  50. 50. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software • Internacionalización: La internacionalización de top link en la actualidad es buena aunque no sea muy conocido y so sea tan reconocido como hibérnate. • Manejo de errores: Uno delos errores que se presentan en este Framework es un error de traducción cuando intenta traducir las consultas en JPQL Filtros en una consulta orientada en la red Otros de los errores que tiene Top link es que este no es consciente de los cambios realizados en los datos de la base de datos, no hay actualización automática o función, como refresco después de insertar o actualizar para que conteste automáticamente los cambios en los datos de las acciones de activación en el interior del RDBMS. • Soporte a nuevos estándares: Toplink es en gran medida maneja estándares relacionados a SQL, como el establecimiento de la propiedad de una base de datos de SQL Server Native. Toplink cuenta con el apoyo de la mayoría de bases de datos relacionales y también almacenes de datos XML. Al parecer, el desarrollo de una ligera preferencia por el RDBMS de Oracle en el sentido de que las nuevas características de base de datos Oracle tienen una mejor oportunidad de ser apoyado por Toplink de las nuevas características de otros RDBMS. Soporte a estándares JAVA SERVER PAGES (JSP) a demás de trabajar en varios entornos de Desarrollo IDE como NetBeans, Eclipse, Oracle ADF. • Mecanismo de licenciamiento: Se puede obtener una licencia como un producto independiente o como parte de Oracle Application Server Enterprise Edition el cual se basa en estándares J2EE servidor de aplicaciones que se pueden utilizar para implementar aplicaciones. Es comúnmente usado para desplegar Java aplicaciones, pero también se puede utilizar para implementar PL / SQL.Actualmente se puede obtener una versión del Oracle Top Link 11g mejora suobjeto-XML Compatibilidad con enlaces a través de la inclusión de componentesde MOXY EclipseLink. MOXY ofrece JAXB y SDO, así como muchas extensiones 50
  51. 51. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Softwarey funciones avanzadas de mapeo. 2.5 Valoración de las característicasTodas las características se evaluaran entre 0 y 5 siendo 0 la nota más baja. Acontinuación se describe las valoraciones de manera porcentual. Figura 17 Valoración de las características 2.6 Calificación de cada Framework. Figura 18 Calificación de cada Framework 51
  52. 52. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software 2.7 Computo de totales y selección del mejor Framework. Figura 19 Calificación total cada Framework3 PRUEBAS DE CONCEPTO DEL FRAMEWORK 3.1 Arquitectura del Framework (Explicación y diagrama) A continuación se complementa la información especificada en la evaluación del framework sobre Hibernate con respecto a su arquitectura. La siguiente Figura muestra los roles de las interfaces Hibernate más importantes en las capas de persistencia y de negocio de una aplicación J2EE. La capa de negocio está situada sobre la capa de persistencia, ya que la capa de negocio actúa como un cliente de la capa de persistencia. 52
  53. 53. GC TENIS UDEA U. de A.VERSION 1 – RTF 3 Seminario deENFOQUE ARQUITECTONICO Arquitectura de Software Figura 20 Vista de alto nivel del API de Hibernate en una arquitectura por CapasLas interfaces mostradas pueden clasificarse como sigue:• Interfaces llamadas por la aplicación para realizar operaciones básicas(inserciones,.borrados, consultas,...): Session, Transaction, y Query.• Interfaces llamadas por el código de la infraestructura de la aplicación paraconfigurar Hibernate. La más importante es la clase Configuration.• Interfaces callback que permiten a la aplicación reaccionar ante determinadoseventos que ocurren dentro de la aplicación, tales como Interceptor, Lifecycle, yValidatable.• Interfaces que permiten extender las funcionalidades de mapeado de Hibernate,como por ejemplo UserType, CompositeUserType, e IdentifierGenerator.Además, Hibernate hace uso de APIs de Java, tales como JDBC, JTA (JavaTransaction Api) y JNDI (Java Naming Directory Interface).Se explicaran algunas de las interfaces mencionadas:• La interfaz Session es una de las interfaces primarias en cualquier aplicaciónHibernate. 53

×