domingo, 22 de abril de 2012

CREACION DE WEB SERVICE CON JAX-WS EN JDEVELOPER v11gR2

Hola en esta oportunidad mostrare un Dummy, que muestra sobe todo el manejo de la IDE JDeveloper para el desarrollo de WebService con soporte del Framework JAX-WS, en base a una Interfaz WSDL.

En Si JDeveloper como IDE de desarrollo con respecto a ECLIPSE que es mi herramienta por excelencia. Me deja muchas cosas que desear, ya que lo veo muy limitada, repetitiva y con mucho Wizard. Pero en fin mostrare como desarrollar dicho WebService y como deployarlo en un ORACLE WEBLOGIC SERVER 11gR1.

Antes que nada tenemos que tener nuestros WSDL con su XSD ya creado, porque generaremos la arquitectura del WebService en base a dicho WSDL.

Aquí el WSDL en el cual a modo de Dummy he puesto varias operaciones básicas y 2 operaciones orientadas a Objetos que responden un Objeto Usuario y una Lista de Usuarios:


Las Operaciones que soportara el WebService son las siguientes:

 - sumar
 - restar
 - multiplicar
- dividir
- consultarUsuario
- listarUsuario

Ahora pasaremos detallar todo el manejo en JDeveloper, pero para un mejor entendimiento (ya que son bastantes pasos), puedes descargar el TUTORIAL paso a paso completo: AQUI.

Para descargar las fuentes pulsar: AQUI.

jueves, 5 de abril de 2012

INTEGRACION SPRING 3 + MONGODB + SERVLET + MAVEN

Hola en esta oportunidad mostrare una integración bien interesante se trata de la integración de Spring 3 con un Motor de datos No-Relacional osea Orientado a Objeto llamado MongoBD y todo administrado con el estándar maven .

Explicando un poco podemos decir que al maneja BD relacionales como Oracle, SQLServer, MySql, DB2 dentro de un App Web independientemente del lenguaje que te tenga la aplicación, uno sacrifica mucho tiempo al momento de realizar el Mapping de los Objetos (Beans) a sentencias SQL o JOINs para uno traer los datos respectivos. Una solución a esto es usar un Framework ORM que facilite este mapping y haga de tu persistencia que luzca como un seudo manejo orientado a objetos. Pero en si, si se desea ganar ese tiempo perdido en el mapping se lograría la usar Bases de datos no relacionales como MongoDB siguiendo la tendencia del NoSql que tan bien les ha ido a grandes como: Twitter, Facebook, etc.

Lo ORM relacionado a los CRUD y QUERYs de persistencia, nos ayuda a ya no tener que estar ejecutando SQL sino que de frente orientar todo a un pseudo manejo orientado a OBJETOS ya que tu programación si es que ya esta orientada a objetos es ilógico que lo tengas de transformar a: NO OBJETOS (DB Estructural) para guardar persistir en BD. Para eso son los ORM nos brindan una capa de mapping automática para poder persistir mas fácilmente COMO DEBE DE SER.

Al Integrar con BD Orientadas a Objetos aumentamos la rapidez de nuestros aplicativos, ya que nos olvidamos en si de la capa de ORM (Mapping) sino que de frente persistiremos nuestros objetos cargados.

Iniciaremos el post explicando un poco como descargar e instalar MongoDB en un ambiente WINDOWS XP:

1. DESCARGAR [MONDODB]: MongoDB., que es el servidor de BD.

2. DESCARGAR [MONGOVUE]: MongoVue., que es la herramienta por excelencia para administrar MongoDB .

INSTALACION MONGODB:
Luego de descargar el zipeado de MONGODB .

PASO #0: Configurar variables de entorno que apunten al directorio BIN en la ruta
del zipeado descargado de MONGODB .

DENTRO DE [PATH] EN VARIABLES DE ENTORNO APUNTAR:
C:\JAVA\MONGODB\mongodb_win32_v1.6.5\bin

PASO #1:
C:\> mkdir "C:\JAVA\MONGODB"

PASO #2:
C:\> cd "C:\JAVA\MONGODB\mongodb_win32_v1.6.5\bin"
C:\JAVA\MONGODB\mongodb_win32_v1.6.5\bin> mongod


PASO #3: CREAR DIRECTORIOS:

C:\> mkdir "C:\JAVA\MONGODB\mongodb_win32_v1.6.5\data"
C:\> mkdir "C:\JAVA\MONGODB\mongodb_win32_v1.6.5\data\db"
C:\> mkdir "C:\JAVA\MONGODB\mongodb_win32_v1.6.5\logs"
C:\> mkdir "C:\JAVA\MONGODB\mongodb_win32_v1.6.5\conf"


PASO #4: INICIAR EL SERVICIO [MongoDB]:

mongod --logpath "C:\JAVA\MONGODB\mongodb_win32_v1.6.5\logs\log.txt" --dbpath "C:\JAVA\MONGODB\mongodb_win32_v1.6.5\data" --install


PASO #5: INICIAR EL BD:

- OPCION #1 [DIRECTA]: C:\>net start "MongoDB"
- OPCION #2 [ADMNISTRADOR SERVICIOS]: C:\>services.msc , luego buscar el servicio "MongoDB" e iniciarlo.

PASO #6: PROBAR CONEXION DESDE CONSOLA:

C:\> mongo
> 10+10
6
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find(){ _id : ..., a : 1 }
> show dbs
...
> show collections
...
>exit
bye


PASO #[EXTRA]:

- 'REPARAR' SERVICIO [MongoDB]: mongod --repair
- 'ELIMINAR' SERVICIO [MongoDB]: mongod --remove

Ya tenemos instalados MongoDb ahora requerimos lo siguiente:

- Eclipse v3.6 (Plugin Maven).
- Tomcat 6 (Instalado).
- Maven (Ya configurado).


1. Iniciamos el cliente MONGOVUE y nos conectamos a la BD:



2. El Dummy al ser cargado en Eclipse y desplegado en Tomcat mostrara la siguiente interfaz:


3. Al procesar el APP se ejecutara el Servlet: ValidaMongoDbServlet, que probara los escenarios comunes que se pueden dar al trabajar con procesos transaccionales (CRUD y QUERYs), pero esta vez no apoyándonos en un ORM sino que persistiendo en un BD orientada a objetos [MongoDB]. Los procesos a testear son los siguientes:

- registrarUsuario
- loginUsuario
- actualizarUsuario
- obtenerUsuario
- obtenerListaUsuarios
- eliminarUsuario



Finalmente, veremos que el Dummy ha creado el esquema: DB_PLANTILLA en MongoDB y la Colleccion (Tabla): TB_USUARIOS, donde se registraron 2 registros que en el transcurso del Dummy se han creado y modificado. Lo intersante es que MongoDB al reliaza un persistencia de un Objeto aninado (AGREGACION o COMPOSICION), este lo guarda de forma directa en su propio registro de BD, esto se prueba apreciar mediante la herramienta cliente en la relacion USUARIO - PRODUCTO que hemos probado.




Para un mejor entendimiento del manejo de este Framework, puedes descargar el proyecto 'Eclipse Mavenizado' completo: AQUI.