Es posible probar una integración LIS sin conectarse a un SIS. Esto resulta un poco más complicado que con los demás tipos de integración debido al requisito de a) un enlace con los servicios web (el cual requiere una aplicación que gestione las solicitudes de SOAP) y b) la diferencia de formato de los datos entre los datos basados en SOAP generados en SIS y el formato utilizado en la opción de carga de los archivos disponible en la interfaz del usuario. A continuación, se demostrará cómo probar una integración LIS tanto con los servicios web compatibles con LIS como con la interfaz de usuario.

Formato de datos de LIS 2.0


Prueba de la integración LIS

Pruebe su integración con LIS desde una perspectiva funcional antes de conectar su SIS con la integración le permite confirmar un funcionamiento correcto de la configuración en la parte de Learn de la integración. Una vez se haya asegurado de que Learn gestiona las solicitudes de LIS correctamente, cuando se conecte con el SIS, habrá eliminado la mitad de las causas posibles de problemas de conectividad o de operaciones incorrectas. Después de haber realizado la prueba con las muestras proporcionadas, puede considerar extraer el resultado de LIS del SIS y complementar las pruebas no conectadas antes de continuar con la conexión de SIS a Learn; lo que también limita la cantidad de variables en el supuesto de prueba.

Las integraciones LIS se basan en el servicio web y utilizan SOAP para transportar los datos. SOAP es un formato de mensajes XML basado en el protocolo que permite el intercambio de información con estructura.

Existen dos formas de colocar datos en Learn con los datos con formato LIS, puede utilizar los extremos del servicio web o puede cargar archivos xml.


Pruebas del uso de los extremos del servicio web

Tras la configuración de la integración LIS, deberá anotar los extremos de los servicio web, ya que estos se utilizarán en la configuración de su entorno de pruebas. Puede detectar los extremos de la integración LIS mediante el enlace a la información de los servicios web en una integración LIS configurada.

Además, deberá tomar nota del nombre de usuario y la contraseña que introduzca para la integración; estos pueden identificarse si selecciona la opción Editar en el menú de la integración.

SoapUI

La prueba de los servicios web requiere el uso de una herramienta que sea capaz de publicar mensajes SOAP en extremos de servicio web. Los ejemplos siguientes utilizan una herramienta llamada SoapUI. SoapUI está disponible en www.soapui.org. SoapUI es una solución de pruebas funcionales multiplataforma de código abierto y gratuita que le permite crear y ejecutar de forma rápida y sencilla pruebas de carga y funcionales del servicio web.

Aunque la demostración siguiente utiliza SoapUI, puede utilizar una herramienta similar de su elección.

Luego de completar la prueba de su integración LIS, puede configurar el SIS para que envíe datos a los extremos según la operación necesaria (consulte los ejemplos de servicio).

Configurar SoapUI

Además de la información del servicio web, necesitará el nombre de usuario y contraseña de la integración, a los que puede acceder a través del menú de edición de la integración guardada. Estos son el nombre de usuario y la contraseña que se utilizan para el acceso de autenticación y la identificación de la instancia de la integración LIS relacionada.

  1. Abra SoapUI.
  2. En el menú File, seleccione Preferences.
  3. En los ajustes HTTP Settings, seleccione Adds authentication information to outgoing requests para añadir información de autenticación a las solicitudes salientes.
  4. Seleccione OK (Aceptar).

Obtener URL de WSDL

Cada servicio probado requerirá un WSDL para la creación de los métodos compatibles. La URL WSDL es el valor de la "URL del extremo" para la gestión en los "servicios web de Learn locales" concatenados con ".wsdl". La URL WSDL creada tendrá un aspecto similar al siguiente:

https:///webapps/bb-data-integration-lis-BBLEARN/services/PersonManagementServiceSyncService .wsdl

Creará cuatro de estas URL (una para cada servicio que deba probar):

CourseSectionManagerSyncService

GroupManagementSyncService

MembershipManagementSyncService

PersonManagementSyncService

dataSetStatus no es un servicio LIS, sino un servicio que brinda Learn para la supervisión de la actividad de integración.

Resolver el error de SoapUI "Characters larger than 4 byte are not supported" (No se admiten caracteres de más de 4 bytes)

