Conexión de un cliente de servicio web a WebSphere Service Registry and Repository usando HTTPS

Este artículo le muestra cómo crear un cliente Java liviano usando WebSphere Integration Developer para conectarse a WebSphere Service Registry and Repository usando la interfaz API de servicios web. Puede enviar consultas usando al cliente conectado y recuperar objetos con sus datos y metadatos para realizar análisis complejos, usando un cliente Java liviano en lugar de Web UI.

Marco Metting, IT-Specialist, IBM

Photo of Marco MettingMarco Metting en un Especialista de IT en los Servicios de Software de IBM para el equipo de WebSphere en Alemania. Sus especialidades técnicas incluyen asesoramiento a los clientes en cómo implementar especialmente el WebSphere Service Registry and Repository y WebSphere Process Server. Él está involucrado en varios proyectos de clientes enfocándose en la gobernancia de SOA y en la infraestructura de SOA. Usted puede contactar a Marco en mmetting@de.ibm.com.



01-08-2011

Introducción

IBM® WebSphere® Service Registry and Repository (en adelante Service Registry) le permite almacenar datos y metadatos de artefactos como servicios y procesos en una misma fuente. El Service Registry le facilita enormemente a su empresa la búsqueda y publicación de información de servicios al implementar aplicaciones orientadas a servicios.

Service Registry ofrece cuatro interfaces diferentes para soportar cuatro clases de acciones distintas para encontrar y publicar datos de artefactos durante el tiempo de ejecución:

  • Creación, recuperación, actualización o eliminación de un objeto (CRUD)
  • Transición de un objeto de un estado de ciclo de vida a otro
  • Creación de un objeto gobernable
  • Eliminación de la gobernabilidad de un objeto

El componente Web UI, similar a la consola de administración de WebSphere Application Server, es suministrado con Service Registry. Usted puede personalizarlo según los requisitos de su empresa y especificar cómo se presentará la información de Service Registry y cómo se publicará en el mismo.

Alternativamente, se incluye un modelo de programación Java que permite realizar todas las acciones de Web UI usando la interfaz API de Service Registry a través de EJB, servicio web e interfaces REST. Las interfaces API de servicio web y EJB ofrecen básicamente los mismos métodos. La interfaz API de EJB provee métodos adicionales que usted puede usar para enumerar objetos, en tanto que la interfaz API de servicio web brinda solamente el método de firma para objetos individuales, por ejemplo para eliminación de objetos).

El modelo de programación Java se basa en Service Data Objects (SDO), con todos los artefactos almacenados en Service Registry representados por los objetos SDO. Los objetos de Service Registry tienen valores de datos y propiedades de objetos de datos que se denominan relaciones en Service Registry. Estas relaciones le permiten a usted conectar artefactos entre sí, mantener actualizados a los servicios de acoplamiento holgado durante el desarrollo y rastrear qué aplicaciones se ven afectadas por los cambios que se producen durante el desarrollo. Al crear clientes que usan el modelo de programación Java para acceder a Service Registry, usted debe considerar la configuración de seguridad subyacente de WebSphere Application Server.

Si usted está desarrollando servicios en entorno Eclipse, también puede usar un complemento Eclipse incluido con Service Registry, le permite efectuar tareas como buscar y descargar servicios a Service Registry.

En este artículo aprenderá a crear un cliente Java liviano en WebSphere Integration Developer que se conecte a Service Registry usando la interfaz API de servicios web. El cliente se puede ejecutar directamente en el espacio de trabajo.

Escenario de muestra

Muchos clientes que usan Service Registry deben almacenar objetos de tipo personalizado, necesitan definir un modelo de metadatos personalizado que conste de objetos, atributos de objeto y relaciones entre los objetos. Este artículo usa el modelo de metadatos contenido en el perfil de Gobernabilidad de Service Registry V6.2, en donde la relación existente entre Aplicación, Proceso y Servicio de los artefactos se define de la siguiente manera: una Aplicación puede referirse a Procesos y Servicios. Cada Proceso puede usar varios otros Servicios para suministrar un Servicio propiamente dicho. Los Servicios pueden usar otros Servicios para ejecutar la acción soportada que es definida por la interfaz del Servicio:

