Você está na página 1de 26

CAPITULO III http://es.wikipedia.

org/wiki/Aplicaci%C3%B3n_web

Aplicacin web En la ingeniera de software se denomina aplicacin web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a travs de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicacin software que se codifica en un lenguaje soportado por los navegadores web en la que se confa la ejecucin al navegador. Las aplicaciones web son populares debido a lo prctico del navegador web como cliente ligero, a la independencia del sistema operativo, as como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en lnea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web. Es importante mencionar que una pgina Web puede contener elementos que permiten una comunicacin activa entre el usuario y la informacin. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la pgina responder a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo.

Antecedentes En los primeros tiempos de la computacin cliente-servidor, cada aplicacin tena su propio programa cliente que serva como interfaz de usuario que tena que ser instalado por separado en cada ordenador personal de cada usuario. El cliente realizaba peticiones a otro programa -el servidor- que le daba respuesta. Una mejora en el servidor, como parte de la aplicacin, requera normalmente una mejora de los clientes instalados en cada ordenador personal, aadiendo un coste de soporte tcnico y disminuyendo la productividad. A diferencia de lo anterior, las aplicaciones web generan dinmicamente una serie de pginas en un formato estndar, como HTML o XHTML, soportados por los navegadores web comunes. Se utilizan lenguajes interpretados en el lado del cliente, directamente o a travs de plugins tales como JavaScript, Java, Flash, etc., para aadir elementos

dinmicos a la interfaz de usuario. Generalmente cada pgina web en particular se enva al cliente como un documento esttico, pero la secuencia de pginas ofrece al usuario una experiencia interactiva. Durante la sesin, el navegador web interpreta y muestra en pantalla las pginas, actuando como cliente para cualquier aplicacin web.

Interfaz web Las interfaces web tienen ciertas limitaciones en las funcionalidades que se ofrecen al usuario. Hay funcionalidades comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-soltar que no estn soportadas por las tecnologas web estndar. Los desarrolladores web generalmente utilizan lenguajes interpretados (scripts) en el lado del cliente para aadir ms funcionalidades, especialmente para ofrecer una experiencia interactiva que no requiera recargar la pgina cada vez (lo que suele resultar molesto a los usuarios). Recientemente se han desarrollado tecnologas para coordinar estos lenguajes con las tecnologas en el lado del servidor. Como ejemplo, AJAX es una tcnica de desarrollo web que usa una combinacin de varias tecnologas.

Consideraciones tcnicas Una ventaja significativa es que las aplicaciones web deberan funcionar igual independientemente de la versin del sistema operativo instalado en el cliente. En vez de crear clientes para Windows, Mac OS X, GNU/Linux y otros sistemas operativos, la aplicacin web se escribe una vez y se ejecuta igual en todas partes. Sin embargo, hay aplicaciones inconsistentes escritas con HTML, CSS, DOM y otras especificaciones estndar para navegadores web que pueden causar problemas en el desarrollo y soporte de estas aplicaciones, principalmente debido a la falta de adhesin de los navegadores a dichos estndares web (especialmente versiones de Internet Explorer anteriores a la 7.0). Adicionalmente, la posibilidad de los usuarios de personalizar muchas de las caractersticas de la interfaz (tamao y color de fuentes, tipos de fuentes, inhabilitar Javascript) puede interferir con la consistencia de la aplicacin web. Otra aproximacin es utilizar Adobe Flash Player o Java applets para desarrollar parte o toda la interfaz de usuario. Como casi todos los navegadores incluyen soporte para estas tecnologas (usualmente por medio de plug-ins), las aplicaciones basadas en Flash o Java

pueden ser implementadas con aproximadamente la misma facilidad. Dado que ignoran las configuraciones de los navegadores, estas tecnologas permiten ms control sobre la interfaz, aunque las incompatibilidades entre implementaciones Flash o Java puedan crear nuevas complicaciones, debido a que no son estndares. Por las similitudes con una arquitectura cliente-servidor, con un cliente "no ligero", existen discrepancias sobre el hecho de llamar a estos sistemas aplicaciones web; un trmino alternativo es Aplicacin Enriquecida de Internet.

Estructura de las aplicaciones web Aunque existen muchas variaciones posibles, una aplicacin web est normalmente estructurada como una aplicacin de tres-capas. En su forma ms comn, el navegador web ofrece la primera capa, y un motor capaz de usar alguna tecnologa web dinmica (ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, ColdFusion,

embPerl, Python (programming language) o Ruby on Rails) que constituye la capa intermedia. Por ltimo, una base de datos constituye la tercera y ltima capa. El navegador web manda peticiones a la capa intermedia que ofrece servicios valindose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario.

