¿Qué diferencia hay entre una WEB APP (aplicación WEB) y un WEB SITE (pagina Web)?

Ya son varias las personas no especializadas en desarrollos informáticos, que cuando ven la información de nuestra web, y a que nos dedicamos, nos preguntan ¿qué diferencia hay entre una Página Web y una Web App?, ¿no es lo mismo?

A efectos de clarificar esos conceptos para todo aquel que tenga curiosidad en este tema, intentaré describir las principales diferencias y también las similitudes tratando de utilizar un lenguaje “no demasiado informático”.

Similitudes.

En ambos se puede utilizar la misma tecnología de desarrollo (lenguajes de programación y bases de datos. Para acceder tanto a unas como a otras se debe utilizar un navegador instalado en el dispositivo que se vaya a utilizar, ya sea en un ordenador (computadora), tableta, Smartphone, donde en general no hace falta instalar ningún otro programa, y el único requisito importante es contar con una conexión a internet, ya sea por WiFi o a través de losproveedores normales de telefonía(3g, 4g, etc). Son aplicaciones de tipo “cliente servidor”, siendo el “cliente”, el navegador que está en el dispositivo, y el “servidor” la máquina que está en internet y que proveerá al cliente de la información que este solicite a través de la aplicación.

Diferencias.

principal diferencia es el fin para lo cual se desarrolla cada una, porque aunque en ambas se pude utilizar la misma tecnología, normalmente los fines para los que se desarrollan son muy distintos:

Web Site o Página Web.

Normalmente su principal función es la de promocionar información acerca de una persona, una actividad, una empresa, productos y/o servicios, etc. Estas páginas pueden ser “estáticas” o “dinamicas”, estática significa que los datos, imágenes, etc., que se muestran están colocados directamente en la página de forma fija y forman parte de ella, y para modificar algún contenido se debe modificar la página por una persona especializada, las páginas dinámicas en general ya requieren más interacción con el usuario, y dependiendo de alguna acción de este, la pagina muestre uno u otro contenido, el ejemplo más típico puede ser una tienda virtual, donde dependiendo de lo que el usuario busque son mostrados unos productos u otros.

WEB APP.

Podemos decir que una Aplicación Web se asimila más a un sistema informático tradicional, donde a través de ella podemos realizar cualquier actividad relacionada directamente con datos de cualquier tipo, por ejemplo podemos tener aplicaciones contables, financieras, gestión de pacientes, gestión de abonados, etc., normalmente las WEB APP se desarrollan en lo que se llama una Intranet o una Extranet (mas adelante desarrollaré estos conceptos), donde para acceder a las funciones que la componen es necesario contar con un nombre de usuario y una contraseña, generalmente no son abiertas al público, y para utilizarlas hay que suscribirse al servicio, o simplemente sean para el uso interno de una empresa.

Las WEB APP poco a poco están desplazando del mercado a los típicos sistemas “enlatados” que se compraban a una casa de software y que luego debían instalarse en el ordenador , estando su uso solo permitido para uno o más ordenadores, según el tipo de licenciamiento que ofreciera el fabricante, las WEB APP, ahora normalmente están en “la nube” y la mayoría se distribuyen con el método SAAS (Software as a Service), lo cual significa que el usuario final paga por el servicio que se le brinda a través del software pero no por el software en sí, no compra un paquete, sino que paga por su utilización una cuota periódica, aunque también encontramos múltiples WEB APP que son gratis y que están abiertas al público en general, el ejemplo más típico son las famosas redes sociales que en definitiva no son más que grandes sistemas de bases de datos relacionales donde se puede interactuar entre las personas que están suscritas a cada uno, aunque en el caso de las redes sociales, además de poder accederse mediante WEB APP, es más normal acceder desde aplicaciones desarrolladas para estar instaladas en dispositivos móviles.

Intranet vs Extranet.

Antes mencioné estos conceptos que son bastante antiguos , normalmente una Intranet es un sistema al cual se puede acceder solamente desde la red de datos interna de una empresa y está disponible para los empleados de esta con el fin de poder realizar sus actividades diarias, por ejemplo sistemas de contabilidad, de ventas, presupuestos, recursos humanos, etc., normalmente están protegidos por sistemas de seguridad soportados en firewalls y proxies que hacen que sean inaccesibles desde fuera del ámbito de la empresa. En cambio las Extranet son sistemas más abiertos, que están accesibles desde Internet , aunque la mayoría de las veces para acceder también es necesario contar con credenciales de seguridad (usuario y contraseña), algunos ejemplos de extranets: las redes sociales son grandes extranets, o los sistemas que las empresas de telefonía brindan a sus distribuidores para la gestión de sus abonados, los clientes web para correos electrónicos son otro de los ejemplos típicos, (Gmail, Hotmail, Yahoo, etc.)

¿Qué es una API?

Una sigla que como la mayoría de las siglas que se refieren a algún elemento informático, viene de palabras en inglés que en este caso son “Application Programming Interface”, y que significa, lo explico en pocas palabras:

En la programación de sistemas, una interfaz de programación de aplicaciones (API) es un conjunto de definiciones de subrutinas, protocolos y herramientas para crear aplicaciones de software.

En términos generales, es un conjunto de métodos de comunicación claramente definidos entre varios componentes de software. Una buena API facilita el desarrollo de un programa informático al proporcionar todos los componentes básicos, que luego el programador utilizará para desarrollar el sistema. Una API puede ser para un sistema basado en web, sistema operativo, sistema de base de datos, hardware o biblioteca de software. Una especificación API puede tomar muchas formas, pero a menudo incluye especificaciones para rutinas, estructuras de datos, clases de objetos, variables o llamadas remotas.

Uno de los principales usos de las API, es el de permitir interconectar sistemas realizados con distintas arquitecturas de forma transparente, independientemente de los elementos que han sido utilizados para su creación (lenguajes de programación, bases de datos, sistema operativos, etc.), por ejemplo, hoy en día, la mayoría de los principales proveedores de aplicaciones en la nube (Google, Facebook, Instagram, Tweeter, etc), tiene sus APIs, para que terceros podamos desarrollar aplicaciones con las que acceder a sus sistemas y de esa forma enriquecer el uso de sus herramientas.