Background

Naturaleza

El servidor Web

El servidor Apache

Un servidor web es un programa dedicado a atender y responder diferentes peticiones de los navegadores, otorgando los recursos que soliciten, usando el protocolo HTTP (Hypertext Transfer Protocol) o HTTPS (versión cifrada y autenticada). Cuenta con un esquema de funcionamiento muy simple, basado en ejecutar infinitamente el siguiente bucle:

Espera peticiones en el puerto TCP indicado (el estándar por defecto para HTTP es el 80).
Recibe una petición.
Busca el recurso.
Envía el recurso utilizando la misma conexión por la que recibió petición.
Vuelve al primer punto.

Un servidor web con dichas operaciones, cumplirá todos los requisitos básicos de los servidores HTTP, aunque sólo podrá servir ficheros estáticos. A partir de este esquema se han diseñado y desarrollado todos los servidores de HTTP que existen, variando sólo el tipo de peticiones (páginas estáticas, CGIs, Servlets, etc.) que pueden atender. Para el lenguaje de programación PHP, el servidor web adecuado es Apache.

Background

Naturaleza

El lenguaje de programación PHP

Historia

El universo de lenguajes de programación para desarrollo web es muy amplio pero uno de los más populares es PHP. Este lenguaje surgió en 1994 cuando su creador Rasmus Lerdorf buscaba una solución casera para el problema de sobrecarga que tenía el servidor web donde alojaba su página personal y curriculum. Luego de esto, otras personas se interesaron en el programa y fue en 1995 que Rasmus publicó el código fuente con el objetivo de intercambiar ideas que lleven a mejoras. Desde ese momento fue creciendo como un proyecto open-source, es decir de código abierto, creando una gran comunidad mundial. El significado de PHP fue primeramente Personal Home Page, pero luego se convertiría en el actual Hypertext Preprocessor que en español es pre-procesador de hiper-texto.

Por 1997, fue creado PHP 3.0 por Andi Gutmans y Zeev Suraski rescribiéndolo completamente, después de que encontraran que el PHP inicial tenía pocas posibilidades para desarrollar una aplicación comercial que estaban necesitando para un proyecto universitario.

En un esfuerzo para cooperar y empezar a construir sobre la base de usuarios de PHP existente, Andi, Rasmus y Zeev decidieron anunciar PHP 3.0 como el sucesor oficial de PHP. Una de las mejores características de PHP 3.0 era su gran extensibilidad. Además de proveer a los usuarios finales de una sólida infraestructura para muchísimas bases de datos, protocolos y APIs. Sin duda, ésta fue la clave del enorme éxito de PHP 3.0. Otras características claves introducidas fueron el soporte de sintaxis orientado a objetos y una sintaxis de lenguaje mucho más potente y consistente.

A fines de 1998, poco después del lanzamiento oficial de PHP 3.0, Andi Gutmans y Zeev Suraski comenzaron a trabajar en la reescritura del núcleo de PHP. Los objetivos de diseño fueron mejorar la ejecución de aplicaciones complejas, y mejorar la modularidad del código base de PHP. Estas aplicaciones se hicieron posibles por las nuevas características de PHP 3.0 y el apoyo de una gran variedad de bases de datos y APIs de terceros. El nuevo motor, apodado 'Motor Zend' (comprimido de sus apellidos, Zeev y Andi), alcanzó estos objetivos de diseño satisfactoriamente, y se introdujo por primera vez a mediados de 1999. PHP 4.0, basado en este motor, y acoplado con un gran rango de nuevas características adicionales, fue oficialmente liberado en mayo de 2000.

En julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine II (o Zend Engine 2), incorporando mejoras para el soporte de Programación Orientada a Objetos, mejoras de rendimiento y manejo de excepciones y soportes mejorados para MySQL con extensión completamente reescrita.

Background

Naturaleza

El lenguaje de programación PHP

Características

A la hora de seleccionar un lenguaje de programación, las características que deben ser evaluadas son: Velocidad, estabilidad, seguridad y simplicidad.

Velocidad

No sólo la velocidad de ejecución, la cual es importante, sino además no crear demoras en la máquina. Por esta razón no debe requerir demasiados recursos de sistema. PHP se integra muy bien junto a otro software cuando se configura como módulo de Apache, quedando listo para ser utilizado.

Estabilidad

La velocidad no sirve de mucho si el sistema se cae cada cierta cantidad de ejecuciones. Ninguna aplicación es 100\% libre de bugs, pero teniendo de respaldo una increíble comunidad de programadores y usuarios es mucho mas difícil para los bugs sobrevivir. PHP utiliza su propio sistema de administración de recursos y dispone de un sofisticado método de manejo de variables, conformando un sistema robusto y estable.

Seguridad

El sistema debe poseer protecciones contra ataques. PHP provee diferentes niveles de seguridad, estos pueden ser configurados desde el archivo php.ini.

Simplicidad

Se les debe permitir a los programadores generar código productivamente en el menor tiempo posible. Usuarios con experiencia en C y C++ podrán aprender a utilizar PHP rápidamente.

Background

Naturaleza

El lenguaje de programación PHP

Ventajas

PHP es multiplataforma, esto significa que utilizando el mismo código fuente, puede ser compilado y ejecutado en aproximadamente 25 plataformas, incluyendo diferentes versiones de Unix, Windows y Macs. Como en todos los sistemas se utiliza el mismo código base, los scripts pueden ser ejecutados de manera independiente al sistema operativo.

