lunes, 23 de febrero de 2015

WSO2 DS: Exponiendo nuestra BD Oracle usando REST.

En otras entradas hemos visto lo fácil que es crear un servicio de datos usando la suite de WSO2, bien sea a través del WSO2 AS o el WSO2 DSS. También hemos visto como exponer estos datos usando REST con solo unos pocos pasos adicionales y como consumir estos servicios expuestos usando REST.

En esta entrada veremos como combinarlo todo implementando un escenario que nos ha pedido un cliente hace poco: Exponer sus datos almacenados en una BD Oracle tanto por SOAP como por REST de una manera altamente configurable y rápida de implementar.
Veamos una pequeña PoC que le preparamos:


Paso 1: Crear la BD.

Nos conectamos al SGBD y creamos un usuario “appserver” con contraseña “appserver”.

image

Volvemos a conectar pero esta vez usando las credenciales del usuario recién creado y en la BD que usamos en una entrada anterior DBMB.

Una vez autenticados creamos una tabla “cliente” e insertamos alguna data que luego será consultada.

image


Por último creamos un procedimiento almacenado para hacer una inserción en la tabla:

image




Paso 2: Crear el servicio de datos.

Haciendo uso del conocimiento que ya tenemos de entradas anteriores, procedemos a crear un servicio de datos. En la parte de configuración del DataSource quedaría de la siguiente manera:

image

Se puede apreciar que se ha dado clic en “Test Connection” y se ha conectado exitosamente a la BD. Previamente debemos haber añadido el jar ojdbc6.jar a [HOME_AS]\repository\components\lib\

La primera query que agregamos es la de consumir el procedimiento almacenado anteriormente creado:

image


Y la segunda query es para consultar la información de la tabla:

image
image


Una vez terminada estas configuraciones en las querys procedemos a crear las operaciones que no tienen nada de complicación, guardamos nuestro servicio y procedemos a consumirlo.

image



Paso 3: Incluir funcionalidad REST.

La implementación consiste en agregar dos recursos tal y como se muestra a continuación. Uno que se llama “clientes” para obtener el listado de clientes y otro que se llama “insertarCliente” para insertar los datos de un cliente en la BD.

image

Sus configuraciones son realmente sencillas. La de clientes es:

image


Y la de insertarCiente es:

image


Paso 4: Probar por REST.

Una vez guardado el servicio se procede a probarlo usando el plugin para REST de firefox:

image

También lo podemos probar desde el SOAPUI:

image 

Y ahora veremos como llamar a la operacion de insertarCliente primero por el SOAPUI:

image

Y luego por el cliente REST de firefox:

image

Vean que se insertaron Cliente7 y Cliente8.

Para finalizar una consulta a través del recurso “clientes” nos confirma el éxito de ambas llamadas.

image 

Eso es todo, de una manera muy fácil hemos expuesto nuestros datos tanto por SOAP como por REST.

Esperamos les sea de utilidad.

WSO2 MB: Enviando y recibiendo mensajes con JMS.

image

En esta entrada queremos mostrarles como usar el WSO2 Message Broker para enviar y recibir mensajes usando las colas JMS desde Java.

Para los códigos de enviar un mensaje a una cola en el WSO2 MB y para leer de la cola, hacemos uso de los ejemplos entregados por WSO2 en la documentación de la herramienta.

En el MB tenemos una cola creada como se muestra a continuación:

image

El nombre de la cola es QueueMB1, por lo que debe ser revisado en el código, y el puerto que se está usando para conectarse a la consola web del WSO2 MB es el 9447 lo que nos indica que el Offset es de 4, por lo que también debe ser ajustado en el código de las clases que envían y reciben los mensajes.

El proyecto con las clases usadas lo pueden obtener de este enlace.

Resultado de la ejecución de la clase QueueSender en el MB para 100 mensajes:

image
image

Resultado de la ejecución de la clase QueueSender en el IDE:

image


Resultado de la ejecución de la clase QueueReceiver en el MB:

image


Resultado en el IDE:

image

De esta manera estamos seguros que el WSO2 MB 2.2.0 funciona para el envío y recepción de mensajes desde JAVA y seguramente desde otros sistemas, como puede ser el WSO2 ESB.

sábado, 21 de febrero de 2015

WSO2 BPS: Desarrollando un proceso de negocio en la práctica.

En esta entrada quiero mostrarles como combinar distintas herramientas de WSO2 para desarrollar un proceso de negocio usando BPEL. Las herramientas son:
  1. WSO2 AS: para el despliegue de los servicios backend.
  2. WSO2 Developer Studio: para el desarrollo de los servicios backend en axis2 y para el desarrollo del proceso usando BPEL.
  3. WSO2 BPS: para el despliegue del proceso BPEL.

Para ello he desarrollado este tutorial que les guiará detalladamente a lo largo del proceso, paso a paso.

Esperamos les sea de utilidad.

En otras entradas usaremos un proceso más cercano a la realidad para incorporarle nuevas funcionalidades.

martes, 3 de febrero de 2015

Configurando la suite de WSO2 con Oracle.


Todos los productos de WSO2 pueden ser configurados muy facilmente para usar distintos gestores de BD como:
  1. MySQL.
  2. Oracle.
  3. PostgreSQL.
  4. …..
Nosotros por lo general usamos PostgreSQL en nuestros desarrollos, pero también hacemos uso de Oracle DB cuando nuestros clientes así lo desean, por esta razón quiero mostrarles como configurar el WSO2 MB 2.2.0 para usar una BD en Oracle.

Paso 1: Usar el asistente de Oracle dbca para crear una BD. En nuestro caso la BD se llama dbmb.
Aquí es importante que los ficheros tnsnames.ora y listener.ora estén correctamente configurados para no tener problemas en la creación y el acceso a la BD.

Paso 2: Conectarnos a Oracle usando el comando:
sqlplus sysadmin/[tu contraseña] as sysdba
image

Paso 3: conectarse a la instancia usando el comando connect, si no están conectados ya. Crear el usuario y conectarse con este usuario.
image

Paso 4:  Crear una sesión y  ejecutar un commit.
image

Paso 5: Configurar el fichero [MB-HOME]\repository\conf\datasources\master-datasources.xml para que se conecte a la BD creada y configurada en los pasos anteriores.
<datasource>
 <name>WSO2_CARBON_DB</name>
 <description>The datasource used for registry and user manager</description>
 <jndiConfig>
  <name>jdbc/WSO2CarbonDB</name>
 </jndiConfig>
 <definition type="RDBMS">
  <configuration>
   <url>jdbc:oracle:thin:@localhost:1521/dbmb</url>
   <username>dbgreg</username>
   <password>dbgreg</password>
   <driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>
   <maxActive>50</maxActive>
   <maxWait>60000</maxWait>
   <testOnBorrow>true</testOnBorrow>
   <validationQuery>SELECT 1</validationQuery>
   <validationInterval>30000</validationInterval>
  </configuration>
 </definition>
</datasource>


Paso 6: Copiar el driver de Oracle para [MB-HOME]\repository\components\lib\ en nuestro caso el driver es ojdbc6.jar.


Paso 7: Iniciar el servidor de la siguiente manera: wso2server.bat o .sh  y el parámetro  -Dsetup para que nos cree las tablas en la BD.


image


Y eso es todo. De esta manera tenemos configurada cualquier herramienta de WSO2, en este caso el WSO2 Message Broker 2.2.0, para que use como BD a Oracle.