ISDI Tecnología de Internet para un Negocio online


2MB Größe 10 Downloads 110 Ansichten
Tecnología de Internet para un Negocio online Marcelo Royán

Capítulo 1

Presentación

Presentación Nuestro experto MARCELO ROYÁN Marcelo Royán es Ingeniero Superior en Informática, y desde 1997 trabaja en empresas y proyectos digitales, en el entorno de internet. A lo largo de su carrera ha trabajado para multinacionales y grandes organismos internacionales, y también ha sido cofundador de varias empresas de éxito. Sus funciones han evolucionado desde la tecnología hacia la gestión, el marketing y la estrategia en el entorno digital. En 2004 fundó LogiQo, una agencia de marketing online especializada en la optimización de la conversión de acciones digitales. Es socio cofundador de ISDI, donde dirige el área de tecnología de las múltiples iniciativas del Instituto, entre ellas el Master en Internet Business (MIB). Desde enero de 2013 realiza proyectos de consultoría en las áreas de estrategia online y planificación tecnológica para grandes empresas, ayudándolas en su adaptación al mundo digital en su más amplio sentido.

Capítulo 2

Introducción

Introducción En el ámbito de los negocios online, la tecnología juega un papel fundamental porque es la sala de máquinas de internet. Nuestro negocio depende en gran medida de la plataforma tecnológica sobre la que se ha construido, y en la capacidad que tenga ésta para adaptarse a las necesidades y la estrategia de la empresa en cada momento. Si contamos con una estructura tecnológica ágil, flexible y escalable, dispondremos de una ventaja competitiva; mientras que en caso contrario la tecnología se puede terminar convirtiendo en una barrera en nuestro negocio. A su vez, entender el funcionamiento técnico de internet y conocer los elementos clave a la hora de poner en marcha un sitio web o una aplicación online que dé soporte a un negocio, representa una ventaja competitiva para los profesionales que trabajan en entornos digitales y para las PYMES que necesitan abordar el mundo digital.

Objetivos Al finalizar este curso, serás capaz de:  Determinar los elementos tecnológicos necesarios para poner en marcha un sitio web o una aplicación online y evaluar su complejidad  Insertar globalmente la tecnología en el ecosistema de internet, conociendo mejor sus posibilidades y limitaciones

 Entender los conceptos técnicos fundamentales del funcionamiento de Internet, así como la terminología habitual  Conocer los procedimientos técnicos que implican las tareas de negocio más habituales y las alternativas en cada etapa  Conocer los pasos concretos que implica la puesta en marcha de un negocio digital o de la parte digital de un negocio existente para una PYME, y experimentar con ellos de una forma práctica

Historia de Internet El hecho de que puedas realizar este curso desde cualquier parte del mundo implica el uso de una infraestructura tecnológica que fue ideada, diseñada y construida en los últimos sesenta años. Para entender muchas de las posibilidades -y también las limitaciones- de la red de redes, es necesario conocer las circunstancias en las que se ideó y los objetivos que se perseguían. Empezaremos por hablar de la evolución de internet: cómo se originó, quién lo creó y cómo ha cambiado desde entonces.

> Más información > Ver Vídeo > Historia de Internet

Historia de Internet

El nacimiento de Internet Es el periodo que va de 1958 a 1990. Internet surgió en 1958 como proyecto militar, académico y comercial. Contrariamente a lo que se cree, no fue una iniciativa exclusiva de EE.UU., sino que se trató de una colaboración entre instituciones y organizaciones públicas -y alguna privada también- procedentes de Francia, Reino Unido y EE.UU. Los momentos más importantes de este periodo fueron:  1958: Surge la idea en paralelo al amplio desarrollo de los ordenadores  1969: Se pone en marcha ARPANET, la primera red de redes y considerada la primera versión de internet  1974: Surge el concepto de internet, que procede de interconnected networks (redes interconectadas)  1982: Se generaliza el uso del protocolo (un protocolo es un conjunto de reglas y normas que permiten que dos o más entidades de un sistema –emisor y receptor-, se comuniquen entre ellos para transmitir información) TCP/IP para interconexión de redes

Historia de Internet

El crecimiento Corresponde a la década de los 90. En este periodo internet se consolida y aparecen los conceptos fundamentales que dan forma al internet que conocemos hoy día, como por ejemplo la World Wide Web (www) o el HTML (1). En estos años internet experimenta su primera etapa de fuerte crecimiento, apareciendo multitud de actores importantes. Los momentos más significativos de este periodo fueron:  1990: El ingeniero del CERN Tim Berners-Lee inventa la World Wide Web  1994: Se crea el W3C (World Wide Web Consortium), dirigido por el MIT (Massachusetts Institute of Technology)

 1995: Netscape, el fabricante del primer navegador de internet comercial sale a bolsa  1998: Dos estudiantes de doctorado en informática de la universidad de Stanford, EE.UU., crean Google

(1) HTML: El HTML -HyperText Markup Language o “lenguaje de marcado hipertextual”-, es el lenguaje que se usa para describir la estructura de las páginas web y la información que éstas incluyen en forma de texto y otros objetos como imágenes o vídeos

Historia de Internet

El crecimiento explosivo Desde principios del siglo XXI a nuestros días se ha producido la verdadera explosión de internet como canal, como medio y en general como ecosistema. En este periodo internet crece de forma exponencial, creándose millones de sitios web, multiplicándose por miles el número de servidores y centros de datos en la red. Y por supuesto, este periodo es el que ha conocido la mayor explosión también en cuanto al número de personas conectadas a internet y haciendo uso diario de todas sus posibilidades: más de 2.000 millones de personas. Hoy día internet es parte central de la vida de todos nosotros.

Los momentos más importantes de este periodo fueron:

2001: Pinchazo de la “burbuja tecnológica” 2004: Un estudiante de informática de la universidad de Harvard, EE.UU., crea Facebook 2012: Aumenta exponencialmente el acceso a internet, a través de móviles y tabletas.

La tecnología en el entorno digital En general, las personas que no tienen una formación específica en tecnología, y especialmente los gestores, tienen tendencia a “dar la espalda” a los aspectos técnicos de su negocio o área de negocio. Esto es debido principalmente a que la complejidad, imprevisibilidad y lejanía de la tecnología tienden a alejarnos de ella. Cuando trabajamos en un negocio online (1), es necesario cambiar nuestra orientación. En un negocio online, la tecnología es la “sala de máquinas”, la herramienta que permite hacer funcionar y crecer el negocio. No podemos verla como algo externo, ni dejar el futuro de nuestro negocio en manos de los técnicos completamente. Necesitamos entenderla, y en el camino veremos que no es tan compleja como nos puede parecer en un primer momento. Hoy día, la tecnología juega un papel fundamental en todos los tipos de negocios, independientemente de cuál sea su nivel de inmersión online. Veamos cuáles son los tres niveles posibles de inmersión:

(1) Negocio online: existen diferentes tipos de negocios online, y en cada uno de ellos la tecnología juega su propio papel

La tecnología en el entorno digital Empresa “Pure play”  En el ámbito de internet, un pure play es una empresa online cuyo producto es puramente online y por tanto queda definido por la tecnología en todas sus características En las empresas “pure play” la tecnología tiene un rol principal y esencial por definición, puesto que el producto de la empresa es la aplicación tecnológica. Unos cuantos buenos ejemplos de empresas Pure Play son Google, Amazon, eBay o elconfidencial.com

Empresa “click & mortar”  Un “click & mortar” es una empresa tradicional en su operativa offline que abre una línea de negocio digital complementaria. En estas empresas surge la necesidad de traducir el negocio a su vertiente online; se trata de hacer una aplicación de la empresa. La integración entre el negocio offline y el online crea interdependencia, y toda la empresa pasa a depender fuertemente de la tecnología. Un buen ejemplo de empresa click & mortar sería El Corte Inglés

Empresa “tradicional”  En las empresas tradicionales que no apuestan por una línea digital complementaria (o en los casos en los que simplemente no tiene sentido hacerlo), la tecnología influye al menos en el marketing online (el marketing online es un canal de marketing directo cuyo soporte es la tecnología). En estos casos la tecnología es un facilitador fundamental de las acciones de marketing en su faceta más cuantitativa, es decir medible. > Más sobre Marketing Online

La tecnología en la empresa En las últimas décadas, y especialmente desde que comenzó la generalización del acceso a internet, la explosión de sitios web y las aplicaciones basadas en internet, la tecnología ha pasado de ser un coste empresarial a una ventaja competitiva. Pero para llegar allí, las empresas han recorrido un largo –aunque rápido- camino de la mano de la tecnología. Antes de ser ventaja competitiva, la tecnología fue un coste, luego una inversión, luego un producto, y finalmente alcanzó el “estatus” de ventaja competitiva en potencia.  La tecnología como coste Tradicionalmente, la tecnología ha sido vista como un coste en las empresas. Desde hace ya muchos años se utilizan en las empresas de todos los tamaños elementos de software (1) y hardware (2) orientados a aumentar la productividad y a realizar la gestión de la operación básica.

A nivel de Hardware, la tecnología ha significado tradicionalmente tareas de mantenimiento de PCs, redes, impresoras, servidores de impresión, servidores de ficheros… Todos ellos elementos de productividad claros. En cuanto al Software, en un principio se trataba de la implantación de aplicaciones de productividad como los programas de ofimática entre los que destaca especialmente Microsoft Office , o de producción especializada como Adobe Photoshop , Autodesk Autocad , etc.

(1) Software: conjunto de programas, instrucciones y reglas informáticas que permiten ejecutar distintas tareas en una computadora. Fuente: RAE (2) Hardware: conjunto de los componentes que integran la parte material de una computadora. Fuente: RAE

La tecnología en la empresa  La tecnología como inversión La tecnología se empezó a ver como una inversión con la aparición de herramientas de gestión integral de la empresa, principalmente en lo que se refiere a los sistemas de ERP (1) y CRM (2) También se orientó la modernización tecnológica a la implantación de sistemas y aplicaciones de soporte de producto, como por ejemplo los paquetes de software estadístico como SPSS , de creación de informes o reporting, y minería de datos .

 La tecnología como producto o canal Poco a poco desde finales de los años 90, la tecnología se hace presente a lo largo de todo el proceso de producción y de evolución de los productos de una empresa. La adopción masiva de internet por parte del público de una compañía y de la sociedad en su conjunto facilita la llegada de la tecnología al nivel de producto en las empresas. Es en este momento cuando podemos considerar que la tecnología se empieza a usar en muchas empresas como el verdadero producto que se comercializa y sobre el que se realizan los beneficios. O como el canal de comercialización sin intermediarios. Por ejemplo, los hoteles empiezan a usar su sitio web, que es una tecnología, para permitir a sus clientes hacer sus reservas directamente.

(1) ERP: del inglés, “Enterprise Resource Planning”, son sistemas de información gerenciales que integran y manejan muchos de los aspectos relacionados con las operaciones de producción y distribución de una compañía, en la producción de bienes o servicios. Fuente: Wikipedia. Ejemplos de ERPs: Navision, SAP (2) CRM: del inglés “Customer relationship management” es un. Es decir, un sistema informático de apoyo a la gestión de las relaciones con los clientes, las venta y el marksoftware para la administración de la relación con los clienteseting. Fuente: Wikipedia. Ejemplos de CRM: SugarCRM, salesforce.com

La tecnología como ventaja competitiva

Hoy día en nuestra sociedad conectada por internet, la tecnología se ha convertido en un factor de éxito crítico en cualquier negocio. Bien ejecutada, la tecnología se puede convertir en una ventaja competitiva que diferencie a nuestra empresa y resalte su actividad sobre la de la competencia. Sin embargo, mal ejecutada, la tecnología puede representar una barrera interna al crecimiento y a la ejecución de nuestra estrategia empresarial. Es importante conocer cómo hemos llegado a esta situación y cómo, desde nuestra empresa, podemos inclinar la balanza a uno u otro lado.

La tecnología como ventaja competitiva 1. La llegada de internet Desde finales de los años 90, se produce un cambio gradual de la posición de la tecnología dentro de la empresa coincidiendo con el aumento de penetración de internet en la población y el uso generalizado del acceso a internet. Por una parte, la creciente importancia de internet fomenta la generalización de los sitios web corporativos, que constituye el primer paso de las empresas en el mundo online. Por ejemplo, la web corporativa de IBM España fue una de las primeras del mundo.