Figura 1. Escenario de muestra
Escenario de muestra

Si desea saber qué servicios son realmente usados por una aplicación, necesita saber a qué servicios se relaciona directa o indirectamente la aplicación. Por lo tanto, debe tener en cuenta cualquier artefacto directamente relacionado, como servicios y procesos, cualquier servicio relacionado a ellos y así sucesivamente. Según la cantidad de artefactos y relaciones, el Web UI de Service Registry no siempre es la mejor manera de realizar un análisis complejo como se mencionó en el ejemplo anterior. Además, usted no puede aplicar cualquier lógica personalizada al análisis o especificar el formato de salida porque el Web UI no soporta scripting.

Al final de este artículo, usted puede descargar un archivo zip que contiene código de muestra y datos ficticios basados en el Perfil de Gobernabilidad. Usted puede importar los datos para no tener que ingresar entidades usted mismo o implementar la lógica. Aquí se describe la arquitectura básica de nuestra aplicación ficticia:

Figura 2. Análisis de impacto del escenario de muestra
Análisis de impacto del escenario de muestra

Solución

Para analizar el contenido de Service Registry mediante consultas complejas y lógica personalizada, usted debe crear un cliente Java liviano que se conecte a Service Registry usando una de las interfaces API, puede usar el entorno de desarrollo que desee, por ejemplo WebSphere Integration Developer. Este ejemplo usa un cliente Java que se ejecuta en WebSphere Integration Developer conectado a la interfaz API de servicios web de Service Registry. Toda la lógica personalizada y la definición de formato de salida para el análisis, se implementan en el código de cliente Java. El resultado del análisis se imprimirá en la línea de comando:

Figura 3. Solución
Solución

Al crear clientes que usen el modelo de programación Java para acceder a Service Registry, usted debe considerar la configuración de seguridad del sistema WebSphere Application Server en el cual se está ejecutando Service Registry. De manera predeterminada, la seguridad de la aplicación para Service Registry está activada. Por ende, usted debe usar un almacenamiento de confianza para almacenar el certificado del servidor, que se importa al almacenamiento de confianza del cliente. A los efectos de simplificar, asuma que la autorización mutua no está activada, y por lo tanto no tiene que importar el certificado del cliente al almacenamiento de confianza del servidor.

Para mayor información sobre seguridad, ver Manual de seguridad de WebSphere Application Server V6.1 o el centro de información.

Pasos para crear el cliente Java

  1. Iniciar WebSphere Integration Developer y crear un proyecto nuevo de Cliente de Aplicación.
  2. Configurar la ruta de compilación Java para el proyecto.
  3. Crear una conexión de confianza a Service Registry.
  4. Crear la implementación de cliente.
  5. Configurar Service Registry con el Perfil de Gobernabilidad e importar los datos ficticios.
  6. Probar la implementación de cliente usando WebSphere Integration Developer.

1. Iniciar WebSphere Integration Developer y crear un proyecto nuevo de Cliente de Aplicación

  1. Inicie WebSphere Integration Developer:
  2. Haga clic en Go to the Business Integration perspective (Ir a la perspectiva de Integración de negocios).
  3. Seleccione File (Archivo) => New (Nuevo) => Other (Otro).
  4. Escriba Application (Aplicación) en la casilla de selección del asistente, elija el Application Client project (proyecto de Cliente de Aplicación), y haga clic en Next (Siguiente):
  5. Especifique un nombre para el proyecto, por ejemplo MyJavaClientProject.
  6. Seleccione el tiempo de ejecución de destino y la suscripción a EAR:

    Este ejemplo usa Java Runtime Environment de WebSphere Integration Developer como entorno de tiempo de ejecución para el cliente. Por lo tanto no necesita especificar un tiempo de ejecución de destino ni una suscripción a EAR. Esto sólo se debe hacer si se usa un servidor de aplicación como entorno de tiempo de ejecución para el cliente. El cliente también se puede implementar mediante un archivo EAR que se ejecute del lado del servidor.

  7. Se le pedirá que cambie a la perspectiva J2EE. Haga clic en OK (Aceptar).