Uso empresarial Una estrategia que est emergiendo para las empresas proveedoras de software consiste en proveer acceso va web al software. Para aplicaciones previamente distribuidas, como las aplicaciones de escritorio, se puede optar por desarrollar una aplicacin totalmente nueva o simplemente por adaptar la aplicacin para ser usada con una interfaz web. Estos ltimos programas permiten al usuario pagar una cuota mensual o anual para usar la aplicacin, sin necesidad de instalarla en el ordenador del usuario. A esta estrategia de uso se la denomina Software como servicio y a las compaas desarrolladoras se les denomina Proveedores de Aplicaciones de Servicio (ASP por sus siglas en ingls), un modelo de negocio que est atrayendo la atencin de la industria del software.

Ventajas

- Ahorra tiempo: Se pueden realizar tareas sencillas sin necesidad de descargar ni instalar ningn programa. - No hay problemas de compatibilidad: Basta tener un navegador actualizado para poder utilizarlas. - No ocupan espacio en nuestro disco duro. - Actualizaciones inmediatas: Como el software lo gestiona el propio desarrollador, cuando nos conectamos estamos usando siempre la ltima versin que haya lanzado. - Consumo de recursos bajo: Dado que toda (o gran parte) de la aplicacin no se encuentra en nuestro ordenador, muchas de las tareas que realiza el software no consumen recursos nuestros porque se realizan desde otro ordenador. - Multiplataforma: Se pueden usar desde cualquier sistema operativo porque slo es necesario tener un navegador. - Portables: Es independiente del ordenador donde se utilice (un PC de sobremesa, un porttil...) porque se accede a travs de una pgina web (slo es necesario disponer de acceso a Internet). La reciente tendencia al acceso a las aplicaciones web a travs de telfonos mviles requiere sin embargo un diseo especfico de los ficheros CSS para no dificultar el acceso de estos usuarios. - La disponibilidad suele ser alta porque el servicio se ofrece desde mltiples localizaciones para asegurar la continuidad del mismo. - Los virus no daan los datos porque stos estn guardados en el servidor de la aplicacin. - Colaboracin: Gracias a que el acceso al servicio se realiza desde una nica ubicacin es sencillo el acceso y comparticin de datos por parte de varios usuarios. Tiene mucho sentido, por ejemplo, en aplicaciones online de calendarios u oficina. - Los navegadores ofrecen cada vez ms y mejores funcionalidades para crear aplicaciones web ricas (RIAs).

Inconvenientes - Habitualmente ofrecen menos funcionalidades que las aplicaciones de escritorio. Se debe a que las funcionalidades que se pueden realizar desde un navegador son ms

limitadas que las que se pueden realizar desde el sistema operativo. Pero cada vez los navegadores estn ms preparados para mejorar en este aspecto. La aparicin de HTML 5 representa un hito en este sentido. Es posible aadir funcionalidades a estas aplicaciones gracias al uso de Aplicaciones de Internet Enriquecidas. - La disponibilidad depende de un tercero, el proveedor de la conexin a internet o el que provee el enlace entre el servidor de la aplicacin y el cliente. As que la disponibilidad del servicio est supeditada al proveedor. 1

Diferencia entre aplicacin web y aplicacin de internet enriquecida (RIA) Las aplicaciones web se ejecutan nativamente desde el navegador. Pero existen algunas aplicaciones que funcionan desde el navegador pero adems requieren la instalacin de un software en el ordenador para poder utilizarse. Estas aplicaciones se denominan Aplicaciones de Internet Ricas. El motivo de usar este software adicional es que hay muchas funcionalidades que los navegadores no pueden ofrecer, y l enriquece a las aplicaciones web ofreciendo dichas funcionalidades. . Ejemplos de funcionalidades que pueden ofrecer los programas online gracias al uso de software instalado: - Procesamiento de imgenes - Captura de imgenes - Uso de webcam / Captura de video1 Lenguajes de programacin Existen numerosos lenguajes de programacin empleados para el desarrollo de aplicaciones web en el servidor, entre los que destacan:

PHP Java, con sus tecnologas Java Servlets y JavaServer Pages (JSP) Javascript Perl Ruby Python

