En la segunda mitad del 2014, Oracle ha liberado la versión 12c de su tan popular y aclamada Oracle SOA Suite. La versión exacta es la 12.1.3.
Tanto Arturo Viveros como Rolando Carrasco han trabajado con Oracle SOA Suite desde sus inicios; la han visto progresar y ofrecer cada vez más nuevas características.
Desde su versión 10g, Oracle ha intentado ofrecer una instalación fácil; un entorno integrado y fácil de entender. Los esfuerzos han dado muy buenos resultados, pasando por toda una serie de releases en la versión 11g, hasta llegar a esta nueva liberación. Ahora incluso tenemos un instalador “quickstart”, con el cual en menos de 12 minutos, cualquier persona puede empezar a utilizar la Suite con su Oracle JDeveloper, totalmente integrado. En este artículo sin embargo, nos enfocaremos en la instalación de la versión empresarial de Oracle SOA Suite 12c.
Antes de comenzar con el proceso de instalación, revisemos las mejoras, que son palpables y están presentes en la mayoría de los componentes principales de la Suite. Algunas que podemos ir resaltando, son los siguientes:
Y así como éstas que acabamos de mencionar, hay muchas más mejoras que harán que para el desarrollador, administrador, publicador de servicios, su trabajo sea mucho más simplificado, logrando así mayor productividad y control de la Plataforma SOA.
Algo muy relevante que debemos mencionar, es este enfoque de SOA Industrial que Oracle ha venido promoviendo con el nuevo release. Este SOA Industrial está enfocado a la importancia y relevancia que tienen las implementaciones de esta plataforma en las diferentes organizaciones/empresas. Prácticamente a través de SOA se sustenta gran parte de la operación de muchos clientes, volviéndose una pieza fundamental e importante. Por lo que el producto debe estar preparado para dichos entornos tan demandantes.
Nosotros lo hemos vivido en diferentes industrias: Telecomunicaciones, Prendaria, Construcción, Finanzas, Farmacéutica, Retail, Manufactura, Servicios. En cada una de ellas, SOA se vuelve indispensable, para: cobrar, facturar, aprovisionar, empeñar, construir, vender, surtir medicamentos, dar de alta proveedores, emitir pagos, etc.
Gran parte de las mejoras e innovaciones incluidas en la versión 12c de Oracle SOA Suite, están alineadas al tema de "Industrial SOA", haciendo especial énfasis sobre temas como: productividad, movilidad, cloud:
La mayoría de estas características nuevas, surgen a partir del análisis de las tendencias de la industria, así como de la retroalimentación proporcionada por los mismos clientes e implementadores de tecnología Oracle:
Nosotros hemos estado presentes en diversos CABs de SOA / BPM durante los últimos años, y tanto hemos dado este tipo de retroalimentación, como también la hemos escuchado de parte de los diversos integrantes de dichos foros (desarrolladores, arquitectos, clientes, usuarios finales, etc.). En la versión 12c de Oracle SOA Suite, nos damos cuenta de que el tiempo invertido en estas reuniones ha sido tomado en cuenta y ha dado frutos por parte de Oracle.
Es por esto que el release 12c es tan importante para la industria de TI. Pues se tiene al alcance una Plataforma que responderá a sus necesidades. Tanto para servicios internos/on-premise, como aquellos que deban ser publicados para que terceros los ocupen. Así como agilizar la publicación de servicios para aplicaciones móviles.
En síntesis, una sola suite con la cual podemos producir de forma “industrializada” y con alta productividad, integraciones on-premise, Cloud, Mobile y mucho más.
Una vez dado el contexto anterior, suponemos que muchos de ustedes, al igual que nosotros, estarán interesados en comenzar a trabajar con esta versión. Incluso buscando una adopción rápida por parte de sus respectivos clientes y/o empresas, con la finalidad de explotar rápidamente todas las bondades y el potencial de la herramienta. A continuación explicaremos el proceso de instalación de este nuevo release. En realidad es muy similar al que conocemos para la versión 11g.
Empezaremos con ambientar la máquina y el perfil del usuario con el que vamos a instalar:
Esablecer la variable JAVA_HOME en el .bash_profile
# .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# Variables de ambiente del usuario
PATH=$PATH:$HOME/bin:$JAVA_HOME
export PATH
JAVA_HOME=/u01/12cInstaller/jdk/jdk1.7.0_71
export JAVA_HOME
umask 027
export LANG="en_US.UTF-8"
Establecer por sesión la variable PATH con la ubicación del jdk para la instalación:
export PATH=/u01/12cInstaller/jdk/ jdk1.7.0_71 /bin/:$PATH
Una vez con las variables bien establecidas, y previamente teniendo instalado al JDK v1.7, vamos a arrancar con Weblogic.
En nuestro caso, tenemos los instaladores de WL, en la ruta /u01/12cinstaller/wlserver. Parados en ella, ejecutaremos:
java -jar -Djava.io.tmpdir=/u01/ fmw_12.1.3.0.0_infrastructure.jar
Valida que los pre-requisitos estén bien. Si algo falla, como en el caso anterior, valida qué paso fue el que no pudo ejecutarse bien. En realidad en esta etapa de la instalación, lo único que podría fallar, es el DISPLAY de tu sesión remota. Lo quisimos incorporar, porque en nuestro caso estamos instalando de manera remota sobre un servidor LINUX Red Hat. El resto de elementos son: SWAP Space, espacio temporal y velocidad de tu CPU.
Una vez esto ejecutado, saldrá la siguiente imagen:
Te dará la bienvenida que indica la instalación la de Infraestructura de Fusion Middleware 12.1.3. Simplemente da click sobre el botón NEXT. Saldrá la siguiente pantalla:
Aquí simplemente indica en dónde generarás tu ORACLE_HOME. Esta es una de las primeras diferencias a entender, pues en 12c no hay este concepto de MIDDLEWARE_HOME. Una vez que escojas la ubicación, saldrá la siguiente pantalla que te pedirá elegir: FMW Infra o bien FMW Infra con ejemplos. Nosotros elegimos son ejemplos:
Da click en Next y saldrá la siguiente pantalla que validará algunos pre-requisitos:
La siguiente pantalla te pedirá tus datos para asociarlos a Oracle Support y puedas recibir notificaciones de ellos, así como reportar problemas y recibir notificaciones de parches a aplicar.
En nuestro caso no escribimos nada, y daremos click en NEXT, lo cual provocará el siguiente mensaje:
Dar clic en Yes. Al hacer esto, ya te mostrará el resumen de lo que instalará:
Ahora da click en INSTALL y te mostrará el progreso de la instalación en la siguiente pantalla:
Y posteriormente:
Al finalizar, tendrás el siguiente mensaje que indica que todo estuvo bien instalado. Da click en el botón de FINISH.
Ve al lugar en donde esté el instalador: fmw_12.1.3.0.0_soa.jar. En nuestro caso /u01. Estando ahí ejecuta:
java -jar -Djava.io.tmpdir=/u01/ fmw_12.1.3.0.0_soa.jar
Al igual que con Weblogic, saldrá la siguiente pantalla:
Una vez que pases los pre-requisitos, saldrá ya el instalador gráfico:
En nuestro caso, escogimos SOA Suite y daremos click en Next. En la siguiente pantalla, te validará algunos pre-requisitos:
Cuando ya aparezca como en la pantalla siguiente, darás click en Next.
Una vez que diste Next en la pantalla anterior, te llevará a la siguiente pantalla que te hará el resumen de la instalación. Simplemente da click en Install:
Una vez que diste click, saldrá la siguiente pantalla, con el progreso de la instalación:
Una vez que terminaste, saldrá la siguiente pantalla:
Con esto ya terminaste de instalar el software de SOA Suite. El siguiente paso es generar los esquemas en la base de datos, a través de la ejecución del RCU.
De la instalación, ve a la siguiente ruta:
/u01/12c/oracle_common/bin para ubicar el ejecutable del RCU
Ejecuta ./rcu y saldrá la siguiente pantalla:
Simplemente da click en el botón de NEXT y te llevará a la siguiente pantalla:
En este pantalla puedes crear un nuevo repositorio o bien borrarlo. Si lo generas puedes escoger tres opciones: Cargar el Producto y Sitema; Preparar los Scrips para carga del Sistema; Cargar al Producto. Por ser una instalación inicial, usaremos la primera opción. Da click en Next y saldrá la pantalla que te pide los datos de tu base de datos. Revisa la compatiblidad de la misma con SOA Suite 12c.
En nuestro caso vamos a hacer uso de Oracle XE, que no está certificada, pero que nos servirá como ejercicio:
Recuerda que requieres acceso con SYSDBA, para generar todos los artefactos necesarios. Una vez que escribas los datos, da click en Next y saldrá lo siguiente:
Como en este caso se está ocupando una base de datos Oracle XE, saldrá este mensaje, pero dale en ignorar:
Y OK al check de los prerrequisitos:
Posteriormente, saldrá la siguiente pantalla en dónde escogerás el nombre del prefijo con el que se generarán los esquemas. Igualmente escogerás los esquemas que vas a utilizar, para SOA escoge los siguientes y da click en Next:
Saldrá la siguiente pantalla y da click OK en el check de prerrequisitos:
Saldrá la siguiente pantalla, que te pedirá establecer los passwords para todos los usuarios que generará. En este caso usa la opción de utilizar el mismo para todos los esquemas:
Una vez hecho esto, da click en NEXT y te saldrá la siguiente pantalla que te preguntará el perfil de tu base de datos. En este caso es SMALL, pues es una instalación para desarrollo. También te pide si estás usando Healthcare Integration, en este caso la respuesta es: NO. Ahora da click en NEXT.
Saldrá la siguiente pantalla en donde podrás manejar a los tablespaces que se generarán:
Dejar las configuraciones para los tablespaces, tal como te las ofrece el instalador. Esto para dejar todo por default. En un ambiente productivo, esto tendrá que ser manipulado por tu DBA. Da click en NEXT y saldrá lo siguiente:
Dar clic en OK. Saldrá la siguiente pantalla:
Clic en OK al finalizar la creación de los tablespaces:
Finalmente te hará el resumen de lo que se va a crear en la base de datos. Da click en el botón de Create.
Saldrá la siguiente imagen con el progreso de la creación de los objetos en la base de datos:
Al finalizar, da click en OK para el System Load y saldrá la siguiente imagen. Simplemente haciendo el resumen de lo que se generó:
Como SYS verificamos el número de versión de los esquemas:
select comp_name, version from schema_version_registry where MRC_NAME like '%DEV12C%';
Ve a la ubicación siguiente y ejecuta:
/u01/12c/oracle_common/common/bin/config.sh
Saldrá la siguiente imagen que te preguntará si quieres generar un nuevo dominio o bien extenderlo. En este caso, queremos crear uno nuevo. En la pantalla solo pon la ubicación en donde estará tu dominio:
Da click en Next, y selecciona los componentes a instalar:
Escogemos SOA Core Extension, SOA Suite, BAM, Enterprise Scheduler, BAM, Enterprise Manager, OWSM, Enterprise Messaging Service. Algunos componentes se seleccionarán solos, al momento que escojas a sus dependencias.
Da click en Next y te llevará a la siguiente pantalla. Ahí indicarás la carpeta de aplicaciones:
Da click en el botón de Next, te pedirá el nombre del usuario de administración de tu weblogic, así como su password. Elige lo que consideres tu estándar:
Da click en Next. Saldrá la siguiente pantalla, donde ubicarás el JDK que quieres usar. Así como el modo de tu dominio: Production o Development
Da click en Next y saldrá la siguiente pantalla. Esta configuración es diferente a la de 11g. Aquí 12c tiene la particularidad que en el esquema <PREFIJO>_STB, están los datos de conexión con los cuales se generarán los diferentes datasources. A diferencia de 11g, que tenías que configurar datasource por datasource:
Al darle click, te poblará la información en los campos de la siguiente pantalla:
Da click en NEXT, y te probará cada uno de los datasources.
Una vez validadas las conexiones, da click en Next. Esto te llevará a la pantalla donde escogerás los elementos a configurar en el dominio:
Saldrá primero la configuración del Admin Server. Pon los datos del nombre, puerto y dirección en dónde escuchará y da click en NEXT:
Al darle click a la pantalla anterior,te pedirá la configuración del Node Manager. Este también es un paso nuevo en la instalación. Podrás usar la configuración default; colocar el nodemanager en una carpeta diferente; o bien, hacer un setup manual. En este caso usaremos la default, para lo cual, te pide usuario y password que quieras usar para tu nodemanager.
Da click en el botón de Next y saldrá la pantalla para configurar los nombre y puertos de los managed servers. En 12c, además de generarse el de BAM, SOA, también se generará el del Enterprise Scheduler y el de UMS (mensajería unificada):
Da click en Next, y te llevará a la pantalla de clúster. En este caso no vamos a agregar nada, pues es un single instance installation.
Da click en Next y ahora te pedirá los datos de Coherence. Esto también es nuevo, si bien Coherence ya se ocupaba en versiones anteriores, no salía una pantalla de configuración durante la creación del dominio. Escoge el puerto de Unicast que tú consideres, no uses 0, a propósito dejamos ese valor, para indicarte que escojas algún otro que esté en los rangos que puedas unitilozar.
Da click en Next, y saldrá la pantalla para configurar la máquina. Escoge el puerto y dirección donde escuchará el node manager:
Da click en Next y mueve los servidores a la máquina que acabas de crear.
Da click en Next y nos hará el resumen de despliegues
Finalmente da click en Create, y esto ya generará el dominio:
Cuando termine, debes ver la siguiente pantalla:
Simplemente da click en NEXT y verás la siguiente pantalla:
Con esto, hemos terminado la instalación de un dominio que incluye SOA Suite. Aún falta instalar Oracle Service Bus, pero esos pasos están más adelante en esta misma guía.
Un paso opcional es el siguiente: Finalizada la instalación configurar el .bash_profile del usuario oracle (home/oracle):
# .bash_profile if [ -f ~/.bashrc ]; then . ~/.bashrc fi
PATH=$PATH:$HOME/bin export PATH
ORACLE_BASE=/u01 export ORACLE_BASE
ORACLE_HOME=${ORACLE_BASE}/12c export ORACLE_HOME
DOMAIN_HOME=${ORACLE_BASE}/12c/user_projects/domains/soa_domain export DOMAIN_HOME
WLS_HOME=${ORACLE_HOME}/wlserver export WLS_HOME
CLASSPATH=${WLS_HOME}/server/lib/weblogic.jar export CLASSPATH
#LD_LIBRARY_PATH=$ORACLE_HOME/lib #export LD_LIBRARY_PATH
JAVA_HOME=/u01/12cInstaller/jdk/jdk1.7.0_71 export JAVA_HOME
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$ORACLE_HOME/OPatch: export PATH
umask 027 export LANG="en_US.UTF-8"
A continuación arrancaremos nuestro dominio recientemente creado con los componentes en versión 12c:
Iniciar node manager:
nohup $DOMAIN_HOME/bin/startNodeManager.sh >/dev/null 2>&1
o bien:
nohup /u01/12c/user_projects/domains/soa_domain/bin/startNodeManager.sh >/dev/null 2>&1
o bien:
nohup ./startNodeManager.sh > nodemanager.out &
Debes ver lo siguiente en el nohup, para validar que Nodemanager está ejecutándose de manera correcta:
Ahora iniciaremos el Admin Server: Generaramos el boot properties en secutiry del AdminServer con los accesos de weblogic antes de levantar el script. Y posteriornmente:
nohup $DOMAIN_HOME/bin/startWebLogic.sh >/dev/null 2>&1 &
o bien:
nohup /u01/12c/user_projects/domains/soa_domain/bin/startWebLogic.sh >/dev/null 2>&1 &
o bien:
nohup ./startWebLogic.sh > weblogic.out &
Debes ver lo siguiente en la salida del nohup:
Una vez que el Admin haya arrancado, podrás entrar al Weblogic Console:
http://<IP>:<PUERTO_ADMIN_SERVER>/console
Verás la siguiente pantalla, ingresa con el usuario y pwd que hayas determinado en los pasos de instalación que previamente se explicaron:
Al ingresar, debes ver lo siguiente:
Estando ya adentro del Weblogic Console, podemos subir los servidores. Como ya mencionamos, se generaron 4 servers: SOA, BAM, ESS, UMS.
En esta imagen, vemos cómo podemos arrancar a los servidores.
Finalmente los vemos en estado RUNNING.
Las URLs que se deben validar, son las siguientes:
Enteprise Manager FMW
Control: http://<IP>:<PUERTO_ADMIN_SERVER>/consoleWorklistapp: http://<IP>:<PUERTO_SOA_SERVER>/integration/worklistapp
WSM-PM: http://<IP>:<PUERTO_SOA_SERVER>/wsm-pm
BAM: http://<IP>:<PUERTO_BAM_SERVER>/bam/composer
Hemos decidido partir la instalación de Oracle Service Bus, pues es factible que los clientes usen solo OSB y no el resto de componentes. De esa manera, esta guía es válida para todos los escenarios:
Lo primero que debes de hacer es tener instalado Weblogic (FMW Infrastructure) de manera que sobre este ORALCE_HOME, instales OSB:
Ejecutar: java -jar -Djava.io.tmpdir=/u01/ fmw_12.1.3.0.0_osb.jar
Posteriormente, saldrá la siguiente imagen:
En la pantalla anterior, solo es la bienvenida del instalador. Simplementa da click sobre Next y saldrá la siguiente pantalla:
Aquí, escoge el ORACLE_HOME que instalamos en pasos anteriores y da click en Next. En la pantalla siguiente, te saldrá la opción de instalar Service Bus:
Simplemente da click sobre Next y te saldrá la siguiente imagen con la validación de algunos pre-requisitos:
Da click en Next, una vez haya terminado
Al darle click te hará un resumen de lo que instalará y da click en el botón de INSTALL.
Al darle click sobre install, saldrá la siguiente pantalla, que te dará el progreso de instalación de Oracle Service Bus.
Al terminar, da click sobre FINISH.
Saldrá la siguiente pantalla:
Ahora extenderemos el dominio que actualmente tenemos, o bien, si solo instalarás OSB, deberás escoger Create a new domain.
Si usas la de extender dominio (como lo haremos nosotros), todo quedará en el mismo dominio con el resto de componentes que ya instalamos.
En la pantalla escoge la opción que decidas y da click en NEXT.
En este caso estamos extendiendo dominio, por lo que agregamos las opciones que aparecen a continuación:
Damos click en NEXT, y saldrá la pantalla siguiente. Esta es equivalente a la que vimos en pasos anteriores para la instalación de SOA, BAM, ESS y UMS. La intención es colocar la información de la base de datos y utilizar el usuario de STB, para poder sacar la información de conexión:
Damos click en NEXT y saldrá la siguiente pantalla:
Al darle click en NEXT, se validarán las conexiones. Aparecen todas las que ya se tienen en el dominio actual. Si en tu caso, solo estás instalando OSB, saldrán menos conexiones a probar:
Probamos las conexiones y damos click en NEXT. Sale la siguiente pantalla, y vamos a configurar tanto servidores manejados, como los File Store de JMS:
Damos click en NEXT y saldrá ya el servidor manejado de OSB, asociado al Server Group: OSB-MGD-SRVRS-ONLY:
Damos click en Next, y nos llevará a la pantalla de configuración de Clúster. En este caso no configuramos nada, por el tipo de instalación que estamos llevando a cabo:
Damos click en Next, y nos llevará a la configuración de Coherence. Tal como lo hicimos en la configuración pasada, asignemos un puerto de escucha para el Unicast:
Damos click en Next y asignamos a la Máquina existente, a nuestro nuevo servidor manejado de Oracle Service Bus:
Damos click en Next, y nos presentará la configuración de las colas de JMS. Dejemos la configuración tal como aparece por default:
Damos click en Next y nos hará un resumen de lo que va a instalar:
Damos click en Next y la instalación está en progreso:
La instalación finaliza y damos click en Next:
Damos click en Next y saldrá la siguiente imagen, simplemente daremos click sobre el botón de Finish.
Comprobamos que el servidor haya sido agregado al dominio y lo levantamos:
Entramos al Service Bus Console, que ahora ya luce diferente con respecto a la versión 11g:
Con esto, tendrás a un dominio de SOA Suite 12c completo:
Tienes suficientes herramientas para realizar una implementación de SOA de capacidades industriales.
Tienes un nuevo dominio creado para que puedas migrar tus aplicaciones existentes de 11g , hacia este nuevo release.
En Oracle.com podrás encontrar las guías oficiales del producto, así como ejemplos y demás documentos que te servirán para adoptar este nuevo release 12c.
Rolando Carrasco / Arturo Viveros: Ambos obtuvieron recientemente la certificación: Oracle IT Architecture - SOA Certified Architecture Specialist.
Rolando Carrasco (Oracle ACE) es Director de Oracle Fusion Middleware en S&P Solutions (México). Rolando tiene una carrera de más de 13 años con tecnología Oracle. Toda su carrera profesional la ha dedicado a la ejecución e investigación de tecnologías que permita la integración de Aplicaciones. Especializándose en la Arquitectura Orientada a Servicios (SOA), tanto metodológicamente como técnicamente. Rolando es coordinador del Grupo de Usuarios de Tecnología en México (ORAMEX). Grupo fundado desde 2012, en conjunto con Plinio Arbizu (Oracle ACE Director).
Arturo Viveros es un profesional destacado en las áreas de Arquitectura Cloud, SOA y JEE. Actualmente radica en la Ciudad de México y labora como Socio / Arquitecto TI Senior en S&P Solutions. Con más de 10 años de experiencia en la industria de TI, Arturo es conferencista regular en eventos organizados por: OPN, OTN, así como Universidades públicas y privadas en México. Obtuvo las certificaciones SOA Architect y Cloud Architect de Arcitura (SOASchool / CloudSchool) con honores. Es el único instructor de habla hispana certificado por Cloud School (Arcitura Inc.) para impartir el curso de Arquitectura Cloud en Latinoamérica.