Algunas instalaciones de SoapUI pueden arrojar un error "org.apache.xmlbeans.XmlException: java.io.CharConversionException: Characters larger than 4 bytes are not supported: byte 0x96 implies a length of more than 4 byte" cuando intenta cargar el WSDL.

Para solucionar este problema:

  • En la instalación de SoapUI, abra la carpeta "bin" y el archivo "soapUI-4.6.4.vmoptions". Ábralo en el editor de texto y agréguele esta línea:

    -Dfile.encoding=UTF8

  • Guarde el archivo, cierre SoapUI y vuélvalo a abrir y cargue WSDL de nuevo.

Las pruebas del servicio de administración del intercambio de datos de forma masiva no se pueden finalizar de forma completa con SoapUI del mismo modo, ya que el servicio requiere el acceso a un servidor de archivos para acceder al archivo de datos. Para obtener más información, consulte la sección Prueba del servicio masivo con SoapUI, más adelante en este tema.


Crear proyectos de SoapUI para la realización de pruebas

Cada servicio a comprobar deberá añadirse como proyecto en SoapUI. A continuación se demuestra la configuración de SoapUI para probar PersonManagementServiceSyncService.

  1. Utilice el menú o pulse "Ctrl+N" para crear un nuevo proyecto de SoapUI.
  2. Nombre del proyecto. Dado que esta demostración es para el servicio de personas, se lo denominará LIS persona.
  3. En el campo WSDL inicial, pegue la URL del WSDL creada anteriormente para PersonManagementServiceSyncService.

    La WSDL inicial es la url de extremo de Learn para el servicio que está probando con una extensión ".wsdl".

  4. Seleccione OK (Aceptar).
  5. Una vez se hayan creado las plantillas de los servicios, haga clic en la interfaz del proyecto para abrir el visor. En este paso, actualizará el extremo del servicio con la URL copiada en la página de información del servicio web de la integración.
  6. Introducir el nombre de usuario proporcionado en la página de configuración de la integración.
  7. Introduzca la contraseña proporcionada en la página de configuración de la integración.

Esta información se utiliza en todos los servicios del proyecto. El nombre de usuario y la contraseña proporcionan la información de autenticación necesaria para identificar la integración de objetivo y los servicios de acceso.

Si cambia la configuración del extremo del servicio, debe hacer clic en el botón Assign (Asignar) y seleccionar la opción de todas las solicitudes "All Requests" para actualizar el proyecto. En caso contrario puede provocar errores en SOAP.

Para crear objetos para el curso, la afiliación y el grupo, deberá repetir los pasos del 1 al 5. Si bien SoapUI es compatible con varios WSDL por proyecto, es más sencillo mantener servicios independientes cuando se crean cuatro proyectos.


Probar la integración

SoapUI genera plantillas de solicitud en función de los WSDL proporcionados que, aunque son útiles para comprender el formato de los objetos administrados por LIS, no son adecuadas para el envío a Learn. En caso de hacerlo, no se provocará ningún problema, Learn simplemente devolverá un error para el proceso.

Para realizar la prueba debe enviarse un conjunto de datos conforme. Los ejemplos proporcionados a continuación pueden utilizarse para realizar las pruebas iniciales tras las cuales pueden emplearse las extracciones reales del SIS.

Blackboard Learn 9.1 SP14 y las implementaciones anteriores de LIS solo son compatibles con los servicios de sustitución; puede verificar los servicios compatibles si envía las plantillas de solicitud generadas. Los servicios no compatibles responderán con un error de unsupported.

Probar PersonManagementServiceSyncService

  1. Expanda el árbol de la interfaz bajo el servicio que está probando (debería poder verlo tras la creación del nuevo proyecto). En este ejemplo, se expande replacePerson.
  2. Cree una solicitud nueva y denomínela SampleReplacePerson .
  3. Se abrirá el visor de la solicitud con una plantilla de la solicitud replacePerson. Copie el texto de SampleReplacePersonRequest.xml y péguelo en la vista de la solicitud para sustituir la plantilla generada.
  4. Seleccione el ícono Enviar solicitud.
  5. Los resultados de la solicitud se muestran en el visor de solicitudes a la derecha del archivo XML SOAP que ha proporcionado.

Repita los pasos 1 a 5 para los proyectos/interfaces restantes con los archivos de muestra proporcionados; esto garantiza que no haya problemas con la configuración de la integración previa a las pruebas de los datos "reales" o con la conexión con su SIS. Además, puede utilizar este proceso para probar los conjuntos de datos creados a mano o extraídos.

