É possível testar uma integração LIS sem conexão a um SIA. Isso é um pouco mais complicado que com os outros tipos de integração, dada a exigência de a) vincular aos serviços da web, o que exige um aplicativo para gerenciar as solicitações SOAP e b) uma diferença de formato de dados entre os dados baseados em SOAP gerados pelo SIA e usados para a opção Fazer upload de arquivo disponível na UI. A seguir, é demonstrado como testar uma integração LIS usando os serviços da web de suporte LIS e a UI.

Formato de dados LIS 2.0


Teste da integração LIS

Testar a integração LIS de uma perspectiva funcional, antes de conectar o SIA à integração, permite que você confirme o funcionamento adequado da configuração na metade da integração Learn. Depois de verificar se o Learn está tratando corretamente as solicitações LIS, quando você se conectar ao Sistema de informações do aluno já eliminou metade da equação se ocorrerem problemas de conectividade ou operação incorreta. Depois de testar usando as amostras fornecidas, talvez você pense em extrair a saída LIS do seu Sistema de informações do aluno e complementar os testes não conectados antes de continuar com a conexão do Sistema de informações do aluno ao Learn – novamente, limitando o número de variáveis no seu cenário de testes.

As integrações LIS são baseadas no serviço da web e usam o SOAP como o transporte de dados. O SOAP é um protocolo baseado em formato de mensagem XML que permite a troca de informações estruturadas.

Existem dois meios de colocar dados no Learn usando os dados formatados do LIS – você pode usar os pontos de extremidade do serviço da web ou fazer o upload de arquivos xml.


Testar usando os pontos de extremidade do serviço da web

Depois de configurar a integração LIS, você precisará observar os pontos de extremidade do serviço da web – eles serão usados na configuração do ambiente de teste. Os pontos de extremidade para a integração LIS são detectáveis usando o link Informações de serviço da web em uma integração LIS configurada.

Além disso, você precisará anotar o nome de usuário e senha que você inseriu para a integração – eles podem ser descobertos selecionando a opção Editar no menu da integração.

SoapUI

Testar os serviços da web requer o uso de uma ferramenta que seja capaz de publicar mensagens SOAP nos pontos de extremidade do serviço da web. Os exemplos a seguir usam uma ferramenta chamada SoapUI. O SoapUI está disponível em www.soapui.org. O SoapUI é uma solução de teste funcional de plataforma cruzada livre e de código aberto que permite que você crie e execute, de forma fácil e rápida, testes funcionais e de carga do serviço da web.

Embora a demonstração a seguir use o SoapUI, você pode usar uma ferramenta comparável de sua escolha.

Depois de concluir o teste de uso da integração LIS, você pode configurar o SIA para enviar os dados aos terminais de acordo com a operação necessária. (veja exemplos de serviço).

Configurar SoapUI

Além das informações do serviço da web, você precisará do nome de usuário e da senha da integração; acesse-os no menu editar da integração salva. Trata-se do nome de usuário e senha usados para autenticar o acesso e a identificação da instância da integração LIS relacionada.

  1. Abra o SoapUI.
  2. No menu Arquivo, selecione Preferências.
  3. Em Configurações HTTP, selecione Adiciona informações de autenticação às solicitações de saída.
  4. Selecione OK.

Obter URLs de WSDL

Cada serviço testado exigirá um WSDL para a construção dos métodos suportados. O URL de WSDL é o valor "URL de ponto de extremidade" para o gerenciamento em "Web Services locais do Learn", concatenado com ".wsdl". O URL de WSDL construído terá uma aparência semelhante à seguinte:

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

Você construirá quatro desses, um para cada serviço a ser testado:

CourseSectionManagerSyncService

GroupManagementSyncService

MembershipManagementSyncService

PersonManagementSyncService

dataSetStatus não é um serviço LIS, mas sim um serviço fornecido pelo Learn para monitorar a atividade de integração.

Resolver o erro do SoapUI "Caracteres maiores que 4 bytes não são suportados"

Algumas instalações SoapUI podem lançar um erro "org.apache.xmlbeans.XmlException: java.io.CharConversionException: Caracteres maiores que 4 bytes não são suportados: byte 0x96 implica um comprimento de mais de 4 bytes "ao tentar carregar o WSDL.

Para resolver esse erro:

  • Abra a pasta "lixeira" na instalação do SoapUI e o arquivo "soapUI-4.6.4.vmoptions". Abra-o em um editor de texto e adicione esta linha:

    -Dfile.encoding=UTF8

  • Salve o arquivo, feche/reabra o SoapUI e carregue o WSDL novamente.

O teste do serviço de gerenciamento de troca de dados em massa pode não ser concluído de ponta a ponta usando o SoapUI da mesma forma, pois o serviço requer acesso a um servidor de arquivos para acessar o arquivo de dados. Para saber mais, consulte "Testar o serviço em massa usando o SoapUI" mais adiante neste tópico.