2. Presencia en todas las etapas de vida de los productos Por otra parte, el marketing online cobra cada vez una mayor importancia en las empresas y empieza a formar parte importante de sus planes y estrategias de marketing. Pero además, las empresas empiezan a plantearse usar la tecnología como un producto en sí mismo. Es decir, que las empresas van un paso más allá y crean el producto tecnológico (1). Así pues, un producto tecnológico puede ser un nuevo producto, pero también puede ser un nuevo canal de producción, distribución o promoción de un producto existente (2). En conclusión, vemos que la tecnología siempre forma parte integral del producto, aún en el segundo caso, debido a su penetración en todas las áreas de la empresa.

(1) Producto tecnológico: un buen ejemplo de producto tecnológico desarrollado por una empresa es el sistema de reservas de NH Hoteles: http://www.nh-hoteles.es/. (2) Producto existente: qué mejor ejemplo que la iniciativa de comercio electrónico de El Corte Inglés: http://www.elcorteingles.es/

La tecnología como ventaja competitiva 3. Posibilidades infinitas Internet abre un abanico de posibilidades para las empresas a muchos niveles, permitiendo llevar a cabo diferentes actividades digitales:  Web corporativa, comunicación con inversores, comunicación con clientes, web transaccional, e-Commerce. Veamos cómo una empresa como Telefónica, aprovecha cada uno de estos canales en sus actividades.  Actividades de publicidad online, eMail marketing, call-center web (videoconferencias, chats, eMail). Para seguir con nuestro caso ilustrativo de Telefónica, este es un ejemplo de espacio web en el que la compañía acerca su oferta a los clientes y trata de fidelizarlos y darles soporte técnico, etc.:  Acciones orientadas a implementar el e-Procurement, las subastas corporativas, o la integración vertical de actividades.

El caso de Telefónica      

Web corporativa, en la que presentan sus actividades: Espacio para la comunicación con inversores y accionistas: Espacio de responsabilidad corporativa y comunicación con clientes Web transaccional donde se trata de captar nuevos clientes: Espacio de comercio electrónico: Servicios de valor añadido como el “canguro electrónico”:

La tecnología como ventaja competitiva 4. Una ventaja competitiva Así pues, y como evolución de todo esto que hemos visto hasta ahora, hoy día la tecnología es vista por las empresas como una enorme posibilidad de obtener una ventaja competitiva frente a sus competidores, puesto que:      

Nuestros productos y servicios dependen cada vez más de la tecnología El dominio de la tecnología ES una ventaja competitiva Marca la diferencia en el “time-to-market”(1) Marca la diferencia en los servicios ofrecidos Marca la diferencia en la calidad de servicio Marca la diferencia en la marca

Revisa algunos ejemplos claros que ilustran lo que acabamos de explicar. Empresas que reflejan la ventaja competitiva del uso de la tecnología.    

Amazon: newcomer (2) gana la partida a incumbents (2) Google: la tecnología permite tener un bajo coste en el lanzamiento de nuevos productos Bankinter: gracias a la tecnología, el mercado tiene una mejor percepción del banco y su calidad Carne Villamaría: su tecnología permite integrar la venta de sus productos en otras webs como mumumio.com

(1) Time-to-market: tiempo que tarda una tecnología o un producto en alcanzar el mercado desde el momento de su concepción. (2) Newcomer: una empresa “newcomer” es una recién llegada al mercado (3) Incumbents: una empresa “incumbent” es aquella que lleva tiempo en un mercado y se encuentra completamente consolidada en él

Pasos para la digitalización de una PYME Las PYMEs constituyen una de las partes más importantes del tejido empresarial de cualquier país. En el mundo digital, los retos se multiplican debido a las limitaciones de los recursos disponibles, tanto en lo que respecta a medios tecnológicos como a medios humanos.

Por ello, a lo largo de todo el curso vamos a destacar y explicar de forma clara y práctica los pasos necesarios para llevar a cabo la digitalización de una PYME desde el punto de vista de la tecnología. Los pasos principales son 5 y se corresponden con los capítulos del curso. Los iremos detallando poco a poco, pero vale la pena presentarlos desde ahora:

 El dominio El primer paso de la andadura digital consiste en elegir nuestro nombre en internet; la marca con la que nuestros clientes y usuarios en general nos van a conocer y a través de la cual van a acceder a los contenidos que pongamos a su disposición. Técnicamente, esto se traduce en la elección de un nombre de dominio que se encuentre disponible y su registro a nuestro nombre.

Pasos para la digitalización de una PYME  El alojamiento Durante la segunda etapa tendremos que seleccionar la plataforma técnica más adecuada para alojar nuestras aplicaciones, tanto para la presencia web como para la presencia móvil. Esto se traduce en la contratación de un servicio de hosting (alojamiento en inglés) que sea el más adecuado para nuestras necesidades, que dependerán de la complejidad de nuestro servicio así como de la carga esperada; es decir del número de usuarios que vayan a acceder a él.  La asociación del dominio y el alojamiento Una vez registrado nuestro dominio y contratado el servicio de alojamiento, el siguiente paso consiste en asociar el uno al otro, de manera que el dominio responda con el servicio de nuestra web y aplicación móvil, alojadas ambas en el servidor contratado en el paso 2. Esta acción se lleva a cabo desde el servicio de configuración de DNS que nos ofrece la empresa con la que hemos contratado el servidor, proceso que explicamos en el capítulo correspondiente.  La presencia web Ya tenemos disponible un espacio técnico en un servidor y un dominio que está asociado (lo que se conoce como “apuntar el dominio”) al mismo, de manera que cuando nuestros usuarios tecleen la dirección del dominio será nuestro servidor el que responda. Ahora debemos instalar en nuestro espacio una aplicación capaz de responder a los usuarios y ofrecerles nuestra información y servicios, creando lo que denominamos la presencia web  La presencia móvil Del mismo modo, necesitamos poner en marcha nuestra presencia móvil en el espacio de nuestro servidor mediante la instalación de una aplicación que responda a las solicitudes de nuestros usuarios cuando éstos accedan a nuestro dominio desde un dispositivo móvil. Este paso tiene una dificultad añadida, que consiste en elegir la mejor opción de las existentes para la presencia móvil: app nativa, híbrida o webapp.

Ideas Clave  Es importante conocer la historia de la Internet y la Web, ya que es una historia larga y está llena de complejos problemas de ingeniería que hubo que resolver sobre la marcha. Las decisiones que se tomaron hace muchos años afectan plenamente al Internet tal como lo conocemos hoy día, para bien y para mal.  La tecnología ha evolucionado de ser un coste operativo a convertirse en una posibilidad tangible de obtener una ventaja competitiva en la empresa.  En función de cómo implementemos la tecnología en nuestra empresa, estaremos en condiciones de aprovecharla para hacer mejor y más potente nuestro negocio, o bien tendremos en ella una barrera a nuestro crecimiento.

 Es fundamental entender, por tanto, que en un negocio digital debemos fijarnos en muchos aspectos tecnológicos y conocer los diferentes elementos que necesitamos tener en cuenta para poder construir una presencia digital. En este curso nos centraremos en identificar y explicar estos conceptos contigo, para que entiendas los pasos que debes dar para poner en marcha un negocio online.

Capítulo 3

Arquitectura técnica de internet

¿Por qué nos importa la arquitectura? Vamos a detenernos en la arquitectura de internet para entender cómo funciona y cuáles son los procesos que tienen lugar “entre bastidores”, cuando utilizamos la web. Empezaremos repasando los conceptos técnicos fundamentales. Explicaremos el papel que juega cada uno de los elementos que intervienen en la experiencia del usuario: El navegador, la red y el servidor, y cómo se produce el intercambio de información entre ellos. Describiremos los elementos de identificación de usuarios como las cookies (1) y las direcciones IP (2), así como su funcionamiento y finalidad y entenderás cómo se identifica a los usuarios anónimos en internet. Al final de este capítulo, habrás adquirido una base de conocimiento teórico-práctica sobre la arquitectura técnica de internet y su funcionamiento y podrás comprender el proceso de interacción e intercambio de información entre el cliente y el servidor.

> Vídeo: ¿cómo funciona internet? > Vídeo: www in plain english

(1) Cookies: una cookie (o galleta informática) es una pequeña información enviada por un sitio web y almacenada en el navegador del usuario, de manera que el sitio web puede consultar la actividad previa del usuario. Fuente: Wikipedia. (2) Direcciones IP: una dirección IP es una etiqueta numérica que identifica, de manera lógica y jerárquica, a un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo IP (Internet Protocol). Fuente: Wikipedia.

¿Cómo funciona internet? El proceso que se pone en marcha cada vez que hacemos clic en un enlace dentro de una web o una aplicación móvil, o tecleamos una URL (1) permite la comunicación con el servidor donde se encuentra la página o recurso que queremos ver. El proceso es algo complejo, pero lo hemos simplificado en la ilustración de tu derecha, en la que nos centraremos en tres elementos fundamentales:

 el cliente  la red  el servidor Veamos en qué consiste este proceso:

(1) URL: del inglés HyperText Markup Language o “lenguaje de marcado hipertextual”-, es el lenguaje que se usa para describir la estructura de las páginas web y la información que éstas incluyen en forma de texto y otros objetos, como imágenes o vídeos.

¿Cómo funciona internet? 1. Envío de la solicitud El cliente web, es decir el navegador o la app móvil que estamos usando lanza una solicitud al servidor correspondiente (este está identificado dentro de la URL) a través de internet, que actúa como capa de comunicaciones. Por ejemplo, si pedimos la página de deportes de la web de El País, la solicitud se dirigirá al servidor de El País (en este caso, elpais.com).

2. Recepción de la solicitud Cuando el servidor recibe la solicitud busca en su estructura de ficheros y contenidos aquél que hemos solicitado (en este caso, la página de deportes, que podría ser por ejemplo deportes.html) y lo devuelve a nuestro navegador o aplicación móvil, de nuevo a través de internet.

3. Envío de la respuesta Nuestro navegador o app recibe la página del servidor, que está codificada en lenguaje HTML (del inglés HyperText Markup Language o “lenguaje de marcado hipertextual”-, es el lenguaje que se usa para describir la estructura de las páginas web y la información que éstas incluyen en forma de texto y otros objetos, como imágenes o vídeos) y tras decodificarla, interpreta las órdenes que contiene, que determinan la forma en que la información se muestra finalmente en nuestro dispositivo. En este momento vemos la página solicitada y podemos navegar por ella.

Primer elemento: el cliente Vamos a ver con más detalle qué es y cómo funciona cada uno de los elementos que participan en el proceso de comunicación. El primero de ellos es lo que denominamos el cliente. Se trata del navegador o la aplicación móvil (app) y el concepto de cliente procede del hecho de que es el elemento que solicita los servicios y la información. Es la parte “consumidora” de la información y las páginas que almacena el servidor, que en este sentido actuaría como “proveedor”.

> Vídeo: ¿qué es un navegador?

> Vídeo: ¿qué es una app?

Primer elemento: el cliente El cliente web: el navegador Es el más tradicional de los programas que nos permiten interactuar con los contenidos de internet. El navegador no es el sistema operativo, sino que se ejecuta en él. Es un programa que permite visualizar los sitios web que se encuentran alojados en los servidores. Algunos ejemplos son: Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, o Apple Safari. El navegador se comunica con los servidores para pedirles servicios, por ejemplo la información de una página web, y éstos le prestan el servicio solicitado, por ejemplo devolviéndoles el HTML de la página web solicitada. Así que un navegador es una aplicación informática (1) que se ejecuta en el sistema operativo del dispositivo (ordenador, móvil, tableta, etc) conectado a la red y que muestra las páginas de los sitios web, interpretando su código HTML y generando los textos, imágenes y resto de elementos que contiene la descripción de la página recibida. Es importante destacar que usando una única aplicación instalada (el navegador) se puede acceder a todos los sitios web, simplemente solicitando la URL de la web que queramos ver.

(1) Aplicación informática: en informática, una aplicación es un tipo de programa informático diseñado como herramienta para permitir a un usuario realizar uno o diversos tipos de trabajos. Esto lo diferencia principalmente de otros tipos de programas como los sistemas operativos (que hacen funcionar al ordenador), las utilidades (que realizan tareas de mantenimiento o de uso general), y los lenguajes de programación (con el cual se crean los programas informáticos). Fuente: Wikipedia

