Anda di halaman 1dari 6

ARQUITECTURA DE DESARROLLO

El detalle de la nueva arquitectura de desarrollo empleada es el siguiente:

Como framework de desarrollo global se ha empleado Spring Framework


con diversos componentes asociados, tales como Spring Security,
Integracin con MyBatis, delimitacin transaccional por medio de
anotaciones, declaracin de beans por medio de anotaciones y servicios
web REST con consumo y retorno de tipo JSON.

En la capa de acceso a datos se ha empleado MyBatis a fin de poder


interactuar con la base de datos Oracle y sus estructuras especiales, tales
como funciones y procedimientos almacenados, as como obtener una
interaccin independiente de la convencin de nombramiento adoptada y
los inconvenientes a nivel de tipos de datos en llaves primarias y forneas.

Se ha asociado un pool de conexiones por defecto que se despliega


conjuntamente con la aplicacin cuando se emplea el contenedor Tomcat.
Este pool de conexiones se encarga de garantizar un manejo ms eficiente
de las conexiones a la base de datos y de las sesiones transaccionales y
es totalmente escalable en el caso en que se multiplique el nmero de
usuarios concurrentes a la aplicacin.

En la capa de servicio se ha incorporado la lgica de negocio o Business


Logic de la aplicacin, aunque se ha previsto la mejor posibilidad de que
esto tambin pueda ser asociado a nivel de componentes de PL-SQL y
tener facilidad a la hora de interactuar con ellos de la manera ms simple
posible. Conviene destacar que la configuracin base realizada permite
trabajar en un entorno eminentemente transaccional, que es un
requerimiento fundamental en la aplicacin de Bienestar Social.

En la capa de presentacin se ha incorporado Spring MVC con la


posibilidad de utilizar anotaciones especiales y servicios web REST. A este
nivel se asociaron y configuraron otras tecnologas especficas para
trabajar a nivel de presentacin tales como Jackson para la conversin de
ida y vuelta de objetos JSON. Por otra parte, entre las tecnologas para las
vistas se ha incorporado JSP, JSTL y jQuery, que a diferencia del entorno
originalmente provisto a mi persona, provee una alta flexibilidad en lo
referente a la definicin de widgets para la interfaz de usuario, as como la
posibilidad de emplear servicios REST que posteriormente podrn ser
empleados para integrar con otras tecnologas de presentacin y consumo,
tales como aplicaciones mviles Android.

1. Spring Framework
Introduccin
El Spring Framework proporciona un modelo de programacin y configuracin completa para las
aplicaciones empresariales modernas basadas en Java - en cualquier tipo de plataforma de
despliegue. Un elemento clave de la primavera es el apoyo de infraestructura a nivel de aplicacin:
la primavera se centra en la "fontanera" de las aplicaciones empresariales para que los equipos
pueden centrarse en la lgica de negocios a nivel de aplicacin, sin ataduras innecesarias a los
entornos de despliegue especficas.
Caractersticas
Inyeccin de dependencia
Programacin orientada a aspectos incluyendo la gestin de transacciones declarativa de
Primavera
Spring MVC aplicaciones web y servicios web RESTful marco
Apoyo fundamental para JDBC, JPA, JMS y Mucho ms...
Todas las caractersticas avaible y mdulos se describen en la seccin Mdulos de la documentacin
de referencia. Sus maven / coordenadas Gradle tambin se describen all.
Requerimientos mnimos
JDK 6+ para Spring Framework 4.x
JDK 5+ para Spring Framework 3.x

Spring es un framework para el desarrollo de aplicaciones y contenedor de inversin de


control, de cdigo abierto para laplataforma Java.2
La primera versin fue escrita por Rod Johnson, quien lo lanz junto a la publicacin de su
libro Expert One-on-One J2EE Design and Development (Wrox Press, octubre 2002). El
framework fue lanzado inicialmente bajo la licencia Apache 2.0 en junio de 2003. El primer
gran lanzamiento fue la versin 1.0, que apareci en marzo de 2004 y fue seguida por otros
hitos en septiembre de 2004 y marzo de 2005. La versin 1.2.6 de Spring Framework obtuvo
reconocimientos Jolt Awards y Jax Innovation Awards en 2006.3 4 Spring Framework 2.0 fue
lanzada en 2006, la versin 2.5 en noviembre de 2007, Spring 3.0 en diciembre de 2009, y
Spring 3.1 dos aos ms tarde.5 El inicio del desarrollo de la versin 4.0 fue anunciado en
enero de 2013.6 La versin actual es 4.1.1.
Si bien las caractersticas fundamentales de Spring Framework pueden ser usadas en
cualquier aplicacin desarrollada en Java, existen variadas extensiones para la construccin