C# y Visual Basic con sus tecnologas ASP/ASP.NET

Tambin son muy utilizados otros lenguajes o arquitecturas que no son propiamente lenguajes de programacin, como HTML o XML. Se utilizan para servir los datos adecuados a las necesidades del usuario, en funcin de cmo hayan sido definidos por el dueo de la aplicacin. Los datos se almacenan en alguna base de datos estndar.

CAPITULO IV PHP http://www.desarrolloweb.com/articulos/392.php PHP es el acrnimo de Hipertext Preprocesor. Es un lenguaje de programacin del lado del servidor gratuito e independiente de plataforma, rpido, con una gran librera de funciones y mucha documentacin. Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de que se enve la pgina a travs de Internet al cliente. Las pginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la pgina final que ver el cliente. El cliente solamente recibe una pgina con el cdigo HTML resultante de la ejecucin de la PHP. Como la pgina resultante contiene nicamente cdigo HTML, es compatible con todos los navegadores. Podemos saber algo ms sobre la programacin del servidor y del cliente en el artculo qu es DHTML.

Esquema del funcionamiento de las pginas PHP. Una vez que ya conocemos el concepto de lenguaje de programacin de scripts del lado del servidor podemos hablar de PHP. PHP se escribe dentro del cdigo HTML, lo que lo hace realmente fcil de utilizar, al igual que ocurre con el popular ASP de Microsoft, pero con algunas ventajas como su gratuidad, independencia de plataforma, rapidez y seguridad. Cualquiera puede descargar a travs de la pgina principal de PHP www.php.net y de manera gratuita, un mdulo que hace que nuestro servidor web comprenda los scripts realizados en este lenguaje. Es independiente de plataforma, puesto que existe un mdulo de PHP para casi cualquier servidor web. Esto hace que cualquier sistema pueda ser compatible con el lenguaje y significa una ventaja importante, ya que permite portar el sitio desarrollado en PHP de un sistema a otro sin prcticamente ningn trabajo. PHP, en el caso de estar montado sobre un servidor Linux u Unix, es ms rpido que ASP, dado que se ejecuta en un nico espacio de memoria y esto evita las comunicaciones entre componentes COM que se realizan entre todas las tecnologas implicadas en una pgina ASP.

Por ltimo sealbamos la seguridad, en este punto tambin es importante el hecho de que en muchas ocasiones PHP se encuentra instalado sobre servidores Unix o Linux, que son de sobra conocidos como ms veloces y seguros que el sistema operativo donde se ejecuta las ASP, Windows NT o 2000. Adems, PHP permite configurar el servidor de modo que se permita o rechacen diferentes usos, lo que puede hacer al lenguaje ms o menos seguro dependiendo de las necesidades de cada cual. Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP est desarrollado en poltica de cdigo abierto, a lo largo de su historia ha tenido muchas contribuciones de otros desarrolladores. Actualmente PHP se encuentra en su versin 4, que utiliza el motor Zend, desarrollado con mayor meditacin para cubrir las necesidades de las aplicaciones web actuales. Este lenguaje de programacin est preparado para realizar muchos tipos de aplicaciones web gracias a la extensa librera de funciones con la que est dotado. La librera de funciones cubre desde clculos matemticos complejos hasta tratamiento de conexiones de red, por poner dos ejemplos. Algunas de las ms importantes capacidades de PHP son: compatibilidad con las bases de datos ms comunes, como MySQL, mSQL, Oracle, Informix, y ODBC, por ejemplo. Incluye funciones para el envo de correo electrnico, upload de archivos, crear dinmicamente en el servidor imgenes en formato GIF, incluso animadas y una lista interminable de utilidades adicionales.

http://es.wikipedia.org/wiki/PHP PHP es un lenguaje de programacin de uso general de script del lado del

servidor originalmente diseado para el desarrollo web de contenido dinmico. Fue uno de los primeros lenguajes de programacin del lado del servidor que se podan incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. El cdigo es interpretado por un servidor web con un mdulo de procesador de PHP que genera la pgina Web resultante. PHP ha evolucionado por lo que ahora incluye tambin una interfaz de lnea de comandos que puede ser usada en aplicaciones grficas independientes. PHP puede ser usado en la mayora de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningn costo.

PHP fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje sigue siendo desarrollado con nuevas funciones por el grupo PHP.1 Este lenguaje forma parte del software libre publicado bajo la licencia PHP que es incompatible con la Licencia Pblica General de GNU debido a las restricciones del uso del trmino PHP.2 Visin general PHP es un acrnimo recursivo que significa PHP Hypertext Pre-