Primer elemento: el cliente El cliente nativo: la app Hasta la aparición de los teléfonos móviles inteligentes (“smartphones”) el navegador era el único programa que se usaba para acceder al contenido online de los diferentes sitios de la red. Con la llegada de estos dispositivos y su adopción masiva por parte de los usuarios, aparecen las llamadas “apps”, que son programas con capacidad para acceder a ese mismo contenido online, de forma independiente. Una App –la palabra procede de la abreviatura de “Application”, aplicación informática o programa de ordenador- es una pequeña aplicación diseñada para cumplir una funcionalidad muy concreta y definida. Una empresa puede hacer su servicio accesible desde su propia aplicación, de la misma forma que lo hace desde su sitio web. Las Apps se instalan en el dispositivo móvil (Smartphone, tablet, TV interactiva, etc.) y cumplen la misma función que el navegador, pero únicamente para una funcionalidad o un servicio concreto. Es decir que una app solo se puede usar para visualizar el contenido del proveedor concreto que la ha publicado. Por ejemplo desde la app de El Mundo solamente podemos acceder al contenido del sitio web de El Mundo, y no al de El País, mientras que usando un único navegador podríamos acceder a ambos usando sus URLs respectivas: http://www.elmundo.es/ y http://elpais.com/ Las apps son menos dependientes del servidor que los sitios web que se visualizan en el navegador, e incluso pueden ser autosuficientes (es decir no necesitar servidor ni por lo tanto conexión a internet) . Además, hay apps que pertenecen al propio sistema operativo, como por ejemplo la alarma o la agenda.

Segundo elemento: la red Más que una red, Internet (el nombre “Internet” procede de “Interconnected Networks”) es una red de redes interconectadas. La red es simplemente la infraestructura (1) que permite que el cliente y el servidor se comuniquen e intercambien peticiones y respuestas ente sí. Es un conjunto de ordenadores y de redes de ordenadores que se encuentran interconectados, mediante múltiples topologías de red: estrella, anillo, etc. Estos nombres hacen referencia a la forma (2) en que los ordenadores y redes de ordenadores se conectan entre sí.

(1) infraestructura: conjunto de elementos o servicios que se consideran necesarios para la creación y funcionamiento de una organización cualquiera. Infraestructura aérea, social, económica. Fuente: RAE (2) Forma: por ejemplo, en una red “estrella”, todos los ordenadores están conectados al elemento central, de manera que cualquier comunicación entre ellos debe necesariamente pasar por el central.

Segundo elemento: la red  Como una red de carreteras La arquitectura de la red es muy similar a las de las carreteras, con diferentes capacidades, estructuras y dueños, pero que se conectan unas a otras de forma sencilla, permitiéndonos pasar de unas a otras y llegar a nuestro destino, desde cualquier origen. Basta que tengamos un coche (en nuestro caso sería el ordenador o móvil) y acceso a la carretera (una conexión a internet) Los ordenadores, los servidores y el resto de dispositivos de internet están diseminados por la red y se conectan entre sí. Cuando estamos conectados a Internet pasamos a formar parte de ella, es decir que internet es el todo.

 Estructura de capas La red se estructura en capas. En el núcleo se encuentran las redes que constituyen el backbone, que son las estructuras principales y de mayor capacidad que conectan los centros más importantes. Serían las autopistas si retomamos nuestro ejemplo anterior. En los bordes de la red se encuentran los ISPs . No debemos confundir la red con el ISP, ya que este es únicamente el punto de entrada de los usuarios a la red; está en la capa más externa de la red. Más información sobre los ISPs (Internet Service Provider” o Proveedor de Acceso a Internet- es el operador que ofrece a los usuarios el servicio de conexión básico a la red).

Tercer elemento: el servidor Los servidores son ordenadores potentes, que ofrecen servicios a los navegadores, a otros clientes y también a otros servidores. Un servidor recibe peticiones de servicio, procedentes de los navegadores y de otros servidores, las atiende y envía las respuestas necesarias. Es donde la empresa instala su aplicación web, quedando así accesible y disponible para los usuarios. En ellos, se ejecutan aplicaciones especiales llamadas software de servidor, que son las que implementan los servicios ofrecidos. La palabra “servidor” suele hacer referencia a los servicios prestados por las máquinas más que a las máquinas en sí.

Factores a tener en cuenta para configurar correctamente un servidor Hay muchos servicios que un servidor puede ofrecer. Estos servicios se distinguen por la aplicación que ejecutan. Así, existen aplicaciones de servidor Web, servidor de correo, servidor de streaming de vídeo, servidor DNS (un servidor DNS, acrónimo de Domain Name Server, es un servidor que traduce el nombre de un dominio a la IP correspondiente; veremos el concepto en el capítulo siguiente), etc. A la hora de seleccionar y configurar un servidor para los servicios digitales de nuestro negocio, es importante tener en cuenta una serie de factores de decisión críticos. Estos son:     

Alojamiento Dimensionamiento Conectividad Tolerancia a fallos Escalabilidad

Veamos en qué consiste cada uno: > Más información

Tercer elemento: el servidor Alojamiento El servidor debe estar colocado en un centro de datos, que le proporcione la potencia necesaria y también la conectividad con internet, además de otros elementos adicionales como seguridad física y lógica, climatización, protección de datos, etc. El alojamiento de nuestro servidor puede ser externalizado (es el concepto de hosting) o interno (lo que se denomina “in-house”)

Dimensionamiento Este es posiblemente el aspecto que más necesitamos cuidar, a la hora de configurar nuestro servidor. Se trata de determinar la capacidad de procesamiento (1) que debe tener el servidor, en función de la aplicación de que se trate y del tráfico esperado. También hay que tener en cuenta la existencia de picos de demanda (2) de servicio.

(1) Capacidad de procesamiento: la capacidad de procesamiento de un servidor es su potencia, la cantidad de carga que puede soportar en un momento dado. (2) Picos de demanda: un pico se produce cuando se registra un aumento de solicitudes al servidor, en poco tiempo

Tercer elemento: el servidor Conectividad La conectividad es un concepto similar al dimensionamiento, pero se aplica al ancho de banda de la conexión a internet del servidor en el backbone. Es necesario por tanto, calcular la cantidad de ancho de banda que tendrá que tener la conexión del servidor a internet, para ser capaz de atender correctamente todas las peticiones que recibirá.

Tolerancia a fallos

Este es un concepto que implica la seguridad del servidor y su capacidad de responder a fallos del sistema, que lo dejen inservible y por tanto sin servicio (lo que se denomina “caída del servidor”). Son las medidas a llevar a cabo para evitar la caída del servicio, por congestión debida a un alto tráfico, problemas por fallos en el hardware del servidor (discos duros, procesadores, etc.) o por ataques exteriores producidos por solicitudes de servicio masivas.

Escalabilidad La escalabilidad de un servidor es la posibilidad que ofrece para aumentar su capacidad en poco tiempo. Esto es especialmente importante, ya que en internet la carga de un servidor puede variar bruscamente y aumentar de manera notable, si el servicio alcanza una alta popularidad. En ese caso, es necesario que la capacidad del servidor pueda ser variada rápidamente.

Sistema de identificación

Una vez que conocemos los diferentes elementos que entran en juego en la comunicación entre nuestro navegador y los servidores y entendemos la relación entre ellos, vamos a profundizar en los conceptos clave de cada uno. Nos interesan principalmente los componentes que permiten llevar a cabo la identificación de todos los actores, clientes y servidores. Estos son:

 Las direcciones IP  Los dominios  Los servidores DNS.

Las direcciones IP Si recordamos el esquema que hemos visto anteriormente, para que las comunicaciones entre el cliente y el servidor sean posibles, es necesario poder identificar a ambos como “destinatario” y “remitente”. Pues bien, ese es el objetivo de las direcciones IP. Las direcciones IP son simplemente números que sirven para identificar a cada uno de los dispositivos que se encuentran conectados a internet en un momento determinado. Cada ordenador, servidor u otro dispositivo que se encuentre conectado a la red Internet, tiene asignada una dirección IP que le identifica unívocamente.

 IPs de clientes y servidores Los servidores tienen una dirección IP asignada permanentemente –lo que se denomina “IP fija”-, mientras que en el caso de los clientes –recordemos que son los navegadores y las apps- es el ISP (recordemos que el ISP es el proveedor de acceso a internet) el que asigna su IP en el momento de la conexión.  ¿Quién asigna las IPs? Los ISPs asignan generalmente las IPs de forma dinámica a los dispositivos cliente que se conectan a ellos, con el objetivo de optimizar el uso del conjunto de direcciones IP, que es un número finito.  ¿Quién gestiona las IPs? Las direcciones IP de Internet son gestionadas y asignadas a los ISPs y otras redes de forma centralizada por ICANN (Internet Corporation for Assigned Names and Numbers, organismo independiente responsable de gestionar de forma centralizada la mayor parte de los aspectos técnicos de internet). Si quieres saber más sobre la ICANN sigue este enlace.

Las direcciones IP ¿Cuántas IPs hay? Las direcciones IP tienen una sintaxis de 4 números de 3 dígitos –entre 0 y 255- separados por puntos. Es decir, una IP tiene la forma aaa.bbb.ccc.ddd, donde aaa, bbb, ccc, y ddd son números entre 0 y 255. Esto supone la existencia de 256x256x256x256 direcciones IP diferentes; es decir unos 4.300 millones. Un ejemplo de dirección IP sería 158.217.30.59

¿Hay IPs para todos? Este número de direcciones IP, más que suficiente cuando se lanzó Arpanet, la primera versión de lo que hoy es internet, se ha quedado insuficiente en la actualidad con el crecimiento exponencial del uso de internet en el mundo. Pensemos que existen 2.000 millones de personas conectadas a internet, y que cada dispositivo consume una dirección IP. Así que se ha desarrollado una nueva versión del protocolo (1) IP, IPv6, con el objetivo de disponer de un mayor número de direcciones disponibles. Aquí tienes toda la información sobre esta nueva versión del protocolo.

(1) Nueva versión del protocolo  La versión 6 del protocolo se empieza a definir en 1996, cuando se hizo evidente que IPv4 se quedaría corto tarde o temprano. El 1 de febrero se agotaron las IPs y comenzó la migración a IPv6.  IPv6 codifica de forma diferente las direcciones IP, utilizando 128 bits frente a los 32 de IPv4. El nuevo sistema utiliza 8 números de 4 dígitos cada uno en codificación hexadecimal: de 0000 a FFFF. Habrá por tanto 2128 direcciones IP diferentes con el uso de IPv6; es decir unos 340 sextillones.  IPv6 no es interoperable con IPv4, y no es posible llevar a cabo una migración masiva de todos los nodos de la red, por lo que es necesario utilizar mecanismos que permitan la convivencia durante un periodo de transición (unos 20 años).

Asignación de IPs y routers Normalmente, los ordenadores y otros dispositivos clientes se encuentran interconectados entre sí, en una red local en la oficina, o en casa, y se conectan a la red Internet a través de un router (1), que es el dispositivo que dispone de una IP (dinámica o fija) asignada por el ISP. Cada ordenador, dentro de la red local, tiene una IP interna. El router dispone de dos direcciones IP:  IP interna: correspondiente a la red local  IP externa o pública: correspondiente a Internet.

¿Qué es un Router? 1. El router es capaz de hacer de comunicador entre los ordenadores de la red local y los servidores de Internet. A estos efectos, todos los ordenadores de una misma red local acceden a Internet usando la misma dirección IP pública: la IP del router. 2. Tren presente que los servidores tienen IPs fijas (cuando un servidor tiene una IP fija significa que ésta es siempre la misma, independientemente del tiempo que pase o de que el servidor se conecte y desconecte de la red), asignadas por el proveedor de alojamiento. 3. Una conclusión de negocio fundamental, es que no es posible identificar a los usuarios a través de la dirección IP por la que acceden al sitio web de nuestra empresa, puesto que dicha dirección IP cambia con el tiempo y además se encuentra compartida por varios dispositivos.