de aplicaciones web sobre la plataforma Java EE. A pesar de que no impone ningn modelo
de programacin 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).

Historia[editar]
Los primeros componentes de lo que se ha convertido en Spring Framework fueron escritos
por Rod Johnson en el ao 2000, mientras trabajaba como consultor independiente para sus
clientes en la industria financiera en Londres. Mientras escriba el libro Expert One-on-one
J2EE Design And Development (Programmer to programmer), Rod ampli su cdigo para
sintetizar su visin acerca de cmo las aplicaciones que trabajan con varias partes de la
plataforma J2EE podan llegar a ser ms simples y ms consistentes que aquellas que los
desarrolladores y compaas estaban usando por aquel entonces.
En el ao 2001 los modelos dominantes de programacin para aplicaciones basadas en web
eran ofrecidas por el API Java Servlet y los Enterprise JavaBeans, ambas especificaciones
creadas por Sun Microsystems en colaboracin con otros distribuidores y partes interesadas
que disfrutaban de gran popularidad en la comunidad Java. Las aplicaciones que no eran
basadas en web, como las aplicaciones basadas en cliente o aplicaciones en batch, podan
ser escritas con base en herramientas y proyectos de cdigo abierto o comerciales que
proveyeran las caractersticas requeridas para aquellos desarrollos.
Se form un pequeo equipo de desarrolladores que esperaba trabajar en extender el
framework y un proyecto fue creado en Sourceforge en febrero de 2003. Despus de trabajar
en su desarrollo durante ms de un ao lanzaron una primera versin (1.0) en marzo de 2004.
Despus de este lanzamiento Spring gan mucha popularidad en la comunidad Java, debido
en parte al uso de Javadoc y de una documentacin de referencia por encima del promedio de
un proyecto de cdigo abierto.
Sin embargo, Spring Framework tambin fue duramente criticado en 2004 y sigue siendo el
tema de acalorados debates. Al tiempo en que se daba su primer gran lanzamiento muchos
desarrolladores y lderes de opinin vieron a Spring como un gran paso con respecto al
modelo de programacin tradicional; esto era especialmente cierto con respecto a Enterprise
JavaBeans. Una de las metas de diseo de Spring Framework es su facilidad de integracin
con los estndares J2EE y herramientas comerciales existentes. Esto quita en parte la

necesidad de definir sus caractersticas en un documento de especificacin elaborado por un


comit oficial y que podra ser criticado.
Spring Framework hizo que aquellas tcnicas que resultaban desconocidas para la mayora
de programadores se volvieran populares en un periodo muy corto de tiempo. El ejemplo ms
notable es la inversin de control. En el ao 2004, Spring disfrut de unas altsimas tasas de
adopcin y al ofrecer su propio framework de programacin orientada a aspectos (aspectoriented programming, AOP) consigui hacer ms popular su paradigma de programacin en
la comunidad Java[cita requerida].
En 2005 Spring super las tasas de adopcin del ao anterior como resultado de nuevos
lanzamientos y ms caractersticas fueron aadidas. El foro de la comunidad formada
alrededor de Spring Framework (The Spring Forum) que arranc a finales de 2004 tambin
ayud a incrementar la popularidad del framework y desde entonces ha crecido hasta llegar a
ser la ms importante fuente de informacin y ayuda para sus usuarios.

Mdulos[editar]
Spring Framework comprende diversos mdulos que proveen un rango de servicios:

Contenedor de inversin de control: permite la configuracin de los componentes


de aplicacin y la administracin del ciclo de vida de los objetos Java, se lleva a cabo
principalmente a travs de la inyeccin de dependencias.

Programacin orientada a aspectos: habilita la implementacin de rutinas


transversales.