Criar projetos do SoapUI para teste

Cada serviço a ser testado precisará ser adicionado como um projeto ao SoapUI. A seguir, é mostrada a configuração do SoapUI para testar o PersonManagementServiceSyncService.

  1. Use o menu ou pressione "Ctrl + n" para criar um novo projeto do SoapUI.
  2. Nomeie o projeto. Uma vez que esta demonstração refere-se ao serviço de Pessoa, ele será chamado Pessoa LIS.
  3. No campo WSDL inicial, cole o URL de WSDL construído acima para o PersonManagementServiceSyncService.

    O WSDL inicial é o URL do ponto de extremidade do Learn referente ao serviço que você está testando com uma extensão ".wsdl".

  4. Selecione OK.
  5. Depois que os modelos de serviços foram criados, selecione a interface do projeto para abrir o Visualizador de interface do projeto. Aqui você atualizará o Ponto de extremidade do serviço usando o URL copiado da página Informações de serviço da web da integração.
  6. Insira o nome de usuário conforme fornecido na página de configuração da integração.
  7. Insira a Senha que você forneceu na página de configuração da integração.

Essa informação é usada para todos os serviços do projeto. O Nome de usuário e a senha fornecem as informações de autenticação necessárias para identificar a integração de destino e acessar os serviços.

Se você alterar as configurações do Ponto de extremidade do serviço, selecione o botão Atribuir e selecione a opção "- Todas as solicitações -" para atualizar o projeto. Não fazer isso pode resultar em erros de SOAP.

Para criar projetos para Curso, Associação e Grupo, você precisará repetir as etapas 1-5. Embora o SoapUI suporte vários WSDLs por projeto, é mais fácil manter os serviços separados se quatro projetos forem criados.


Testar a integração

O SoapUI gera modelos de solicitação com base nos WSDLs fornecidos que, embora úteis para entender o formato dos objetos gerenciados do LIS, não são adequados para enviar ao Learn. Isso não causará um problema; o Learn simplesmente retornará um erro para o processo.

Para testar, um conjunto de dados compatível deve ser enviado. Os exemplos fornecidos abaixo podem ser usados para realizar os testes iniciais, após os quais os extratos reais do SIA podem ser usados.

O Blackboard Learn 9.1 SP14 e as implementações anteriores do LIS somente dão suporte a serviços de substituição – você pode verificar os serviços suportados enviando os modelos de solicitações gerados. Os serviços não compatíveis responderão com um erro unsupported.

Testar o PersonManagementServiceSyncService

  1. Expanda a árvore da Interface sob o serviço que você está testando (deve estar visível após o novo projeto ser criado). Neste exemplo, replacePerson é expandido.
  2. Crie uma solicitação e nomeie-a como SampleReplacePerson
  3. O visualizador de solicitação será aberto, contendo um modelo de solicitação replacePerson. Copie o texto de SampleReplacePersonRequest.xml e cole-o na visualização da solicitação, substituindo o modelo gerado.
  4. Selecione o ícone Enviar solicitação.
  5. Os resultados da solicitação são exibidos na visualização da solicitação à direita do SOAP XML fornecido.

Repita as etapas 1 a 5 para os demais projetos/interfaces, usando os arquivos de amostra fornecidos – isso garante que não haja problemas na configuração da integração antes de testar com dados "reais" ou se conectar ao SIA. Além disso, você pode usar esse processo para testar conjuntos de dados extraídos ou construídos à mão.

O código de referência retornado pode ser capturado para monitorar o processamento da solicitação.


Testar usando o upload do arquivo de UI

O Learn SIA Framework permite o upload do xml formatado em massa por meio da UI. Esta demonstração explica as diferenças entre os arquivos em massa e o formato de evento fornecido pelo SIA aos pontos de extremidade do LIS.

O formato dos arquivos em massa – aqueles usados para fazer o upload via UI de integração – exige uma versão alterada do xml em relação ao que é transferido aos pontos de extremidade pelo SIA. Consulte SampleBulkRequest_PersonCourseMemberTerm.xml nos Exemplos de upload contidos no conjunto de amostras para download, abaixo.

Formato do arquivo em massa

Quando um SIA (Sistema de informações do aluno) compatível com LIS se comunica com o Learn, o SIA envia uma mensagem SOAP completamente formada para os pontos de extremidade do serviço da web. Essa mensagem SOAP contém um wrapper em torno dos dados XML do LIS. Essa informação não é necessária para fazer um upload manual e causará um erro de feed se for incluída. Uma amostra truncada para um objeto Pessoa (Usuário) é mostrada abaixo, no Conjunto de dados 1.0. Para obter uma descrição completa do formato de dados para cada objeto suportado, consulte Formato de dados do 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 dados 1.0: Dados de exemplo do LIS para uso em um arquivo de upload do LIS na UI do Learn. O arquivo completo está disponível no conjunto de amostras para download no link abaixo.