2. Configurar la ruta de compilación Java para el proyecto

Para resolver todas las importaciones y dependencias necesarias para un cliente de Service Registry, usted debe configurar la ruta de compilación Java del proyecto. Por lo tanto, se suministran dos archivos JAR con Service Registry y se almacenan en su directorio raíz: sdo-int.jar y ServiceRegistryClient.jar. Se necesita otro archivo JAR (com.ibm.ws.webservices.thinclient_6.1.0.jar) para crear la conexión entre el lado del cliente de la implementación Java y el lado del servidor de Service Registry, este archivo reside en el directorio root/runtimes/bi_v61/runtimes de WebSphere Integration Developer.

  1. Haga clic con el botón derecho en el proyecto MyJavaClientProject en el Explorador de Proyecto y seleccione Build path (Ruta de acceso de compilación) => Configure build path (Configurar ruta de acceso de compilación).
  2. Seleccione la pestaña Libraries (Bibliotecas) y haga clic en Add External JARs (Agregar archivos JAR externos):
  3. Seleccione ServiceRegistryClient.jar y sdo-int.jar del directorio raíz de Service Registry y haga clic en Open (Abrir).
  4. Haga clic en Add External JARs y seleccione com.ibm.ws.webservices.thinclient_6.1.0.jar de la raíz de WebSphere Integration Developer root => runtimes => bi_v61 => runtimes directory y haga clic en Open (Abrir).
  5. Su configuración de ruta de compilación debería verse así:
  6. Haga clic en OK para completar la configuración de la ruta de compilación.

3. Crear una conexión de confianza al Service Registry

