Esta clase implementa varios tipos de métodos: (1) Constructores y selectores; (2) Llamada a servicios web; (3) Construcción de enlaces de ejecución; y (4) Utilidades
public IntegrationHelper(ConfigurationData config)
Crea un objeto de la clase IntegrationHelper
estableciendo los parámetros de conexión mediante un objeto de la clase siette.external.ConfigurationData.
public void setConfig(ConfigurationData config); public ConfigurationData getConfig();
Asigna/Devuleve el objeto que contiene los parámetros de configuración.
public void setDebugOutJSP(JspWriter debugOutJSP); public JspWriter getDebugOutJSP();
Asigna/Devuleve un flujo de datos donde se escribiran mensajes de depuración.
public void setSietteSession(Integer sietteSession); public Integer getSietteSession();
Asigna/Devuelve el identificador de la sesion de evaluacion, es decir el parámetro idsession
de los servicios web.
public void setToken(String token); public String getToken();
Asigna/Devuelve la credencial correspondiente a la conexión del usuario, es decir el parámetro credentialIdentifier
de los servicios web.
public Boolean invokeServiceRegisterUser(UserData userData, String rsaSha1Signature); public Boolean invokeServiceCheckExitsUser(String userName); public String invokeServiceAuthenticateUser(String userName, String rsaSha1Signature); public AsignaturaBean[] invokeServiceGetTestListTeacher(String userName,String language); public AsignaturaBean[] invokeServiceGetSubjectListTeacher(UserData user, String language); public AsignaturaBean[] invokeServiceGetTestListStudent(String userName, String language); public int invokeServiceGetNumberofUsers(String remoteSystemIdentifier); public Integer invokeServiceBeginTestSession(Integer idTest, boolean colaborativeMode, String userName, String rsaSha1Signature, String remoteAddr); public Integer invokeServiceGetTestQuestions(Integer idTest, boolean colaborativeMode, String userName, String rsaSha1Signature, String remoteAddr); public String invokeServiceGetScore(Integer idsession);
Todos estos métodos llaman directamente a los servicios web de Siette. Son por tanto simples envoltorios de la llamada, implementados de manera que se simplifique la programación. Por supuesto, antes de llamar a cada uno de estos métodos hay que establecer la configuración de la conexión, bien en el constructor del objeto de esta clase o llamando al método setConfig
, pasandole al menos el nombre de usuario, el identificador del sistema externo y la clave privada.
public boolean checkUserStep(UserData userData); public void registerUserStep(UserData userData); public String authenticateUserStep(String userName); public Integer getSietteSessionStep(String userId, boolean colaborative, int sietteTestID, String remoteAddr); public String getSietteScore(Integer sietteSession);
public String startTest(UserData userData, int sietteTestID, boolean colaborative, boolean xml, String language, String urlEndTestBack, String urlEndItemBack, String remoteAddr);
Este método es una forma simplificada de realizar las operaciones mas comunes en la conexión llamando sucesivamente a varios servicios web. En concreto, conecta con Siette y busca si el usuario está ya creado. Si no es así lo crea, completa la autenticación, crea la sesión del test y lama al método getStartTestURL
para devolver una URL que permite comenzar la ejecución del test en un navegador.
public String getStartTestURL(Integer idsession, String token, String language, boolean xml, String urlBack, String urlReport);
Prepara una URL a partir de la cual se puede iniciar un test en Siette. La sesión ya ha debido ser creada previamente, invocando al servicio beginTestSession
, o lo que es lo mismo, mediante una llamda al método de esta misma clase invokeBeginTestSesion
.
El cliente obtiene esta URL y como respuesta a ella Siette presenta la pagina web conrrespondiente a la entrada a una evaluación. Da lo mismo que la sesión ya haya sido comenzada o que este por iniciar, la respuesta de Siette a esta URL será siempre la pagina con la información de entrada al test. Una vez que comience la ejecución, si ya habia comenzado la sesion Siette redirigirá a la última pregunta del test sin contestar.
Argumento | Descripción |
---|---|
idsession | Identificador de la sesion |
token | Credencial obtenida previamente |
language | Cadena correspondiente al idioma (es ; en ; de ; fr ) |
xml | Si es true , indica a Siette que la respuesta debe ser una pagina en formato text/xml en vez de text/html , es decir, al invocar a la URL devuelta por este enlace, en vez de obtener una pagina web que al presentarla con un navegador muestra una pregunta al usuario, lo que devolverá el enlace es una página web con la codificación mediante SQTI del test que se va a realizar. |
urlBack | Direccion URL a la que llamará Siette cuando concluya el test, pasándole como parámetros los resultados de la evaluación. |
urlReport | Dirección URL a la que llamará Siette cuando el alumno responda a una pregunta. Si este pàrá,metro no es null la respuesta a la pregunta provocará una llamada HTTP(S) por el método POST al servidor que se indique, pasándo en el parámetro xml una cadena de caracteres con el código XML correspondiente a la corrección del ítem |
public String getQuestionURL(Integer idsession, String token, String language, boolean xml, String urlReport);
Es un método similar al anterior, que devuelve una URL para presentar una pagina de Siette. La diferencia es que la página que se presenta no es la correspondiente a la información del test al inicio, sino directamente la pagina correspondiente a la última pregunta sin contestar.
Si se proporciona una URL en el argumento urlReport
, Siette entenderá que como respuesta a esta página tras la contestación del alumno debe reenviar tambien a una URL prefijada la respuesta del alumno en XML. Esta información se presenta codificada mediante SQTI.
Al usar la opción XML, al llamar a este método la ejecución de Siette se interrumpe tras cada llamada. Una vez obtenida la respuesta el sistema externo deberá seguir llamando a este método hasta completar la ejecución del test.
public String getSietteReportURL(int idSession,int idTest, String auth, int colaborative, String language, String urlSIETTE)
Devuelve una URL a través de la cual pueden mostrarse los resultados de una evaluación en Siette. La presentación de resultados esta supeditada a que la configuración del test en Siette permita mostrar los resultados. En caso contrario la URL creada devolverá un mensaje indicando que el acceso está restringido.
public String sign(String stringToSign);
Codifica (firma) una cadena de entrada usando la clave privada, mediante el algoritmo SHA-1 sobre RSA. Devuelve la cadena codificada.
public static String getRemoteAddr(HttpServletRequest request);
Devuelve la dirección IP pública del servidor web que actua como sistema externo a Siette, necesaria para algunos de los métodos anteriores.
public static String addResponsesParameters(HttpServletRequest request);
Devuelve una secuencia de todos los parámetros del request
en formato URI, ya codigicados, que puede ser añadida a una URL base para la siguiente llamada.
public static String html_entity_decode( String content );
Transforma una cadena content
eliminando las entidades HTML y reemplazandolas por el carácter UNICODE correspondiente