10.5.13

Modificar Roles - Politicas de WebLogic 11g

Algo trivial me genero varias dudas al momento de realizar lo que necesitaba.
Mi problema era relacionar el rol de administrador de WebLogic 11g a un grupo establecido en un proveedor de autenticación. Para ello cree y configure el proveedor (SQLAuthenticator) en el dominio.
Luego me encontré con la problemática de no poder vincular, directamente, estos grupos al rol.
Google fue mi salvación y encontré este post (http://weblogic-wonders.com/weblogic/2010/06/04/how-to-modify-weblogic-default-roles-and-policies/#comment-125296) que, de manera muy simple, ejemplifica lo que requería.


23.3.11

SOA Suite 11.1.1.4.0 sobre Oracle XE

El nuevo release de SOA Suite 11.1.1.4.0 sobre Oracle XE genera un problema al momento de subir el servidor gestionado de soa (típicamente soa_server1). El error que genera es: 

MDS-01370: Configuración de almacén de datos para metadata-store-usage "soa-infra-store" no válida. 

Para soluciona este "inconveniente" se debe:

1. Eliminar los esquemas soa suite y tablespaces. (Para ello utilizar la opción “Borrar” del RCU).


2. Establecer como variable de ambiente:
  
    RCU_JDBC_TRIM_BLOCKS=TRUE.


3. Ejecutar RCU y crear los esquemas con la opción “Crear”.



Saludos.

17.1.11

Oracle JRockit Mission Control

Uno de los problemas que se presentan al desarrollar aplicaciones en JAVA son los “memory leak” o pérdida de memoria. Esta situación ocurre normalmente cuando se pierden las referencias a las áreas de memoria antes que se liberen.

Una de las herramientas que permite administrar, supervisar y eliminar pérdidas de memoria en aplicaciones JAVA es JRockit Mission Control.

Esta herramienta es muy fácil de configurar y operar. A continuación describiré los pasos para realizar la configuración y monitoreo de un servidor que utiliza WebLogic Server 11g.

Paso #1.
Se debe editar el archivo startWeblogic presente en el directorio bin del dominio que se quiere monitorear.


Agregar la siguiente línea al archivo
JAVA_OPTIONS= "${JAVA_OPTIONS} -Djava.rmi.server.hostname=NOMBREDELAMAQUINADONDERESIDEWLS -Xmanagement:ssl=false,authenticate=false,port=7091"
Se debe reiniciar el dominio para que tome el cambio.

Paso #2
Ejecutar el archivo JROCKIT_HOME\bin\jrmc.exe (Windows) o JROCKIT_HOME/bin/jrmc (Linux) y aparecerá la consola de Oracle JRockit Mission Control.


Crear una nueva conexión





Testear conexión, debe aparecer Status: OK



Paso #3
Revisar las opciones requeridas.






Saludos.

16.7.10

Adopción de BPM

Desde un tiempo a esta parte estoy viendo un cambio en las empresas, medianas y grandes, hacia la adopción de gestión de procesos de negocios (BPM). Lo que me llama poderosamente la atención es que se están decidiendo por soluciones de grandes empresas, particularmente Oracle, que prometen satisfacer los aspectos relevantes de este tipo de iniciativas: modelar, automatizar, integrar, monitorizar y optimizar procesos. Pero, existe un aspecto no menor que, bajo mi perspectiva, no se está abordando... métodos, estándares, documentación… todas estas “cosas” unidas y centradas a las personas con conocimiento, tanto del negocio como de las tecnologías, cobran una tremenda importancia para lograr una implantación exitosa. La incorporación de BPM por sí solo no asegura un manejo eficiente de los recursos… se deben analizar una gran variedad de aspectos adicionales.

Saludos.

25.2.10

Integración OSB - SAP

Con el apoyo de la documentación de Oracle, he logrado integrar un RFC de SAP con Oracle Service Bus. La versión de OSB es 10.3.1 y SAP es ECC 6.0. A continuación, dejo la secuencia de pasos que utilice para, en una mañana, integrar OSB y SAP.

Se instala Oracle Service Bus versión 10.3.1.
Se crea dominio para OSB.
Se instala JDK.
Se instala adapter para SAP.
Se crea variable de entorno CLASSPATH con los valores:
  • \..\osb_10.3\lib\sb-kernel-api.jar
  • \..\modules\com.bea.common.configfwk_1.2.1.0.jar
  • \..\modules\com.bea.core.management.jmx_1.1.0.0.jar
  • \..\modules\com.bea.core.management.core_2.3.0.0.jar
  • \..\wlserver_10.3\server\lib\weblogic.jar
Se adiciona a la variable de entorno Path la variable de entorno CLASSPATH.
Se copia el archivo librfc32.dll a C:\WINDOWS\system32.
Se copian los archivos sapjcorfc.dll y sapjco.jar a \..\erp-adapters\lib.
Se copia sapjco.jar al directorio lib del dominio.
Se crea configuración jca en application explorer para sap.
Configurar y Disponibilizar J2CA
  • Localizar y editar el archivo ra.xml
Disponibilizar en WEBLOGIC el componente J2CA (iwafjca).
Se exporta servicio rfc a Oracle Service Bus desde application explorer.
Se crea business service a partir del wsdl exportado en OSB.

Saludos.

23.11.09

Estrucutras de Oracle 10g(Types) accedidos desde java

Por esas casualidades de los proyectos me tocó participar en la definición y construcción de un componente que hiciera una consulta, mediante un procedimiento almacenado, a base de datos pero que sus atributos de entrada/salida son tipos definidos en la base de datos (Oracle 10g). Para ello tuve que investigar, leer y sufrir con las "famosas" clases que pertenecen al package oracle.sql (ArrayDescriptor, STRUCT, ARRAY, etc) y que permiten un "manejo" de estas estructuras en java. La realidad es que, después de mucho luchar, le tome el gustillo. El acceso, desde java, se realiza mediante Object lo que permite acceder con gran facilidad a los atributos y sólo preocuparse del tipo (que tiene en las tablas) para realizar el cast.

Aquí dejo parte del código para su revisión.

1. ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor(, );
2. ARRAY entrada = new ARRAY(descriptor, , null);
3. ARRAY salida = (ARRAY) (((weblogic.jdbc.wrapper.Array)cs.getArray(1)).unwrap(Class.forName("oracle.sql.ARRAY")));
4. Object[] nivel_1 = (Object[]) salida.getOracleArray();
5. Object[] nivel_2 = ((STRUCT) nivel_1 []).getAttributes();

  • Se obtiene el descriptor del tipo. (1)
  • Se crea la estructura del tipo de entrada. (2)
  • Se ingresan objetos de I/O del procedimiento almacenado.
  • Se ejecuta el procedimiento almacenado.
  • Se obtiene la salida desde el procedimiento almacenado. (3)
  • Se crea un arreglo de Object. (4)
  • Se recorre el arreglo preocupándose de "castear" al tipo correspondiente cada posición del arreglo.
  • En caso en que los objetos sean estructuras se debe "castear" a STRUCT. (5)
  • Se recorre el arreglo de Object.

Saludos.

4.9.09

Primer Chileno miembro de GNOME Foundation

Germán Poo, académico de la Universidad del Bío - Bío, fue elegido miembro de GNOME Foundation Board of Directors. Este reconocimiento se debe a su basta contribución a proyectos relacionados con GNU/Linux y especialmente con GNOME.

Un merecido reconocimiento.

Felicitaciones.

Más información aquí.

Saludos.


20.7.09

Cloud Computing

¿Qué es Cloud Computing? En términos simple, es la disponibilización de servicios (aplicaciones, plataforma e infraestructura) a través de internet (nube) y que permite a los clientes/usuarios escalar rápidamente, de acuerdo a sus necesidades, sin preocuparse del hardware, software o del personal necesario para realizar el escalamiento requerido. Los clientes/usuarios consumen estos servicios de acuerdo a sus necesidades logrando un eficiente uso de sus recursos debido a que solo "pagan" por lo que utilizan. La administración de los servicios es responsabilidad de quien los provee lo que trae consigo un ahorro, en términos reales, de todo tipo de recurso para los clientes/usuarios.

Aquí dejo unos videos explicativos que me parecieron interesantes.

Saludos.








22.6.09

CentOS 5.3

Me decidí a instalar CentOS 5.3 en mi Sony Vaio VGN-NR350FE. El sistema operativo reconoció la totalidad del hardware presente en mi maquina. Mi sorpresa fue cuando quise navegar a través de la tarjeta inalámbrica (Intel Corporation PRO/Wireless 3945AGM [Golan] Network Connection) y no pude, así que me vi en la obligación de "googlear" para obtener información. Lo que descubrí fue que CentOS no posee el driver para la tarjeta mencionada, se debe instalar el rpm que sirve de controlador de la tarjeta.

El procedimiento de instalación fue el siguiente:
  1. Bajar iwl3945-firmware-15.28.1.8-2.el5.rf.noarch.rpm
  2. Instalar el rpm bajado (rpm -Uhv)
  3. Habilitar el programa NetworkManager cuando se inicia el sistema operativo mediante chkconfig NetworkManager on
  4. Iniciar el servicio de NetworkManager con service NetworkManager start
Con estos pasos pude navegar sin inconvenientes.
Para más información ingresar a http://wiki.centos.org/HowTos.

Saludos.

18.5.09

Oracle BPM Studio 10gR3


Actualmente me encuentro implementado procesos con la herramienta Oracle BPM Studio 10gR3 y he preparado una serie de videos (14 para ser más exacto) que describen la utilización, de una manera muy simple y básica, del IDE. Los videos muestran:
  1. Crear un Nuevo Proyecto.
  2. Crear un Nuevo Proceso en el Proyecto.
  3. Crear un Rol y una Actividad Interactiva.
  4. Agregar Manualmente un Nuevo Rol.
  5. Agregar Nueva Actividad a Rol Existente.
  6. Agregar Transiciones.
  7. Crear un Modelo de Simulación de Proyecto.
  8. Crear un Componente de Integración de Servicio Web.
  9. Crear un Componente de Integración de Base de Datos.
  10. Creación de Variables.
  11. Crear un Objeto BPM.
  12. Creación de Flujos de Pantallas.
  13. Dashboard.
  14. Workspace.
Estos videos se pueden descargar desde aquí.

Saludos.

23.2.09

Crisis Económica

En una economía globalizada, donde lo que hacen algunos afectan a otros, es posible que se cometan errores que conciernan de manera inesperada a un conjunto de industrias y/o sectores que no, necesariamente, tengan contemplado un "plan" de contingencia para enfrentar estas situaciones. Es el caso de empresas que prestan servicios y dependen de otras. Estas empresas, en su gran mayoría, van por la "vida" realizando su trabajo de manera eficaz, actuando o tratando de actuar de la "mejor forma posible". Es el caso de empresas que, por razones obvias no voy a mencionar, jamás han documentado sus procesos, menos, han definido sus actividades y/o procedimientos y por lo tanto no saben en que, ni como se consumen los recursos, donde están los cuellos de botellas, cuantas personas trabajan en resolver cada una de las actividades necesarias dentro de su proceso, etc. Y, ¿Que hacen cuando se les viene una crisis económica como la que estamos viviendo? suelen tomar decisiones como:
  • Despedir a colaboradores, no importando su productividad, que tengan menos de un año en la empresa (generalmente).
  • Reducir las gratificaciones de los empleados (bonos, aguinaldos, etc.).
  • Frenar y/o detener las inversiones.
¿Que se logra con esto? Crear un círculo vicioso que lleva a las demás empresas a tomar medidas igualmente tontas. Esto es semejante a la famosa guerra fría (Conflicto global desarrollado entre 1947 y 1991) y que vio como EE.UU. (Estados Unidos) construía armas debido a los informes entregados por sus espías dentro de la U.R.S.S. (Unión de Repúblicas Socialistas Soviéticas), de igual manera, la U.R.S.S. construía más armas para contrarrestar la amenaza de EE.UU.

Pero, ¿Que deberíamos hacer?, no existe una solución simple para un tema tremendamente complejo, sólo se debería, desde mi humilde punto de vista, documentar y revisar constantemente los procesos estratégicos, operacionales y de soporte lo que daría una visión completa de cómo estamos trabajando, definir KPI (Key Performance Indicators) que permiten obtener indicadores con los cuales se deberán comparar los resultados obtenidos de los procesos y así tomar medidas reactivas y/o correctivas. Está claro que con esto no se resuelve el problema de fondo (que cualquier crisis nos afecta de una u otra forma) pero, nos permitirá estar medianamente preparados para este tipo situaciones y no incurrir en medidas que deberíamos haber tomado mucho antes.

Saludos.

8.1.09

Colaboración, Gestión de Contenidos y Portales

En el marco de un trabajo, se me solicito definir los conceptos de Colaboración, Gestión de Contenidos y Portales. Existe, como ya lo he mencionado anteriormente, una infinidad de definiciones las cuales se van nutriendo y complementando unas con otras. Esta “recopilación”, no es la excepción. Espero les guste.

Colaboración
El concepto de colaboración esta directamente relacionado con el concepto de web 2.0 o la nueva “revolución” de las aplicaciones en Internet. Según Tom O'Reilly es la segunda generación de web's basada en el intercambio de información (por medio de comunidades, redes sociales, blogs, etc.) que fomentan la colaboración entre los usuarios. De esta definición se desprenden aspectos importantes que deben ser considerados para tener claridad de los que significa web 2.0, en un sentido amplio de la definición. La web es la plataforma que permitirá el desarrollo de aplicaciones, la integración y adición de usuarios, los cuales aportarán con sus propios recursos. Cada usuario pasa de ser un "consumidor" de información a un "productor" de la misma. El agregar y extraer información de las fuentes debe realizarse fácilmente. El software empaquetado pierde terreno frente a los servicios. El surgimiento de sitios como wikipedia reafirma este concepto, sitio web que permite la edición de sus contenidos por parte de las personas que acceden a él, con ciertas restricciones mínimas y que además es la base de conocimiento colaborativa para todos y de manera común. De esto se desprende que la Web 2.0 no puede ser posible si no existe una verdadera colaboración de todos los que acceden a este tipo de comunidades.

Gestión de Contenidos
La gestión de contenidos es un conjunto de herramientas o sistemas que se utilizan principalmente para facilitar la gestión de aplicaciones presente en la red, ya sea de manera interna a la organización (intranet) como externa (Internet). James Robertson propone una división de la funcionalidad de los sistemas de gestión de contenidos en cuatro categorías: creación de contenido, gestión de contenido, publicación y presentación.

1. Creación de contenido
Un sistema de gestión de contenidos aporta herramientas para que los creadores, sin conocimientos técnicos en el desarrollo y/o modificación de páginas web, puedan concentrarse en el contenido. Típicamente, estas herramientas proporcionan un editor de texto WYSIWYG (What You See Is What You Get, lo que ves es lo que obtienes), en el que el usuario ve el resultado final mientras escribe pero con un rango limitado. Esta limitación es una restricción que permite al creador centrarse sobre algunos puntos del sitio sobre los cuales tiene permiso de modificación. Para desarrollar las aplicaciones web, los sistemas de gestión de contenidos proveen de herramientas que permiten definir la estructura, el formato de las páginas, el aspecto visual, uso de patrones de diseño y módulos que permite incluir funciones no previstas originalmente.
2. Gestión de contenido
Los documentos creados son almacenados en una base de datos central donde también se guardan un conjunto de atributos como: datos relativos al documento (versiones, autor, fecha de publicación, fecha de caducidad, etc.) y datos relativos a los usuarios, la estructura de la web, etc. La estructura de la web se puede configurar con una herramienta que, habitualmente, presenta una visión jerárquica del sitio y permite modificaciones. Mediante esta estructura se puede asignar un grupo a cada área, con responsables, editores, autores y usuarios con diferentes permisos. Eso es imprescindible para facilitar el ciclo que va desde la edición hasta el responsable final de la publicación. El sistema de gestión de contenidos permite la comunicación entre los miembros del grupo y hace un seguimiento del estado de cada paso del ciclo de trabajo.
3. Publicación
Una página aprobada se publica automáticamente cuando llega la fecha de publicación, y cuando caduca se archiva para futuras referencias. En su publicación se aplica el patrón definido para toda la web o para la sección concreta donde está situada, de forma que el resultado final es un sitio web con un aspecto consistente en todas sus páginas. Esta separación entre contenido y forma permite que se pueda modificar el aspecto visual de un sitio web sin afectar a los documentos ya creados y libera a los autores de preocuparse por el diseño final de sus páginas.
4. Presentación
Un sistema de gestión de contenidos puede gestionar automáticamente la accesibilidad de la web y adaptarse a las preferencias o necesidades de cada usuario. También puede proporcionar compatibilidad con los diferentes navegadores disponibles y su capacidad de internacionalización le permite adaptarse al idioma, sistema de medidas y cultura del visitante.
El sistema se encarga de gestionar muchos otros aspectos como son los menús de navegación o la jerarquía de la página actual dentro de la aplicación web, añadiendo enlaces de forma automática. También gestiona todos los módulos, internos o externos, que incorpore al sistema.

Portales
Según wikipedia, un portal de Internet es un sitio web cuyo objetivo es ofrecer al usuario, de forma fácil e integrada, el acceso a una serie de recursos y de servicios, entre los que suelen encontrarse buscadores, foros, documentos, aplicaciones, compra electrónica, etc.
Principalmente están dirigidos a resolver necesidades específicas de un grupo de personas o de acceso a la información y servicios de una institución pública o privada.

Saludos.

19.11.08

Web 2.0

¿Que es la web 2.0?. Existen muchas y muy variadas definiciones de este concepto, sólo basta con introducir web 2.0 en google y aparecerán cerca de 390 millones de coincidencias. ¿Bastantes o no?

Según Tom O'Reilly es la segunda generación de web's basada en el intercambio de información (por medio de comunidades, redes sociales, blogs, etc.) que fomentan la colaboración entre los usuarios. De esta definición se desprenden aspectos importantes que deben ser considerados para tener claridad de los que significa web 2.0, en un sentido amplio de la definición. La web es la plataforma que permitirá el desarrollo de aplicaciones, la integración y adición de usuarios, los cuales aportarán con sus propios recursos. Cada usuario pasa de ser un "consumidor" de información a un "productor" de la misma. El agregar y extraer información de las fuentes debe realizarse fácilmente. El software empaquetado pierde terreno frente a los servicios (¿Tendrá alguna relación con SOA?). Las aplicaciones son piezas pequeñas débilmente acopladas lo que permite ver la web como componentes. La aplicaciones mejoran a medida que más y más personas las usan.

Como ven, la web 2.0 la hacemos todos, con blog (como este), con wikis que comparten información de manera rápida y oportuna. Con portales que son facílmente "configurables" y que permiten interactuar con personas y/o aplicaciones de la misma organización o su entorno, etc.

Saludos.

18.11.08

BPEL - BPM - SOA

En el mundo TECNOLÓGICO-EMPRESARIAL se esta hablando con fuerza de conceptos como BPEL, BPM y SOA. Para encontrar el significado de estas siglas te puedes dirigir a http://www.wikipedia.org y encontrarás muchas definiciones con términos como: webservice, xml, orquestación, sla (service level agreement), protocolos de comunicación, etc.

Desde mi punto de vista, la cosa es más simple.

BPEL (Business Process Execution Languaje o Lenguaje de Ejecución de Procesos de Negocios) es un lenguaje de composición de servicios web. Este lenguaje permite componer nuevos servicios web a partir de servicios ya construidos. Este concepto esta más relacionado con la integración de sistemas en un contexto definido.

BPM (Business Process Management o Gestión de Procesos de Negocios) es un conjunto de actividades y conocimientos cuyo objetivo es mejorar la eficiencia de la organización a través de la gestión sistemática de los procesos, los cuales se deben modelar, automatizar, integrar, monitorizar y optimizar de manera continua. Este concepto está relacionado con, obviamente, los procesos de negocios, las tecnologías de información existentes y, fundamentalmente, las personas. Es en este punto donde se diferencia de manera significativa de BPEL.

SOA (Service Oriented Architecture o Arquitectura Orientada a Servicios) es un concepto de arquitectura de software que permite definir servicios (típicamente servicios web) que integran diferentes sistemas a toda la organización y su entorno.
Para alcanzar esta orientación es necesario contar con ciertas herramientas que permiten realizar la integración de sistemas y/o servicios. Es fundamental contar con un Bus de Servicios (herramienta que proporciona la infraestructura para integrar aplicaciones y servicios), Servicio de Registro (herramienta que proporciona una visión completa de los servicios y las relaciones existente entre ellos).

Los conceptos definidos de esta manera no parecen tan complicados. La implementación es otra cosa. :)

Saludos.