Debe seguir varios pasos para crear un cliente de Service Registry, la cantidad de pasos depende de la configuración de seguridad del servidor. Este ejemplo asume que la seguridad de aplicación está activada. A los efectos de simplificar, se garantiza el acceso ilimitado a Service Registry para todos los usuarios autenticados. Esto significa que cualquier persona con un nombre de usuario y una contraseña válidos puede ejecutar todas las acciones en Service Registry. Si la seguridad de aplicación está activada, el cliente debe indicar un almacenamiento de confianza que contenga el certificado del servidor.

  1. Abra una línea de comandos y cambie al directorio bin de su tiempo de ejecución WebSphere ─ por ejemplo, C:\IBM\WID61\runtimes\bi_v61\bin.
  2. Emita el comando ikeyman.bat para iniciar la utilidad IBM Key Management:
  3. Haga clic en Key Database File (Archivo de base de datos de claves) => New (Nuevo).
  4. Seleccione el tipo de base de datos de clave PKCS12.
  5. Especifique una ubicación para almacenar el archivo de confianza e ingrese un nombre para el mismo, por ejemplo C:\temp\trust.p12:
  6. Especifique la contraseña para el almacenamiento de confianza. Este ejemplo usa WebAs.
  7. Cierre la utilidad IBM Key Management.
  8. Inicie la instancia WebSphere Application Server en la cual está instalado Service Registry: en una línea de comandos, cambie al directorio bin de su perfil Application Server y emita el comando startServer.bat servername.
  9. Abra una ventana de navegador, ingrese la URL de su consola de administración del servidor de aplicación (la URL predeterminada es https://localhost:9043/ibm/console ) e inicialice con su ID de usuario administrativo para el servidor de aplicación.
  10. Navegue en Security (Seguridad) => SSL certificate and key management (Certificado SSL y gestión de clave) => Key stores and certificates (Almacenamientos de claves y certificados) => NodeDefaultKeyStore => Personal certificates (Certificados personales):
  11. Seleccione el almacenamiento de claves predeterminado: verifique la casilla de la izquierda y haga clic en Export (Exportar).
  12. Especifique la ruta (C:\temp\trust.p12) y la contraseña (WebAs) a su archivo de almacenamiento de confianza previamente creado y haga clic en OK:

    El certificado de servidor se copia del almacenamiento de claves predeterminado y se importa sin contratiempos al almacenamiento de confianza.

  13. Inicie WebSphere Integration Developer.
  14. Haga clic con el botón derecho en su proyecto MyJavaClientProject y seleccione New (Nueva) => Folder (Carpeta):
  15. Especifique el nombre de la carpeta ─ en este ejemplo es almacenamiento de confianza.
  16. Importe el archivo del almacenamiento de confianza creado con la utilidad IBM Key Management a la carpeta almacenamiento de confianza. Haga clic con el botón derecho en la carpeta almacenamiento de confianza y seleccione Import (Importar).
  17. Expanda la carpeta General, seleccione File System (Sistema de archivos), y haga clic en Next.
  18. Haga clic en Browse (Navegar), especifique la ruta al archivo de almacenamiento de confianza creado (C:\temp), y haga clic en Open.
  19. Seleccione el archivo trust.p12: verifique la casilla que aparece adelante del archivo y haga clic en Finish (Finalizar):
  20. En la vista Project Explorer (Explorador de proyecto), aparece el archivo trust.p12 dentro de la carpeta de almacenamiento de confianza.

4. Crear la implementación de cliente

En este escenario de muestra, usted desea saber qué servicios son realmente usados por una aplicación en el modelo de metadatos de Service Registry. Como se describió anteriormente en la Sección 2, debe encontrar iterativamente las referencias directas e indirectas. Para este ejemplo, la implementación de cliente se divide en cuatro clases principales:

Class name (Nombre de clase)Operations and purpose (Operaciones y propósito)
Main.java (Java principal)Controla el flujo de consultas para obtener información de Service Registry en el orden correcto.
Constants.java (Java constantes)Constantes basadas en cadenas URI y nombres del modelo de metadatos del perfil de Gobernabilidad.
ServiceRegistryUtil.javaCrea una conexión y envía las consultas para el análisis a Service Registry.
Analyzer.javaCrea la cadena de consulta para obtener objetos de Service Registry según una combinación de atributos (nombre, versión y entidad URI) o el objeto principal.

Se prepara cada clase y queda lista para importarse al espacio de trabajo de WebSphere Integration Developer. Cada método es documentado por JavaDoc además se incluyen comentarios detallados en el código fuente. Efectúe los siguientes pasos para importar el código de muestra al proyecto:

  1. Expanda la carpeta appClientModule de MyJavaClientProject y borre el elemento de paquete (predeterminado).
  2. Cree dos paquetes nuevos: com.ibm.sample y com.ibm.sample.main. Haga clic con el botón derecho en la carpeta appClientModule y seleccione New (Nuevo) => Package (Paquete):
  3. Ingrese el nombre para el primer paquete (com.ibm.sample) y haga clic en Finish:
  4. Complete los mismos pasos para crear el paquete com.ibm.sample.main:
  5. Descargue el código de muestra que aparece al final de este artículo.
  6. Extraiga el código de muestra a su unidad de disco duro, por ejemplo en c:\temp\SampleCodeZIP).
  7. Haga clic con el botón derecho en el proyecto MyJavaClientProject en el espacio de trabajo de WebSphere Integration Developer y seleccione Import:
  8. Seleccione File System y haga clic en Next.
  9. Especifique la ruta que conduce al archivo zip extraído: haga clic en el botón Browse, marque Analyzer.java, Constants.java, y ServiceRegistryUtil.java, luego especifique la carpeta a la cual se deberán importar los archivos Java, haciendo clic en el segundo botón Browse: MyJavaClientProject/appClientModule/com/ibm/sample. Haga clic en Finish para completar este paso:
  10. Importe la últma clase Main.java que quedaba al paquete com.ibm.sample.main. Realice los últimos tres pasos nuevamente, pero esta vez marque Main.java y especifique la carpeta adentro de la cual se debe importar el archivo Java, haciendo clic en el segundo botón Browse: MyJavaClientProject/appClientModule/com/ibm/sample/main. Haga clic en Finish para completar este paso:

Ahora está listo para usar la implementación.

5. Configurar Service Registry con el Perfil de Gobernabilidad e importar los datos ficticios

Asumamos que el perfil de Gobernabilidad se usa para definir el modelo de datos de Service Registry. Usted debe configurar Service Registry de la siguiente manera:

  1. Inicie el Servidor de aplicación en el cual está instalado Service Registry si no lo ha hecho aún.
  2. Abra una ventana de navegador, ingrese la URL de Service Registry (la opción predeterminada es https://localhost:9443/ServiceRegistry), e inicie sesión como usuario administrativo.
  3. Seleccione la perspectiva de Configuration (Configuración) de la casilla desplegable en el extremo superior izquierdo y haga clic en Go (Ir a):
  4. Expanda la entrada de menú Manage Configuration Profiles (Administrar perfiles de configuración) y seleccione Configuration Profiles (Perfiles de configuración).
  5. Si el perfil de Gobernabilidad todavía no está cargado en Service Registry, debe importarlo del directorio de instalación de Service Registry. Haga clic enLoad configuration profile (Cargar perfil de configuración):
  6. Especifique un nombre y la ruta que conduce al archivo zip del perfil de Gobernabilidad, que está contenido en el directorio de instalación de Service Registry y se llama GovernanceProfile_v62.zip (C:\IBM\WebSphere\ServiceRegistry62\ businessProfiles\GovernanceProfile\configurationProfile\GovernanceProfile_v62.zip). Haga clic en OK.
  7. Se importa el perfil. Active el perfil de Gobernabilidad verificando hacia la izquierda y haga clic en Make active (Activar):
  8. Después de activar el perfil, salga de Service Registry y vuelva a ingresar. Ahora puede seleccionar la perspectiva GP Administrator (Administrador GP) del menú desplegable que aparece en el extremo superior izquierdo y haga clic en Go.
  9. Expanda la entrada de menú Administration (Administración) y haga clic en Import:
  10. Ahora puede importar el archivo zip que contiene los datos ficticios entregados con este artículo. El mismo suministra entidades de datos para efectuar pruebas. Especifique la ruta que conduce al archivo zip y haga clic en Ok. Se importan las siguientes entidades:
  11. Haga clic nuevamente en OK.

6. Probar la implementación de cliente usando WebSphere Integration Developer

Ahora que ya configuró Service Registry e importó los datos ficticios y la implementación a su espacio de trabajo, puede probar el cliente:

  1. Haga clic con el botón derecho en Main.java en el paquete com.ibm.sample.main y seleccione Run as (Ejecutar como) => Java Application (Aplicación Java):
  2. Verifique la salida de consola ─ se registrará el resultado.

Conclusión

En este artículo, usted aprendió cómo implementar un cliente Java liviano que se conecte a Service Registry para efectuar consultas y aplicar lógica personalizada para un análisis complejo. Una vez que haya completado los ejercicios incluidos en este artículo, puede seguir avanzando y desarrollar usted mismo otros tipos de clientes y usar la muestra suministrada para construir análisis exhaustivos de su arquitectura de procesos y servicios.


Descargar

DescripciónNombretamaño
Sample code and dummy data for this articleSampleCode.zip7 KB

Recursos

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere
ArticleID=964469
ArticleTitle=Conexión de un cliente de servicio web a WebSphere Service Registry and Repository usando HTTPS
publish-date=08012011