processor

(inicialmente PHP Tools, o, Personal Home Page Tools)3 . Fue creado

originalmente por Rasmus Lerdorf en 1994; sin embargo la implementacin principal de PHP es producida ahora por The PHP Group y sirve como el estndar de facto para PHP al no haber una especificacin formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. Puede ser desplegado en la mayora de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno. El lenguaje PHP se encuentra instalado en ms de 20 millones de sitios web y en un milln de servidores, el nmero de sitios en PHP ha compartido algo de su preponderante dominio con otros nuevos lenguajes no tan poderosos desde agosto de 2005. El sitio web de Wikipedia est desarrollado en PHP. Es tambin el mdulo Apache ms popular entre las computadoras que utilizan Apache como servidor web. El gran parecido que posee PHP con los lenguajes ms comunes de programacin estructurada, como C y Perl, permiten a la mayora de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. Tambin les permite involucrarse con aplicaciones de contenido dinmico sin tener que aprender todo un nuevo grupo de funciones. Aunque todo en su diseo est orientado a facilitar la creacin de sitios webs, es posible crear aplicaciones con una interfaz grfica para el usuario, utilizando la extensin PHPQt o PHP-GTK. Tambin puede ser usado desde la lnea de rdenes, de la misma manera como Perl o Pythonpueden hacerlo; a esta versin de PHP se la llama PHP-CLI (Command Line Interface). Cuando el cliente hace una peticin al servidor para que le enve una pgina web, el servidor ejecuta el intrprete de PHP. ste procesa el script solicitado que generar el contenido de manera dinmica (por ejemplo obteniendo informacin de una base de datos). El resultado es enviado por el intrprete al servidor, quien a su vez se lo enva al

cliente. Mediante extensiones es tambin posible la generacin de archivos PDF, Flash, as como imgenes en diferentes formatos. Permite la conexin a diferentes tipos de servidores de bases de datos tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite. PHP tambin tiene la capacidad de ser ejecutado en la mayora de los sistemas operativos, tales como Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft Windows, y puede interactuar con los servidores de web ms populares ya que existe en versin CGI, mdulo para Apache, eISAPI. PHP es una alternativa a las tecnologas de Microsoft ASP y ASP.NET (que

utiliza C# y Visual Basic .NET como lenguajes), a ColdFusion de la empresa Adobe, a JSP/Java y a CGI/Perl. Aunque su creacin y desarrollo se da en el mbito de los sistemas libres, bajo la licencia GNU, existe adems un entorno de desarrollo integrado comercial llamado Zend Studio. CodeGear (la divisin de lenguajes de programacin de Borland) ha sacado al mercado un entorno de desarrollo integrado para PHP, denominado 'Delphi for PHP. Tambin existen al menos un par de mdulos para Eclipse, uno de los entornos ms populares.4 [editar]Historia Fue originalmente diseado en Perl, con base en la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador dans-canadiense Rasmus Lerdorf en el ao 1994 para mostrar su currculum vtae y guardar ciertos datos, como la cantidad de trfico que su pgina web reciba. El 8 de junio de 1995 fue publicado "Personal Home Page Tools" despus de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI. Dos programadores israeles del Technion, Zeev Suraski y Andi Gutmans, reescribieron el analizador sintctico (parser en ingls) en el ao 1997 y crearon la base del PHP3, cambiando el nombre del lenguaje por PHP: Hypertext Preprocessor1 . Inmediatamente comenzaron experimentaciones pblicas de PHP3 y fue publicado oficialmente en junio de 1998. Para 1999, Suraski y Gutmans reescribieron el cdigo de PHP, produciendo lo que hoy se conoce como motor Zend. Tambin fundaron Zend Technologies en Ramat Gan, Israel1 . En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0. El da 13 de julio de 2007 se anunci la suspensin del soporte y desarrollo de la versin 4 de

PHP,5 a pesar de lo anunciado se ha liberado una nueva versin con mejoras de seguridad, la 4.4.8 publicada el 13 de enero del 2008 y posteriormente la versin 4.4.9 publicada el 7 de agosto de 2008.6 Segn esta noticia7 se le dio soporte a fallos crticos hasta el 9 de agosto de 2008. El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend Engine 2)1 . Incluye todas las ventajas que provee el nuevo Zend Engine 2 como:

Mejor soporte para la programacin orientada a objetos, que en versiones anteriores era extremadamente rudimentario.

Mejoras de rendimiento. Mejor soporte para MySQL con extensin completamente reescrita. Mejor soporte a XML (XPath, DOM, etc.). Soporte nativo para SQLite. Soporte integrado para SOAP. Iteradores de datos. Manejo de excepciones. Mejoras con la implementacin con Oracle.

Historial de lanzamiento Significado Rojo Sin soporte

Verde Con soporte Azul Lanzamiento futuro

Versin mayor

Fecha de Versin lanzamient Notas menor o

1.0.0

1995-06-08

Llamada oficialmente "Personal Home Page Tools (PHP Tools)". Es la primera versin en usar el nombre "PHP".8

2.0.0

1997-11-01

Considerada por sus creadores la "herramienta ms

rpida y sencilla" para crear pginas web dinmicas.8

3.0.0

1998-06-06

Zeev Suraski y Andi Gutmans reescribieron la base para esta versin.8

4.0.0

2000-05-22

Se aadi un sistema de parsing de dos fases llamado motor Zend.9

4.1.0

2001-12-10

Se introducen ($_GET, $_POST, $_SESSION, etc.)9

'superglobales'

4.2.0

Se deshabilitan register_globals por defecto. Datos recibidos por la red no son insertados en el espacio de 2002-04-22 nombres global, cerrando posibles agujeros de seguridad en las aplicaciones.9

4.3.0

2002-12-27 Se introduce CLI, y CGI.9 10

4.4.0

2005-07-11 Se aaden pginas man para phpize y php-config.9

4.4.9

2008-08-07

Mejoras de seguridad y arreglo de bugs. ltimo lanzamiento de la serie PHP 4.4.11 12

5.0.0

2004-07-13 Motor Zend II con un nuevo modelo de objetos.13

5.1.0 5 5.2.0

2005-11-24

Mejoras de rendimiento con la introduccin de variables de compilador para el nuevo motor de PHP.13

2006-11-02

Activida extensin Soporte JSON nativo.13

de

filtro

por

defecto.

5.2.17

2011-01-06

Arreglo de vulnerabilidad crtica conectada a punto flotante.

5.3.0

Soporte para espacios de nombres, enlace esttico en tiempo de ejecucin, etiqueta de salto (goto limitada), Clausuras nativas, Soporte nativo para archivos PHP (phar), recoleccin de basura para referencias circulares, soporte mejorado para Windows, 2009-06-30 sqlite3, mysqlnd como reemplazo a libmysql como biblioteca para extensiones que funcionan con MySQL, fileinfo como reemplzado de mime_magic para mejor soporte MIME, extensin de Internacionalizacin, y etiqueta ereg obsoleta.

5.3.1

2009-11-19 Cerca de 100 bug fixes.

5.3.2

2010-03-04 Gran nmero de bug fixes.

5.3.3

2010-07-22 Mayoritariamente arreglo de errores; FPM SAPI.

5.3.4

2010-12-10 Mejoras a FPM SAPI.

5.3.5

2011-01-06

Arreglo de vulnerabilidad crtica relacionada a punto flotante.

5.3.6

2011-03-10 Cerca de 60 bug fixes.

5.3.7

Esta versin se enfoca en la estabilidad con cerca de 90 2011-08-18 bug fixes, algunos de los cuales tienen implicaciones a la seguridad.

5.3.8

2011-08-23

Esta versin arregla dos errores introducidos por la versin 5.3.7.

5.3.9

Esta versin se enfoca en la estabilidad con cerca de 90 2012-01-10 bug fixes, algunos de los cuales tienen implicaciones a la seguridad.

5.3.10

2012-02-02

Arreglo de vulnerabilidad de ejecucin de cdigo arbitrario reportada por Stefan Esser, CVE-2012-0830.

5.3.13

2012-05-08

Arreglo de vulnerabilidad para instalaciones basadas en CGI.

5.4.0

Soporte para Trait y sintaxis abreviada de array. Elementos removidos: register_globals, safe_mode, allow_call_time _pass_reference, session_register(), session_unregister 2012-03-01 () y session_is_registered(). Servidor web incorporado.14 Varias mejoras a caractersticas existentes y al rendimiento, y requerimientos de memoria menores.

5.4.1

2012-04-26 Varios bug fixes y mejoras de seguridad.

5.4.2

2012-05-03

