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).
Servidor Web
http
distribuye
Cliente - Navegador 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
Respuesta
Solicitud
Web Server
ISP
Internet
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
Browser
Internet
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
? DNS
Web Server
Int rod ucci ón al D esarrol lo de Ap li caci one s W eb con PH P
OOM – WEB SERVER
Z
File system HTTP/HTTPS Request
Header HTTP + HTML
html
Web Server application (apache /IIS /etc.)
html
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).
Servidor Web
http
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 Un programa intermediario que actúa como cliente y servidor con el propósito de hacer peticiones en nombre de otro cliente (actúa en nombre de un cliente)
programa intermediario que actúa como un relevo entre dos conexiones (simplemente conecta dos redes)
Un servidor que actúa como un intermediario de otro 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-toconsumer - 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
1980
Web 1990
LAN
WAN
XML
WS 2000
SOA
2010
Web
Information Local Business Processes
Global 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
Ejemplo de PHP Hola Mundo"; ?>
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(){ }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