Está en la página 1de 50

Arquitectura Web Cliente Servidor

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Previo: ¿Cuál es la diferencia entre un
sitio Web y una aplicación Web?

“Una aplicación Web es un sitio Web donde la navegación a


través del sitio, y la entrada de datos por parte de un
usuario, afectan el estado de la lógica del negocio.
En esencia, una aplicación Web usa un sitio Web como
entrada (front-end) a una aplicación típica.
...Si no existe lógica del negocio en el servidor, el sistema
no puede ser llamado aplicación Web.”

[Conallen 99]

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Arquitectura Sitio Web

La arquitectura de un sitio Web tiene tres componentes


principales: un servidor Web, una conexión de red, y uno o
más clientes (browsers).

http
Servidor Web Cliente - Navegador

distribuye despliega
documento Web

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P

Modeling Web Application Design with UML (Jim Conallen)


Más detalles en : http://www.itmweb.com/essay546.htm
ESQUEMA DE COMUNICACIÓN
Eeeeh!!!
http://www.unapagina.c
om

Web Server
Solicitud

Respuesta

Internet

ISP Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Z OOM
http://www.unsitio.com

HTTP Request

Internet
Browser

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Z OOM
HTTP Request
?
DNS
DNS

ISP

? Web
DNS Server

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Z OOM – WEB SERVER File system

HTTP/HTTPS Request
html

Web Server
application html
Header HTTP
+ HTML (apache /IIS
/etc.)

php

HTML php

php

Intérprete PHP

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Arquitectura Sitio Web

En la arquitectura básica de una aplicación web o sitio


Web, la información mostrada en las páginas está típicamente
almacenada en archivos. Sin embargo, muchas veces esta
información está almacenada en una base de datos, y las
páginas son creadas dinámicamente (sitios dinámicos).

http
Servidor Web Cliente - Navegador

Base de Datos

Filtro de página
referencia
procesa
Página con script
Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P

Modeling Web Application Design with UML (Jim Conallen)


Más detalles en : http://www.itmweb.com/essay546.htm
Intermediarios en la Comunicación C/S

Proxy, gateway y tunnel son elementos que permiten abordar


temas de integración como firewalls, balance de carga,
movimiento de datos, etc.

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Intermediarios en la Comunicación C/S
programa intermediario que actúa como
un relevo entre dos conexiones
(simplemente conecta dos redes)
Un programa intermediario
que actúa como cliente y
servidor con el propósito
de hacer peticiones en Un servidor que actúa como
nombre de otro cliente (actúa un intermediario de otro
en nombre de un cliente) servidor en una petición
(actúan en nombre de un
servidor)

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Aprovechar la conectividad ...

Rápidamente se vio el valor de “exponer” un


sistema de información a través de su capa
de presentación como documentos HTML.
Idea: “abrir los sistemas más allá de los
limites de una empresa”.

Ejemplo: ATM (Automatic Teller Machine,


cajero automático)

El ideal de un banco es otorgarle a cada


cliente un cajero en su casa. (Bussines-to-
consumer - B2C)

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Lenguajes y tecnologías de páginas Web

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Clientes Remotos y Ligeros

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Programas CGI

Un servidor Web puede


responder invocando una
aplicación que generará el
documento (p.e.
información recuperada de
una base de datos).
Common Gateway Interface
(CGI): Mecanismo estandar
que permite a servidores
HTTP interaccionar con
aplicaciones externas. El
CGI asigna programas a
URLs

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Programas CGI

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Programas CGI

El problema de los CGIs es la sobrecarga que supone cada


proceso lanzado.

Múltiples peticiones al mismo CGI implica varias


ejecuciones del mismo programa → problemas de
escalabilidad del sistema

La alternativa a los CGI son los Servlets, que se pueden


usar como los CGIs, pero la implementación es diferente.

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Applets

Los navegadores están pensados para presentar documentos


HTML estáticos.
Solución: Applets, código Java embebido en el documento
HTML y ejecutados por la MVJ del navegador. El cliente la
tiene que descargar cada vez que se usa, pero para
clientes ligeros es una solución común.

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Servlets
Implementación ...

• La ejecución se lanza igual que un CGI y el resultado es igual


• Los Servlets se ejecutan como procesos Java, no como
procesos independientes.

• Son parte del servidor Web


• Se invocan directamente incorporando información
específica del servlet en la petición HTTP
• Se elimina la carga de crear procesos para cada
invocación y el costo del cambio de contexto.
• Se reduce la memoria necesaria, ya que una única imagen
del programa se encuentra en memoria aunque haya varias
peticiones

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Servlets

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Middleware para aplicaciones Web

El uso creciente de la Web como canal de acceso a los


sistemas de información es lo que “forzó” a las plataformas
middleware a incluir acceso Web.

• Este soporte es el ofrecido por los “servidores de


aplicaciones”
• La funcionalidad de un servidor de aplicación puede ser
descrita examinando uno de los dos frameworks para
middleware basado en Web.
• J2EE de Sun
• .NET de Microsoft

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Servidor de Aplicaciones

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


La Conectividad habilita procesos globales
y el acceso a la Información

Internet LAN Web XML


WS SOA
1980 1990 2000 2010

LAN WAN Web

Information

Local Global
Business
Processes Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P
Requerimientos de hardware y
software para el desarrollo de
aplicaciones Web

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Contenido

• Introducción
• WAMP
• Instalación
• Referencias del lenguaje
• Herramientas de trabajo
• Una aplicación sencilla

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Introducción

