SlideShare una empresa de Scribd logo
1 de 109
SERVIDORES
DR. CARLOS ALBERTO PAREDES ORTA (CPAREDES@CIO.MX)
Que es un servidor
• un servidor es una computadora que, formando parte de una red,
provee servicios a otras computadoras denominadas clientes.
TIPOS DE SERVIDORES
Servidores FTP (FTP Servers) Servidor de Aplicaciones
Servidor de Audio/Video
Servidor de Chat (Chat Servers)
Servidores IRC (IRC Servers)
Servidores Groupware
(Servidores de Colaboración)
TIPOS DE SERVIDORES
Web Service
SERVIDORES LOCALES
• Es aquel servidor web que reside en una red local al equipo de referencia.
• Se requiere de un programa que permita utilizar la red asignada por el
proveedor como sitio local. (usual mente para pruebas).
LOCALHOST
• Es el nombre reservado que se tiene en la pc para referenciar así mima.
• Siempre se utiliza una dirección url usualmente es 127.0.0.1
ELEMENTOS DE UN SERVIDOR
APACHE
• ¿Qué es un servidor web Apache?
• Apache es un servidor web HTTP de código abierto. Está
desarrollado y mantenido por una comunidad de usuarios
en torno a la Apache Software Foundation. Actualmente y
desde el 1996 es el servidor web más usado en todo el
mundo debido a su seguridad y estabilidad.
ESTRUCTURAS DE LAS PAGINAS WEB
Página Web
Estructura
Contenido
Apariencia
Comportamiento
HTML
CSS
Javascript
• Colores
• Tipografías
• Alineación
• Efectos
• Validaciones
• Automatización
• Párrafos
• Encabezados
• Listas
•Tablas
• Capas
• Etc.
• Textos
• Imágenes
• Enlaces
• Fondos
• Tamaños
• Etc.
PRACTICA 1
SERVIDOR LOCAL
¿QUÉ ES HTML5?
• Es un lenguaje de marcas utilizado para el desarrollo de páginas web.
• Define la estructura y contenido que debe tener una web.
• No define el estilo visual que tendrá para eso se usará CSS.
• Ha sido establecido como estándar de diseño web por el W3C.
• Los navegadores deben saber interpretar este lenguaje de manera correcta (no siempre
IE)
• Sobre HTML se desarrollan tecnologías para facilitar a los usuarios el diseño de una web.
• ¿Por qué HTML5?
• HTML 4.0 era suficiente para cubrir todas las necesidades web surgidas hasta el
momento.
• La web evolucionó rápidamente insertando diferentes contenidos a ofrecer en cada
página.
• HTML 4.0 no cubre esas necesidades por lo que se crearon diversas tecnologías
que suplieran este vacío:
• Flash Player
• Silverlight
• Se tiende a un trabajo distribuido por lo que se exigen herramientas tipo "escritorio"
en versión web.
El concepto de elemento HTML
• Los elementos son los componentes fundamentales del HTML
• Cuentan con 2 propiedades básicas:
• Atributos
• Contenido
• En general se conforman con una Etiqueta de Apertura y otra Cierre.
• Los atributos se colocan dentro la etiqueta de apertura, y el contenido se coloca
entre la etiqueta de apertura y la de cierre.
El concepto de elemento HTML
Elemento
Etiqueta de Apertura Etiq. de Cierre
Contenido
<p class=“texto”>Curso HTML CEMA </p>
Nombre Valor
Atributo
Tipos de elementos HTML
• Estructurales:
• Describen el propósito del texto y no denotan ningún formato específico.
<h1>Curso HTML</h1>
• De Presentacion:
• Describen la apariencia del texto, independientemente de su función.
<b>Curso HTML</b>
• Los elementos de presentación se encuentran obsoletos desde la aparición del
CSS.
• De HiperTexto:
• Relaciona una parte del documento a otros documentos.
<a href=“http://www.uaq.mx”>Universidad Autonoma de Queretaro</a>
Estructura base de un documento html.
<!DOCTYPE html>
<html lang="es">
<head>
<title>Título</title>
<!– Encabezado de la web. Aquí incluiremos metainformación y cargaremos
componentes y estilos utilizados en la web-->
</head>
<body>
<!– Cuerpo de la web. Aquí escribiremos el contenido-->
…..
</body>
</html>
Definir un documento HTML.
• El primer paso es crear un fichero html o xhtml.
• Una vez creado deberemos especificar el tipo de
documento, para ello la primera línea debe ser:
• <!DOCTYPE html> si es HTML
• <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> si es XHTML
• Una vez realizado esto podremos comenzar con el
contenido de nuestro fichero HTML
• HTML layout
La sección HEAD
• Contiene metainformación de la página
• Establecemos título y palabras clave para los buscadores
• Incluimos hojas de estilo (CSS) a utilizar en la página
• Podemos introducir código javascript a usar en nuestra página.
• Referencia: http://www.w3schools.com/html/html_head.asp
La sección BODY
• Alberga el "contenido" real de la página.
• Establece cómo se visualizan los elementos.
• Hace uso de los scripts y hojas de estilo definidos en la
sección HEAD.
• En este punto tenemos a nuestra disposición de todos los tags
disponibles para maquetar nuestra página.
• Referencia: Elementos HTML
CSS 3
• El lenguaje HTML está limitado a la hora de aplicarle forma a
un documento.
• Sus estructuras tienen poca flexibilidad a la hora de dar forma
al contenido mostrado.
• HTML se creó originariamente para uso científico y
posteriormente fue adoptado para el desarrollo web.
• Para "maquetar" se utilizan elementos HTML en un uso
diferente de su objetivo (tablas por ejemplo).
• Todos estos problemas dieron lugar al origen de CSS.
CSS 3
• Los estilos CSS deben darse de alta en un fichero acorde para ello,
no obstante:
• Pueden declararse dentro de un HTML mediante la etiqueta
<style>
• Pueden aplicarse directamente sobre un elemento concreto en
la propiedad "style".
• Lo correcto es llevar los estilos a un o unos ficheros css, pero se
permite añadir pequeños retoques directamente sobre el HTML.
Cómo se define un estilo en css:
Selector { propiedad: valor; ...}
Declaración
H1 {color:#CC9900;}
Ejemplo:
Tipos de selectores:
• De elemento HTML:
• h1, table, div, span…
• De identificador
• Todos los elementos HTML cuya propiedad "id" tenga un
determinado valor, tendrán ese estilo.
• De clase
• Todos los elementos HTML cuya propiedad "class" tenga un
determinado valor tendrán ese estilo.
CSS 3
• Normalmente se le aplica un estilo por defecto a los elementos HTML para
conformar una plantilla.
• La personalización definitiva se suele realizar haciendo uso de la propiedad
"class".
• No es recomendado usar el selector por id. Sólo se recomienda cuando el
componente, además de estilo realiza alguna funcionalidad javascript.
• Cuando incluyamos plantillas en un fichero HTML hay que estar seguros que no
incorporan estilos CSS que sobreescriban los nuestros.
• En caso de conflicto, debemos asegurar que nuestros estilos quedan situados por
encima de los otros (aunque no siempre es posible)
• CSS3 como mejora de CSS incorpora propiedades para una mejor
maquetación y decoración de los elementos.
• Se han añadido propiedades para aplicar efectos de pintado.
• Se permiten realizar animaciones.
• Habilita el uso de lógica en los CSS.
• Ejemplo de dibujado HTML + CSS: Minion
PRACTICA 2
PAGINA WEB 1
BOOTSTRAP
• Framework CSS que facilita a los desarrolladores la
maquetación de las páginas.
• Incluye un conjunto de clases CSS para maquetar de
manera fácil una página a cualquier resolución.
• Es mantenido y actualizado por Twitter.
• Está optimizado para dispositivos móviles.
• Permite un diseño “Responsive”
• Web de Boostrap
El problema
• A la hora de maquetar una web tenemos que tener en
cuenta infinitas resoluciones y tamaños de pantalla.
• Nuestros diseños no se adaptan a todas las
resoluciones.
• Debemos hacer un gran esfuerzo para crear un CSS
que maquete bien.
• Tenemos que hacer diferentes versiones de la web
según el dispositivo en el que se verán.
Solución “Responsive Design”
• Diseña una sóla vez para todos tus dispositivos.
• El diseño se adaptará dinámicamente a la resolución
en la que se esté visualizando.
• Los diferentes elementos “saben” que propiedades
deben tener, según la resolución.
• Definimos la estructura que debe tener la web y esta
se adapta según el dispositivo que la visualiza.
• Boostrap incluye un conjunto de estilos para hacer nuestra
web responsive.
• Es un framework potente y complejo por lo que para
profundizar a fondo requiere conocimientos amplios de
CSS.
• No obstante no es necesaria una gran experiencia para
conseguir una maquetación de calidad que sea
“responsive”,
PRACTICA 3
PAGINA WEB 1 CON BOOSTRAP
PROGRAMACIÓN
Java script Jquery PHP
ASP ASP
JAVASCRIPT
• Inicialmente se llamaba LiveScript.
• Lenguaje de guiones (script).
• Con el respaldo de SUN en 1995 pasó a llamarse JavaScript.
• Es un lenguaje interpretado.
• Se ejecuta en el cliente, nunca en el servidor.
• Parte de un conjunto limitado de objetos y clases
• No permite interacción cliente-servidor, únicamente opera en el
cliente (Conseguido con jQuery). Actual mente Javascript vainilla
JAVASCRIPT
• Javascript se integra en HTML de dos maneras:
• Como fichero *.js incluido en la misma sección que los CSS.
• Como código directamente en el fichero HTML haciendo uso
de la etiqueta <script>
• Algunos navegadores no soportan scripts por lo que tendremos que
tenerlo en cuenta.
• Para tratar el problema haremos uso de la etiqueta <noscript>
La declaración de variables se hace sin especificar el tipo:
• var miVariable;
• Si intento hacer una operación no permitida sobre el tipo que
contiene la variable tendré un error.
• Para mostrar mensajes por pantalla haré uso de:
• alert("texto del mensaje")
• Los métodos se declaran con la etiqueta function:
• function hola(){ … }
• Para devolver un valor haremos uso de "return".
• La llamada a los métodos Javascript se hará desde
elementos HTML.
• Los elementos HTML tienen asociados determinados
eventos cuando su estado cambie.
• En esos eventos podemos llamar a código Javascript.
• Haciendo uso de Jquery como extensión de Javascript
podremos realizar funcionalidad antes de que un
documento se cargue.
JAVASCRIPT :JQUERY
• Jquery es una librería Javascript que pretende facilitar el
uso del código Javascript a los programadores.
• Añade un conjunto nuevo de eventos a los ya existentes
HTML.
• Permite hacer llamdas AJAX, por lo que permite que, el
cliente, llame directamente al servidor.
• Incorpora librerías de componentes HTML con
funcionalidad enriquecida que podemos usar con poco
esfuerzo. jQuery
• Tutorial: jQuery tutorial
JQUERY
• Al igual que en CSS haremos uso de selectores para
recuperar un elemento concreto.
• La sintaxis es $(selector):
• $("p"): recuperaría todos los elementos HTML de tipo
<p>
• $(".test"): recuperaría todos los elementos HTML
cuyo atributo "class" fuera "test".
• $("#test"): recuperaría todos los elementos HTML
cuyo atributo "id" fuera "test".
PRACTICA 4
JQUERY
PHP
• Breve historia de PHP
• Creado por Rasmus Lerdorf para uso personal en 1994
• PHP = Personal Hypertext Processor
• Versión actual: PHP 5
• Es un módulo que se añade al servidor web y fue concebido
inicialmente para Apache
• ¿Por qué PHP?
• Por sus ventajas: es potente, fácil de aprender, de libre
distribución, permite el acceso a bases de datos y otras
funcionalidades orientadas a la red
• Dispone de abundante soporte en la Web
Principales usos del PHP:
- Programación de páginas web dinámicas, habitualmente en combinación con el motor
base datos MySQL.
- Programación en consola, al estilo de Perl, en Linux, Windows y Macintosh.
- Creación de aplicaciones gráficas independientes del navegador, por medio de la
combinación de PHP y GTK (GIMP Tool Kit), que permite desarrollar aplicaciones de
tanto para los sistemas operativos basados en Unix, como para Windows y Mac OS X.
SINTAXIS BÁSICA
• PHP es sensible a las mayúsculas
• ¿Cómo se incrusta en la página web?
<?PHP ... ?>
recomendado, siempre disponible
<?= expresión ?>
equivale a <? echo expresión ?>
• Las instrucciones se separan con un ; como en C. La
marca final ?> implica un ;
• Comentarios: como en C, /* … */ y //
• Para imprimir: echo y print
echo: muestra una o más cadenas
echo cadena1 [, cadena2…]; // no es una función
echo “Hola mundo”;
echo “Hola “, “mundo”;
print: muestra una cadena
print cadena; // no es una función
print “Hola mundo”;
print “Hola “ . “mundo”;
• Ejemplo:
<HTML>
<HEAD>
<TITLE>Mi primer programa en PHP</TITLE>
</HEAD>
<BODY>
<?PHP
print (“Hola mundo”);
?>
</BODY>
</HTML>
• Inclusión de ficheros externos:
• include()
• require()
• Ambos incluyen y evalúan el fichero especificado
• Diferencia: en caso de error include() produce un warning
y require() un error fatal
• Se usará require() si al producirse un error debe
interrumpirse la carga de la página
Ejemplo:
<HTML>
<HEAD>
<TITLE>Título</TITLE>
<?PHP
// Incluir bibliotecas de funciones
require ("$libdir/conecta.php");
require ("$libdir/fecha.php");
require ("$libdir/cadena.php");
require ("$libdir/globals.php");
?>
</HEAD>
<BODY>
<?PHP
include ("cabecera.html");
?>
// Código HTML + PHP
. . .
<?PHP
include ("pie.html");
?>
</BODY>
</HTML>
VARIABLES
• Las variables siempre van precedidas de un $
• El nombre es sensible a las mayúsculas
• Comienzan por letra o subrayado, seguido de letras,
números o subrayado
• Variables predefinidas:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,
$_ENV, $_REQUEST, $_SESSION
• Ámbito: globales al fichero (excepto funciones) o locales a
una función
• Ejemplo:
$valor = 5;
print “El valor es: “ . $valor . “n”;
print “El valor es: $valorn”; // ojo: comillas
dobles
Resultado:
El valor es: 5
CONSTANTES
• Definición de constantes:
define (“CONSTANTE”, “hola”);
print CONSTANTE;
• No llevan $ delante
• Sólo se pueden definir constantes de los tipos escalares
(boolean, integer, double, string)
ESTRUCTURAS DE CONTROL
• if-else
• while
• do .. while
• for
• foreach
• Switch
• Mismo comportamiento que en C
FUNCIONES
• Ejemplo:
function suma ($x, $y)
{
$s = $x + $y;
return s;
}
$a=1;
$b=2;
$c=suma ($a, $b);
print $c;
Argumentos por defecto
function muestranombre ($titulo = "Sr.")
{
print "Estimado $titulo:n";
}
muestranombre ();
muestranombre ("Prof.");
• Salida:
Estimado Sr.:
Estimado Prof.:
Los argumentos con valores por defecto deben ser siempre
los últimos:
function muestranombre ($nombre, $titulo= "Sr.")
{
print "Estimado $titulo $nombre:n";
}
muestranombre (“Fernández”);
muestranombre (“Fernández”, "Prof.");
• Salida:
Estimado Sr. Fernández:
Estimado Prof. Fernández:
TABLAS
• Sintaxis:
array ([clave =>] valor, ...)
• La clave es una cadena o un entero no negativo. El valor puede ser de
cualquier tipo válido en PHP, incluyendo otro array
• Ejemplos:
$color = array (‘rojo’=>101, ‘verde’=>51, ‘azul’=>255);
$medidas = array (10, 25, 15);
• Acceso:
$color[‘rojo’] // No olvidar las comillas
$medidas[0]
• El primer elemento es el 0
FORMULARIOS
1. Acceso a formularios HTML desde PHP
2. El formulario de PHP
3. Campos dinámicos con JavaScript
4. Validación de los datos de un formulario
• Fichero uno.php
<HTML>
<BODY>
<FORM ACTION=”dos.php” METHOD=”POST”>
Edad: <INPUT TYPE=”text” NAME=”edad”>
<INPUT TYPE=”submit” VALUE=”aceptar”>
</FORM>
</BODY>
</HTML>
• Fichero dos.php
<HTML>
<BODY>
<?PHP
print (“La edad es: $edad”);
?>
</BODY>
</HTML>
EJEMPLO
• Para saber si se ha enviado el formulario se acude a la
variable correspondiente al botón de envío. Si este botón
aparece de la siguiente forma en el formulario HTML:
<INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar">
entonces la condición anterior se transforma en:
if (isset($enviar))
o bien
if ($enviar == “procesar”)
PRACTICA 5
FORMULARIOS EN PHP
ACCESO A FORMULARIOS DESDE PHP
• Acceso a los diferentes tipos de elementos de entrada de
formulario
• Elementos de tipo INPUT
• TEXT
• RADIO
• CHECKBOX
• BUTTON
• FILE
• HIDDEN
• PASSWORD
• SUBMIT
• Elemento SELECT
• Simple / múltiple
• Elemento TEXTAREA
VALIDACIÓN DE FORMULARIOS
• Toda la información proveniente de un formulario
debe considerarse por norma como contaminada, y
hay que validarla antes de darla por buena y
procesarla
• Lo más eficiente es mostrar los errores sobre el
propio formulario para facilitar su corrección.
ACCESO A BASES DE DATOS MYSQL EN PHP
1. Bases de datos en la Web
2. Lenguaje SQL
3. Funciones de PHP para el acceso a bases de datos MySQL
BASE DE DATOS WEB
• Las bases de datos permiten almacenar de una forma
estructurada y eficiente toda la información de un
sitio web
• Ventajas
– Proporcionar información actualizada
– Facilitar la realización de búsquedas
– Disminuir los costes de mantenimiento
– Implementar sistemas de control de acceso
– Almacenar preferencias de los usuarios
• Esquema básico de un sitio web soportado por bases de datos:
LENGUAJE SQL
• SQL (Structured Query Language) es el lenguaje que se utiliza
para comunicarse con la base de datos
• Procedimiento de comunicación con la base de datos:
Página
PHP
Base de
datos
orden SQL
resultado
LENGUAJE SQL
• Las instrucciones más habituales son SELECT, INSERT, UPDATE, DELETE
• Veamos su sintaxis básica y algunos ejemplos de uso
• Para ello utilizaremos una tabla noticias con cinco campos: un identificador único de la
noticia, el título de la noticia, el texto de la noticia, la categoría de la noticia y la fecha de
publicación de la noticia
título
texto
categoría
noticias
id
fecha
PRACTICA 6
CREACIÓN DE LA BASE DE DATOS
FUNCIONES DE PHP PARA EL
ACCESO A BASES DE DATOS MYSQL
• Los pasos para acceder desde PHP a una base de datos son los
siguientes:
• Conectar con el servidor de bases de datos
• Seleccionar una base de datos
• Enviar la instrucción SQL a la base de datos
• Obtener y procesar los resultados
• Cerrar la conexión con el servidor de bases de datos
ACCESO A BASES DE DATOS MYSQL
• Las funciones concretas de MySQL que realizan estas operaciones son:
• Conectar con el servidor de bases de datos:
• mysql_connect()
• Seleccionar una base de datos:
• mysql_select_db()
• Enviar la instrucción SQL a la base de datos:
• mysql_query()
• Obtener y procesar los resultados:
• mysql_num_rows() y mysql_fetch_array()
• Cerrar la conexión con el servidor de bases de datos:
• mysql_close()
ACCESO A BASES DE DATOS MYSQL
• Conectar con el servidor de bases de datos: mysql_connect()
• Devuelve un identificador de la conexión en caso de éxito y false en caso contrario
• Sintaxis:
$conexion = mysqli_connect (servidor, username, password,database);
• Ejemplo:
• $link = mysqli_connect("localhost", "my_user", "my_password
", "world");
Enviar la instrucción SQL a la base de datos: mysqli_query()
• Devuelve un identificador o true (dependiendo de la instrucción) si la instrucción se ejecuta correctamente y false en caso
contrario
Sintaxis:
$consulta = mysqli_query ($conexion ,instrucción);
Ejemplo:
if (mysqli_connect_errno()) {
printf("Conexión fallida: %sn", mysqli_connect_error());
exit();
}
$result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")
if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {
$row_cnt = mysqli_num_rows($result);
}
o
PRACTICA 7
PHP Y MYSQL
• Obtener y procesar los resultados: mysqli_num_rows(),
mysqli_fetch_array()
• En el caso de que la instrucción enviada produzca unos resultados,
mysql_query() devuelve las filas de la tabla afectadas por la instrucción
• mysqli_num_rows() devuelve el número de filas afectadas
• Para obtener las distintas filas del resultado se utiliza la función
mysqli_fetch_array(), que obtiene una fila del resultado en un array
asociativo cada vez que se invoca
• Sintaxis:
$nfilas = mysqli_num_rows ($consulta);
$fila = mysqli_fetch_array ($consulta);
PRACTICA 8
CONSULTA REGISTRA Y MUESTRA
MANEJO DE ARCHIVOS
<body>
<div class="main">
<h1>Enviar un Archivo</h1>
<br> <form enctype="multipart/form-data" action="upload.php"
method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" /> <p>
Enviar mi archivo: <input name="subir_archivo" type="file" />
</p> <p> <input type="submit" value="Enviar Archivo" />
</p> </form>
</div>
</body>
</html>
</head>
<body >
<div class="main">
<h1>Subir archivo con PHP:</h1>
<?php $directorio = 'archivos/'; $subir_archivo = $directorio.basename($_FILES['subir_archivo']['name
echo "<div>";
if (move_uploaded_file($_FILES['subir_archivo']['tmp_name'], $subir_archivo))
{
echo "El archivo es válido y se cargó correctamente.<br><br>";
echo"<a href='".$subir_archivo."' target='_blank’>
<img src='".$subir_archivo."' width='150’>
</a>"; }
else { echo "La subida ha fallado"; } echo "</div>"; ?>
<br>
<div style="border:1px solid #000000; text-transform:uppercase">
<h3 align="center"><div align="center">
<a href="cargar.html">Volver </a>
</div>
</h3></div> </div> </body>
</html>
PROPIEDADES
PRACTICA 9
GALERÍA DE IMÁGENES CON VOTACIÓN
JQUERY CON PHP
XML
Las marcas de xml permiten procesar de forma no ambigua los documentos.
DECLARACIÓN DE XML
DOCUMENTOS Y ELEMENTOS XML
• Los documentos consisten en una serie de datos marcados mediante etiquetas.
• Las etiquetas describen la estructura del documento .
• Un elemento = etiqueta inicial, etiqueta final y contenido entre ambas.
• La etiqueta inicial puede incluir atributos.
ELEMENTOS XML
Elementos vacíos
ARBOL DEL DOCUMENTO XML
MODIFICACIÓN DEL ÁRBOL
• El árbol DOM puede manipularse dinámicamente.
ATRIBUTOS
• Cada elemento puede contener atributos en la etiqueta inicial.
• El orden de los atributos no es significativo no puede haber 2 atributos con el
mismo nombre las comillas dobles y simples pueden mezclarse
PRACTICA 10
ENVIO XML
JSON
• JSON, acrónimo de JavaScript Object Notation, es un formato de texto ligero para
el intercambio de datos. JSON es un subconjunto de la notación literal de objetos
de JavaScript aunque hoy, debido a su amplia adopción como alternativa a XML,
se considera un formato de lenguaje independiente.
Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto comienza con { (llave de apertura) y
termine con } (llave de cierre). Cada nombre es seguido por : (dos puntos) y los pares nombre/valor están
separados por , (coma).
JSON – EQUIVALENCIA CON XML
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
<menu id="file" value="File">
<popup>
<menuitem value="New" onclick="CreateNewDoc()"
/>
<menuitem value="Open" onclick="OpenDoc()" />
<menuitem value="Close" onclick="CloseDoc()" />
</popup>
</menu>
PRACTICA 11
ENVIO JSON
MIME
Es un acrónimo de multipurpose internet mail extensión el cual nos sirve para
definir un contenedor de html el cual puede ser de diferentes tipos para convertir
esa pagina a un elemento que nosotros necesitemos.
MIME mensaje que puede contener:
• Texto
• Imágenes
• Audios
• Videos
• Aplicaciones especificas (Excel , Word ,powerpoint , PDF).
MIME EJEMPLO EXCEL
<?php header("Pragma: public");
header("Expires: 0");
$filename = "nombreArchivoQueDescarga.xls";
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=$filename");
header("Pragma: no-cache"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); ?>
<table> <tbody> <tr> <th> <h2>Listado en tabla excel</h2> </th> </tr>
<tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td>9</td>
<td>10</td> </tr>
</tbody>
</table> ?>
PRACTICA 12
PHP OFICE HTTPS://GITHUB.COM/PHPOFFICE
PRACTICA 13
PHP PDF CON FPDF
WEB SERVICE
un Web Service es un componente de software que se comunica con otras aplicaciones
codificando los mensaje en XML y enviando estos mensaje a través de protocolos estándares
de Internet tales como el Hypertext Transfer Protocol (HTTP).
REQUISITOS DE UN WEB SERVICE:
 Interoperabilidad: Un servicio remoto debe permitir su utilización por clientes de otras plataformas.
 Amigabilidad con Internet: La solución debe poder funcionar para soportar clientes que accedan a los
servicios remotos desde internet.
 Interfaces fuertemente tipadas: procedimentales. Más aún, los tipos de datos definidos en el servicio
remoto deben poderse corresponder razonablemente bien con los tipos de datos de la mayoría de los lenguaje de
programación.
• Posibilidad de aprovechar los estándares de Internet existentes: La implementación del servicio
remoto debería aprovechar estándares de Internet existentes tanto como sea posible y evitar reinventar soluciones a
problema que ya se han resuelto.
• Soporte para cualquier lenguaje: Un cliente debería ser capaz de implementar un nuevo servicio Web
existente independientemente del lenguaje de programación en el que se halla escrito el cliente.
BLOQUES CONSTRUCTIVOS DE SERVICIOS WEB:
SOAP - PROTOCOLO SIMPLE DE ACCESO A OBJETOS
• Es un protocolo basado en XML, que permite la interacción entre
varios dispositivos y que tiene la capacidad de transmitir
información compleja. Los datos pueden ser transmitidos a
través de HTTP , SMTP , etc.
SOAP especifica el formato de los mensajes de la siguiente forma:
 envelope (envoltura): Es el elemento raíz del mensaje para describir
su contenido y la forma de procesarlo.
 header (encabezado): Es la información de identificación del
contenido. Un grupo de reglas de codificación para expresar las
instancias de tipos de datos definidos por la aplicación.
 body (cuerpo): Es el contenido del mensaje. Una convención para
representar las llamadas y las respuestas a procedimientos remotos.
Encabezado
HTTP
Envoltura
Header (opcional)
Cuerpo
SOAP Y HTTP
ALGUNAS DE LAS VENTAJAS DE SOAP
• No esta asociado con ningún lenguaje
• No se encuentra fuertemente asociado a ningún protocolo de
transporte
• Aprovecha los estándares existentes en la industria
• Permite la interoperabilidad entre múltiples entornos
• Ampliamente aceptado
RPC USANDO SOAP
• RPC: Consiste en pasarle parámetros a un procedimiento remoto en
algún lenguaje determinado (java, c++, etc) utilizando un esquema
de comunicación xml via HTTP.
DESCRIPCIÓN: WSDL
Lenguaje de Descripción de Servicios Web
• WSDL representa una especie de contracto entre el
proveedor y el que solicita. O sea permite que un servicio
y un cliente establezcan un acuerdo en lo que se refiere a
los detalles de transporte de mensajes y su contenido, a
través de un documento procesable por dispositivos.
WSDL
Distingue claramente los mensajes de los puertos
• Los mensajes (la sintaxis y semántica que necesita un servicio
Web) son siempre abstractos
• Los puertos (las direcciones de red en las que se invoca al
servicio Web) son siempre concretos
Existen tres componentes principales de esta interfaz abstracta:
 El vocabulario
 El mensaje
 La interacción
Descripción abstracta:
EJEMPLO:
DESCUBRIMIENTO: UDDI
• Una vez creado el servicio web el siguiente paso consiste en definir cómo se dará
a conocer el servicio Web para que los clientes interesados puedan descubrirlo
fácilmente y utilizarlo en sus aplicaciones.
• UDDI es un registro público diseñado para almacenar de forma estructurada
información sobre empresas y los servicios que éstas ofrecen. A través de UDDI,
se puede publicar y descubrir información de una empresa y de sus servicios.
En UDDI codifica tres tipos de información acerca de un servicio
web
Sección blanca - dirección, contacto y otros identificadores
conocidos.
Sección amarilla - categorización industrial basada en
taxonomías.
Sección verde - información técnica sobre los servicios que
aportan las propias empresas.
PARA CONCLUIR:
• WSDL: Ofrece un modo formal de definir servicios web,
independientemente del proveedor.
• UDDI: Proporciona una amplia infraestructura estandarizada que
permite al usuario describir y descubrir servicios web.
PRACTICA 13
WEB SERVER
Servidores-40

Más contenido relacionado

Similar a Servidores-40 (20)

HTML_.ppt
HTML_.pptHTML_.ppt
HTML_.ppt
 
HTML.ppt
HTML.pptHTML.ppt
HTML.ppt
 
HTML.ppt
HTML.pptHTML.ppt
HTML.ppt
 
HTML.ppt
HTML.pptHTML.ppt
HTML.ppt
 
Internet Navegadores
Internet NavegadoresInternet Navegadores
Internet Navegadores
 
Html
HtmlHtml
Html
 
Html
HtmlHtml
Html
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Curso php-my sql-clase-2
Curso php-my sql-clase-2Curso php-my sql-clase-2
Curso php-my sql-clase-2
 
HTML5 en Acción
HTML5 en AcciónHTML5 en Acción
HTML5 en Acción
 
Html Sharon 4101
Html Sharon 4101Html Sharon 4101
Html Sharon 4101
 
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptintroduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
 
INTRODUCCION AL LA PROGRAMACION WEB.ppt
INTRODUCCION AL LA PROGRAMACION WEB.pptINTRODUCCION AL LA PROGRAMACION WEB.ppt
INTRODUCCION AL LA PROGRAMACION WEB.ppt
 
Presentación: Aplicación de evaluaciones digitales
Presentación: Aplicación de evaluaciones digitalesPresentación: Aplicación de evaluaciones digitales
Presentación: Aplicación de evaluaciones digitales
 
Clase sobre Optimización de Wordpress
Clase sobre Optimización de WordpressClase sobre Optimización de Wordpress
Clase sobre Optimización de Wordpress
 
html5
html5html5
html5
 
Elementos de html5 y css3
Elementos de html5 y css3Elementos de html5 y css3
Elementos de html5 y css3
 
Seminario html5
Seminario html5Seminario html5
Seminario html5
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Seo para prestashop V.2
Seo para prestashop V.2Seo para prestashop V.2
Seo para prestashop V.2
 

Más de Carlos Paredes

descriptores en identificacion de ellos.pptx
descriptores en identificacion de ellos.pptxdescriptores en identificacion de ellos.pptx
descriptores en identificacion de ellos.pptxCarlos Paredes
 
Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfCarlos Paredes
 
Machine_Learning_with_MATLAB_Seminar_Latest.pdf
Machine_Learning_with_MATLAB_Seminar_Latest.pdfMachine_Learning_with_MATLAB_Seminar_Latest.pdf
Machine_Learning_with_MATLAB_Seminar_Latest.pdfCarlos Paredes
 
tecnicas_agrupamiento de datos para analisis
tecnicas_agrupamiento de datos para analisistecnicas_agrupamiento de datos para analisis
tecnicas_agrupamiento de datos para analisisCarlos Paredes
 
Reglas y ejercicios de logica difusa para su comprencion
Reglas y ejercicios de logica difusa  para su comprencionReglas y ejercicios de logica difusa  para su comprencion
Reglas y ejercicios de logica difusa para su comprencionCarlos Paredes
 
Metodo de montecarlo es un mentodo sencillo
Metodo de montecarlo es un mentodo sencilloMetodo de montecarlo es un mentodo sencillo
Metodo de montecarlo es un mentodo sencilloCarlos Paredes
 
Sistemas Expertos para el conocimieto de los mismos
Sistemas Expertos para el conocimieto de los mismosSistemas Expertos para el conocimieto de los mismos
Sistemas Expertos para el conocimieto de los mismosCarlos Paredes
 
Definición de simulación.pdf
Definición de simulación.pdfDefinición de simulación.pdf
Definición de simulación.pdfCarlos Paredes
 
Módulo III CVV clase 1(resuelto).pptx
Módulo III CVV clase 1(resuelto).pptxMódulo III CVV clase 1(resuelto).pptx
Módulo III CVV clase 1(resuelto).pptxCarlos Paredes
 

Más de Carlos Paredes (13)

descriptores en identificacion de ellos.pptx
descriptores en identificacion de ellos.pptxdescriptores en identificacion de ellos.pptx
descriptores en identificacion de ellos.pptx
 
Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdf
 
Machine_Learning_with_MATLAB_Seminar_Latest.pdf
Machine_Learning_with_MATLAB_Seminar_Latest.pdfMachine_Learning_with_MATLAB_Seminar_Latest.pdf
Machine_Learning_with_MATLAB_Seminar_Latest.pdf
 
tecnicas_agrupamiento de datos para analisis
tecnicas_agrupamiento de datos para analisistecnicas_agrupamiento de datos para analisis
tecnicas_agrupamiento de datos para analisis
 
Reglas y ejercicios de logica difusa para su comprencion
Reglas y ejercicios de logica difusa  para su comprencionReglas y ejercicios de logica difusa  para su comprencion
Reglas y ejercicios de logica difusa para su comprencion
 
Metodo de montecarlo es un mentodo sencillo
Metodo de montecarlo es un mentodo sencilloMetodo de montecarlo es un mentodo sencillo
Metodo de montecarlo es un mentodo sencillo
 
Sistemas Expertos para el conocimieto de los mismos
Sistemas Expertos para el conocimieto de los mismosSistemas Expertos para el conocimieto de los mismos
Sistemas Expertos para el conocimieto de los mismos
 
Definición de simulación.pdf
Definición de simulación.pdfDefinición de simulación.pdf
Definición de simulación.pdf
 
Squim .pdf
Squim .pdfSquim .pdf
Squim .pdf
 
Módulo III CVV clase 1(resuelto).pptx
Módulo III CVV clase 1(resuelto).pptxMódulo III CVV clase 1(resuelto).pptx
Módulo III CVV clase 1(resuelto).pptx
 
MAS1.pdf
MAS1.pdfMAS1.pdf
MAS1.pdf
 
Modulo IV CV.pptx
Modulo IV CV.pptxModulo IV CV.pptx
Modulo IV CV.pptx
 
Examen.docx
Examen.docxExamen.docx
Examen.docx
 

Último

2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx241532171
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxRodriguezLucero
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.imejia2411
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
locomotas v siclo.ppt de ingenieria de minas
locomotas v siclo.ppt de ingenieria de minaslocomotas v siclo.ppt de ingenieria de minas
locomotas v siclo.ppt de ingenieria de minasMirkaCBauer
 
Historia de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellaHistoria de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellajuancamilo3111391
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 

Último (14)

2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
locomotas v siclo.ppt de ingenieria de minas
locomotas v siclo.ppt de ingenieria de minaslocomotas v siclo.ppt de ingenieria de minas
locomotas v siclo.ppt de ingenieria de minas
 
Historia de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellaHistoria de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ella
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 

Servidores-40

  • 1. SERVIDORES DR. CARLOS ALBERTO PAREDES ORTA (CPAREDES@CIO.MX)
  • 2. Que es un servidor • un servidor es una computadora que, formando parte de una red, provee servicios a otras computadoras denominadas clientes.
  • 3. TIPOS DE SERVIDORES Servidores FTP (FTP Servers) Servidor de Aplicaciones Servidor de Audio/Video Servidor de Chat (Chat Servers) Servidores IRC (IRC Servers) Servidores Groupware (Servidores de Colaboración)
  • 5. SERVIDORES LOCALES • Es aquel servidor web que reside en una red local al equipo de referencia. • Se requiere de un programa que permita utilizar la red asignada por el proveedor como sitio local. (usual mente para pruebas).
  • 6. LOCALHOST • Es el nombre reservado que se tiene en la pc para referenciar así mima. • Siempre se utiliza una dirección url usualmente es 127.0.0.1
  • 7. ELEMENTOS DE UN SERVIDOR
  • 8. APACHE • ¿Qué es un servidor web Apache? • Apache es un servidor web HTTP de código abierto. Está desarrollado y mantenido por una comunidad de usuarios en torno a la Apache Software Foundation. Actualmente y desde el 1996 es el servidor web más usado en todo el mundo debido a su seguridad y estabilidad.
  • 9. ESTRUCTURAS DE LAS PAGINAS WEB Página Web Estructura Contenido Apariencia Comportamiento HTML CSS Javascript • Colores • Tipografías • Alineación • Efectos • Validaciones • Automatización • Párrafos • Encabezados • Listas •Tablas • Capas • Etc. • Textos • Imágenes • Enlaces • Fondos • Tamaños • Etc.
  • 11. ¿QUÉ ES HTML5? • Es un lenguaje de marcas utilizado para el desarrollo de páginas web. • Define la estructura y contenido que debe tener una web. • No define el estilo visual que tendrá para eso se usará CSS. • Ha sido establecido como estándar de diseño web por el W3C. • Los navegadores deben saber interpretar este lenguaje de manera correcta (no siempre IE) • Sobre HTML se desarrollan tecnologías para facilitar a los usuarios el diseño de una web.
  • 12. • ¿Por qué HTML5? • HTML 4.0 era suficiente para cubrir todas las necesidades web surgidas hasta el momento. • La web evolucionó rápidamente insertando diferentes contenidos a ofrecer en cada página. • HTML 4.0 no cubre esas necesidades por lo que se crearon diversas tecnologías que suplieran este vacío: • Flash Player • Silverlight • Se tiende a un trabajo distribuido por lo que se exigen herramientas tipo "escritorio" en versión web.
  • 13. El concepto de elemento HTML • Los elementos son los componentes fundamentales del HTML • Cuentan con 2 propiedades básicas: • Atributos • Contenido • En general se conforman con una Etiqueta de Apertura y otra Cierre. • Los atributos se colocan dentro la etiqueta de apertura, y el contenido se coloca entre la etiqueta de apertura y la de cierre.
  • 14. El concepto de elemento HTML Elemento Etiqueta de Apertura Etiq. de Cierre Contenido <p class=“texto”>Curso HTML CEMA </p> Nombre Valor Atributo
  • 15. Tipos de elementos HTML • Estructurales: • Describen el propósito del texto y no denotan ningún formato específico. <h1>Curso HTML</h1> • De Presentacion: • Describen la apariencia del texto, independientemente de su función. <b>Curso HTML</b> • Los elementos de presentación se encuentran obsoletos desde la aparición del CSS. • De HiperTexto: • Relaciona una parte del documento a otros documentos. <a href=“http://www.uaq.mx”>Universidad Autonoma de Queretaro</a>
  • 16. Estructura base de un documento html. <!DOCTYPE html> <html lang="es"> <head> <title>Título</title> <!– Encabezado de la web. Aquí incluiremos metainformación y cargaremos componentes y estilos utilizados en la web--> </head> <body> <!– Cuerpo de la web. Aquí escribiremos el contenido--> ….. </body> </html>
  • 17. Definir un documento HTML. • El primer paso es crear un fichero html o xhtml. • Una vez creado deberemos especificar el tipo de documento, para ello la primera línea debe ser: • <!DOCTYPE html> si es HTML • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> si es XHTML • Una vez realizado esto podremos comenzar con el contenido de nuestro fichero HTML • HTML layout
  • 18. La sección HEAD • Contiene metainformación de la página • Establecemos título y palabras clave para los buscadores • Incluimos hojas de estilo (CSS) a utilizar en la página • Podemos introducir código javascript a usar en nuestra página. • Referencia: http://www.w3schools.com/html/html_head.asp
  • 19. La sección BODY • Alberga el "contenido" real de la página. • Establece cómo se visualizan los elementos. • Hace uso de los scripts y hojas de estilo definidos en la sección HEAD. • En este punto tenemos a nuestra disposición de todos los tags disponibles para maquetar nuestra página. • Referencia: Elementos HTML
  • 20. CSS 3 • El lenguaje HTML está limitado a la hora de aplicarle forma a un documento. • Sus estructuras tienen poca flexibilidad a la hora de dar forma al contenido mostrado. • HTML se creó originariamente para uso científico y posteriormente fue adoptado para el desarrollo web. • Para "maquetar" se utilizan elementos HTML en un uso diferente de su objetivo (tablas por ejemplo). • Todos estos problemas dieron lugar al origen de CSS.
  • 21. CSS 3 • Los estilos CSS deben darse de alta en un fichero acorde para ello, no obstante: • Pueden declararse dentro de un HTML mediante la etiqueta <style> • Pueden aplicarse directamente sobre un elemento concreto en la propiedad "style". • Lo correcto es llevar los estilos a un o unos ficheros css, pero se permite añadir pequeños retoques directamente sobre el HTML.
  • 22. Cómo se define un estilo en css: Selector { propiedad: valor; ...} Declaración H1 {color:#CC9900;} Ejemplo:
  • 23. Tipos de selectores: • De elemento HTML: • h1, table, div, span… • De identificador • Todos los elementos HTML cuya propiedad "id" tenga un determinado valor, tendrán ese estilo. • De clase • Todos los elementos HTML cuya propiedad "class" tenga un determinado valor tendrán ese estilo.
  • 24. CSS 3 • Normalmente se le aplica un estilo por defecto a los elementos HTML para conformar una plantilla. • La personalización definitiva se suele realizar haciendo uso de la propiedad "class". • No es recomendado usar el selector por id. Sólo se recomienda cuando el componente, además de estilo realiza alguna funcionalidad javascript. • Cuando incluyamos plantillas en un fichero HTML hay que estar seguros que no incorporan estilos CSS que sobreescriban los nuestros. • En caso de conflicto, debemos asegurar que nuestros estilos quedan situados por encima de los otros (aunque no siempre es posible)
  • 25. • CSS3 como mejora de CSS incorpora propiedades para una mejor maquetación y decoración de los elementos. • Se han añadido propiedades para aplicar efectos de pintado. • Se permiten realizar animaciones. • Habilita el uso de lógica en los CSS. • Ejemplo de dibujado HTML + CSS: Minion
  • 27. BOOTSTRAP • Framework CSS que facilita a los desarrolladores la maquetación de las páginas. • Incluye un conjunto de clases CSS para maquetar de manera fácil una página a cualquier resolución. • Es mantenido y actualizado por Twitter. • Está optimizado para dispositivos móviles. • Permite un diseño “Responsive” • Web de Boostrap
  • 28. El problema • A la hora de maquetar una web tenemos que tener en cuenta infinitas resoluciones y tamaños de pantalla. • Nuestros diseños no se adaptan a todas las resoluciones. • Debemos hacer un gran esfuerzo para crear un CSS que maquete bien. • Tenemos que hacer diferentes versiones de la web según el dispositivo en el que se verán.
  • 29. Solución “Responsive Design” • Diseña una sóla vez para todos tus dispositivos. • El diseño se adaptará dinámicamente a la resolución en la que se esté visualizando. • Los diferentes elementos “saben” que propiedades deben tener, según la resolución. • Definimos la estructura que debe tener la web y esta se adapta según el dispositivo que la visualiza.
  • 30. • Boostrap incluye un conjunto de estilos para hacer nuestra web responsive. • Es un framework potente y complejo por lo que para profundizar a fondo requiere conocimientos amplios de CSS. • No obstante no es necesaria una gran experiencia para conseguir una maquetación de calidad que sea “responsive”,
  • 31. PRACTICA 3 PAGINA WEB 1 CON BOOSTRAP
  • 33. JAVASCRIPT • Inicialmente se llamaba LiveScript. • Lenguaje de guiones (script). • Con el respaldo de SUN en 1995 pasó a llamarse JavaScript. • Es un lenguaje interpretado. • Se ejecuta en el cliente, nunca en el servidor. • Parte de un conjunto limitado de objetos y clases • No permite interacción cliente-servidor, únicamente opera en el cliente (Conseguido con jQuery). Actual mente Javascript vainilla
  • 34. JAVASCRIPT • Javascript se integra en HTML de dos maneras: • Como fichero *.js incluido en la misma sección que los CSS. • Como código directamente en el fichero HTML haciendo uso de la etiqueta <script> • Algunos navegadores no soportan scripts por lo que tendremos que tenerlo en cuenta. • Para tratar el problema haremos uso de la etiqueta <noscript>
  • 35. La declaración de variables se hace sin especificar el tipo: • var miVariable; • Si intento hacer una operación no permitida sobre el tipo que contiene la variable tendré un error. • Para mostrar mensajes por pantalla haré uso de: • alert("texto del mensaje") • Los métodos se declaran con la etiqueta function: • function hola(){ … } • Para devolver un valor haremos uso de "return".
  • 36. • La llamada a los métodos Javascript se hará desde elementos HTML. • Los elementos HTML tienen asociados determinados eventos cuando su estado cambie. • En esos eventos podemos llamar a código Javascript. • Haciendo uso de Jquery como extensión de Javascript podremos realizar funcionalidad antes de que un documento se cargue.
  • 37. JAVASCRIPT :JQUERY • Jquery es una librería Javascript que pretende facilitar el uso del código Javascript a los programadores. • Añade un conjunto nuevo de eventos a los ya existentes HTML. • Permite hacer llamdas AJAX, por lo que permite que, el cliente, llame directamente al servidor. • Incorpora librerías de componentes HTML con funcionalidad enriquecida que podemos usar con poco esfuerzo. jQuery • Tutorial: jQuery tutorial
  • 38. JQUERY • Al igual que en CSS haremos uso de selectores para recuperar un elemento concreto. • La sintaxis es $(selector): • $("p"): recuperaría todos los elementos HTML de tipo <p> • $(".test"): recuperaría todos los elementos HTML cuyo atributo "class" fuera "test". • $("#test"): recuperaría todos los elementos HTML cuyo atributo "id" fuera "test".
  • 40. PHP • Breve historia de PHP • Creado por Rasmus Lerdorf para uso personal en 1994 • PHP = Personal Hypertext Processor • Versión actual: PHP 5 • Es un módulo que se añade al servidor web y fue concebido inicialmente para Apache • ¿Por qué PHP? • Por sus ventajas: es potente, fácil de aprender, de libre distribución, permite el acceso a bases de datos y otras funcionalidades orientadas a la red • Dispone de abundante soporte en la Web
  • 41. Principales usos del PHP: - Programación de páginas web dinámicas, habitualmente en combinación con el motor base datos MySQL. - Programación en consola, al estilo de Perl, en Linux, Windows y Macintosh. - Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y GTK (GIMP Tool Kit), que permite desarrollar aplicaciones de tanto para los sistemas operativos basados en Unix, como para Windows y Mac OS X.
  • 42. SINTAXIS BÁSICA • PHP es sensible a las mayúsculas • ¿Cómo se incrusta en la página web? <?PHP ... ?> recomendado, siempre disponible <?= expresión ?> equivale a <? echo expresión ?> • Las instrucciones se separan con un ; como en C. La marca final ?> implica un ; • Comentarios: como en C, /* … */ y //
  • 43. • Para imprimir: echo y print echo: muestra una o más cadenas echo cadena1 [, cadena2…]; // no es una función echo “Hola mundo”; echo “Hola “, “mundo”; print: muestra una cadena print cadena; // no es una función print “Hola mundo”; print “Hola “ . “mundo”;
  • 44. • Ejemplo: <HTML> <HEAD> <TITLE>Mi primer programa en PHP</TITLE> </HEAD> <BODY> <?PHP print (“Hola mundo”); ?> </BODY> </HTML>
  • 45. • Inclusión de ficheros externos: • include() • require() • Ambos incluyen y evalúan el fichero especificado • Diferencia: en caso de error include() produce un warning y require() un error fatal • Se usará require() si al producirse un error debe interrumpirse la carga de la página
  • 46. Ejemplo: <HTML> <HEAD> <TITLE>Título</TITLE> <?PHP // Incluir bibliotecas de funciones require ("$libdir/conecta.php"); require ("$libdir/fecha.php"); require ("$libdir/cadena.php"); require ("$libdir/globals.php"); ?> </HEAD> <BODY> <?PHP include ("cabecera.html"); ?> // Código HTML + PHP . . . <?PHP include ("pie.html"); ?> </BODY> </HTML>
  • 47. VARIABLES • Las variables siempre van precedidas de un $ • El nombre es sensible a las mayúsculas • Comienzan por letra o subrayado, seguido de letras, números o subrayado • Variables predefinidas: $GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES, $_ENV, $_REQUEST, $_SESSION • Ámbito: globales al fichero (excepto funciones) o locales a una función • Ejemplo: $valor = 5; print “El valor es: “ . $valor . “n”; print “El valor es: $valorn”; // ojo: comillas dobles Resultado: El valor es: 5
  • 48. CONSTANTES • Definición de constantes: define (“CONSTANTE”, “hola”); print CONSTANTE; • No llevan $ delante • Sólo se pueden definir constantes de los tipos escalares (boolean, integer, double, string)
  • 49. ESTRUCTURAS DE CONTROL • if-else • while • do .. while • for • foreach • Switch • Mismo comportamiento que en C
  • 50. FUNCIONES • Ejemplo: function suma ($x, $y) { $s = $x + $y; return s; } $a=1; $b=2; $c=suma ($a, $b); print $c;
  • 51. Argumentos por defecto function muestranombre ($titulo = "Sr.") { print "Estimado $titulo:n"; } muestranombre (); muestranombre ("Prof."); • Salida: Estimado Sr.: Estimado Prof.:
  • 52. Los argumentos con valores por defecto deben ser siempre los últimos: function muestranombre ($nombre, $titulo= "Sr.") { print "Estimado $titulo $nombre:n"; } muestranombre (“Fernández”); muestranombre (“Fernández”, "Prof."); • Salida: Estimado Sr. Fernández: Estimado Prof. Fernández:
  • 53. TABLAS • Sintaxis: array ([clave =>] valor, ...) • La clave es una cadena o un entero no negativo. El valor puede ser de cualquier tipo válido en PHP, incluyendo otro array • Ejemplos: $color = array (‘rojo’=>101, ‘verde’=>51, ‘azul’=>255); $medidas = array (10, 25, 15); • Acceso: $color[‘rojo’] // No olvidar las comillas $medidas[0] • El primer elemento es el 0
  • 54. FORMULARIOS 1. Acceso a formularios HTML desde PHP 2. El formulario de PHP 3. Campos dinámicos con JavaScript 4. Validación de los datos de un formulario
  • 55. • Fichero uno.php <HTML> <BODY> <FORM ACTION=”dos.php” METHOD=”POST”> Edad: <INPUT TYPE=”text” NAME=”edad”> <INPUT TYPE=”submit” VALUE=”aceptar”> </FORM> </BODY> </HTML> • Fichero dos.php <HTML> <BODY> <?PHP print (“La edad es: $edad”); ?> </BODY> </HTML> EJEMPLO
  • 56. • Para saber si se ha enviado el formulario se acude a la variable correspondiente al botón de envío. Si este botón aparece de la siguiente forma en el formulario HTML: <INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar"> entonces la condición anterior se transforma en: if (isset($enviar)) o bien if ($enviar == “procesar”)
  • 58. ACCESO A FORMULARIOS DESDE PHP • Acceso a los diferentes tipos de elementos de entrada de formulario • Elementos de tipo INPUT • TEXT • RADIO • CHECKBOX • BUTTON • FILE • HIDDEN • PASSWORD • SUBMIT • Elemento SELECT • Simple / múltiple • Elemento TEXTAREA
  • 59. VALIDACIÓN DE FORMULARIOS • Toda la información proveniente de un formulario debe considerarse por norma como contaminada, y hay que validarla antes de darla por buena y procesarla • Lo más eficiente es mostrar los errores sobre el propio formulario para facilitar su corrección.
  • 60. ACCESO A BASES DE DATOS MYSQL EN PHP 1. Bases de datos en la Web 2. Lenguaje SQL 3. Funciones de PHP para el acceso a bases de datos MySQL
  • 61. BASE DE DATOS WEB • Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web • Ventajas – Proporcionar información actualizada – Facilitar la realización de búsquedas – Disminuir los costes de mantenimiento – Implementar sistemas de control de acceso – Almacenar preferencias de los usuarios
  • 62. • Esquema básico de un sitio web soportado por bases de datos:
  • 63. LENGUAJE SQL • SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la base de datos • Procedimiento de comunicación con la base de datos: Página PHP Base de datos orden SQL resultado
  • 64. LENGUAJE SQL • Las instrucciones más habituales son SELECT, INSERT, UPDATE, DELETE • Veamos su sintaxis básica y algunos ejemplos de uso • Para ello utilizaremos una tabla noticias con cinco campos: un identificador único de la noticia, el título de la noticia, el texto de la noticia, la categoría de la noticia y la fecha de publicación de la noticia título texto categoría noticias id fecha
  • 65. PRACTICA 6 CREACIÓN DE LA BASE DE DATOS
  • 66. FUNCIONES DE PHP PARA EL ACCESO A BASES DE DATOS MYSQL • Los pasos para acceder desde PHP a una base de datos son los siguientes: • Conectar con el servidor de bases de datos • Seleccionar una base de datos • Enviar la instrucción SQL a la base de datos • Obtener y procesar los resultados • Cerrar la conexión con el servidor de bases de datos
  • 67. ACCESO A BASES DE DATOS MYSQL • Las funciones concretas de MySQL que realizan estas operaciones son: • Conectar con el servidor de bases de datos: • mysql_connect() • Seleccionar una base de datos: • mysql_select_db() • Enviar la instrucción SQL a la base de datos: • mysql_query() • Obtener y procesar los resultados: • mysql_num_rows() y mysql_fetch_array() • Cerrar la conexión con el servidor de bases de datos: • mysql_close()
  • 68. ACCESO A BASES DE DATOS MYSQL • Conectar con el servidor de bases de datos: mysql_connect() • Devuelve un identificador de la conexión en caso de éxito y false en caso contrario • Sintaxis: $conexion = mysqli_connect (servidor, username, password,database); • Ejemplo: • $link = mysqli_connect("localhost", "my_user", "my_password ", "world");
  • 69. Enviar la instrucción SQL a la base de datos: mysqli_query() • Devuelve un identificador o true (dependiendo de la instrucción) si la instrucción se ejecuta correctamente y false en caso contrario Sintaxis: $consulta = mysqli_query ($conexion ,instrucción); Ejemplo: if (mysqli_connect_errno()) { printf("Conexión fallida: %sn", mysqli_connect_error()); exit(); } $result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name") if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) { $row_cnt = mysqli_num_rows($result); } o
  • 71. • Obtener y procesar los resultados: mysqli_num_rows(), mysqli_fetch_array() • En el caso de que la instrucción enviada produzca unos resultados, mysql_query() devuelve las filas de la tabla afectadas por la instrucción • mysqli_num_rows() devuelve el número de filas afectadas • Para obtener las distintas filas del resultado se utiliza la función mysqli_fetch_array(), que obtiene una fila del resultado en un array asociativo cada vez que se invoca • Sintaxis: $nfilas = mysqli_num_rows ($consulta); $fila = mysqli_fetch_array ($consulta);
  • 73. MANEJO DE ARCHIVOS <body> <div class="main"> <h1>Enviar un Archivo</h1> <br> <form enctype="multipart/form-data" action="upload.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="512000" /> <p> Enviar mi archivo: <input name="subir_archivo" type="file" /> </p> <p> <input type="submit" value="Enviar Archivo" /> </p> </form> </div> </body> </html> </head> <body > <div class="main"> <h1>Subir archivo con PHP:</h1> <?php $directorio = 'archivos/'; $subir_archivo = $directorio.basename($_FILES['subir_archivo']['name echo "<div>"; if (move_uploaded_file($_FILES['subir_archivo']['tmp_name'], $subir_archivo)) { echo "El archivo es válido y se cargó correctamente.<br><br>"; echo"<a href='".$subir_archivo."' target='_blank’> <img src='".$subir_archivo."' width='150’> </a>"; } else { echo "La subida ha fallado"; } echo "</div>"; ?> <br> <div style="border:1px solid #000000; text-transform:uppercase"> <h3 align="center"><div align="center"> <a href="cargar.html">Volver </a> </div> </h3></div> </div> </body> </html>
  • 75. PRACTICA 9 GALERÍA DE IMÁGENES CON VOTACIÓN
  • 77. XML Las marcas de xml permiten procesar de forma no ambigua los documentos.
  • 79. DOCUMENTOS Y ELEMENTOS XML • Los documentos consisten en una serie de datos marcados mediante etiquetas. • Las etiquetas describen la estructura del documento . • Un elemento = etiqueta inicial, etiqueta final y contenido entre ambas. • La etiqueta inicial puede incluir atributos.
  • 82. MODIFICACIÓN DEL ÁRBOL • El árbol DOM puede manipularse dinámicamente.
  • 83. ATRIBUTOS • Cada elemento puede contener atributos en la etiqueta inicial. • El orden de los atributos no es significativo no puede haber 2 atributos con el mismo nombre las comillas dobles y simples pueden mezclarse
  • 84.
  • 86. JSON • JSON, acrónimo de JavaScript Object Notation, es un formato de texto ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript aunque hoy, debido a su amplia adopción como alternativa a XML, se considera un formato de lenguaje independiente.
  • 87. Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto comienza con { (llave de apertura) y termine con } (llave de cierre). Cada nombre es seguido por : (dos puntos) y los pares nombre/valor están separados por , (coma).
  • 88. JSON – EQUIVALENCIA CON XML {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} <menu id="file" value="File"> <popup> <menuitem value="New" onclick="CreateNewDoc()" /> <menuitem value="Open" onclick="OpenDoc()" /> <menuitem value="Close" onclick="CloseDoc()" /> </popup> </menu>
  • 90. MIME Es un acrónimo de multipurpose internet mail extensión el cual nos sirve para definir un contenedor de html el cual puede ser de diferentes tipos para convertir esa pagina a un elemento que nosotros necesitemos. MIME mensaje que puede contener: • Texto • Imágenes • Audios • Videos • Aplicaciones especificas (Excel , Word ,powerpoint , PDF).
  • 91. MIME EJEMPLO EXCEL <?php header("Pragma: public"); header("Expires: 0"); $filename = "nombreArchivoQueDescarga.xls"; header("Content-type: application/x-msdownload"); header("Content-Disposition: attachment; filename=$filename"); header("Pragma: no-cache"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); ?> <table> <tbody> <tr> <th> <h2>Listado en tabla excel</h2> </th> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td>9</td> <td>10</td> </tr> </tbody> </table> ?>
  • 92. PRACTICA 12 PHP OFICE HTTPS://GITHUB.COM/PHPOFFICE
  • 94. WEB SERVICE un Web Service es un componente de software que se comunica con otras aplicaciones codificando los mensaje en XML y enviando estos mensaje a través de protocolos estándares de Internet tales como el Hypertext Transfer Protocol (HTTP).
  • 95. REQUISITOS DE UN WEB SERVICE:  Interoperabilidad: Un servicio remoto debe permitir su utilización por clientes de otras plataformas.  Amigabilidad con Internet: La solución debe poder funcionar para soportar clientes que accedan a los servicios remotos desde internet.  Interfaces fuertemente tipadas: procedimentales. Más aún, los tipos de datos definidos en el servicio remoto deben poderse corresponder razonablemente bien con los tipos de datos de la mayoría de los lenguaje de programación. • Posibilidad de aprovechar los estándares de Internet existentes: La implementación del servicio remoto debería aprovechar estándares de Internet existentes tanto como sea posible y evitar reinventar soluciones a problema que ya se han resuelto. • Soporte para cualquier lenguaje: Un cliente debería ser capaz de implementar un nuevo servicio Web existente independientemente del lenguaje de programación en el que se halla escrito el cliente.
  • 96. BLOQUES CONSTRUCTIVOS DE SERVICIOS WEB:
  • 97. SOAP - PROTOCOLO SIMPLE DE ACCESO A OBJETOS • Es un protocolo basado en XML, que permite la interacción entre varios dispositivos y que tiene la capacidad de transmitir información compleja. Los datos pueden ser transmitidos a través de HTTP , SMTP , etc. SOAP especifica el formato de los mensajes de la siguiente forma:  envelope (envoltura): Es el elemento raíz del mensaje para describir su contenido y la forma de procesarlo.  header (encabezado): Es la información de identificación del contenido. Un grupo de reglas de codificación para expresar las instancias de tipos de datos definidos por la aplicación.  body (cuerpo): Es el contenido del mensaje. Una convención para representar las llamadas y las respuestas a procedimientos remotos.
  • 99. ALGUNAS DE LAS VENTAJAS DE SOAP • No esta asociado con ningún lenguaje • No se encuentra fuertemente asociado a ningún protocolo de transporte • Aprovecha los estándares existentes en la industria • Permite la interoperabilidad entre múltiples entornos • Ampliamente aceptado
  • 100. RPC USANDO SOAP • RPC: Consiste en pasarle parámetros a un procedimiento remoto en algún lenguaje determinado (java, c++, etc) utilizando un esquema de comunicación xml via HTTP.
  • 101. DESCRIPCIÓN: WSDL Lenguaje de Descripción de Servicios Web • WSDL representa una especie de contracto entre el proveedor y el que solicita. O sea permite que un servicio y un cliente establezcan un acuerdo en lo que se refiere a los detalles de transporte de mensajes y su contenido, a través de un documento procesable por dispositivos.
  • 102. WSDL Distingue claramente los mensajes de los puertos • Los mensajes (la sintaxis y semántica que necesita un servicio Web) son siempre abstractos • Los puertos (las direcciones de red en las que se invoca al servicio Web) son siempre concretos
  • 103. Existen tres componentes principales de esta interfaz abstracta:  El vocabulario  El mensaje  La interacción Descripción abstracta:
  • 105. DESCUBRIMIENTO: UDDI • Una vez creado el servicio web el siguiente paso consiste en definir cómo se dará a conocer el servicio Web para que los clientes interesados puedan descubrirlo fácilmente y utilizarlo en sus aplicaciones. • UDDI es un registro público diseñado para almacenar de forma estructurada información sobre empresas y los servicios que éstas ofrecen. A través de UDDI, se puede publicar y descubrir información de una empresa y de sus servicios.
  • 106. En UDDI codifica tres tipos de información acerca de un servicio web Sección blanca - dirección, contacto y otros identificadores conocidos. Sección amarilla - categorización industrial basada en taxonomías. Sección verde - información técnica sobre los servicios que aportan las propias empresas.
  • 107. PARA CONCLUIR: • WSDL: Ofrece un modo formal de definir servicios web, independientemente del proveedor. • UDDI: Proporciona una amplia infraestructura estandarizada que permite al usuario describir y descubrir servicios web.