Parche de seguridad para arreglar vulnerabilidad del parmetro query string de PHP-CGI.

5.4.3

Arreglo de vulnerabilidad para instalaciones basadas en 2012-05-08 CGI y tambin para la vulnerabilidad de desbordamiento de bfer para apache_request_headers()

?.?

Sin fecha

El desarrollo de PHP 6 ha sido retrasado porque los desarrolladores decidieron que el enfoque actual para tratar cadenas Unicode no es correcto, y estn considerando formas alternas para la siguiente versin.15 Las mejoras planeadas para PHP 6 fueron aadidas en su lugar en PHP 5.3.0 (soporte para espacios de nombre, enlace esttico en tiempo de ejecucin, funciones lambda, clasuras, goto) y 5.4.0 (traits, revinculacin de clausura).

Caractersticas de PHP <html> <head>

<meta charset="utf-8" /> <title> Ejemplo basico PHP</title> </head> <body> <?php echo 'Hola mundo'; ?> </body> </html>

Programa Hola mundo con PHP embebido en cdigo HTML

Caractersticas

Orientado al desarrollo de aplicaciones web dinmicas con acceso a informacin almacenada en una base de datos.

Es considerado un lenguaje fcil de aprender, ya que en su desarrollo se simplificaron distintas especificaciones, como es el caso de la definicin de las variables primitivas, ejemplo que se hace evidente en el uso de php arrays.

El cdigo fuente escrito en PHP es invisible al navegador web y al cliente, ya que es el servidor el que se encarga de ejecutar el cdigo y enviar su resultado HTML al navegador. Esto hace que la programacin en PHP sea segura y confiable.

Capacidad de conexin con la mayora de los motores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.

Capacidad

de

expandir

su

potencial

utilizando

mdulos

(llamados ext's o

extensiones).

Posee una amplia documentacin en su sitio web oficial, entre la cual se destaca que todas las funciones del sistema estn explicadas y ejemplificadas en un nico archivo de ayuda.

Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. Permite aplicar tcnicas de programacin orientada a objetos. Incluso aplicaciones como Zend framework, empresa que desarrolla PHP, estn totalmente desarrolladas mediante esta metodologa.

No requiere definicin de tipos de variables aunque sus variables se pueden evaluar tambin por el tipo que estn manejando en tiempo de ejecucin.

Tiene manejo de excepciones (desde PHP5). Si bien PHP no obliga a quien lo usa a seguir una determinada metodologa a la hora de programar, an hacindolo, el programador puede aplicar en su trabajo cualquier tcnica de programacin o de desarrollo que le permita escribir cdigo ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrn de diseo Modelo Vista Controlador (MVC), que permiten separar el tratamiento y acceso a los datos, la lgica de control y la interfaz de usuario en tres componentes independientes.

Inconvenientes

Como es un lenguaje que se interpreta en ejecucin, para ciertos usos puede resultar un inconveniente que el cdigo fuente no pueda ser ocultado. La ofuscacin es una tcnica que puede dificultar la lectura del cdigo pero no necesariamente impide que el cdigo sea examinado.

Debido a que es un lenguaje interpretado, un script en PHP suele funcionar considerablemente ms lento que su equivalente en un lenguaje de bajo nivel, sin embargo este inconveniente se puede minimizar con tcnicas de cache tanto en archivos como en memoria.

Las variables al no ser tipadas dificulta a los diferentes IDEs para ofrecer asistencias para el tipeado del cdigo, aunque esto no es realmente un inconveniente del lenguaje en s. Esto es solventado por Zend Studio aadiendo un comentario con el tipo a la declaracin de la variable.

XAMPP, LAMP, WAMP, MAMP XAMPP es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor Web Apache y los intrpretes para lenguajes de script: PHP y Perl. El nombre proviene del acrnimo de X (para cualquiera de los diferentes sistemas operativos), Apache, MySQL, PHP, Perl. El programa est liberado bajo la licencia GNU y acta como un servidor Web libre, fcil de usar y capaz de interpretar pginas dinmicas. Actualmente XAMPP esta disponible para Microsoft Windows, GNU/Linux, Solaris, y MacOS X.

LAMP presenta una funcionalidad parecida a XAMP, pero enfocada en Linux, y WAMP lo hace enfocado en Windows.

Principales sitios desarrollados con PHP PHP es utilizado en millones de sitios, entre los ms destacados se encuentran wikipedia.org, facebook.com y Wordpress.com.