(1) Router. Un router es un dispositivo que proporciona conectividad a una red. Su función principal consiste en enviar o encaminar comunicaciones de una red a otra (por ejemplo, la red de casa o de la oficina, a internet), para lo que usan diferentes tecnologías de acceso a internet, como por ejemplo el ADSL, cable, o conexión 3G (es decir, a través de las redes móviles)

Los dominios Como hemos visto anteriormente, los servidores se identifican en internet mediante su dirección IP (recordemos: Las direcciones IP son números que sirven para identificar a cada uno de los dispositivos que se encuentran conectados a internet en un momento determinado), igual que los clientes y en general todos los dispositivos conectados a la red. Este sistema de identificación numérica, que funciona perfectamente en su aspecto técnico (es decir, de cara a las máquinas), es sin embargo tremendamente incómodo para las personas. ¿Os imagináis tener que recordar la dirección IP de los servidores a los que queremos acceder? Más que incómodo, sería inviable. Para salvar este escollo utilizamos los dominios.

¿Qué es exactamente un dominio? Los dominios son los nombres que se asigna a los servidores de internet para facilitar su localización e identificación por parte de los usuarios que acceden a sus servicios. Se componen de un nombre (por ejemplo isdi, elmundo) seguido de un “sufijo” o “extensión” (por ejemplo .es, .com, o .co.uk). Existen dos tipos de dominios: los dominios genéricos y los dominios territoriales

Los dominios Los dominios genéricos Los dominios genéricos, también llamados internacionales o globales, son los dominios básicos en internet y los más utilizados. Son los dominios originales, los que se inventaron en el momento de la ceración de la primera versión de internet. Los nombres de dominio genéricos tienen terminaciones formadas por 3 o más letras.

¿Cuáles son exactamente los dominios genéricos? Los dominios genéricos son los siguientes:  .com: previsto para empresas comerciales. Es el dominio más común en internet.  .org: previsto para organizaciones sin ánimo de lucro, instituciones y fundaciones.  .net: previsto para empresas relacionadas con internet y la gestión de la red en general.  .edu: los dominios con esta terminación son utilizados para fines educativos: universidades, centros de investigación, etc.

Los dominios territoriales Los dominios territoriales, también llamados dominios geográficos, son los dominios mantenidos por cada país. Estos dominios territoriales son utilizados por las organizaciones y empresas que desean establecerse en internet y proteger la identidad de su marca o su nombre comercial en un país concreto. Los dominios territoriales tienen sus terminaciones compuestas por 2 letras; por ejemplo en España empleamos el dominio ".es".

Registro de dominios Para poder utilizar un dominio en nuestro servidor, y por tanto en nuestro sitio web alojado en él, debemos registrarlo a nuestro nombre. El concepto de registro de un dominio implica dos pasos secuenciales y complementarios. El primero es la reserva del mismo a nuestro nombre o el de nuestra empresa, y el segundo consiste en realizar la asociación del dominio registrado a nuestro servidor y sitio web alojado en él.

> Wikipedia > Vídeo 1: ¿Qué es un dominio? > Vídeo 2: ¿Qué es un dominio?

Concepto de registro El primer concepto que debemos aclarar para evitar confusiones es que los dominios no se compran, sino que se registran por un periodo de tiempo determinado y limitado de antemano . Por ello, sería más preciso hablar de procesos de “alquiler” de los dominios. Aunque tampoco debemos ponernos nerviosos, ya que en principio nadie nos puede quitar “nuestro” dominio, puesto que el periodo de alquiler (o sea de registro) puede ser ampliado en ocasiones sucesivas y de forma indefinida).

Registro de dominios ¿Dónde registrar un dominio?

Mercado de dominios

Los dominios se registran por periodos anuales en las entidades registradoras (las empresas que comercializan los dominios, permitiendo su registro por parte de empresas y particulares) que gestionan los dominios de cada país, y su coste es muy bajo (10€ al año o similar), por lo que se registran muchos con diferentes y muy variadas intenciones: internacionalizar el negocio, proteger la marca, hacer negocio con los dominios mediante compra-venta y otras técnicas, etc.

Existe un mercado de compra-venta de dominios muy fuerte. Como ejemplos recientes, podemos citar estas transacciones: $8,5M por fb.com, $13M por sex.com. Para ampliar información sobre este mercado y su funcionamiento, podéis consultar la web de Sedo, mercado de compra-venta de dominios, o la sección de subastas de dominios de Godaddy.

Veamos algunos ejemplos de negocios basados en la adquisición de dominios.

Por otra parte, es importante señalar que existe legislación y jurisprudencia (1) sobre la titularidad de dominios, lo cual dificulta la apropiación de dominios de marcas ajenas, pero no elimina el problema. Esto no hace más que subrayar la importancia de establecer una buena estrategia de gestión de dominios para nuestra empresa o proyecto online desde el principio.

(1) Algunos recursos interesantes para entender mejor la legislación y la jurisprudencia existente, sobre la titularidad de los dominios y su propiedad intelectual: http://www.bufetalmeida.com/133/usurpacion-de-dominios-y-derecho-penal.html http://www.accursio.com/karras_-_domain_names.pdf http://www.dominiuris.com/casos/espanya.htm

Registro de dominios Titularidad de los dominios

Empresas registradoras

Para registrar un dominio, primero debemos asegurarnos de que el dominio que queremos registrar esté libre, es decir, que nadie lo haya registrado ya. Para ello usaremos el servicio denominado WHOIS (1), de consulta de información de dominios.

Una vez que hayamos decidido el nombre de dominio que queremos registrar, podemos hacerlo a través de cualquier empresa de venta de dominios. Se trata de un mercado libre, por lo que los precios variarán según la empresa y las promociones.

En el caso de los dominios genéricos, la información correspondiente se puede consultar en el servicio whois oficial y central.

Algunas empresas registradoras de dominios recomendables son por ejemplo:

Los datos correspondientes a los dominios territoriales deben consultarse en el WHOIS del NIC que gestiona el dominio. Por ejemplo, en el caso de España se pueden consultar en el servicio whois dependiente de red.es.

 Namecheap:  Go Daddy:  Dinahosting: (en castellano)

(1) WHOIS: es un comando (también puede ser una página web, como veremos a continuación) que se utiliza para efectuar consultas para determinar el propietario de un nombre de dominio o una dirección IP en Internet

Registro de dominios Más poder: los subdominios Una vez registrado un dominio, se pueden crear subdominios (como por ejemplo madrid.elmundo.es, que sería un subdominio del dominio principal elmundo.es) de cualquier nivel de forma gratuita. Esto resulta de gran utilidad en muchas ocasiones, ya que nos permite disponer de muchos “dominios virtuales” mediante el registro de uno solo de ellos. Cada uno de los subdominios de un dominio se comporta de igual forma que el dominio al que pertenece, de manera que cada subdominio se puede asignar a un servidor diferente, y por tanto a una web distinta.

Los servidores DNS Como hemos visto, las direcciones IP no son intuitivas de recordar, así que en su lugar las personas utilizamos nombres para identificar a los servidores que se encuentran en la red. Estos nombres son lo que denominamos dominios (ejemplos de dominios: isdi.es, internetacademi.com, realmadrid.com). Sin embargo, los servidores y la red sigue funcionando sobre la base de la identificación de dispositivos mediante sus direcciones IP, por lo que para que el sistema funcione y sea factible operarlo, necesitamos un servicio de traducción o algo similar. Y efectivamente, un servidor DNS (DNS, Domain Name Server, servidor de nombres de dominio) es un servicio que traduce un nombre de dominio (lenguaje humano) a la IP del servidor (lenguaje de la máquina).

Los servidores DNS ¿Cómo funciona el servicio DNS?

Configuración de registros DNS

Veamos en tres sencillos pasos cómo funciona un servidor DNS en la práctica:

Una vez tengamos el dominio registrado, tendremos que hacer apuntar nuestro dominio a nuestro proveedor de DNS. Generalmente, será la misma empresa donde hayamos comprado el dominio la que nos ofrecerá gratuitamente este servicio.

 El proveedor de un servicio –es decir, el servidorasocia su IP a un dominio usando un servidor DNS (escribe la entrada DNS). Veremos cómo llevar a cabo este proceso en la siguiente página de este capítulo.  El consumidor del servicio –el cliente- usa el servidor DNS para localizar la IP a la que corresponde el dominio al que se quiere acceder (lee la entrada DNS).  Los múltiples servidores DNS que hay en Internet replican las entradas de traducción dominio/IP unos de otros.

Finalmente, hay que gestionar lo que se denomina la zona del DNS, normalmente a través de un "panel de control" que ofrece la empresa registradora. Desde dicho panel haremos que el dominio resuelva a la IP de nuestro proveedor de hosting, y haremos que los registros "MX“ que se encargan de gestionar el correo para el dominio, apunten a nuestro proveedor de correo. Si contratamos dominio+hosting+correo con el mismo proveedor, estos pasos probablemente no sean necesarios, ya que vendrán pre-configurados por defecto. En el siguiente paso, veremos un ejemplo de zona del DNS y este concepto quedará completamente aclarado.

Los servidores DNS Un ejemplo práctico Este es un ejemplo real de configuración de la zona DNS de un dominio desde el panel de control del registrador:

La dificultad de la identificación en internet Las comunicaciones entre cliente y servidor son por naturaleza independientes unas de otras; dentro de una “comunicación” entre navegador y servidor, cada petición del navegador es tratada de forma aislada por el servidor. Este concepto es el denominado comunicaciones sin estado (stateless) El comportamiento “anónimo” e independiente de la comunicación implica que no existe un concepto de estado dentro de un determinado intercambio múltiple de transacciones. Un estado se puede considerar como una memoria de eventos anteriores ocurridos en la interacción del servidor con un mismo usuario.

Para una aplicación, como es un sitio web, resulta fundamental disponer de un estado que permita reflejar la situación de cada una de las conversaciones que está teniendo con los diferentes clientes. También es importante poder identificar de alguna forma las peticiones que se reciben en ambos extremos de la comunicación. La solución a esta falta de información nativa son las denominadas cookies.

Las cookies Seguro que habéis oído hablar muchas veces de las llamadas cookies. Es un término muy utilizado en el contexto de internet, y no exento de polémica. De hecho la Unión Europea ha legislado ya al respecto. En los próximos pasos vamos a ocuparnos de explicar lo que son las cookies y para qué las podemos usar en nuestra estrategia online.

¿Qué es una cookie? Una cookie es un fragmento de información que se almacena en el disco duro del visitante de una página web a través de su navegador, a petición del servidor de la página. Esta información puede ser luego recuperada por el servidor en posteriores visitas. Es decir que a partir del momento en que un usuario visita por primera vez nuestra web –nuestro dominio, para hablar con propiedad- queda “marcado” por nuestra cookie, y en todas las visitas posteriores del mismo usuario aportará su cookie con él, de manera que podremos reconocerlo e identificarlo como “visitante repetidor”.

> Más información > Vídeo: ¿Qué es una cookie? > Guía sobre el uso de cookies

Las cookies Características de una cookie

Cookies de sesión

Una cookie está ligada y limitada al dominio o subdominios que componen su ámbito, de manera que se transmite automáticamente del navegador al servidor cuando el usuario hace una petición a dicho dominio. De esta forma evitamos el problema de la falta de estado en las comunicaciones online.

Un caso especial que merece ser mencionado por su importancia en la navegación y la construcción de cualquier sitio web son las llamadas cookies de sesión. Estas cookies son fundamentales porque nos permiten mantener información dentro de una sesión (1). Por ejemplo, en una web que necesita la identificación del usuario, como la web de un banco, las cookies de sesión permiten que el usuario no se tenga que identificar más que una vez, al principio del uso de la web, y se mantenga identificado a lo largo de toda su navegación y operativa por la web del banco.

Además, destaquemos que cada cookie que el servidor escribe en el navegador de un usuario tiene un nombre, un ámbito (es decir, un dominio o subdominio), un valor y una fecha de caducidad después de la cual es borrada automáticamente. La cookie tiene también un límite en su tamaño máximo. Puede haber varias cookies para un mismo dominio, y es importante recalcar que una cookie solamente puede ser leída por el servidor del dominio que la ha creado; opcionalmente también la pueden leer los servidores de cualquier subdominio.