Es posible capturar el código de referencia devuelto para supervisar el procesamiento de la solicitud.


Pruebas con la carga del archivo de la interfaz del usuario

El marco de trabajo SIS de Learn permite la carga de archivos masivos con formato xml a través de la interfaz del usuario. Esta demostración explica las diferencias entre los archivos masivos y el formato de evento proporcionado por SIS en los extremos de LIS.

El formato de archivo para archivos masivos (los utilizados para la carga mediante la integración de la interfaz del usuario) requiere una visión modificada del xml sobre lo que se pasa a los extremos mediante SIS. Consulte SampleBulkRequest_PersonCourseMemberTerm.xml en los ejemplos de carga que se encuentran en el conjunto de muestra descargable a continuación.

Formato de archivo masivo

Cuando un sistema de información del estudiante (SIS) compatible con LIS establece comunicación con Learn, el SIS envía un mensaje SOAP completamente formado a los puntos de conexión del servicio web. Este mensaje SOAP incluye un contenedor para los datos XML de LIS. Esta información no es necesaria cuando los datos se suben de forma manual y de incluirse generaría un error de fuente. Encontrará a continuación una muestra truncada de un objeto de persona (usuario) en Conjunto de datos 1.0. Para ver una descripción completa del formato de datos para cada objeto compatible, consulte la sección Formato de los datos de LIS 2.0.

<?xml version='1.0' encoding='ISO-8859-1'?>


 
 
    identifier
    PersonManagementService
    PersonManager
    replacePerson
   
   
     
       In
       sourcedId
       GUID
       55555
     
     
       In
       personRecord
       PersonRecord
       
         
           
             unknown
             55555
           
           
             
             
               
                  en
                  unknown
               
               
                   http://www.imsglobal.org/lis/pmsv2p0/formatnmetypevocabularyv1p0 
               
               
                  en
                  Full
               
             
             
                en
                Dr. First Middle Last, Jr.
             
           
      ...
       
     
     
   





 

Conjunto de datos 1.0: Datos de ejemplo LIS para utilizar en un archivo de carga LIS de la interfaz de usuario de Learn. El archivo completo está disponible en el conjunto de muestra descargable en el enlace a continuación.

Modificar el XML SOAP de LIS para la carga

Los archivos de datos masivos requieren, por lo menos, que se eliminen las etiquetas de apertura y cierre SOAP-ENV:Envelope y SOAP-ENV:Body en el mensaje generado por LIS y que se sustituyan por las etiquetas de apertura y cierre bulkDataRecord. Esto se muestra en el conjunto de datos abreviado anterior. Si se realizan varias transacciones (por ejemplo: para personas, cursos y afiliaciones) en un solo archivo, deben quedar contenidas en etiquetas transactionRecord adicionales (vea el ejemplo completo).

Prueba

Una vez haya preparado los archivos de datos, abra la opción Cargar el archivo fuente mediante el menú de la integración LIS.

Se le dirigirá a la página de carga cuando seleccione el archivo a cargar. Para esta demostración, seleccione el archivo de muestra proporcionado: SampleBulkRequest_PersonCourseMemberTerm.xml.

Al enviar el archivo, usted será redirigido a la página de la integración. Para ver los resultados de la prueba, puede inspeccionar los objetos creados o cargados mediante la interfaz del usuario administrador o puede utilizar el visor de registros del marco de trabajo SIS para ver el registro para la integración.

Para ver el registro de la integración, en el menú de la integración, seleccione Ver un registro, y será redirigido a la página Registro de la integración.

Para inspeccionar aún más un mensaje registrado, haga clic en el elemento de línea del mensaje y aparecerán los detalles en el área Detalle del mensaje debajo de la lista de mensajes.

Este detalle contendrá información útil para la depuración del problema. Por ejemplo:

Invalid data for attribute: role. Skipping entire record. Motivo: The Course Role is invalid.
InvalidData
Error occurred processing the following XML:
In
sourcedId
GUID
test_course.55555
In
membershipRecord
membershipRecord
unknowntest_course.55555test_coursecourseSection55555LearnerLearner2014-02-01T15:00:002014-09-01T15:50:00falseen201330Active2011-08-04T15:00:000SISunknownunknownLIS2.0Role/GradableStringGradableLIS20DeliverySystemStringBBSIS