Acceso a datos: se trabaja con RDBMS en la plataforma java, usando Java Database
Connectivity y herramientas de Mapeo objeto relacional con bases de datos NoSQL.

Gestin de transacciones: unifica distintas APIs de gestin y coordina las


transacciones para los objetos Java.

Modelo vista controlador: Un framework basado en HTTP y servlets, que provee


herramientas para la extensin y personalizacin de aplicaciones web y servicios
webREST.

Framework de acceso remoto: Permite la importacin y exportacin estilo RPC, de


objetos Java a travs de redes que soporten RMI, CORBA y protocolos basados
enHTTP incluyendo servicios web (SOAP).

Convencin sobre Configuracin: el mdulo Spring Roo ofrece una solucin rpida
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 caractersticas incluye funciones de registro/trazado, manejo de transacciones,
estadsticas de procesamiento de tareas, reinicio de tareas, y manejo de recursos.

Autenticacin y Autorizacin: procesos de seguridad configurables que soportan un


rango de estndares, protocolos, herramientas y prcticas a travs del subproyecto Spring
Security (antiguamente Acegi).

Administracin Remota: Configuracin de visibilidad y gestin de objetos Java para


la configuracin local o remota va JMX.

Mensajes: Registro configurable de objetos receptores de mensajes, para el consumo


transparente desde la a travs de JMS, una mejora del envo de mensajes sobre las API
JMS estndar.

Testing: Soporte de clases para desarrollo de unidades de prueba e integracin.

Contenedor de Inversin de Control (inyeccin de dependencia)


[editar]
Para el Spring Framework es central su Contenedor de inversin de control (IoC), que
proporciona una forma consistente de configuracin y administracin de objetos Java usando
la Reflexin. El Contenedor se encarga de gestionar los ciclos de vida de objetos de los
objetos especficos: la creacin de estos objetos, llamando a sus mtodos de inicializacin, y
configurando estos objetos cableandolos juntos.
Los objetos creados por el Contenedor tambin se denominan objetos gestionados o beans.
El Contenedor se puede configurar mediante la carga de archivos XML o la deteccin
de anotaciones Java especficas sobre la configuracin de las clases. Estas fuentes de datos
contienen las definiciones que proporcionan la informacin necesaria para la creacin de
las beans.
Los objetos pueden ser obtenidos por cualquiera de los medios de dependencia de
bsqueda or dependencia de inyeccin.7 Dependencia de bsqueda es un modelo donde se
pide al objeto contenedor un objeto con un nombre especfico o de un tipo
especfico. Dependencia de inyeccin es un modelo en el que el contenedor pasa objetos por

nombre a otros objetos, ya sea a travs de mtodos constructores, propiedades, o mtodos de


la fbrica.
En muchos casos cuando se utilizan otras partes del Spring Framework no necesita utilizar el
Contenedor, aunque probablemente su uso le permita hacer una aplicacin ms fcil de
configurar y personalizar. El Contenedor de Spring le proporciona un mecanismo consistente
para configurar las aplicaciones, y se integra con casi todos los entornos Java, desde
aplicaciones de pequeas a grandes aplicaciones empresariales.
El contenedor se puede convertir en un contenedor EJB 3.0 parcialmente por medio del
proyecto Pitchfork. Algunos critican al Spring Framework por no cumplir los estndares.8 Sin
embargo, SpringSource no ve el cumplimiento EJB 3 como un objetivo importante, y afirma
que el Spring Framework y el contenedor permiten modelos de programacin ms
potentes.9 No creas un objeto, sino describes la forma en que deben crearse, definindolo en
el archivo de configuracin de Spring. No llamas a los servicios y componentes, sino dices que
servicios y componentes deben ser llamados, definindolos en los archivos de configuracin
de Spring. Esto hace el cdigo fcil de mantener y ms fcil de probar mediante la Inyeccin
de Dependencia (IoC).

2. myBatis

Introduccin
Qu es MyBatis?
MyBatis es un framework de persistencia que soporta SQL, procedimientos almacenados y
mapeos avanzados. MyBatis elimina casi todo el cdigo JDBC, el establecimiento manual
de los parmetros y la obtencin de resultados. MyBatis puede configurarse con XML o
anotaciones y permite mapear mapas y POJOs (Plain Old Java Objects) con registros de
base de datos.