Las cookies de sesión son temporales, ya que solo duran el tiempo que se encuentre activa la sesión del navegador o hasta que el servidor las hace caducar expresamente. En los actuales navegadores basados en pestañas, la sesión es válida siempre que no se cierre el navegador al completo, aunque ya se haya cerrado la pestaña del dominio de la cookie.

(1) Sesión: una sesión se define como una serie de interacciones del mismo usuario con una web en el tiempo. Si el usuario pasa más de un determinado tiempo sin usar la web o cierra su navegador, se considera que la sesión se acaba

Las cookies ¿Cómo funcionan las cookies?

Algunos ejemplos

Las cookies no son más que trozos de datos definidos por el servidor web y enviados al navegador. El navegador devuelve las cookies sin modificar al servidor que “ordenó” escribirlas en primer lugar, reflejando así un estado en las comunicaciones, que de otra manera serían independientes de estado, como hemos visto anteriormente.

 Cookie de pre-identificación. Permite a los servicios online “recordar” a los usuarios y pre-identificarles al acceder al sitio web. Por ejemplo: cesta de la compra, personalización del saludo, del contenido, pre-relleno del nombre de usuario, etc. Ver ejemplo

De esta forma, el navegador proporciona al servidor un medio para relacionar la solicitud de la página actual con solicitudes de páginas anteriores. Las cookies son fundamentales en el ecosistema de los negocios digitales, ya que sin ellas cada petición de una página web o un componente de una página web sería un evento aislado, sin ninguna relación con el resto de peticiones de otras páginas del mismo sitio realizadas por el mismo usuario. Como dueños de un sitio web, sin el uso de las cookies no podríamos relacionar las peticiones entre sí y deducir el comportamiento de nuestros usuarios y su evolución en el tiempo.

 Cookie de sesión de autenticación. Como hemos visto antes, la cookie de sesión es un tipo especial de cookie que solamente tiene validez mientras el navegador está abierto. La sesión de autenticación sirve para permitir al usuario acceder a varias páginas del sitio web sin tener que autenticarse en cada una de ellas. En ocasiones, el servidor establece una duración máxima de vida para la cookie, sin embargo.

Las cookies Cookies de terceros

Cookies y privacidad

Las cookies de terceros o “third party cookies” son aquellas que se escriben en el navegador del usuario por parte de un dominio cuando éste visita una página alojada en un dominio diferente.

Las cookies también presentan cuestiones y problemáticas importantes en relación con la privacidad de los usuarios y de los datos que comparten con el servidor y nuestro servicio. Sobre este tema hay muchas opiniones de toda índole, y se lanzan continuamente leyes y normas que tratan de regular la cuestión.

Las cookies de terceros son especialmente importantes y poderosas porque son las que se utilizan en las comunicaciones con los Ad Servers, pues es un caso en el que un dominio recogerá información sobre la navegación en todos los sitios web que integren una pieza de publicidad servida por dicho dominio, y luego podrá usar dicha información en otros dominios. Una aplicación directa de esta técnica es el llamado “remarketing”, que consiste en ofrecer al usuario en una web, un producto por el que anteriormente se ha interesado al visitar una web diferente.

En este vídeo podemos ver una exposición del problema en tono de humor. Te dejamos aquí también algunos artículos y recursos para que te hagas una mejor idea de la problemática y las opiniones de algunos destacados expertos en la materia:

• Artículo del bufete Almeida • La polémica según Enrique Dans

Completemos el esquema Ahora que conocemos con mayor detalle los elementos que participan exactamente en el proceso de comunicación entre el cliente y el servidor, podemos revisar y completar el esquema gráfico presentado al principio de este capítulo. Como ves, hemos añadido la consulta previa al servidor DNS, con lo que completamos el proceso, siempre centrándonos en los tres elementos de base:  el cliente  la red  el servidor Vamos a repasar cada uno de los pasos:

Completemos el esquema Resumen visual

Completemos el esquema 1. Consulta del dominio El cliente, es decir el navegador o la app móvil que estamos usando, hará una consulta al servidor DNS para averiguar a qué dirección IP debe dirigir la solicitud de la URL solicitada por el usuario. Dicha dirección IP es la que corresponde al dominio de la URL, por lo que el cliente enviará al servidor DNS el dominio como parámetro de búsqueda.

2. Recepción de la IP El servidor DNS busca en su base de datos el dominio solicitado y devuelve al cliente, a través siempre de internet, la dirección IP que le corresponde.

3. Envío de la solicitud Una vez conocida la dirección IP a la que dirigirse, el cliente lanza una solicitud al servidor correspondiente usando su dirección IP y su URL. La solicitud viaja a través de internet, que actúa como capa de comunicaciones. Por ejemplo, si pedimos la página de deportes de la web de El País, la solicitud se dirigirá al servidor de El País (en este caso, elpais.com). Con la solicitud viaja también la cookie que el servidor previamente hubiese escrito, de ser el caso.

4. Envío de la respuesta Cuando el servidor recibe la solicitud busca en su estructura de ficheros y contenidos aquél que hemos solicitado (en este caso, la página de deportes, que podría ser por ejemplo deportes.html) y lo devuelve a nuestro navegador o aplicación móvil, de nuevo a través de internet. Nuestro navegador o app recibe la página del servidor, que está codificada en lenguaje HTML (1) y tras decodificarla, interpreta las órdenes que contiene, que determinan la forma en que la información se muestra finalmente en nuestro dispositivo. En este momento vemos la página solicitada y podemos navegar por ella

(1) HTML Del inglés HyperText Markup Language o “lenguaje de marcado hipertextual”-, es el lenguaje que se usa para describir la estructura de las páginas web y la información que éstas incluyen en forma de texto y otros objetos, como imágenes o vídeos.

Ideas Clave  La arquitectura de internet se basa fundamentalmente en el proceso de comunicación entre los clientes (o sea, los usuarios) ya sea el navegador o la app móvil y los servidores (o sea, las webs).  Las direcciones IP son números que identifican tanto a los usuarios como a los servidores.  Los dominios son los nombres que damos a los servidores para que los usuarios puedan recordarlos y acceder a ellos de forma sencilla.  Los servidores DNS actúan como sistemas que traducen los dominios a direcciones IP. El funcionamiento es análogo al de las agendas telefónicas.  Las cookies son pequeños trozos de información que los servidores utilizan para “marcar” a los usuarios y saber cuando vuelven a la web. Sus usos son múltiples, y resultan fundamentales para conseguir el funcionamiento de internet como lo conocemos hoy día.

Aquí tienes un resumen de todo lo que hemos visto hasta ahora. Te será muy útil para recapitular y fijar todos los conceptos que hemos visto en este capítulo

Capítulo 4

Hardware: servidores e infraestructura