blackboard.dataintegration.lis.operation.OperationExecutorException: InvalidData

Los detalles del mensaje anterior indican una operación de replaceMembership con errores; concretamente, con un rol del curso incorrecto (se indica con el texto destacado en amarillo). La solicitud publicada se incluye, y podremos ver que los roles se proporcionan de forma incorrecta como "Estudiante". Si los modifica a "Alumno" y los vuelve a enviar, se producirá una solicitud de replaceMembership correcta.


Prueba del servicio masivo con SoapUI

La configuración para la prueba de las solicitudes del servicio masivo es igual que en los demás servicios con una excepción: debe proporcionar un servidor de archivos al que el servidor de la aplicación Learn tenga acceso para "recoger" el archivo de datos masivos mediante el servicio LIS.

La arquitectura del servicio web de intercambio de datos masivos se compone de tres partes: el cliente (en este caso SoapUI), la instancia de LIS en la instancia de prueba de Learn y un servidor de archivos. El cliente envía un mensaje SOAP al servicio web de intercambio de datos masivos. La solicitud del cliente incluye la URL del archivo por lotes a procesar (que está situado en el servidor de archivos) y qué operación debe realizarse.

Las operaciones posibles que puede realizar el servicio web de intercambio de datos masivos en un archivo por lotes están limitadas por el conjunto de operaciones del servicio web que pueden realizar los demás servicios web para la instancia de LIS. En el caso de 9.1 SP 14 y versiones anteriores, estas operaciones están limitadas a las de sustitución.

Si se encuentra con problemas con la suma de verificación puede desactivar la prueba de suma de verificación mediante los ajustes de integración de datos de LIS.

Configuración de LIS

  1. Abra su integración LIS configurada (o cree una) y anote el valor del Nombre de usuario compartido.
  2. En las Propiedades de integración, cumplimente lo siguiente y anote:
    1. Contraseña compartida
    2. Nombre de usuario del servicio de lotes
    3. Contraseña de servicios de lotes
    4. Nombre de usuario de descarga por lotes (con motivo del ejemplo, haga que sea el mismo que el nombre de usuario del servicio por lotes)
    5. Contraseña de descarga por lotes (con motivo del ejemplo, haga que sea el mismo que la contraseña del servicio por lotes)
    6. URL de los servicios web de los lotes de los servicios de información del aprendizaje SIS: http://localhost:8081/
      Es la dirección del servicio HTTPD que proporciona el archivo para el servicio masivo de LIS y debe representar su configuración específica.
  3. Establezca en estado de la integración en Activa.
  4. Establezca los niveles de detalle del registro en Todos los mensajes de diagnóstico y depuración.
  5. Establezca la opción Origen de datos de Learn en Utilizar el mismo origen de datos de Learn para todos los datos entrantes nuevos.
  6. Seleccionar Enviar.

Configurar el servicio de archivos HTTPD compatible

Descargue el archivo siguiente y descomprímalo en el servidor donde colocará sus archivos de prueba.

Descargue el archivo SampleBulkRequest_PersonCourseMemberTerm.xml y colóquelo en el directorio desde el cual se entregarán los archivos.

Probar el servicios de archivos HTTPD

java -jar SimpleHttpServer.jar

Uso: java SimpleHttpServer

Por ejemplo:

java -jar SimpleHttpServer.jar 8081 /Users/moneil/Desktop/LISTEST moneil moneil
Server running on port 8081. Hit Ctrl-C to quit.

Acceda al servidor mediante su navegador para probar la entrega del archivo. Por ejemplo:

http://10.0.1.16:8081/SampleBulkRequest_PersonCourseMemberTerm.xml

Instalar SoapUI para realizar pruebas

La configuración de SoapUI para probar el intercambio de datos masivo es igual que para los demás servicios de LIS.

Obtener la URL/WSDL de intercambio de los datos masivos

  1. Navegue hasta las integraciones del sistema de información de alumnos en la instancia de Learn de pruebas.
  2. En la sección Configuración de LIS, seleccione el botón contextual de contenido adicional para la integración LIS creada.
  3. Seleccione la opción Información sobre servicios web.
  4. La URL del WSDL es el valor de URL del extremo para el Servicio de administración de intercambio de los datos masivos, en Servicios web de Learn locales concatenados con ".wsdl."