CAPITULO V http://es.wikipedia.org/wiki/MySQL MYSQL MySQL es un sistema de gestin de bases de atos relacional, multihilo y multiusuario con ms de seis millones de instalaciones.1 MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems y sta a su vez de Oracle Corporation desde abril de 2009 desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia especfica que les permita este uso. Est desarrollado en su mayor parte en ANSI C. Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pblica y los derechos de autor del cdigo estn en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del cdigo. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Adems de la venta de licencias privativas, la compaa ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran va Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.

Lenguajes de programacin Existen varias interfaces de programacin de aplicaciones que permiten, a aplicaciones escritas en diversos lenguajes de programacin, acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (via implementacin nativa dbExpress), Eiffel,Smalltalk, Java (con del driver una de

Java), Lisp, Perl, PHP, Python, Ruby,Gambas, REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una interfaz de programacin de aplicaciones especfica. Tambin existe una interfaz ODBC, llamado MyODBC que permite a cualquier lenguaje de programacin que soporte ODBC comunicarse con las

bases de datos MySQL. Tambin se puede acceder desde el sistemaSAP, lenguaje ABAP.

Aplicaciones

Toma de pantalla programa de Monitoreo Mtop. MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicacin web est muy ligada a PHP, que a menudo aparece en combinacin con MySQL. MySQL es una base de datos muy rpida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificacin. En aplicaciones web hay baja concurrencia en la modificacin de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar y corregir errores tanto de SQL como de programacin.2

Versiones de MySQL

Plataformas MySQL funciona sobre mltiples plataformas, incluyendo:


AIX BSD FreeBSD HP-UX Kurisu OS GNU/Linux Mac OS X NetBSD OpenBSD OS/2 Warp QNX SGI IRIX Solaris SunOS SCO OpenServer SCO UnixWare Tru64 eBD Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8 y Windows Server (2000, 2003 y 2008). OpenVMS9

Caractersticas adicionales

Usa GNU Automake, Autoconf, y Libtool para portabilidad Uso de multihilos mediante hilos del kernel. Usa tablas en disco b-tree para bsquedas rpidas con compresin de ndice Tablas hash en memoria temporales

El cdigo MySQL se prueba con Purify (un detector de memoria perdida comercial) as como con Valgrind, una herramienta GPL.

Completo soporte para operadores y funciones en clusulas select y where. Completo soporte para clusulas group by y order by, soporte de funciones de agrupacin

Seguridad: ofrece un sistema de contraseas y privilegios seguro mediante verificacin basada en el host y el trfico de contraseas est cifrado al conectarse a un servidor.

Soporta gran cantidad de datos. MySQL Server tiene bases de datos de hasta 50 millones de registros.

Se permiten hasta 64 ndices por tabla (32 antes de MySQL 4.1.2). Cada ndice puede consistir desde 1 hasta 16 columnas o partes de columnas. El mximo ancho de lmite son 1000 bytes (500 antes de MySQL 4.1.2).

Los clientes se conectan al servidor MySQL usando sockets TCP/IP en cualquier plataforma. En sistemas Windows se pueden conectar usando named pipes y en sistemas Unix usando ficheros socket Unix.

En MySQL 5.0, los clientes y servidores Windows se pueden conectar usando memoria compartida.

MySQL contiene su propio paquete de pruebas de rendimiento proporcionado con el cdigo fuente de la distribucin de MySQL.

Caractersticas Inicialmente, MySQL careca de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de pginas web con contenido dinmico, justamente por su simplicidad. Poco a poco los elementos de los que careca MySQL estn siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. Entre las caractersticas disponibles en las ltimas versiones se puede destacar:

Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente. Disponibilidad en gran cantidad de plataformas y sistemas.

Posibilidad de seleccin de mecanismos de almacenamiento que ofrecen diferente velocidad de operacin, soporte fsico, capacidad, distribucin geogrfica,

transacciones...

Transacciones y claves forneas. Conectividad segura. Replicacin. Bsqueda e indexacin de campos de texto.

MySQL es un sistema de administracin de bases de datos. Una base de datos es una coleccin estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a una galera de pinturas o el vasto volumen de informacin en una red corporativa. Para agregar, acceder a y procesar datos guardados en un computador, usted necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de informacin, los administradores de bases de datos juegan un papel central en computacin, como aplicaciones independientes o como parte de otras aplicaciones. MySQL es un sistema de administracin relacional de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas estn conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido. MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el cdigo fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el cdigo fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir qu puede hacer y qu no puede hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir cdigo MySQL en aplicaciones comerciales, usted puede comprar una versin comercial licenciada.

