2009. 01 Arquitectura Cliente Servidor Web

50
Introducción al Desarrollo de Aplicaciones Web con PHP Arquitectura Web Cliente Servidor

description

Presentación incial para la materia TIC Escuela Técnica ORT Sede Almagro Informática Buenos Aires Argentina 2009

Transcript of 2009. 01 Arquitectura Cliente Servidor Web

Page 1: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Arquitectura Web Cliente Servidor

Page 2: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

“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.”

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

[Conallen 99]

Page 3: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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).

Arquitectura Sitio Web

Servidor WebServidor Web Cliente - NavegadorCliente - Navegador

documento Webdocumento Web

http

distribuye despliega

Modeling Web Application Design with UML (Jim Conallen)Más detalles en : http://www.itmweb.com/essay546.htm

Page 4: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

ESQUEMA DE COMUNICACIÓN

http://www.unapagina.com

ISP

InternetInternet

Web Server

Solic

itud R

esp

uesta

Eeeeh!!!

Page 5: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

ZOOM

Browser

http://www.unsitio.com

InternetInternetHTTP Request

Page 6: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

ZOOM

ISP

HTTP Request

DNS

DNS DNS

Web Server

?

?

Page 7: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

ZOOM – WEB SERVER

Web Server application (apache /IIS

/etc.)

HTTP/HTTPS Request

File system

html

html

php

php

php

Header HTTP + HTML

Intérprete PHP

HTML

Page 8: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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).

Modeling Web Application Design with UML (Jim Conallen)Más detalles en : http://www.itmweb.com/essay546.htm

Servidor WebServidor Web Cliente - NavegadorCliente - Navegadorhttp

Filtro de páginaFiltro de página

Página con scriptPágina con script

Base de DatosBase de Datos

procesareferencia

Arquitectura Sitio Web

Page 9: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Proxy, gateway y tunnel son elementos que permiten abordar temas de integración como firewalls, balance de carga, movimiento de datos, etc.

Intermediarios en la Comunicación C/S

Page 10: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Un programa intermediario que actúa como cliente y servidor con el propósitode hacer peticiones en nombre de otro cliente (actúa en nombre de un cliente)

Un programa intermediario que actúa como cliente y servidor con el propósitode hacer peticiones en nombre de otro cliente (actúa en nombre de un cliente)

Un servidor que actúa como un intermediario de otro servidor en una petición (actúan en nombre de un servidor)

Un servidor que actúa como un intermediario de otro servidor en una petición (actúan en nombre de un servidor)

programa intermediario que actúa como un relevo entre dos conexiones (simplemente conecta dos redes)

programa intermediario que actúa como un relevo entre dos conexiones (simplemente conecta dos redes)

Intermediarios en la Comunicación C/S

Page 11: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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”.

Aprovechar la conectividad ...

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)

Page 12: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Lenguajes y tecnologías de páginas Web

Page 13: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Clientes Remotos y Ligeros

Page 14: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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

Page 15: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Programas CGI

Page 16: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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.

Page 17: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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 paraclientes ligeros es una solución común.

Page 18: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

ServletsImplementació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

Page 19: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Servlets

Page 20: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

• 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

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.

Page 21: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Servidor de Aplicaciones

Page 22: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Information

BusinessProcesses

Local

1980 1990 2000 2010

Web

XMLWS

WAN

Web

LAN

LANInternet

Global

SOA

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

Page 23: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Requerimientos de hardware y software para el desarrollo de

aplicaciones Web

Page 24: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Contenido

• Introducción

• WAMP

• Instalación

• Referencias del lenguaje

• Herramientas de trabajo

• Una aplicación sencilla

Page 25: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Introducción

• Historia de PHP

• ¿Qué es PHP?

• ¿Qué quiere decir PHP?

• Versiones

• Usos de PHP

• Ventajas de PHP

Page 26: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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

Page 27: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

¿Qué es PHP?

• PHP es un lenguaje de scripting embebido en HTML.

• C, Java y Perl

• Propósito: desarrollar páginas Web con rapidez.

Page 28: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

¿Qué quiere decir PHP?

• Acrónimo recursivo

• PHP significa PHP: Hypertext Preprocessor

• Personal Home Page Tools

• www.wikipedia.org

Page 29: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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

Page 30: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Usos de PHP

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

• Programación en consola

• Creación de aplicaciones gráficas: GTK

Page 31: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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

Page 32: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Contenido

• Introducción

• WAMP

• Instalación

• Referencias del lenguaje

• Herramientas de trabajo

• Una aplicación sencilla

Page 33: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

WAMP

• Windows: Sistema Operativo

• Apache: Servidor Web

• Mysql: Gestor de Base de Datos

• Php: Lenguaje de Programación

Page 34: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Contenido

• Introducción

• WAMP

• Instalación

• Referencias del lenguaje

• Herramientas de trabajo

• Una aplicación sencilla

Page 35: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Instalación

• Configuración Apache

• Configuración de MYSQL

• Configuración PHP

Page 36: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Contenido

• Introducción

• WAMP

• Instalación

• Referencias del lenguaje

• Herramientas de trabajo

• Una aplicación sencilla

Page 37: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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

Page 38: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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

Page 39: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Contenido

• Introducción

• WAMP

• Instalación

• Referencias del lenguaje

• Herramientas de trabajo

• Una aplicación sencilla

Page 40: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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)

Page 41: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Contenido

• Introducción

• LAMP

• Instalación

• Referencias del lenguaje

• Herramientas de trabajo

• Una aplicación sencilla

Page 42: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Materiales - PHP

Editor de texto…

Page 43: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Iniciando con PHP

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

</html>

Page 44: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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 { }  

Page 45: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Materiales - APACHE

• PHP

• MYSQL

Page 46: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Materiales - MYSQL

Base de datos: track2

Tabla: CREATE TABLE usuarios (

nombre varchar(60),

apellido varchar(60),

edad int,

institucion varchar(45)

);

Page 47: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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.

Page 48: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

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.

Page 49: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

Bibliografía

Php

http://www.php.net

http://www.lawebdelprogramador.com

Mysql

http://www.mysql.com

Apache

http://www.apache.org

Page 50: 2009. 01 Arquitectura Cliente Servidor Web

Introducción al Desarrollo de Aplicaciones Web con PHP

GRACIAS