Arquitectura de WIRIS editor

La arquitectura de un sistema que emplea WIRIS editor dependerá de cómo se utilice WIRIS editor.

Arquitectura relacionada con el modo de visualización

Las fórmulas que aparecen en páginas web HTML se codifican mediante imágenes normales. Esto permite que las páginas se visualicen correctamente en todos los navegadores web. Los nombres de las imágenes son irrelevantes desde el punto de vista del usuario. Para los curiosos, corresponde a la computación md5 del código fuente de la fórmula (habitualmente MathML).

Ejemplo de página web con fórmulas

El ejemplo siguiente consiste en un fragmento del código fuente de la página HTML de ejemplo:

...
<p>Ejemplo 4.6.2.</p>
<ul>
    <li>
        <img align="middle"
            src="http://.../wrs_showimage.php/ebcec7125e1caefc7da84ce32862edc3.png"
            alt="«math»«munder»«mi»lim«/mi»…«/math»"
            class="Wirisformula" />
    </li>
    <li>
        <img align="middle"
            src="http://.../wrs_showimage.php/ab12ce19d310b571533a4a202a21ujhg.png"
            alt="«math»«munder»«mi»lim«/mi»…«/math»"
            class="Wirisformula" />
    </li>
...

El desafortunado nombre ebcec7125e1caefc7da84ce32862edc3 es la codificación md5 del origen de la fórmula, que es MathML.

<math>
  <munder>
    <mi>lim</mi>
    <mrow>
      <mi>x</mi>
      <mo>&rarr;</mo>
      <mo>&infin;</mo>
    </mrow>
  </munder>
  <mfenced>
    <mrow>
      <mn>2</mn>
      <mo>+</mo>
      <mfrac>
        <mn>1</mn>
        <msup>
          <mi>x</mi>
          <mn>2</mn>
        </msup>
      </mfrac>
    </mrow>
  </mfenced>
  <mo>=</mo>
  <mn>2</mn>
</math>

Los autores utilizarán MathML para modificar las fórmulas existentes.

El atributo alt almacena una copia del MathML de la fórmula. En modo de visualización, este atributo no se utiliza pero resulta necesario para la edición. En ambos casos (visualización y edición), la etiqueta <img> es la misma. Ten en cuenta que el MathML guardado en esta etiqueta no utiliza los símbolos <, > habituales sino «, ».

El servidor es responsable de proporcionar las imágenes, que se almacenan en el sistema de archivos o se computan de forma dinámica llamando al servicio web WIRIS Formula Image Service. El servidor también debe conservar una caché de las imágenes computadas y un método para recuperar el código fuente de la imagen a partir de su nombre (el md5). Los scripts del servidor realizan esta tarea con tecnologías como PHP, Java y otras.

Ten en cuenta que WIRIS Formula Image Service puede encontrarse en una máquina distinta del servidor Http.

Diagrama con los principales componentes del modo de visualización

Para ver este nodo con mayor detalle, el diagrama de secuencia asociado al modo de visualización es el siguiente:

El usuario abre una página web que contiene fórmulas.

La responsabilidad del servidor Http es servir contenido al ordenador del usuario, en concreto, todas las fórmulas y las imágenes.

Los scripts de servidor de WIRIS plugin son una serie de scripts que se ejecutan en el servidor y forman parte de WIRIS plugin. Por ejemplo, se pueden escribir en PHP o Java.

Almacenamiento de WIRIS plugin. WIRIS plugin necesita almacenar información acerca de cómo recuperar el origen de las fórmulas (MathML) a partir de la computación md5. El almacenamiento pueden ser archivos o una base de datos.

Caché de WIRIS plugin. Las imágenes asociadas a las fórmulas se almacenan aquí. Como se trata de una caché, se pueden eliminar en cualquier momento.

WIRIS Formula Image Service. Es el servicio web que genera imágenes a partir del origen de la fórmula.

Los eventos se producen del modo siguiente:

  1. fórmula (imagen md5): El usuario abre una página web que contiene fórmulas. Las fórmulas son imágenes; por lo tanto, son solicitadas al servidor Http remoto. El nombre de cada fórmula es la computación md5 del código fuente de la misma.
  2. El servidor Http delega la solicitud de imagen de la fórmula al script de servidor de WIRIS plugin.
  3. Los scripts de servidor de WIRIS plugin intentan recuperar la imagen de la caché (obtener imagen de md5). Sin embargo, la imagen puede ser inexistente (porque es la primera vez que se solicita o se ha vaciado la caché).
  4. Si la imagen no se halla en la caché, el código fuente de la fórmula está recubierto de almacenamiento de WIRIS plugin (obtener imagen de md5) y WIRIS Formula Image Service se denomina (obtener imagen a partir de la fórmula). La imagen se almacena en la caché (poner imagen y md5).
  5. Tanto si la imagen se halla en la caché como si se computa en Image Service, finalmente se devuelve al navegador web.

Arquitectura relacionada con el modo de edición

La edición de fórmulas es algo más compleja. Presuponemos que la edición de fórmulas se realiza dentro de un editor de HTML.

Consulta http://www.geniisoft.com/showcase.nsf/WebEditors para obtener una lista de editores.

A continuación se muestra una captura de pantalla de un editor de HTML que contiene un icono para insertar fórmulas (este ejemplo se toma de la integración de Moodle).

El diagrama de secuencia siguiente explica cómo funciona la edición de una nueva fórmula.

Usuario significa el autor que desea editar una nueva fórmula una vez que el editor de HTML está cargado en una página web.

Editor de HTML es el componente de software que gestiona la edición de HTML.

WIRIS pluginjavascript es el componente que se ha instalado dentro del editor de HTML que permite la inserción y la edición de fórmulas. Se implementa con JavaScript y recursos relacionados.

Ventana emergente de WIRIS pluginFormula Editor es una ventana emergente que contiene un applet de Java con Formula Editor.

Los scripts de servidor de WIRIS plugin son un conjunto de scripts invocados por WIRIS plugin.

Almacenamiento de WIRIS plugin implica cualquier forma de almacenar la asociación del md5 computado al código fuente de la fórmula original. Se puede realizar mediante archivos o una base de datos.

La secuencia de mensajes es la siguiente.

  1. El usuario "pulsa el icono de nueva fórmula" para insertar una nueva fórmula donde se encuentra el cursor. El evento es interceptado por el editor de HTML que lo delega a WIRIS plugin.
  2. WIRIS plugin "abre" una ventana emergente con el editor de fórmulas.
  3. A continuación, el usuario edita la fórmula deseada ("edición de fórmulas").
  4. Y decide "aceptar" la fórmula.
  5. La "fórmula" se envía a WIRIS plugin.
  6. WIRIS plugin llama a un script de servidor para computar la etiqueta img con el md5 que se insertará en el editor de HTML.
  7. WIRIS plugin inserta la etiqueta img en el editor de HTML donde se encuentra el cursor.

Ahora, la página de edición de HTML contiene una etiqueta img que corresponde a la fórmula. A continuación se produce todo el proceso explicado en el modo de visualización.

El proceso de edición de fórmulas existentes es similar al de creación de fórmulas nuevas. Cuando el usuario pulsa el "€œicono fórmula"€, WIRIS plugin comprueba si se ha seleccionado una imagen de una fórmula y, si es el caso, se abre la ventana emergente con el editor de fórmulas. El contenido del editor se llena con el valor del atributo alt de la etiqueta img de la fórmula existente (ver modo de visualización). Al aceptar la fórmula, la imagen se sustituye en lugar de insertarse una nueva.