Caractersticas distintivas Las siguientes caractersticas son implementadas nicamente por MySQL:

Permite escoger entre mltiples motores de almacenamiento para cada tabla. En MySQL 5.0 stos deban aadirse en tiempo de compilacin, a partir de MySQL 5.1 se pueden aadir dinmicamente en tiempo de ejecucin:

Los

hay

nativos

como MyISAM,

Falcon,

Merge, InnoDB, BDB,

Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y Example

Desarrollados por partners como solidDB, NitroEDB, ScaleDB, TokuDB, Infobright (antes Brighthouse), Kickfire, XtraDB, IBM DB2). InnoDB Estuvo desarrollado as pero ahora pertenece tambin a Oracle

Desarrollados por la comunidad como memcache, httpd, PBXT y Revision

Agrupacin de transacciones, reuniendo mltiples transacciones de varias conexiones para incrementar el nmero de transacciones por segundo.

Tipos de compilacin del servidor Hay tres tipos de compilacin del servidor MySQL:

Estndar: Los binarios estndar de MySQL son los recomendados para la mayora de los usuarios, e incluyen el motor de almacenamiento InnoDB.

Max (No se trata de MaxDB, que es una cooperacin con SAP): Los binarios incluyen caractersticas adicionales que no han sido lo bastante probadas o que normalmente no son necesarias.

MySQL-Debug:

Son

binarios

que

han

sido

compilados

con

informacin

de depuracin extra. No debe ser usada en sistemas en produccin porque el cdigo de depuracin puede reducir el rendimiento.

Especificaciones del cdigo fuente MySQL est escrito en una mezcla de C y C++. Hay un documento que describe algunas de sus estructuras internas en http://dev.mysql.com/doc/internals/en (en ingls). [editar]Desarrollo del proyecto El desarrollo de MySQL se fundamenta en el trabajo de los desarrolladores contratados por la empresa MySQL AB quienes se encargan de dar soporte a los socios comerciales y usuarios de la comunidad MySQL y dar solucin a los problemas encontrados por los

usuarios. Los usuarios o miembros de la comunidad MySQL pueden reportar bugs revisando el manual en lnea [2] que contiene las soluciones a problemas encontrados; el historial de cambios [3]; la base de datos bugs [4] que contiene bugs reportados y solucionados y en las listas de correo MySQL[5]. A travs de las listas de correo los usuarios pueden enviar preguntas y stas sern contestadas por desarrolladores brindndoles mejor soporte.

Otras funcionalidades de las listas de correo


Anuncios: informan sobre nuevas versiones de MySQL y programas relacionados. MySQL: lista principal de discusin de MySQL y sql. Bugs: permite a la gente buscar y arreglar bugs. Temas internos: para gente que trabaja con el cdigo de MySQL. Es el frum para discutir sobre el desarrollo de MySQL.

MySQLdoc: para gente que trabaja en documentacin. Pruebas de rendimiento: para gente interesada en temas de rendimiento no slo de MySQL, sino de otros motores de bases de datos.

Empaquetadores: para discusiones sobre empaquetamiento y distribucin de MySQL. Java: discusiones sobre MySQL Server y Java.

Otras listas de correo son: MyODBC, Herramientas GUI, Cluster, Dotnet, PlusPlus y Perl. Adicional a las listas de correo, se encuentra el soporte de IRC de la comunidad MySQL. Adems, hay soporte a travs de foros [6] agrupados en categoras tales como: Migracin, Uso de MySQL, Conectores MySQL, Tecnologa MySQL y Negocios. Estructuras organizativas/asociativas o de decisin La direccin y el patrocinio de los proyectos MySQL estn a cargo de la empresa MySQL AB quien posee el copyrigth del cdigo fuente MySQL, su logo y marca registrada. MySQL, Inc. y MySQL GmbH son ejemplos de empresas subsidiarias de MySQL AB. Estn establecidas en los Estados Unidos y Alemania respectivamente. MySQL AB, cuenta con ms de 200 empleados en ms de 20 pases y funcionan bajo la estrategia de teletrabajo.

En

enero

del

2008 Sun

Microsystems anuncia
10

su

compra.

En

abril

del

2009 Oracle anunci la compra de Sun Microsystems