Alterar o XML SOAP do LIS para fazer o upload

Os arquivos de dados em massa exigem minimamente a remoção das tags de abertura e fechamento SOAP-ENV:Envelope e SOAP-ENV:Body em uma mensagem gerada pelo LIS e sua substituição pelas tags de abertura e fechamento bulkDataRecord. Isso é mostrado no conjunto de dados abreviado acima. Se executar várias transações (por exemplo: (para pessoas, cursos e associações) em um único arquivo, isso deve ser colocado entre tags transactionRecord adicionais (veja o exemplo completo).

Teste

Depois de preparar os arquivos de dados, abra Carregar um arquivo de feed no menu de integração LIS.

Você será direcionado para a página de upload, na qual seleciona o arquivo para fazer upload. Para esta demonstração, selecione o arquivo de amostra fornecido: SampleBulkRequest_PersonCourseMemberTerm.xml.

Com o envio do arquivo, você será redirecionado de volta para a página da Integração. Para visualizar os resultados do teste, você pode inspecionar via UI de administração os objetos criados ou atualizados ou usar o visualizador de registrosdo SIA Framework para visualizar o log da integração.

Para visualizar o log da integração, selecione Exibir log no menu da integração e você será direcionado para a página de Log da integração.

Para inspecionar mais a fundo uma mensagem registrada, selecione o item de linha da mensagem na lista e os detalhes aparecerão na área Detalhes da mensagem, abaixo da lista de mensagens.

Esses detalhes conterão informações úteis sobre o problema de depuração. Por exemplo:

Dados inválidos para o atributo: função. Pulando o registro inteiro. Razão: A função do curso é inválida.
InvalidData
Ocorreu um erro ao processar o seguinte 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

Os detalhes da mensagem anterior indicam uma operação replaceMembership com falha, especificamente uma Função de curso incorreta (indicada pelo texto realçado em amarelo). A solicitação publicada está incluída e podemos ver que as funções são fornecidas de forma incorreta como "Aprendiz" – altere para "Aluno" e reenvie, o que resultará em uma solicitação replaceMembership bem-sucedida.


Testar o serviço em massa usando o SoapUI

A configuração para testar as solicitações do serviço em massa é a mesma que para os outros serviços, com uma exceção – você deve fornecer um servidor de arquivos ao qual o servidor de aplicativos do Learn tenha acesso para a "captura" do arquivo de dados em massa pelo serviço LIS.

A arquitetura do serviço da web de Troca de dados em massa é composta por três partes: o cliente (neste caso, o SoapUI), a instância do LIS na instância do Learn para teste e um servidor de arquivos. O cliente envia uma mensagem SOAP para o serviço da web de Troca de dados em massa. A solicitação do cliente inclui o URL do arquivo de lote a ser processado (que está localizado no servidor de arquivos) e qual operação deve ser executada.

As possíveis operações que o serviço da web de Troca de dados em massa pode executar em um arquivo de lote estão limitadas ao conjunto de operações de serviço da web que podem ser realizadas pelos outros serviços da web para a instância do LIS. No caso do 9.1 SP 14 e anteriores, elas são limitadas às operações de substituição.

Se você estiver enfrentando problemas na soma de verificação, pode desativar sua verificação nas configurações da Integração de dados – LIS.

Configuração do LIS

  1. Abra a integração LIS configurada (ou crie uma) e anote o valor do Nome de usuário compartilhado.
  2. Em Propriedades da integração, preencha o seguinte e anote:
    1. Senha compartilhada
    2. Nome de usuário do serviço em lote
    3. Senha do serviço em lote
    4. Nome de usuário para download de lotes (para fins de exemplo, deixe igual ao "Nome de usuário do serviço de lote")
    5. Senha para download de lotes (para fins de exemplo, deixe igual à "Senha do serviço de lote")
    6. URL do serviço da web do lote de serviços de informações de aprendizado SIA: http://localhost:8081/
      Esse é o endereço do serviço HTTPD que fornece o arquivo ao serviço em massa do LIS e deve representar a configuração específica.
  3. Configure Status de integração como Ativo.
  4. Configure Nível de detalhamento do log como Todas as mensagens de diagnóstico e depuração.
  5. Configure Fonte de dados do Learn como Use a mesma fonte de dados do Learn para todos os novos dados de entrada.
  6. Selecione Enviar.

Configurar o serviço de arquivo HTTPD de suporte

Baixe o seguinte arquivo e descompacte para o servidor em que você colocará seus arquivos de teste.

Baixe o arquivo SampleBulkRequest_PersonCourseMemberTerm.xml e coloque-o no diretório do qual os arquivos serão entregues.

Testar o serviço de arquivo HTTPD

java -jar SimpleHttpServer.jar

Uso: java SimpleHttpServer <port number> <path to directory to serve files from> <username> <password>

Por exemplo:

java -jar SimpleHttpServer.jar 8081 /Users/moneil/Desktop/LISTEST moneil moneil
Server running on port 8081. Pressione Ctrl-C para sair.

Acesse o servidor com o navegador para testar a entrega do arquivo. Por exemplo:

http://10.0.1.16:8081/SampleBulkRequest_PersonCourseMemberTerm.xml

Configurar SoapUI para o teste

A configuração do SoapUI para testar a Troca de dados em massa é a mesma do que para os outros serviços do LIS.

Obter o URL/WSDL da troca de dados em massa

  1. Navegue até Integrações dos Sistemas de Informações do Aluno na instância de teste do Learn.
  2. Na seção Configuração do LIS, selecione o chevron de contexto para a integração LIS criada.
  3. Selecione a opção Informações de serviço da Web.
  4. O URL de WSDL é o valor URL de ponto de extremidade para o Serviço de gerenciamento de troca de dados em massa, em Web Services locais do Learn, concatenado com ".wsdl."

Configuração do SoapUI

  1. Abra o SoapUI.
  2. No menu Arquivo, selecione Preferências.
  3. Em Configurações HTTP, selecione Adiciona informações de autenticação às solicitações de saída.
  4. Selecione OK.
  5. Pressione Ctrl+n.
  6. No campo WSDL inicial, cole o URL do WSDL.
  7. Selecione OK.
  8. Expanda a árvore sob announceBulkDataExchange (deve estar visível após o novo projeto ser criado).
  9. Depois que os modelos de serviços foram criados, selecione a interface do projeto para abrir o Visualizador de interface do projeto. Aqui, você:
    1. Atualizará o Ponto de extremidade do serviço usando o URL copiado da página Informações de serviço da web da integração.
    2. Insira o nome de usuário conforme fornecido na página de configuração da integração.
    3. Insira a Senha que você forneceu na página de configuração da integração.

Executar o teste

Abra a solicitação announceBulkDataExchange e copie/cole o conteúdo do Conjunto de dados 2 abaixo na visualização da solicitação.

Você deve alterar o elemento na amostra para refletir o servidor do arquivo de teste! Certifique-se também de que o URL esteja em uma única linha.




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 dados 2: BulkDataRequest

Observações para criar seu próprio arquivo de teste

Os elementos ims:imsx_messageIdentifier, ims:transactionId e ims:bulkBlockManifestId devem todos ter o mesmo valor (nesta amostra, o valor é 123456). Os elementos ims:expiryDate e ims:savePoint também devem ser do mesmo valor (na amostra acima, o valor 2020-10-01T12:00:00 é usado).

O objeto ims:bulkBlockDataFile representa um arquivo de lote a ser operado. O elemento ims:url é o URL do local do arquivo de feed de teste no servidor do arquivo. O elemento ims:totalSize é o tamanho total, em bytes, do arquivo de feed de teste (use 'ls -l' no Linux ou dir no Windows). O elemento ims:checkSum é o hash md5 do arquivo de teste (use md5sum no Linux ou obtenha um programa comparável ou Cygwin no Windows).

O objeto ims:serviceRecord representa como o arquivo de feed será processado; pode existir mais de um ims:serviceRecord em um elemento ims:bulkBlockDataFile. O elemento ims:serviceName representa o serviço da web do LIS cujas operações serão chamadas para processar o arquivo de feed fornecido. O elemento ims:interfaceName é a interface no código SIA do LIS, que será usado como índice dos métodos disponíveis para chamada. O objeto ims:operationSet contém a lista de métodos (listados como um elemento ims:operationName), que devem ser chamados para processar o arquivo de feed.

Executar a solicitação de teste

A solicitação é executada selecionando o botão "reproduzir" verde no canto superior esquerdo do quadro para a solicitação.

A resposta à solicitação acima é:




V1.0
4ebf713ae3664f84ab67d961c3f55060

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


TargetEndSystem
fullsuccess









Em resumo

O teste manual da integração antes da conexão com o SIA permite que você confirme a operação correta da configuração do Learn. O teste com uso da UI permite um teste rápido dos dados e do comportamento das configurações. O teste com uso do conjunto de ferramentas SoapUI permite não somente testar dados e comportamentos, mas também as configurações de conectividade e autorização, na forma como seriam transferidas do SIA. Isso permite uma separação das tarefas para estabelecer e fazer uma triagem da integração LIS.


Dados de amostra

O conjunto de dados de amostra (bbdn-lis_samples) usado neste tópico pode ser clonado ou baixado como um arquivo .zip do repositório Blackboard GitHub.