Desde hace ya unos años, los cambios en las tecnología han permitido que las velocidades de transmisión hayan crecido mucho. Ello ha llevado consigo un acceso masivo de los usuarios a la "nube". Me explico. Ahora las grandes empresas como google, microsoft, etc ofrecen a los usuarios aplicaciones que se pueden ejecutar en internet y que permiten acceder a las mismas no sólo desde equipos con distintos sistemas operativos tales como Windows, Mac, o Linux, sino que además podemos hacerlo desde distintos dispositivos, PC, tablets o móviles.

Ante este nuevo escenario cuando una empresa te encarga una aplicación hay muchos más parámetros que analizar a la hora de diseñar y elegir las herramientas adecuadas para el desarrollo de la aplicación.

 

Aplicaciones de Escritorio

Ventajas 

 

  • Rapidez en la ejecución.
  • Facilidad y potencia en la programación para realizar tareas como gestión de ficheros, conexión a BBDD, impresión, uso de escaner, etc.
  • Seguridad. Por lógica la superficie de ataque de nuestra aplicación se reduce si no se conecta a Internet, y la red de la empresa tiene implementada unas normas de seguridad normales. Otro día hablaremos del riesgo de seguridad que está surgiendo en las empresas con la activación del WIFI de los routers,  en aquellos casos en los que la empresa tiene implementada una red ethernet simplemente para que los trabajadores de la misma puedan usar la tablet, ver el correo en el movil, mandar whassups, y ver su muro de facebook sin consumir su tarifa de datos del movil.

Desventajas

 

  • Solo funcionará para el sistema operativo que fue creada, salvo que usemos algún lenguaje multiplataforma como JAVA.
  • Las actualizaciones, y la parametrización de la aplicación habra que hacerla por puestos.
  • El uso desde el exterior representará otro reto distinto.
  • El uso desde distintos tipos de dispositivos se convierte en misión imposible.

 

Aplicaciones basadas en Web (Web, Rest, etc)

Ventajas

 

  • Se pueden usar con cualquier dispositivo y sistema operativo con navegador web compatible con los estandares de HTML y CSS basados en el w3c.
  • Las actualizaciones solo se realizan en un equipo, en este caso en el servidor que corre los ficheros de la aplicación.
  • La adaptación a los distintos tipos de dispositivos y resoluciones es fácil a traves de CSS, y frameworks como twitter bootstrap, etc.
  • Se puede usar desde cualquier lugar si la aplicación se aloja en un servidor visible desde internet, bien porque esté en un servidor VPS, amazon, etc, o bien porque nuestro servidor web empresarial tenga acceso a internet.

 

Desventajas

  • Seguridad. Si está en un servidor con acceso a internet esta expuesta al ataque de muchos millones de usuarios maliciosos.
  • Es facil con cualquier sniffer tipo wireshark o cain y abel ver lo que se transmite por el protocolo http, incluidos nombres de usuarios y contraseñas.
  • Suelen ser más lentas que las aplicaciones de escritorio normales, sobre todo en aquellos casos en los que la aplicación web no hace uso de tecnologías como Ajax que evitan que la página se recargue al completo. Para esto se podrían usar técnicas de cacheo que mejorarán la velocidad de carga, pero que también puede provocar problemas con la veracidad de la información que estamos visualizando en un momento dado en la web con respecto a la que tenemos en la Base de datos.

 

Supuesto práctico del consultor informático


Teniendo en cuenta todo lo anterior, cuando vamos a una empresa que nos pide una aplicación, debemos hacernos entre otras las siguientes preguntas:

  1. ¿Se requiere que los usuarios puedan acceder a través de internet?.
  2. ¿Se requiere que la aplicación funcione bajo distintos sistemas operativos?.
  3. ¿Se requiere que la aplicación sea usable en distintos tipos de dispositivos?.

Estas tres simples preguntas, generan una serie de cuestiones que hay que analizar mucho a la hora de desarrollar lo que nosostros creemos que es la mejor solución para nuestro cliente y para nosotros, no hay que olvidar que se trata de crear una aplicación que al cliente le funcione como esperaba y que nos de poco trabajo de mantenimiento y configuración. El cliente quiere siempre pagar lo menos posible, y nosotros siempre queremos ganar más.

Una solución rápida a las mismas podría ser:

1.-¿Se requiere que los usuarios puedan acceder a través de internet?.
Resp: No
Solución: Aplicación de escritorio normal. En este caso no conviene olvidar que el cliente mañana nos puede pedir que se pueda acceder a la aplicación desde su casa. En este caso corremos los siguientes riesgos:

a).-Implementamos una infraestructura de acceso a escritorio remoto con los problemas que pueden surgir. Es decir, estamos ante desarrollar una aplicación de escritorio normal (.NET, JAVA, etc) y después configurarle al cliente alguna aplicación de escritorio remoto como terminal services, teamviewer o vnc que le permita usar la aplicación. Esta solución implica otros problemas como es el de la impresión sin ir más lejos. Si me conecto desde casa a la aplicación del trabajo tendré que andar configurando la impresión remota en teamviewer o terminal services para poder imprimir en la impresora de casa. Pero... ¿y si resulta que el equipo que tengo en casa es un mac y el de la oficina un windows y además uso terminal services?.

Evidentemente todas estas cuestiones tiene solución, unas veces acudiendo a otras soluciones de pago y en otras al malabarismo inherente a la profesión de informático. En estos casos le podríamos decir al cliente que imprima en pdf en el equipo remoto y después recuperar de alguna forma ese fichero PDF.

Otro problema importante es que en estos casos tendríamos que andar abriendo puertos de router, y tener una ip fija en la oficina, o usar servicios con dyndns, sin hablar de coste de licencias de terminal services adicionales, y sobre carga de servidor en caso del uso de esta opción.

Fijaros la que se ha liado en un momento. El sistema se va complicando y las posibilidades de fallo de cualquiera de los servicios que intervienen es alta. Todo ello sin hablar de los pasos que el cliente tendría que dar para poder hacer algo tan simple como imprimir un documento.

b).- Le decimos al cliente que para ello habría que hacer una aplicación nueva con el coste económico que ello supone. El cliente puede optar por otra solución existente en el mercado que ya implemente esta funcionalidad y que sea más económica que hacer una aplicación nueva. En resumen, podemos perder el cliente y el ingreso económico.

Resp: Sí
Solución: Aplicación de escritorio normal, o aplicación web. Podemos hacer dos cosas, o bien crear las interfaces de usuarios de la aplicación con cualquier lenguaje nativo, .net, xcode, qt, según los sistemas sobre los que vaya a correr,  y consumir los datos de un servicio web,rest, o base de datos remotas. Si optamos por la primera tendremos el problemas de las actualizaciones de la aplicación en cada puesto, problemas de versiones del sistema operativo (Windows XP, 7, 8, MacOs X, etc)

 

 

Escribir un comentario


Código de seguridad
Refescar

Newsletters





Joomla Extensions powered by Joobi
Scroll to top

Este sitio usa cookies propias y de terceros para realizar el análisis de navegación de los usuarios. Si continua navegando, consideramos que acepta su uso. Ver política de cookies