Es un lenguaje expandible. Está compuesto de un sistema principal (escrito por Zend), un conjunto de módulos y una variedad de extensiones de código. Adicionalmente cuando un programador necesite una interfase para una librería en particular, fácilmente podrá crear una API. Algunas de las que ya vienen implementadas permiten manejo de gráficos, archivos PDF, Flash, calendarios, XML, IMAP, POP, etc.

Puede interactuar con gran variedad de motores de base de datos, como MySQL, MS SQL, Oracle, PostgreSQL, entre otros.

La rapidez es una característica fundamental. PHP generalmente es utilizado como módulo de Apache, lo que lo hace extremadamente veloz. Está completamente escrito en C, así que se ejecuta rápidamente utilizando poca memoria.

PHP es Open Source, lo cual significa que el usuario no depende de una compañía específica para arreglar cosas que no funcionan, además no está forzado a pagar actualizaciones anuales para tener una versión que funcione.

La documentación existente y la gran comunidad de usuarios, hacen que muchos de los obstáculos con los que nos encontremos, haya alguien que ya los superó y nos cuente como lo hizo.

Background

Naturaleza

El alojamiento Web

Hosting

Alojamiento Web

El alojamiento web, en inglés ``Hosting'', es un servicio que provee un sistema para almacenar cualquier tipo de información, y permite que ésta sea accesible vía web. Muchas compañías ofrecen este espacio en sus servidores, convirtiéndose en un lucrativo negocio en todo el mundo. Sin embargo, se pueden identificar diferentes tipos de alojamiento:

Alojamiento gratuito

El alojamiento gratuito es extremadamente limitado comparado con el alojamiento pago. Estos servicios, generalmente agregan publicidad en los sitios, además de contar con recursos limitados (espacio en disco, tráfico de datos, uso de CPU, etc.).

Alojamiento compartido

En este tipo de servicio se alojan clientes de varios sitios en un mismo servidor. Resulta una alternativa muy buena para pequeños y medianos clientes, es un servicio económico debido a la reducción de costos ya que al compartir un servidor entre muchos usuarios, el costo se reduce manteniendo un aceptable rendimiento.

Servidores virtuales

En este caso, la empresa ofrece el control de una computadora aparentemente no compartida, que se realiza mediante una máquina virtual. Así se pueden administrar varios dominios de forma fácil y económica, además de elegir los programas que se ejecutan en el servidor. Por ello, es el tipo de producto recomendado para empresas de diseño y programación web.

Servidores dedicados

A diferencia de lo que ocurre con el alojamiento compartido, en donde los recursos de la máquina son compartidos entre un número indeterminado de clientes, en el caso de los servidores dedicados, generalmente es un sólo cliente el que dispone de todos los recursos de la máquina para los fines que haya contratado el servicio.

Pueden ser administrados por el cliente o por la empresa que los provee. El cuidado físico de la máquina y la conectividad a Internet está a cargo de la empresa que provee el servicio.

La principal desventaja de un servidor dedicado es el costo del servicio, el cual es muy superior al alojamiento compartido.

Background

Naturaleza

El sistema operativo Android

Introducción

Android es un sistema operativo multiusuario actualmente desarrollado por Google, basado en el núcleo de Linux y diseñado primariamente para dispositivos móviles tipo touchscreen tales como Smarphones y Tables. La interfaz de usuario de Android está basada en la manipulación mediante el uso de gestos táctiles que se corresponden con acciones del mundo real, como deslizar, golpear ligeramente y pellizcar, para manejar los objetos de la pantalla, junto con un teclado virtual para ingresar texto. Además de dispositivos tipo touchscreen, Google ha ido más lejos desarrollando Android TV para televisión, Android Auto para autos y Android Wear para relojes pulsera, cada uno de ellos con una interfaz de usuario especializada. Son utilizadas también variantes de Android para notebooks, consolas de juego, cámaras digitales y otros dispositivos electrónicos.

Breve historia

Android Inc., fue fundado en Palo Alto, California en octubre de 2003 por Andy Rubin (co-fundador de Danger), Rich Miner (co-fundador de Wildfire Communications Inc.), Nick Sears (una vez vicepresidente de T-Mobile) y Chris White (Jefe de diseño y desarrollo en WebTV) para desarrollar en palabras de Rubin ``dispositivos móviles inteligentes que sean más conscientes que el propietario de su ubicación y preferencias''. En julio de 2005 Google adquirió Android Inc., en alrededor de 50 millones de dólares, cuyos empleados claves permanecieron en la compañía después de su adquisición. No se conocía mucho acerca de Android Inc., en ese momento, pero se asumía que Google estaba planeando entrar en el mercado de los Smartphones con éste movimiento. En Google, Rubin desarrolló una plataforma para dispositivos móviles basada en un núcleo de Linux. Google promocionaba la plataforma a los fabricantes de teléfonos y operadores prometiéndoles un sistema flexible y actualizable. Se fueron concretando acuerdos con socios de la industria de hardware, software y telecomunicaciones para la integración de componentes en distintos proyectos. El 5 de noviembre de 2007 se fundó la Open Handset Alliance, un consorcio de varias compañías entre las que se encuentra Google, fabricantes de dispositivos tales como HTC, Sony y Samsung Electronics, proveedores de servicios inalámbricos tales como Sprint Nextel y T-Mobile y fabricantes de chipsets como Qualcomm y Texas Instruments. La flamante alianza anunció el objetivo de desarrollar estándares abiertos para dispositivos móviles. Ese día Android se dio a conocer como una plataforma para dispositivos móviles sobre un núcleo de Linux. El primer Smartphone que ejecutaba Android disponible comercialmente fue HTC Dream lanzado el 22 de octubre de 2008.