2009. 01 Arquitectura Cliente Servidor Web
-
Upload
adriesc2008 -
Category
Documents
-
view
5.371 -
download
0
description
Transcript of 2009. 01 Arquitectura Cliente Servidor Web
Introducción al Desarrollo de Aplicaciones Web con PHP
Arquitectura Web Cliente Servidor
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]
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
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!!!
Introducción al Desarrollo de Aplicaciones Web con PHP
ZOOM
Browser
http://www.unsitio.com
InternetInternetHTTP Request
Introducción al Desarrollo de Aplicaciones Web con PHP
ZOOM
ISP
HTTP Request
DNS
DNS DNS
Web Server
?
?
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
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
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
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
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)
Introducción al Desarrollo de Aplicaciones Web con PHP
Lenguajes y tecnologías de páginas Web
Introducción al Desarrollo de Aplicaciones Web con PHP
Clientes Remotos y Ligeros
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
Introducción al Desarrollo de Aplicaciones Web con PHP
Programas CGI
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.
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.
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
Introducción al Desarrollo de Aplicaciones Web con PHP
Servlets
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.
Introducción al Desarrollo de Aplicaciones Web con PHP
Servidor de Aplicaciones
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
Introducción al Desarrollo de Aplicaciones Web con PHP
Requerimientos de hardware y software para el desarrollo de
aplicaciones 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
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
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
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.
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
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
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
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
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
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
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
Introducción al Desarrollo de Aplicaciones Web con PHP
Instalación
• Configuración Apache
• Configuración de MYSQL
• Configuración PHP
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
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
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
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
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)
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
Introducción al Desarrollo de Aplicaciones Web con PHP
Materiales - PHP
Editor de texto…
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>
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 { }
Introducción al Desarrollo de Aplicaciones Web con PHP
Materiales - APACHE
• PHP
• MYSQL
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)
);
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.
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.
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
Introducción al Desarrollo de Aplicaciones Web con PHP
GRACIAS