En Matlab siempre ha sido posible crear aplicaciones gráficas de usuario. Permitiendo de este modo poner en manos de usuarios finales, sin necesidad de que tengan conocimientos técnicos, complejos análisis de datos. Para lo que es necesario enviar una copia del programa a cada uno de los usuarios. Cuando el usuario final dispone de una licencia de Matlab se le puede enviar el código, el cual se puede proteger para que no sea estudiado. En caso de que no se así, es necesario compilar y enviar el programa junto al Runtime correspondiente. Recientemente se ha lanzado Web App Server una solución con la que publicar las aplicaciones de App Designer en la web.
Requisitos para convertir una aplicación de escritorio en web
En primer lugar, es necesario notar que Web App Server solamente permite publicar las aplicaciones creadas con App Designer. No siendo posible publicar aplicaciones creadas con GUIDE. Lo que es un nuevo motivo para migrar las antiguas aplicaciones GUIDE en App Designer con el asistente de migración. En segundo lugar, es necesario disponer de Matlab Compiler, ya que es la toolbox en la que se encuentra Matlab Web App Server.
Instalación de Matlab Web App Server
Para publicar aplicaciones web con Matlab es necesario instalar el servidor Matlab Web App Server. El archivo para la instalación se puede se encuentra dentro de la carpeta en la que se ha instalado Matlab. La ruta ruta en la que se encuentra el instalador para cada sistema operativo es
- Windows:MatlabRoot\toolbox\compiler\deploy\win64\MATLABWebAppServerSetup
- Linux:MatlabRoot/toolbox/compiler/deploy/glnxa64/MATLABWebAppServerSetup
- macOS:MatlabRoot/toolbox/compiler/deploy/glnxa64/MATLABWebAppServerSetup
en donde MatlabRoot
indica la carpeta en la que ha instalado Matlab. Una vez localizado el archivo solamente se tienen que ejecutar y seguir las instrucciones que aparecen en pantalla.
Lanzamiento del Matlab Web App Server
Una vez instalado Matlab Web App Server se puede lanzar la aplicación para poner en marcha el servidor. Al lánzalo aparecerá algo como la siguiente ventana:
La primera vez que se lanza pide un usuario para registrar el servicio en el sistema operativo. Para lo que se puede utilizar tanto un usuario creado por defecto o uno ya existente. Una vez registrado el servicio este se puede gestionar desde la pestaña Configure and Run.
En la ventana Configure and Run se pueden ver múltiples opciones de configuración. En la zona superior se puede ver cuatro botones para parar o poner en marcha el servicio, un acceso directo a la página principal, un acceso a las carpetas con las aplicaciones y otro a las carpetas donde se almacenan los logs.
En esta ventana también se puede configurar el puerto y los tiempos de sesión. Aunque dejaremos lo valores por defecto para las pruebas.
Distribuir una aplicaciones web con Matlab
A modo de prueba se va a crear una aplicación sencilla con App Designer, una gráfica en la que se muestra la señal de una frecuencia gestionada por us slider. Aplicación que se puede ver funcionando en la siguiente captura de pantalla.
Para crear una versión web solamente se tiene que ir a botón Share de la barra Designer y seleccionar la opción Web App.
Con lo que se lanzará un asistente que crear una carpeta en la que se encuentra 4 archivos. Siendo el archivo con extensión ctf el que se tiene que copiar en la carpeta de aplicaciones del servidor. En nuestro caso se copiará el archivo Frecuencia.ctf
a la carpeta que se abre con el botón Open App Folder de Matlab Web App Server. Una vez hecho esto se puede pulsar sobre Open Home Page para obtener.
En donde se puede ver un listado de las aplicaciones disponibles. Pulsado sobre nuestra aplicación se puede ver como esta aparece en la ventana del navegador.
Conclusiones
Una de las ventajas de Matlab es la posibilidad de crear aplicaciones con GUIDE o App Designer, ahora esto se extiende a la web con Matlab Web App Server. Así la distribución y actualización de las aplicaciones se puede realizar de una forma más sencilla al crear una aplicación web en lugar de una de escritorio.
Si estamos acostumbrados a crear aplicaciones con App Designer, la versión web es simplemente una forma diferente de distribución. En caso de trabajar con GUIDE, esta nueva opción puede ser un motivo para dar el paso ya a App Designer. Ya que es la única forma de crear aplicaciones web con Matlab
Carles dice
Gracias por el tutorial.
Según la página de Mathworks, recomiendan instalar este servidor en una máquina virtual o un ordenador dedicado exclusivamente a ello por motivos de seguridad. He leído los riesgos, pero sinceramente, no soy informático y me cuesta ver algunos conceptos.
No sé si estás familiarizado con ello y podrías hacer alguna aclaración al respecto.
Un saludo
Daniel Rodríguez dice
Al publicar aplicaciones es una buena idea compartimentar, así si se produce un ataque a una no se verán afectados todos los servicios. Algo que muy importante en las compañías.
Además de esto, por lo que deduce de la documentación, el nivel de seguridad no es muy alto en estos momentos. Por lo que yo actualmente solo la usaría para aplicaciones en una intranet, donde espero que los usuarios sean menos hostiles. No sé si la seguridad mejorará en futuras versiones para que se puede utilizar para publicar aplicaciones en Internet con seguridad. Recordemos que la primera versión es de 2019. Esperemos a ver si hay avances en la 2020a.
Andres dice
Podrías explicarme como después de tenerla en local puedo desplegarla en un servidor web?
Daniel Rodríguez dice
El proceso es el mismo que en local, hay que instalar Matlab en el servidor con una licencia de Matlab Web App Server.
Esteban dice
Yo necesito realizar una aplicación de matlab, pero quiero montarla en una pagina propia como se haría en ese caso?
Daniel Rodríguez dice
La aplicación se tiene que ejecutar con el servidor de Matlab, por lo que creo que para mostrarla en otra página la única solución es utilizar un Frame en la página donde se quiere mostrar la aplicación.
Gardner Kenneth Joseph Natividad Rosales dice
Ya tengo la aplicacion en la Web Apps de Matlab. Como podria hacer para crear un link a la que otras personas puedan acceder para que puedan usar mi programa?
Daniel Rodríguez dice
De manera predeterminada, la aplicación se encuentra alojada en el puerto 9988 del servidor en el que está siendo ejecutada. Esto significa que para que cualquier persona pueda acceder a la aplicación, necesitará utilizar una URL que incluya el nombre del servidor seguido de dos puntos y el número de puerto, como por ejemplo ‘miservidor.int:9988’. En el caso de que no haya un servidor de nombres disponible en la red, se puede utilizar la dirección IP del servidor seguida de dos puntos y el puerto para acceder a la aplicación.