Configuración de SoapUI

  1. Abra SoapUI.
  2. En el menú File, seleccione Preferences.
  3. En los ajustes HTTP Settings, seleccione Adds authentication information to outgoing requests para añadir información de autenticación a las solicitudes salientes.
  4. Seleccione OK (Aceptar).
  5. Pulse Ctrl+N.
  6. En el campo WSDL inicial, pegue la URL del WSDL.
  7. Seleccione OK (Aceptar).
  8. Expanda el árbol debajo de announceBulkDataExchange (debería ser visible tras la creación del nuevo proyecto).
  9. Una vez se hayan creado las plantillas de los servicios, haga clic en la interfaz del proyecto para abrir el visor. Aquí podrá:
    1. Actualizar el extremo de servicio con la URL copiada en la página de información del servicio web de la integración.
    2. Introducir el nombre de usuario proporcionado en la página de configuración de la integración.
    3. Introduzca la contraseña proporcionada en la página de configuración de la integración.

Ejecutar la prueba

Abra la solicitud announceBulkDataExchange y copie/pegue el contenido del Conjunto de datos 2, a continuación, en el visor de solicitudes.

Deberá modificar el elemento del ejemplo para que represente a su servidor de archivos de prueba. También debe asegurarse de que la URL esté en una sola línea.




V1.0
123456




123456

123456
2020-10-01T12:00:00

http://:8081/<file_path>¬                               /SampleBulkRequest_PersonCourseMemberTerm.xml
b3ecf4f05935c687932ce1d8c1af7335
29063
2020-10-01T12:00:00


CourseManagementService
CourseSectionManager

replaceCourseSection







Conjunto de datos 2: BulkDataRequest

Notas para crear su propio archivo de pruebas

Los elementos ims:imsx_messageIdentifier, ims:transactionId e ims:bulkBlockManifestId deben tener todos el mismo valor (en este ejemplo, el valor es 123456). Los elementos ims:expiryDate e ims:savePoint también deben tener el mismo valor (en el ejemplo anterior, se usó el valor 2020-10-01T12:00:00).

El objeto ims:bulkBlockDataFile representa un archivo por lotes en el que se operará. El elemento ims:url es la URL para la ubicación del archivo de fuente de prueba en el servidor de archivos. El elemento ims:totalSize es el tamaño total, en bytes, del archivo de fuente de prueba (utilice "ls -l" en Linux o "dir" en Windows). El elemento ims:checkSum es la etiqueta md5 del archivo de prueba (utilice md5sum en Linux u obtenga un programa similar o Cygwin en Windows).

El objeto ims:serviceRecord representa la forma en la que se procesará el archivo de fuente; puede haber más de un ims:serviceRecord en un elemento ims:bulkBlockDataFile. El elemento ims:serviceName representa el servicio web de LIS cuyas operaciones se llamarán para el procesamiento del archivo de fuente determinado. El elemento ims:interfaceName es la interfaz en el código SIS de LIS que se utilizará como índice de los métodos que se pueden llamar. El objeto ims:operationSet contiene una lista de métodos (enumerados como un elemento ims:operationName) a los que se debe llamar para el procesamiento del archivo de fuente.

Ejecución de la solicitud de prueba

La solicitud se ejecuta cuando hace clic en el botón verde para "reproducir", en la esquina superior izquierda del marco de la solicitud.

La respuesta de la solicitud anterior es:




V1.0
4ebf713ae3664f84ab67d961c3f55060

success
status
123456
Use the reference code 9d4a22b81d4a45d683c2c13e0a0e7a1c to track these records in the logs.


TargetEndSystem
fullsuccess









Resumen

La prueba manual de la integración antes de conectar a SIS le permite confirmar el funcionamiento correcto de la configuración de Learn. Las pruebas con la interfaz de usuario permiten unas pruebas rápidas de los datos y del comportamiento de la configuración. Las pruebas con el conjunto de herramientas de SoapUI permiten no solo probar los datos y el comportamiento, sino que además es posible comprobar los ajustes de la autorización y conectividad, ya que se pasan desde el SIS. Esto permite separar las tareas de establecer y evaluar los errores de su integración LIS.


Datos de muestra

El conjunto de datos de muestra (bbdn-lis_samples) utilizado en este tema se puede clonar o descargar como archivo .zip desde el repositorio Blackboard GitHub.