• Historia de PHP
• ¿Qué es PHP?
• ¿Qué quiere decir PHP?
• Versiones
• Usos de PHP
• Ventajas de PHP

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Historia de PHP

• 1994: Perl – C -> Danés-Canadiense Rasmus Lerdorf


• 1995: “Personal Home Page Tools” combinar con propio Form
Interpreter -> PHP/FI
• 1997: Israelíes Zeev Suraski y Andi Gutmans reescribieron el
analizador sintáctico – base PHP3
• 1998: Lanzamiento oficial de PHP3
• 1999: Zend Engine
• 2000: PHP4 - Zend Engine 1.0
• 2004: PHP5 - Zend Engine II
• 2005: PHP5.1 - PDO

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


¿Qué es PHP?

• PHP es un lenguaje de scripting embebido en


HTML.
• C, Java y Perl
• Propósito: desarrollar páginas Web con
rapidez.

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


¿Qué quiere decir PHP?

• Acrónimo recursivo
• PHP significa PHP: Hypertext Preprocessor
• Personal Home Page Tools
• www.wikipedia.org

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Versiones

• PHP/FI: 1995 => scripts perl y C


• PHP 3: 1997 => gran extensibilidad
• PHP 4: 1998 => motor Zend
• PHP 5: 2004 => motor Zend 2.0
• PHP 5.1: 2005 => PDO

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Usos de PHP

• Programación de páginas Web dinámicas


• Programación en consola
• Creación de aplicaciones gráficas: GTK

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Ventajas de PHP

• Lenguaje multiplataforma
• Conexión con manejadores de base de datos
• Leer y manipular datos desde diversas fuentes
• Expandir su potencial utilizando módulos
(extensiones)
• Amplia documentación
• Fácil acceso para todos (libre)
• Programación Orientada a Objetos

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Contenido

• Introducción
• WAMP
• Instalación
• Referencias del lenguaje
• Herramientas de trabajo
• Una aplicación sencilla

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


WAMP

• Windows: Sistema Operativo


• Apache: Servidor Web
• Mysql: Gestor de Base de Datos
• Php: Lenguaje de Programación

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Contenido

• Introducción
• WAMP
• Instalación
• Referencias del lenguaje
• Herramientas de trabajo
• Una aplicación sencilla

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Instalación

• Configuración Apache
• Configuración de MYSQL
• Configuración PHP

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Contenido

• Introducción
• WAMP
• Instalación
• Referencias del lenguaje
• Herramientas de trabajo
• Una aplicación sencilla

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Referencias del lenguaje

• Web Hosting
– www.5GBFREE.com
– 100% soportan PHP, MYSQL
• ZEND
– www.zend.com
• Clases
– www.phpclasses.org
• Documentación – Software
– www.php.net
Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P
Referencias del lenguaje

• Proyectos Código Abierto


– sourceforge.net
– PHP, MYSQL
– 15384 proyectos
• ZEND
– www.zend.com
• ORACLE
– www.oracle.com
• Joomla – phpMyAdmin
– sourceforge.net
Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P
Contenido

• Introducción
• WAMP
• Instalación
• Referencias del lenguaje
• Herramientas de trabajo
• Una aplicación sencilla

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Herramientas de trabajo

• Macromedia Dreamweaver (www.adobe.com)


• Zend Development Environment (www.zend.com)
• Php Designer 2006
(www.mpsoftware.dk/phpdesigner.php)
• PHPEdit (www.waterproof.fr)
• PHP Editor (www.freedownloadscenter.com)
• Editores de Texto (Kwrite)

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Contenido

• Introducción
• LAMP
• Instalación
• Referencias del lenguaje
• Herramientas de trabajo
• Una aplicación sencilla

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Materiales - PHP

Editor de texto…

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Iniciando con PHP

<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php echo "<p>Hola Mundo</p>"; ?>
</body>
</html>

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Iniciando con PHP
Variables: $nombre_variable

Presentar información: print o echo

Estructuras de control: if(<condición>){ }else{ }

Operadores: *, /, -, +, pow(), sqrt()

Funciones: function nombre_de_funcion( ){ }

Clases: class A { }

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Materiales - APACHE

• PHP
• MYSQL

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Materiales - MYSQL

Base de datos: track2

Tabla:
CREATE TABLE usuarios (
nombre varchar(60),
apellido varchar(60),
edad int,
institucion varchar(45)
);

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Conclusiones
• PHP puede hacer cualquier cosa que se pueda hacer con un
script CGI, como procesar la información de formularios,
generar páginas con contenidos dinámicos, o enviar y recibir
cookies. Y esto no es todo, se puede hacer mucho más.

• PHP puede ser utilizado en cualquiera de los principales


sistemas operativos del mercado: Linux, muchas variantes
Unix (incluyendo HP-UX, Solaris y OpenBSD), Microsoft
Windows, Mac OS X, RISC OS, etc.

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Conclusiones
• El soporte que tiene este lenguaje de programación es
impresionante., foros, blogs, tutoriales, ejemplos (
www.forosdelweb.com, www.php.net, www.phpscripts.com).

• PHP soporta gran cantidad de bases de datos: MySQL, Oracle,


PostgreSQL, Informix, IBM DB2, FilePro, InterBase, dBase,
etc. y soporte para ODBC.

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P


Bibliografía

Php
http://www.php.net
http://www.lawebdelprogramador.com
Mysql
http://www.mysql.com
Apache
http://www.apache.org
Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P
GRACIAS

Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P