5.1.1.3 PHP.
Las siguientes definiciones han sido tomadas de:
- http://es.wikipedia.org/wiki/.php
- http://www.php.net/
PHP es un lenguaje de programación intrepretado, diseñado originalmente para
la creación de páginas web dinámicas. Es usado principalmente en
interpretación del lado del servidor (server-side scripting) pero actualmente
puede ser utilizado desde una interfaz de línea de comandos o en la creación
de otros tipos de programas incluyendo aplicaciones con interfaz gráfica
usando las bibliotecas Qt o GTL+.
PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor
(inicialmente PHP
Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus
Lerdof en 1994; sin embargo la implementación principal de PHP es producida
ahora por The PHP Group y sirve como el estándar de facto para PHP al no
haber una especificación formal. Publicado bajo la PHP License, la Free
Software Fundation considera esta licencia como software libre.
PHP es un lenguaje interpretado de propósito general ampliamente usado y
que está diseñado especialmente para desarrollo web y puede ser embebido
dentro de código HTML. Generalmente se ejecuta en un servidor web,
tomando el código en PHP como su entrada y creando páginas web como
salida. Puede ser desplegado en la mayoría de los servidores web y en casi
todos los sistemas operativos y plataformas sin costo alguno. PHP se encuentra
instalado en más de 20 millones de sitios web y en un millón de servidores,
aunque el número de sitios en PHP ha empezado a compartir su cuota con
otros lenguajes desde hace unos años. Es también el módulo Apache más
popular entre las computadoras que utilizan Apache como servidor web. La
más reciente versión principal del PHP fue la versión 5.2.6 de 1 de mayo de
2008.
El gran parecido que posee PHP con los lenguajes más comunes de
programación estructurada, como C y Perl, permiten a la mayoría de los
programadores crear aplicaciones complejas con una curva de aprendizaje
muy corta. También les permite involucrarse con aplicaciones de contenido
dinámico sin tener que aprender todo un nuevo grupo de funciones.
Aunque todo en su diseño está orientado a facilitar la creación de página web,
es posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando
la extensión PHP-Qt o PHP-GTK. También puede ser usado desde la línea de
órdenes, de la misma manera como Perl o Python pueden hacerlo, a esta
versión de PHP se la llama PHP CLI (Command Line Interface).
Cuando el cliente hace una petición al servidor para que le envíe una página
web, el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado
que generará el contenido de manera dinámica (por ejemplo obteniendo
información de una base de datos). El resultado es enviado por el intérprete al
servidor, quien a su vez se lo envía al cliente. Mediante extensiones es también
posible la generación de archivos PDF, Flash, así como imágenes en diferentes
formatos.
Permite la conexión a diferentes tipos de servidores de bases de datos tales
como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y
SQLite. Análisis, diseño e implementación de un sitio Web Departamental:
Creación, modificación y almacenamiento de contenidos
Adolfo Miguel Catalán García‐Manso Page 73
PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas
operativos, tales
como UNIX (y de ese tipo, como Linux o Mac OS X) y Windows, y puede
interactuar con los servidores
de web más populares ya que existe en versión CGI, módulo para Apache, e
ISAPI.
PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza
C# VB.NET
como lenguajes), a ColdFusion de la compañía Adobe (antes Macromedia), a
JSP/Java de Sun
Microsystems, y a CGI/Perl. Aunque su creación y desarrollo se da en el ámbito
de los sistemas libres,
bajo la licencia GNU, existe además un IDE (entorno de desarrollo integrado)
comercial llamado Zend
Studio. Recientemente, CodeGear (la división de lenguajes de programación de
Borland) ha sacado al
mercado un entorno integrado de desarrollo para PHP, denominado Delphi for
PHP. Existe un módulo
para Eclipse uno de los IDE más populares.
Historia:
PHP fue originalmente diseñado en Perl, en base a la escritura de un
grupo de CGI binarios
escritos en el lenguaje C por Rasmus Lerdorf en el año 1994 para mostrar su
C.V. y guardar ciertos
datos, como la cantidad de tráfico que su página web recibía. El 8 de junio de
1995 fue publicado
"Personal Home Page Tools".
Características:
• Favorables:
1. Es un lenguaje multiplataforma.
2. Capacidad de conexión con la mayoría de los manejadores de base de datos
que se utilizan
en la actualidad, destaca su conectividad con MySQL.
3. Capacidad de expandir su potencial utilizando la enorme cantidad de
módulos (llamados
ext's o extensiones).
4. Posee una amplia documentación en su página oficial, entre la cual se
destaca que todas
las funciones del sistema están explicadas y ejemplificadas en un único archivo
de ayuda.
5. Es libre, por lo que se presenta como una alternativa de fácil acceso para
todos.
6. Permite las técnicas de Progrmación Orientada a Objetos.
7. Biblioteca nativa de funciones sumamente amplia e incluida.
8. No requiere definición de tipos de variables.
9. Tiene manejo de excepciones (desde php5).
• Desfavorables:
Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la
hora de
programar (muchos otros lenguajes tampoco lo hacen), aún estando dirigido a
alguna en particular, el
programador puede aplicar en su trabajo cualquier técnica de programación
y/o desarrollo que le
permita escribir código ordenado, estructurado y manejable. Un ejemplo de
esto son los desarrollos que
en PHP se han hecho del patrón de diseño, MODELO VISTA CONTROLADOR (o
MVC), que permiten
separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de
usuario en tres
componentes independientes
5.1.4 Base de Datos.
A la hora de seleccionar la base de datos, tendremos en cuenta sólo las
versiones gratuitas más
conocidas y robustas del mercado.
5.1.4.3 MySQL Server.
Las siguientes definiciones han sido tomadas de:
- http://es.wikipedia.org/wiki/MySQL/:
- http://www.mysql.com/
MySQL es la base de datos open source más popular. Su continuo desarrollo y
su creciente
popularidad están haciendo de MySQL un competidor cada vez más directo de
gigantes en la materia de
las bases de datos como Oracle.
MySQL es un sistema de administración de bases de datos (Database
Management System,
DBMS) para bases de datos relacionales.
Existen muchos tipos de bases de datos, desde un simple archivo hasta
sistemas relacionales
orientados a objetos. MySQL, como base de datos relacional, utiliza multiples
tablas para almacenar y
organizar la información.
MySQL fue escrito en C y C++ y destaca por su gran adaptación a diferentes
entornos de
desarrollo, permitiendo su ínteractuación con los lenguajes de programación
más utilizados como PHP,
Perl y Java y su integración en distintos sistemas operativos.
También es muy destacable, la condición de open source de MySQL, que hace
que su utilización
sea gratuita e incluso se pueda modificar con total libertad, pudiendo
descargar su código fuente (salvo
aquellas en las que se ofrece soporte dedicado). Esto ha favorecido muy
positivamente en su desarrollo
y continuas actualizaciones, para hacer de MySQL una de las herramientas más
utilizadas por los
programadores orientados a Internet.
Las principales características de este gestor de bases de datos son las
siguientes:
• Aprovecha la potencia de sistemas multiprocesador, gracias a su
implementación multihilo.
• Soporta gran cantidad de tipos de datos para las columnas.
• Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc).
• Gran portabilidad entre sistemas.
• Soporta hasta 32 índices por tabla.
• Gestión de usuarios y passwords, manteniendo un muy buen nivel de
seguridad en los datos. Análisis, diseño e implementación de un sitio Web
Departamental: Creación,
modificación y almacenamiento de contenidos
Adolfo Miguel Catalán García‐Manso Page 95
Características de la versión 5.0.22
• Un amplio subconjunto de ANSI SQL 99, y varias extensiones.
• Soporte a multiplataforma.
• Procedimientos almacenados.
• Triggers.
• Cursores.
• Vistas actualizables.
• Soporte a VARCHAR.
• INFORMATION_SCHEMA.
• Modo Strict.
• Soporte X/Open XA de transacciones distribuidas; transacción en dos fases
como parte de esto,
utilizando el motor InnoDB de Oracle.
• Motores de almacenamiento independientes (MyISAM para lecturas rápidas,
InnoDB para
transacciones e integridad referencial).
• Transacciones con los motores de almacenamiento InnoDB, BDB Y Cluster;
puntos de
recuperación (savepoints) con InnoDB.
• Soporte para SSL.
• Query caching.
• Sub-SELECTs (o SELECTs anidados).
• Réplica con un maestro por esclavo, varios esclavos por maestro, sin soporte
automático para
multiples maestros por esclavo.
• indexing y buscando campos de texto completos usando el motor de
almacenamiento MyISAM.
• Embedded database library.
• Soporte completo para Unicode.
• Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster.
• Shared-nothing clustering through MySQL Cluster.
La gran mayoría de gente usa este gestor en Internet por sus ventajas:
• Sin lugar a duda, lo mejor de MySQL es su velocidad a la hora de realizar las
operaciones, lo
que le hace uno de los gestores que ofrecen mayor rendimiento.
• Su bajo consumo lo hacen apto para ser ejecutado en una máquina con
escasos recursos sin
ningún problema.
• Las utilidades de administración de este gestor son envidiables para muchos
de los gestores
comerciales existentes, debido a su gran facilidad de configuración e
instalación.
• Tiene una probabilidad muy reducida de corromper los datos, incluso en los
casos en los que los
errores no se produzcan en el propio gestor, sino en el sistema en el que está.
• El conjunto de aplicaciones Apache-PHP-MySQL es uno de los más utilizados
en Internet en
servicios de foro y de buscadores.
8.1.3. HTML
Es el lenguaje de marcado predominante para la construcción de páginas web.
Es usado
para describir la estructura y el contenido en forma de texto, así como para
complementar el texto con objetos tales como imágenes.
HTML se escribe en forma de "etiquetas", rodeadas por corchetes angulares
(<,>).
HTML también puede describir, hasta un cierto punto, la apariencia de un
documento, y
puede incluir un script (por ejemplo JavaScript), el cual puede afectar al
comportamiento de navegadores web y otros procesadores de HTML.
En nuestra aplicación el documento HTML es el encargado de la visualización
web de
la misma. En él se muestra el mapa, la ventana de configuración, y el diagrama
de
barras. Desde él y usando JavaScript se lee toda la información a visualizar
desde
archivos en formato XML.
Un documento HTML se divide en dos grandes bloques:
1. El bloque <head>: define la cabecera del documento HTML. Esta cabecera
suele
contener información sobre el documento que no se muestra directamente al
usuario.
Como por ejemplo el título de la ventana del navegador. En él, nosotros hemos
declarado las variables globales y todas las funciones que usamos para el
desarrollo.
2. El bloque <body>: define el contenido principal o cuerpo del documento.
Esta es la
parte del documento html que se muestra en el navegador; dentro de esta
etiqueta
pueden definirse propiedades comunes a toda la página, como color de fondo y
márgenes. Dentro del cuerpo <body> podemos encontrar numerosas
etiquetas.
En este bloque, ayudándonos del software Dreamweaver (programa muy
utilizado en la
programación y diseño web), para facilitar nuestra tarea y así no tener que
escribir a
mano todas las etiquetas, hemos incluido todos elementos de nuestra
aplicación (tablas,
divs, títulos, list/menu, etc).
También se incluye en este bloque todo el código JavaScript que gestiona el
funcionamiento dinámico de la página.
8.1.6. JavaScript
JavaScript es un lenguaje de scripts desarrollado por Netscape para
incrementar las
funcionalidades del lenguaje HTML. Sus características más importantes son:
1. JavaScript es un lenguaje interpretado, es decir, no requiere compilación. El
navegador del usuario se encarga de interpretar las sentencias JavaScript
contenidas en
una página HTML y ejecutarlas adecuadamente.
2. JavaScript es un lenguaje orientado a eventos. Cuando un usuario pincha
sobre un
enlace o mueve el puntero sobre una imagen se produce un evento. Mediante
JavaScript
se pueden desarrollar scripts que ejecuten acciones en respuesta a estos
eventos.
3. JavaScript es un lenguaje orientado a objetos. El modelo de objetos de
JavaScript está
reducido y simplificado, pero incluye los elementos necesarios para que los
scripts
puedan acceder a la información de una página y puedan actuar sobre la
interfaz del
navegador.
En nuestra aplicación hemos incluido JavaScript de las dos formas posibles en
las que
esto se puede hacer:
1. Embebido en el código HTML, entre las etiquetas o tags <script> y
</script>.
2. Como archivo .js que se carga con la página HTML. Para ello, debe indicarse
en las
tags anteriores el nombre y ubicación del archivo .js que contiene el script
JavaScript.
<script src="../20_4v2/elabel.js" type="text/javascript"></script>
<script src="../20_4v2/diagram.js" type="text/javascript"></script>
La librería diagram.js es especialmente útil para mostrar un diagrama de
barras
dependiente de la entrada de datos que le introduzca el usuario o de datos
presentes en
una base de datos.
Para la construcción de este diagrama hay que tener en cuenta dos objetos:
1. Diagram object
Este objeto ofrece la posibilidad de dibujar un diagrama en una posición
definida con un
tamaño definido dentro del tamaño del documento.
Esta es la forma en la que hemos definido el diagrama en nuestra aplicación:
//Se indica la posición del diagrama en el documentos
D.SetFrame(45, 575, 685,575 + (vsimtrab.length*55) );
//Indica el rango de valors en los ejes x e y de la gráfica
D.SetBorder( 0, 100,-1, vsimtrab.length);
//Modifica el estilo del texto
D.Font="font-family:Verdana;font-weight:bold;font-
size:11pt;lineheight:15pt;line-width:15pt;"; Aplicación web para la
geolocalización y monitorización en tiempo real de los
recursos integrantes de una red Grid
_______ __________ ___________________________________
30
//Pone título al diagrama
D.SetText("","","Performance Graph");
D.YScale= 0;
D.XScale=" %";
D.SetGridColor("#8CACBB", "#CCCCCC");
D.Draw("#DEE7EC", "#000000",false);
2. The Box object
Este objeto lo usamos para mostrar una barra en la pantalla. Más en concreto
en el
diagrama. Con el propósito de encontrar la posición y el tamaño apropiado de
la barra.
Es posible mover, redimensionar, y borrar una barra después de haber sido
dibujada.
Esta es la forma en la que creamos las barras en nuestra aplicación:
for (i=0; i<vsimtrab.length; i++){
vj[i]=D.ScreenY(i+0,5);
bottom= D.ScreenX(0)
if (i%2==0) {
vBars[i] = new Box(bottom,vj[i]+12, D.ScreenX(vporciento[i]),
vj[i]-12, "#333366","mar.gif", "#FFFFFF","","#000000");
vBars2[i] = new Bar(bottom - 37,vj[i]-12,
D.ScreenX(vporciento[i]), vj[i]-12, ""," ", "#000000","");
else {
vBars[i] = new Box(bottom,vj[i]+12, D.ScreenX(vporciento[i]),
vj[i]-12, "#8894A4","verde.gif", "#FFFFFF","","#000000");
vBars2[i] = new Bar(bottom - 37,vj[i]-12,
D.ScreenX(vporciento[i]), vj[i]-12, ""," ", "#000000","");
{
{
Vamos creando una barra de cada color de forma alternativa.
El fragmento de código donde las barras se redimensionan para mostrar los
datos
actualizados en tiempo real es el siguiente:
vBars[i].ResizeTo(bottom,vj[i]-12,D.ScreenX(vporciento[i])-bottom,24);