¿Por qué nos importa la infraestructura? En este capítulo vamos a centrarnos en el primer punto importante que como empresa debemos considerar a la hora de planificar nuestra presencia en internet: el aspecto “hardware”. El hardware se refiere a las máquinas y la infraestructura técnica necesarios para el funcionamiento de un sitio web o presencia online en general. Si te estás preguntando las razones por las que tratamos este tema, la respuesta es que cuando montamos un proyecto digital o planificamos nuestro sitio web, el mismo depende del servidor, y el servidor es la pieza hardware de la arquitectura (Explicarlo algo más familiar, practico y aterrizado.

Vamos a ver conceptos como el hosting, los servidores privados virtuales, o el cloud computing o computación en la nube. Sí, la famosa nube! Estudiaremos las diferencias entre cada opción, con sus correspondientes ventajas e inconvenientes, y te enseñaremos a elegir entre ellas, en función de lo que quieras hacer con tu web y los requisitos que ésta conlleve. Porque de poco serviría que lanzases una web estupenda, si luego no dispones de una infraestructura capaz de gestionarla. > Más información sobre hardware

¿Qué es el hosting? El hosting es un concepto familiar para todas las personas que tienen contacto con el medio online. El hosting no es más que el sistema genérico de alojamiento de nuestra web, la parte hardware de nuestra aplicación digital. Consiste en disponer de un servidor con una determinada capacidad y funcionalidades, conectado de forma permanente a internet a través de un proveedor de acceso y también encendido permanentemente, donde instalaremos nuestra aplicación web.

Concepto de alojamiento El concepto de instalación de la aplicación se corresponde directamente con el de “alojamiento”, puesto que se trata de dar un espacio a nuestra aplicación dentro de un servidor con todos los requisitos para que ésta pueda funcionar. Sería comparable al alquiler de un lugar para vivir, en el caso de las personas. Una casa amueblada que se pone en alquiler ya está preparada para que una persona pueda vivir en ella, es decir dispone de conexión a la red eléctrica, la red telefónica, agua, y resto de suministros necesarios. También ofrece lugar para “residir”, es decir espacio físico, y al estar amueblada está lista para entrar a vivir sin necesidad de hacer nada más. En ese sentido constituye una opción de alojamiento “llave en mano”. Una solución de hosting es a nuestra web lo que la casa de alquiler al inquilino.

¿Qué es el hosting? ¿Quién ofrece el servicio? Para llevar a cabo el proceso de publicación de nuestro sitio web, empezaremos por seleccionar un proveedor de hosting. Estos proveedores suelen coincidir con los registradores de dominios que hemos visto en el capítulo anterior, y su oferta, aunque variada, se estructura siempre en torno a un mismo esquema de niveles de servicio y prestaciones. Ejemplos de proveedores:  En España: Hostalia , Arsys, Acens  En el extranjero: Hostgator , Bluehost, GoDaddy  Ejemplo de comparador de proveedores: Find my hosting ¿Cuáles son las modalidades de hosting? Las modalidades más comunes de hosting son tres, y como hemos dicho antes constituyen la oferta casi estandarizada de las diferentes empresas de alojamiento. Por ello la diferencia entre proveedores no suele estar en su oferta sino más bien en su calidad, niveles de servicio y por supuesto su precio. Son estas:  Hosting Compartido (Shared Hosting)  Servidor Privado Virtual (VPS)  Hosting Dedicado (RPS) En los siguientes puntos de este mismo capítulo, veremos en qué consisten y en qué casos es más adecuada cada una de ellas.

Hosting compartido El hosting compartido es el método de alojamiento más barato, ideal cuando empezamos con una web simple, que no sea crítica para nuestro negocio. Cuando contratamos este servicio, compartimos un mismo servidor y por tanto sus recursos con otros clientes que están alojados en la misma infraestructura que nosotros. Así pues, el uso de los principales recursos de la máquina se comparte; principalmente: memoria, procesador –se suele denominar CPU (Central Processing Unit, Unidad Central de Procesamiento. Es el procesador del servidor) y ancho de banda. ¿Qué es la “sobreventa” ? Al tratarse del modelo más barato, muchos proveedores hacen sobreventa – es lo que se denomina generalmente “overselling”-. Este modelo consiste en que el proveedor asume que los clientes no llegarán a usar el 100% de las capacidades contratadas, por lo que para ahorrar costes crea unos planes con unas características que si todos sus clientes decidieran usar al 100% el sistema no podría con ello y se saturaría. Inconvenientes de este servicio A veces, uno o varios de los clientes que comparten el servidor con nosotros pueden tener picos de tráfico o de carga en el servidor en un momento determinado y en consecuencia consumir todos los recursos de la máquina. En estos casos puede ocurrir que el cliente que consume de más deje al resto de dominios alojados en el mismo servidor, sin servicio.

Servidor privado virtual (VPS) El VPS – siglas de “Virtual Private Server”, servidor privado virtual- se corresponde con el nivel de servicio intermedio, entre el hosting compartido y el servidor dedicado. Lo podemos calificar de servicio “intermedio”. El VPS es un servidor que se comporta como si fuera un servidor dedicado "real", pero en realidad funciona de manera virtualizada y por lo tanto comparte el hardware con otros servidores alojados en la misma máquina física. En consecuencia, el servicio es más barato, ofreciendo prácticamente las mismas características que un servidor dedicado.  ¿Qué significa virtualizar? Virtualizar es un concepto que puede sonar complejo, pero en realidad es más simple de lo que parece, y se utiliza mucho en tecnología.  Sin sobreventa Con este modelo de servicio evitamos el problema de la sobrecarga y el overselling, sin necesidad de contratar un servidor dedicado, cuyo coste es bastante superior.  Nuestro propio servidor Con este sistema, obtenemos un servidor virtual dedicado solo para nosotros, en el que podremos instalar el sistema operativo que queramos y obtendremos permisos de administrador. Este es el mejor modelo cuando tenemos una web con unas necesidades de servidor entre medias y grandes.

Hosting dedicado (RPS) El RPS (de las siglas “Remote Private Server” o Servidor Privado Remoto), se corresponde con el mayor y más potente nivel de servicio de alojamiento disponible para nuestra web. El hosting dedicado es el servicio más caro, pero al mismo tiempo es el más potente y seguro, ya que garantiza la disponibilidad de una infraestructura física dedicada completamente a dar soporte a nuestro servicio.

Generalmente, hay que decidir si la máquina es nuestra o bien la proporciona el mismo CPD (el CPD –Centro de Proceso de Datos- o datacenter –centro de proceso de datos, en inglés- es el lugar físico donde se encuentran los servidores que usaremos). En la mayoría de los casos usaremos los servidores propios de la empresa proveedora, que ofrecerá un coste bastante inferior que si decidimos usar nuestros propios modelos de servidores. Más sobre el CPD aquí.

Cuando se contrata este servicio dedicado, hay que tener muy en cuenta una serie de puntos que vendrán especificados en el contrato con el proveedor. Por ejemplo, habrá que definir claramente quién se encarga de hacer el mantenimiento (tanto en lo que respecta a reparaciones como a actualizaciones) del hardware, la gestión de repuestos si alguna pieza del servidor se rompe, el nivel de servicio que nos ofrecen para la reparación, etc. Deberemos fijarnos con detalle en el SLA (Service Level Agreement, “Acuerdo de nivel de servicio”), que es el contrato que firmamos con el proveedor y en el que contemplamos el nivel de servicio que contratamos, así como las penalizaciones, en caso de incumplimiento por parte del proveedor. Se trata del acuerdo de nivel de servicio.

Cloud computing La "computación en la nube" o cloud computing es un paradigma relativamente novedoso (apareció hace bastante tiempo, pero ha realizado su verdadero despegue en los últimos años) que permite ofrecer servicios de computación de diferentes niveles, a través de internet, a modo de servicio. La estructura de cloud nos permite recibir un soporte flexible a las necesidades y particularidades de nuestra actividad en cada momento y ofrece grandes posibilidades, tanto en términos de inversión como en economías de escala, deslocalización y acceso a la información desde cualquier lugar. Asimismo nos facilita mucho el desarrollo de un servicio escalable y flexibiliza el procedimiento de gestión de picos.  Ventajas económicas Este modelo de alojamiento nos permite eliminar la inversión en tecnología para convertirla en un gasto corriente con pago por uso y generalmente sin compromisos de permanencia.  A tener en cuenta Antes de contratar un servicio de cloud computing hay que tener en cuenta la cuestión de la privacidad de los datos (qué garantías de privacidad ofrece el proveedor con el que estamos contratando el servicio), y los detalles de la facturación por uso, para no llevarnos sorpresas. Y es que desgraciadamente los modelos de tarifas no son siempre sencillos ni muchas veces claros!  Servicios de Cloud Computing Dentro de los servicios de Cloud Computing, nos centraremos en ver los siguientes modelos, que son los más comunes a la hora de contratar este tipo de servicio:  IaaS: Infrastructure as a Service  PaaS: Platform as a Service  SaaS: Software as a Service

IaaS: Servicio de infraestructura El nivel de servicio de infraestructura es el nivel más alto de servicio, proporcionando infraestructura de procesamiento y/o de almacenamiento bajo demanda. No requiere inversiones iniciales, ni alquileres de equipos, únicamente pagaremos por los recursos (capacidad de proceso, memoria, tamaño de disco, etc.) que utilicemos. Una de las mayores ventajas de este nivel de servicio es que se puede escalar en cualquier momento, a más o a menos recursos.

¿Qué es Amazon S3?

Para entender bien el funcionamiento de un servicio IaaS, lo mejor es poner manos a la obra y examinar con detalle un ejemplo real, como es el servicio de Amazon S3.

El servicio ofrece una garantía de disponibilidad del 99.9% mensual. Toda la información relativa al servicio se puede encontrar en las páginas del proveedor.

> Más información > Vídeo: ¿Qué es el cloud computing?

Amazon S3 (Simple Storage Service) es un servicio web que permite almacenar datos "sin límite" a través del uso de una API. Una API –siglas de Application Programming Interface- es un sistema técnico que permite a una aplicación o servicio web ofrecer sus funcionalidades a otras aplicaciones en lugar de proporcionarlas directamente a los usuarios finales para su uso directo. Aquí puedes ver más detalles.

Un ejemplo de uso común de Amazon S3 consiste en almacenar el contenido estático (por ejemplo las imágenes, vídeos, ficheros Flash, etc.) de una web, para servirlo luego a los clientes de forma eficiente. Se puede complementar con el uso de una CDN (1).

(1) CDN: un CDN, o Content Delivery Network, es una infraestructura de distribución dinámica de contenido. Su descripción con detalle queda fuera del ámbito de este curso, pero si tienes curiosidad puedes ampliar la información aquí:

IaaS: Servicio de infraestructura Tarifas de Amazon S3

Amazon EC2

Vamos a analizar con cierto detalle, los precios del servicio. Las tarifas se encuentran en la página de Amazon S3.

Otro ejemplo de servicio IaaS muy usado por múltiples sitios web de internet es Amazon EC2 (EC2 se corresponde con las siglas de Elastic Compute Cloud, servicio de computación elástico) . Se trata de un servicio web que permite ejecutar instancias de máquinas virtuales hechas a medida de forma auto-escalable. Esto significa que podemos crear y finalizar instancias, en función de las necesidades, consiguiendo de esta forma la funcionalidad de auto escalado que nos permite seguir obteniendo el mismo rendimiento del servicio, bajo picos de demanda inusuales o inesperados.

Almacenando hasta 1 Terabyte de datos los precios son los siguientes:

 $0.14 por GB/mes  $0.01 por 1,000 PUT requests. Una solicitud “put” se produce al subir un fichero al servicio, independientemente de su tamaño.  $0.01 por 10,000 GET requests. Una solicitud “get” se produce al bajar un fichero, independientemente de su tamaño. La transferencia de los datos es gratuita en este supuesto. Un servicio muy famoso que funciona sobre la base del servicio de Amazon S3 es Dropbox.

Así pues uno de los mayores cometidos que cumple este servicio es facilitar la escalabilidad y la gestión de picos de nuestro servicio. El servicio se paga por instancias activas/hora, es decir sólo pagamos por la capacidad (de ahí el concepto de “pago por uso” de la infraestructura de cloud computing) que realmente usamos en cada momento. El servicio también proporciona un alto nivel de control sobre la localización geográfica de cada instancia, con el objetivo de optimizar latencias y niveles de redundancia.

IaaS: Servicio de infraestructura Tarifas EC2

Servicio EC2

El servicio ofrece un SLA del 99.95% anual por región, y el escalado de precios es algo complejo y se determina en función de los requisitos que tengamos. Para empezar, el servicio ofrece de forma gratuita:

También deberemos pagar por la transferencia de datos entre la instancia e internet, según el siguiente esquema de tarifas:

 750 horas de una instancia "micro" EC2  10 GB de Amazon Elastic Block Storage (EBS)  Más de 1 millón de IOs y 1 GB snapshot  1 GB de transferencia de datos regional $0.14 por GB/mes A partir de aquí, los precios bajo demanda se determinan en base a los diferentes elementos de coste de la siguiente forma:

 $0.02/hora por cada instancia "micro“  $0.085/hora por cada instancia "standard“  $0.17/hora por cada instancia "hi-cpu"

1GB/mes gratuito, y $0.120 por GB hasta 10GB/mes Por ejemplo, una instancia "micro" costaría $175.20 al año si no pasamos de 1GB de transferencia al mes. En función de nuestras necesidades, también podemos montar nuestra propia infraestructura en la nube, alojada en uno o varios CPDs. Esta modalidad también se conoce como "cloud privado". Evidentemente los costes serán mayores, pero permite tener una plataforma de uso exclusivo, con máxima privacidad y absolutas garantías de rendimiento.

PaaS: Servicio de plataforma El PaaS –siglas de Platform as a Service- representa un nivel intermedio de servicio. Entrega una "plataforma completa" al usuario, plenamente funcional y sin tener que comprar y mantener el hardware y software implicados.

Un ejemplo: Google APP Engine Google APP Engine (GAP) es una plataforma que nos permite desarrollar y alojar aplicaciones web, en los servidores de Google, con un SLA del 99,95% mensual. Virtualiza de forma automática la aplicación a través de múltiples servidores y escala de forma automática en función del número de peticiones que tenga la aplicación y los recursos que ésta necesite. Nosotros sólo nos encargamos de desarrollar la aplicación web, y el servicio de Google se encarga del resto (sistema operativo, servidor de aplicación, servidor de base de datos, etc.). En el siguiente capítulo veremos con más detalle en qué consisten estos servicios. Tarifas Las tarifas son claras y se ofrece una cuota gratuita por debajo de la cual es gratis alojar nuestra aplicación. Las cuentas gratuitas tienen un límite de 1 Gigabyte de almacenamiento permanente y la suficiente cantidad de ancho de banda y CPU para ~5 millones de páginas vistas mensuales. Si superamos esta cuota, habrá que pagar en función del uso concreto que hagamos de los diferentes recursos del servicio (CPU, ancho de banda, espacio en disco, etc.).

SaaS: Software como servicio El SaaS –siglas de “Software as a Service”, software como serviciorepresenta el nivel más bajo de servicio: sólo permite acceso a la aplicación. Se encarga de entregar el software como un servicio a través de internet, generalmente utilizando un navegador web y sin necesidad de instalar programas adicionales. Al contrario que con el software convencional por el que tradicionalmente se paga una licencia de por vida, los proveedores de SaaS generalmente utilizan un modelo de pago por suscripción (mensual o anual) o por parámetros de uso.

Algunos ejemplos de servicios SaaS son:  Google Docs (servicio de carácter gratuito)  Basecamp

 Nubola Saas, que ofrece distintas aplicaciones listas para usar, con un modelo de pago por uso De esta forma, podemos usar las aplicaciones sin necesidad de pagar un hosting, ni el ancho de banda. Tampoco necesitamos instalarlas, mantenerlas actualizadas, etc.

El marco legal Aunque no es el objetivo de este curso detallarlo en profundidad, es importante conocer el marco legal del uso de los servicios de cloud computing, y tener en cuenta elementos importantes que nos afectan a nivel legal, como son los siguientes:  Deslocalización de datos: Como nuestros datos se encuentran en "la nube", ¿sabe la empresa dónde está su información? A menudo esto dependerá de dónde tenga los centros de datos el proveedor de servicio  Dependencia de terceros: ¿Pierde la empresa el control sobre su información?

En España, la LOPD (Siglas de Ley Orgánica de Protección de Datos) no permite la transferencia temporal ni definitiva de datos de carácter personal a otros países que no brinden un nivel de protección equiparable al de la LOPD. Cuando no se den estas circunstancias, será necesario obtener la autorización del Director de la AEPD – Agencia Española de Protección de Datos-. Para datos que no sean de carácter personal, no hay problema en usar proveedores de Cloud Computing en el extranjero.

Ideas Clave  El hosting no es un servicio de poco valor ni un servicio “commodity”, sino todo lo contrario: es la máquina donde estará funcionando nuestra web, por lo que depende de ella fuertemente. No podemos tomar la decisión acerca de la infraestructura sin antes estudiar bien todas las opciones y elegir la mejor en cada caso.  El alojamiento se ofrece básicamente en tres niveles de servicio, que son, en orden de potencia y capacidad crecientes: hosting compartido, servidor privado virtual (VPS) y servidor dedicado, Además del nivel de servicio, a la hora de elegir deberemos tener en cuenta la localización física de los servidores.  El Cloud Computing es tecnología ofrecida como servicio que se paga por uso. Esta tecnología se ofrece a tres niveles diferentes: infraestructura (IaaS), plataforma (PaaS) y aplicaciones o software (SaaS). Esta tecnología es por tanto un servicio que podemos usar como base en uno o varios de estos niveles para el desarrollo de nuestras aplicaciones web.  Para poner en marcha tu negocio online, lo primero que tendrás que hacer es elegir tu servidor y tu infraestructura de alojamiento y hacer apuntar tu dominio al mismo usando el servicio DNS de tu registrador. Sin embargo, la decisión sobre la infraestructura también está relacionada con el tipo de aplicación que vayas a hacer y la tecnología software sobre la que se desarrolle. Estos son los puntos que veremos en el siguiente capítulo.

Capítulo 5

Software: programación de aplicaciones

¿Qué es el software? Para terminar el curso, vamos a tratar uno de los puntos más importantes en el ámbito de la tecnología web: la programación. En la última década, la web ha ido pasando de ser un entorno relativamente “estático” a uno mucho más dinámico y en el que la interacción constante y profunda con los usuarios es un hecho, gracias a la programación. En tecnología, y en informática en general, denominamos “software” a la parte de programación de aplicaciones. Una aplicación, por otra parte, no es más que un programa de ordenador. Es decir, es un fichero que incluye las instrucciones que el ordenador debe seguir para llevar a cabo una tarea concreta. En este capítulo veremos que la programación web se produce en los dos lados de la aplicación: el navegador o la app móvil (que denominamos habitualmente “front-end”) y el servidor web ( “back-end”). En ambos “extremos” de la cadena es necesario programar las instrucciones de la aplicación. Así que vamos a explorar la forma en que interactúan ambos lados y cómo se complementan para conseguir la experiencia final de usuario.

> Más información sobre el software > Vídeo: ¿qué es el software?

Front-end: Aplicaciones web El HTML (HyperText Markup Lenguage) es el lenguaje que se utiliza para programar las páginas web. Es un lenguaje denominado “descriptivo”, pues describe la estructura y el contenido de las páginas en forma de texto y no de código binario o código fuente de programación estructurado. Su carácter descriptivo permite que los ficheros HTML que forman las páginas sean leídos y entendidos tanto por las máquinas (el navegador) como por los humanos, facilitando así las tareas de programación y resolución de problemas.

Más sobre el HTML Además de descriptivo, el HTML también es un lenguaje “estático”; es decir que define una página y también sus comportamientos más sencillos, pero no permite un gran nivel de interactividad. El lenguaje funciona por parejas de etiquetas en modo inicio/fin, que describen el comportamiento del texto que queda entre cada pareja. Por ejemplo Texto resaltado muestra el texto de forma resaltada. El HTML permite complementar el texto con enlaces a otras páginas HTML, y con objetos multimedia tales como imágenes, sonidos, vídeos, etc. De esta forma es posible crear páginas muy completas y entrelazadas de forma relativamente sencilla. El HTML se rige por unas normas y estándares que evolucionan con el tiempo, para adaptarse a las necesidades cambiantes del desarrollo de aplicaciones web. El organismo independiente responsable de la definición y evolución de los estándares del HTML es el W3C (World Wide Web Consortium).

Front-end: Aplicaciones web XHTML y CSS El XHTML es la evolución natural del HTML y la forma de describir las páginas que forman las aplicaciones web. Se trata simplemente de código HTML que se usa, se optimiza y reduce de forma que trata únicamente la estructura del documento, y no su formato o su presentación. Hoy en día, XHTML/CSS es el estándar de la programación HTML de calidad. En el modelo XHTML/CSS se separa completamente la estructura del documento de su presentación, de forma que la página queda definida por dos documentos complementarios: el fichero XHTML (eXtensible HyperText Markup Language) describe la información de la página en sí misma y su estructura, y el fichero CSS (Cascading Style Sheet) describe las características estéticas y de presentación de dicha información.

Los documentos CSS CSS permite alterar radicalmente el diseño y el layout (o sea, la estructura y disposición de elementos) de las páginas sin necesidad de modificar el código HTML. Las ventajas de esta separación son múltiples:  Mejora notable del SEO  Utilización del mismo HTML para diferentes formatos de presentación (impresión, dispositivos, etc.)  Mejor legibilidad de ambos documentos  Mayor facilidad de mantenimiento y evolución

HTML5

El W3C (World Wide Web Consortium), organismo encargado de las especificaciones técnicas de todo lo relacionado con internet y la web, está ultimando la especificación de la quinta versión del estándar HTML, HTML 5. El desarrollo comenzó en 2004 y la especificación no está completamente cerrada todavía, y es que estas cuestiones relacionadas con los estándares van muy despacio, porque es imprescindible poner de acuerdo a todos los actores implicados y recoger sus puntos de vista y sus solicitudes.

HTML5  Objetivos de la nueva versión HTML5 > El objetivo de esta revisión es integrar en el estándar HTML nuevas posibilidades de programación que actualmente solo son posibles mediante el uso de plug-ins de terceros como Flash o Java, o mediante el uso de lenguajes interactivos como Javascript. Hablaremos de estos conceptos nuevos en los siguientes puntos.  Web 2.0 > El desarrollo de HTML5 está siendo objeto de una gran atención por parte de la comunidad y de todas las empresas y organismos implicados en el mundo de internet porque es una versión que aporta grandes mejoras sobre la anterior y recoge funcionalidades estilo “Web 2.0”. El concepto de Web 2.0 ha sido objeto de mucha atención en los últimos años. Si quieres saber algo más de lo que es Web 2.0, te recomiendo leer la definición de Wikipedia y ver un vídeo explicativo.  Novedades de HTML5 > Las últimas versiones de los navegadores soportan HTML5, pero como es habitual en estos casos, la adopción de los mismos por parte de los usuarios es muy gradual y no siempre rápida.

Algunas de las novedades que presenta HTML5 son:  Soporte nativo de streaming, tanto para vídeo como para audio  Especialización de las etiquetas HTML, eliminando las etiquetas “genéricas” de HTML y sustituyéndolas por etiquetas específicas y más descriptivas  Incorporación de etiquetas relacionadas con la estructura de la información de la página y no solo con su formato  Soporta comandos y etiquetas interactivos, y tiene modo offline que mejora el sistema de caché de los navegadores

Javascript Javascript es un lenguaje de programación basado en scripting. Un lenguaje de script es interpretado en tiempo de ejecución, no compilado; en principio un lenguaje interpretado es menos eficiente y rápido que un lenguaje compilado. Los programas Javascript se ejecutan en el navegador del usuario y no en el servidor. Los programas Javascript se usan en el navegador para dotar de capacidad de interactividad a una página, permitiendo realizar ciertas interacciones con el usuario sin necesidad de comunicarse con el servidor.

Javascript Librerías Javascript Existen muchas librerías , mayoritariamente de código abierto (Open Source) , de funciones listas para ser utilizadas: jQuery, Moo tools, DOJO, Yahoo, etc. Estas librerías facilitan, estandarizan y aceleran la implementación de funcionalidades basadas en Javascript. Usos frecuentes de Javascript Algunos usos frecuentes de Javascript son los efectos gráficos, las comprobaciones de campos de formularios, creación de pop-ups, integración de servicios, tags de tracking, etc. Además, el Javascript se usa de manera intensiva en la llamada “web 2.0”, concepto que se refiere a webs muy dinámicas, como por ejemplo: Interface de Facebook Timeline de Twitter.

En ambos ejemplos, Javascript permite que los contenidos de las páginas se actualicen de forma dinámica sin necesidad de comunicarse con el servidor. Gracias a ello, las novedades van apareciendo a medida que se producen

Flash Flash es un formato propietario desarrollado por Macromedia originalmente (empresa luego adquirida por Adobe) que permite desarrollar aplicaciones interactivas que se ejecutan en el navegador del usuario (necesita la instalación de un plugin en el navegador). Un plugin es una aplicación que se relaciona con otra, para aportarle una función nueva y generalmente muy específica . Flash permite un gran nivel de interacción y de efectos gráficos, sin las limitaciones de HTML. También es más complicado que el HTML. Usos frecuentes: banners interactivos y Rich media, microsites publicitarios, integración de vídeo, juegos online, etc. La combinación de HTML5 y JavaScript permite conseguir funcionalidades similares a las ofrecidas por Flash (se extiende la idea de que la adopción masiva de HTML5 provocará la desaparición de Flash, o llevará a un uso minoritario del mismo).

 Ventajas Las ventajas que aporta el uso de Flash en una página web vienen dadas por las posibilidades interactivas y de diseño, que no están limitadas por las capacidades de HTML y el estándar correspondiente  Inconvenientes Flash también presenta inconvenientes ligados a la opacidad del estándar: peor posicionamiento en buscadores, dependencia del fabricante (Adobe), imposibilidad de ser visualizado en dispositivos Apple, etc.

Front-end: Aplicaciones para móviles Las Apps (abreviatura de “Application”, aplicación informática, programa de ordenador) son pequeñas aplicaciones para dispositivos móviles que cumplen una funcionalidad muy concreta y definida. Las Apps no se ejecutan sobre el navegador del dispositivo como los sitios web, sino que funcionan de forma independiente: se descargan de la “App Store” correspondiente y se instalan en el dispositivo móvil (smartphone o tablet) y a efectos de permitir el acceso a un servicio de internet, cumplen la misma función que el navegador para la funcionalidad concreta.

Front-end: Aplicaciones para móviles App stores Todas las plataformas móviles de los diferentes fabricantes disponen ya de su propia store:  Apple App store  Google Play  Windows store

Plataformas Las apps son específicas para cada plataforma (iPhone, Android, Blackberry, Windows Phone, etc.), por lo que en principio es necesario desarrollar una versión para cada sistema. Aún así, tenemos tres opciones a la hora de desarrollar la presencia de la empresa en los móviles:  Apps nativas. Son las apps originales; responden a la descripción que acabamos de ver  Web apps. Son versiones de la web específicas para dispositivos móviles, adaptadas a sus especificidades: tamaño de pantalla, capacidad de procesamiento, limitación del ancho de banda, etc.  Apps híbridas. Son aplicaciones nativas que incluyen en su arquitectura elementos con un funcionamiento basado en HTML. Pueden funcionar de modo independiente o usar las mismas tecnologías que las del desarrollo web puro (HTML, Javascript, etc.), o hacer ambas cosas a la vez. A continuación, estudiaremos en profundidad cada una de estas opciones.

Apps nativas Las Apps nativas son las “apps puras”.

Desarrollos independientes

No usan el navegador del dispositivo para acceder a los sitios web, sino que funcionan de forma independiente: se descargan de la “App Store” correspondiente y se instalan en el dispositivo local.

En cada plataforma es necesario usar un lenguaje y una arquitectura específicos para desarrollar las Apps:

Las Apps nativas se ejecutan en el dispositivo como cualquier otra aplicación (alarma, programa de correo electrónico o navegador, por ejemplo), y son específicas para cada plataforma: iPhone, Android, Blackberry, Windows Phone, etc. Las apps necesitan de un desarrollo específico en cada plataforma en la que se quiera tener presencia.

> ¿Qué es una app nativa?

 iPhone (iOS): Lenguaje Objective-C y entorno Xcode (solo Mac)  Android: Lenguaje Java, SDK multiplataforma y entorno Eclipse

 Windows Phone: Lenguaje C# y entorno Visual Studio Al ser necesario llevar a cabo desarrollos independientes que no son reutilizables al 100% entre ellos (aunque sí en un cierto porcentaje), el coste y el esfuerzo de desarrollo se multiplican.

Apps nativas Ventajas de las apps nativas Las ventajas de las apps nativas pueden hacer recomendable su desarrollo para lograr la presencia de la empresa en internet para móviles. En este sentido, la inversión necesaria puede resultar rentable. Sus principales ventajas son las siguientes:  Pueden acceder a todas las funcionalidades del teléfono (hardware) y por tanto ponerlas a disposición de nuestra aplicación. Ejemplo: en una aplicación que muestre datos de una persona, podemos crear una funcionalidad que llame a dicha persona, sin salir de la aplicación.

 Son más rápidas que las web apps y por tanto pueden proporcionar la mejor experiencia de usuario de las 3 opciones.  Los interfaces de usuario de las apps nativas se pueden adaptar de forma más precisa a las posibilidades (tamaño de pantalla, resolución, etc.) específicas de cada terminal y en general crear un interface más usable.

Web Apps Las Web Apps, más que “apps” son más bien aplicaciones web (páginas) optimizadas para su uso, desde un dispositivo móvil. Son webs como las que se visualizan en el navegador de un dispositivo no móvil, pero que incluyen especificidades como la resolución de pantalla, una menor cantidad de contenidos, menor peso de los contenidos audiovisuales, mayor optimización del peso de los ficheros, etc. Se visualizan en el navegador del teléfono, y por tanto a nivel técnico hacen uso de las tecnologías de cliente web (HTML, CSS, Javascript, etc.) que hemos visto anteriormente. Pueden usar HTML5 y librerías JS específicas para dispositivos móviles y alcanzar un nivel de interactividad similar al de las apps nativas.

El coste y el esfuerzo de desarrollo son menores que en el caso de las apps nativas, especialmente si se usa el mismo desarrollo web existente como base. Al mismo tiempo, se pierde potencial especialmente a nivel de funcionalidad, pues no aprovechan las ventajas de las nativas.

Apps híbridas Las Apps híbridas mezclan las arquitecturas de las opciones anteriores: apps nativas y web apps. El objetivo es tratar de aprovechar las ventajas de cada arquitectura en una solución “mixta”. De ahí la denominación “híbridas”. En realidad las apps híbridas son apps nativas (se ejecutan en el dispositivo) que incluyen tecnología web como principal fuente de funcionamiento. En cierto modo, es como si la app nativa solo sirviera de “contenedor” para ejecutar una mayoría de código web (HTML)

Apps híbridas  ¿Dónde están las apps híbridas?

De cara al usuario, se comportan como las apps nativas, en el sentido de que se descargan de las apps stores y quedan instaladas en el dispositivo, desde donde se ejecutan posteriormente.  Ventajas Las principales ventajas de las apps híbridas son:  Tienen acceso al hardware del dispositivo, por tratarse de apps nativas instaladas en el propio dispositivo  Al mismo tiempo usan HTML para visualizar partes de la información, por lo que no necesitan desarrollos a medida para éstos. Pueden basarse en desarrollos web existentes  No necesitan tanto conocimiento de los lenguajes de desarrollo propietarios de las apps nativas, puesto que hacen un uso limitado de la parte nativa  ¿Cómo de ventajosas son? Aunque presentan ventajas respecto a sus dos alternativas, evidentemente no consiguen aglutinar las ventajas individuales de cada una de las opciones. Consiguen más bien un compromiso entre las ventajas e inconvenientes que presentan las apps nativas y las web apps. Por otra parte, su desarrollo presenta cierta complejidad, precisamente por la mezcla de tecnología y la interacción entre ambas.

Elección del modelo Existe un gran debate en torno a la elección del modelo a usar. Como es lógico, cada opción tiene sus ventajas e inconvenientes y muchas veces la elección será difícil. Incluso en algunas ocasiones nuestra decisión consistirá en usar varios de los modelos disponibles de forma complementaria. De entre las tres opciones (App nativa, Web app, o App híbrida), la elección dependerá de varios factores en el caso de cada aplicación. Debemos tener en cuenta tanto factores de uso como factores de gestión.

Elección del modelo  Factores de uso Como factores de uso a tener en cuenta de cara a la decisión podemos mencionar los siguientes:  Target (audiencia): ¿quién va a usar la aplicación?  Dispositivos: ¿en qué dispositivos se va a usar?  Funcionalidad: ¿Qué funcionalidades tendrá la aplicación? ¿Qué funcionalidad del hardware (cámara, llamadas, micrófono, etc.) va a necesitar?

 Factores de gestión Como factores de gestión y de estrategia a tener en cuenta de cara a la decisión podemos mencionar:  Plazo: ¿cómo de rápido se necesita tener la aplicación lista?  Presupuesto: ¿cuánto presupuesto hay disponible?

 Conocimiento: ¿qué plataformas y entornos conoce el equipo técnico existente?  Puntos de vista y análisis Te presentamos algunos artículos que discuten las mejores opciones de desarrollo de apps según las circunstancias. Te animamos a leerlas para añadir puntos de vista a tu proceso de decisión:  E-interactive.es

 Betabeers.com

 Remarkable.es

Programación Back-end Originalmente, las páginas que componen un sitio web siempre estaban almacenadas directamente como archivos HTML en el servidor y eran servidas por el servidor web tal cual cuando el navegador las solicitaba. Estas se denominan páginas estáticas. El esquema de páginas estáticas enseguida resultó insuficiente, como es evidente, ya que dicha arquitectura impide personalizar las páginas para el usuario y lograr cualquier interactividad con él. Las páginas estáticas son las mismas para todos los usuarios, impidiendo cualquier personalización de la experiencia de usuario.  Servidores de aplicación Los servidores de aplicación son aplicaciones que se colocan detrás del servidor web y que permiten manipular el código HTML antes de ser entregado al usuario que solicitó la página. Los servidores de aplicación permiten introducir lógica en la construcción de la página, comunicarse con una base de datos, etc. Las páginas programadas usando el lenguaje de un servidor de aplicación se denominan “páginas dinámicas”.  Páginas dinámicas Cuando el servidor web recibe una solicitud de una página con extensión dinámica (por ejemplo .php), en lugar de servirla directamente, le pasa la solicitud al servidor de aplicación, que es el encargado de llevar a cabo la lógica necesaria y devolver el código HTML resultado. Las páginas dinámicas incluyen tanto código HTML “estático” como código dinámico (en el lenguaje de programación de que se trate) que genera HTML específico en función de las diferentes reglas

Tecnologías de servidor A nivel de servidor, podemos usar plataformas de desarrollo de diversa índole y basadas en diferentes tecnologías. Estas tecnologías pueden ser catalogadas en tecnologías “pesadas” o “ligeras”.

Plataforma Java/J2EE

Las tecnologías pesadas son plataformas muy profesionales y avanzadas. Soportan paradigmas de programación avanzados, implementan POO (Programación Orientada a Objetos) de forma estricta, su arquitectura separa claramente las tres capas de la aplicación: presentación, lógica y datos, etc. En esta categoría tenemos principalmente Java/J2EE y .net.

Java es un lenguaje de programación inventado por Sun Microsystems (posteriormente adquirida por Oracle) a finales de los 90 sobre la base de C++ y con el objetivo de crear un framework de desarrollo independiente de plataforma. El espíritu era doble: “write once, run anywhere” y “the network is the computer”.

Vamos a ver las características principales de cada una de ellas.

> Programación del servidor

J2EE, Java 2 Enterprise Edition, es la versión de la plataforma de desarrollo Java orientada a la programación en el lado servidor.

Java requiere programadores con sólidos conocimientos de programación y de arquitectura, así como el uso de metodologías formales estrictas. Nota: Java no tiene nada que ver con Javascript. Ambos solo comparten la sintaxis del lenguaje

Tecnologías de servidor Plataforma .net

Tecnologías ligeras

.net es una plataforma de desarrollo creada por Microsoft para competir con Java y J2EE. Es una evolución del lenguaje de scripting asp – corresponde a las siglas de Active Server Pages-, que se movía en el mercado de los servidores de aplicación ligeros; es decir en el mismo mercado de php. Microsoft hizo así un movimiento defensivo frente a Java.

Las tecnologías “ligeras” son entornos de programación muy ligeros en el sentido de que se trata de lenguajes de scripting de alto nivel, con pocos elementos estrictos, pocas dificultades de arquitectura y corta curva de aprendizaje. Entre ellas destaca especialmente la plataforma php. Php es una plataforma de código abierto, usada en desarrollos sencillos y en paquetes de Open Source, pero también en muchos sitios web “complejos” y con muchos usuarios.

Es una plataforma con gran nivel de portabilidad y con unas características técnicas muy formales. Permite programar usando varios lenguajes de programación diferentes.

Unido a un framework de desarrollo sólido, php puede ser un entorno de programación tan potente como el que más. Existen muchas librerías estándar y de código abierto que aceleran notablemente la programación Los siguientes son algunos de los frameworks y librerías disponibles para desarrollos sobre php: Zend, PEAR, CakePHP, CodeIgniter, Symfony

Tecnologías de servidor Elección del modelo Como es habitual, no existe una fórmula fija en cuanto a la selección de la mejor opción. En cada caso habrá que estudiar diferentes criterios de cara a elegir una u otra opción de las disponibles. Existe un mito según el cual Java y .net son plataformas “profesionales”, mientras que php es una plataforma más “amateur”. Sin embargo, en determinadas situaciones –por ejemplo en proyectos complejos y con necesidad de gran escalabilidad- será mejor usar una plataforma “pesada” y en otras circunstancias –por ejemplo proyectos de corto “time-to-market”- será mejor usar una plataforma “ligera”.

Otros elementos del servidor Para poder funcionar, las aplicaciones de servidor necesitan algunos elementos adicionales. De ellos los más importantes son las bases de datos y los llamados “stacks” de tecnología. Entre ellas destaca la plataforma LAMP por su amplia aceptación en el mercado y su gran uso.

Bases de datos Los programas, páginas estáticas y páginas dinámicas se almacenan en ficheros de texto o binarios. Los datos se almacenan en estructuras especiales denominadas bases de datos por una razón de eficiencia. Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemática y ordenadamente para su posterior uso. Los sistemas gestores de bases de datos, abreviado SGBD, permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las aplicaciones del servidor de aplicación se comunican con la base de datos en tiempo de ejecución y solicitan los datos que necesitan. Luego los procesan y generan el código HTML resultado. Algunos de los principales fabricantes de SGBD son:  Oracle  MySQL  Microsoft SQL Server

Otros elementos del servidor Plataforma LAMP LAMP –el nombre procede de las siglas de los elementos que lo componen- es un conjunto de software muy usado en el desarrollo de aplicaciones web. Se compone de diferentes paquetes y aplicaciones Open Source y es muy popular en el mundo del desarrollo web debido a la integración de sus elementos y a la facilidad de su instalación y uso conjunto. La plataforma LAMP proporciona todas las capas necesarias para desarrollar aplicaciones web dinámicas: sistema operativo, servidor web, servidor de base de datos, y servidor de aplicación. El paquete se compone de:  Linux: Sistema operativo  Apache: Servidor Web  MySQL: Base de datos  Php: Servidor de aplicación Existe una alternativa que difiere únicamente en el sistema operativo usado: Windows en lugar de Linux. Esta alternativa se denomina WAMP.

Ideas Clave  Una web es una aplicación informática que instalamos en el servidor para cumplir la funcionalidad que queramos ofrecer a nuestros usuarios. Esta aplicación es software, y se programa usando diferentes lenguajes y modelos de programación.  La aplicación tiene dos partes bien diferenciadas: el front-end, que es la parte que ven los usuarios y mediante la que interactúan con el contenido y la funcionalidad, y el back-end, que es donde reside la lógica de negocio –es decir, las reglas de funcionamiento- de nuestro sistema.  Mientras que la tecnología para desarrollar un front-end web es bastante estándar –HTML, CSS y Javascript-, la necesaria para desarrollar un front-end móvil (una app) varía entre las plataformas y es relativamente compleja.  El desarrollo de la parte back-end de nuestra aplicación se puede hacer en diferentes plataformas de servidor, que podemos clasificar en ligeras y pesadas. La elección tanto del modelo como de la plataforma concreta dependerá de las características de cada caso.

 A la hora de desarrollar una app, tendremos que elegir entre 3 posibilidades: app nativa, web app, o app híbrida. Deberemos usar tanto criterios de uso como criterios estratégicos para seleccionar la mejor opción en cada caso.  En nuestra web tendremos un único back-end, pero podremos tener dos front-end diferenciados: la web y la app. Al programarlos de forma diferenciada pero sobre el mismo back-end, conseguiremos que la experiencia de usuario sea continua entre los dos entornos.

Capítulo 6

Cierre

Para finalizar… En este curso hemos repasado los principales conceptos técnicos que permiten que internet funcione. Internet es un medio tecnológico y como profesional ganas muchos enteros al conocer su funcionamiento. Además, los conceptos que hemos visto te permiten interactuar con los equipos técnicos con los que tienes que colaborar constantemente en el marco de desarrollo de tu actividad profesional.

A partir de aquí, estás completamente capacitado para dar tus primeros pasos en internet, contratando un dominio, un servicio de alojamiento e instalando una aplicación web y otra móvil para dar servicio a tus clientes online. ¡Te animo a seguir formándote en este apasionante mundo de la tecnología!