Servicios estándar Internet Web 1.0 Resumen Internet sufre dos transformaciones conceptuales, una es llamada Web 1.0 y otra la Web 2.0. El tema de estudio de este artículo se basa en la Web 1.0, no es hasta 1993 cuando llega a los usuarios finales con más fuerza, ofreciendo una serie de servicios que se ofrecen a través del protocolo TCP/IP. Palabras clave Internet, servicios, socket, protocolo, rfc, DNS, dhcp, HTML, http, ftp, smtp, pop3, Telnet, nntp, bootp, snmp, finger, x500, xml. 1 Introducción El protocolo TCP/IP, es la base para la comunicación de las distintas redes y de ordenadores que se conectan a Internet. Antes de pasar a nivel de aplicación se va a definir que es el interfaz de TCP/IP y el modelo de aplicación cliente/servidor. El interfaz de TCP/IP surge por la necesidad trabajar entre el nivel de aplicación y cualquier arquitectura de red. Las aplicaciones de Internet se basan en los servicios TCP y UDP y su diseño se basa en el modelo cliente/servidor, es decir, tener una aplicación cliente en la que tendrá un proceso cliente y una aplicación servidora con un proceso servidor que estará ejecutándose continuamente pendiente de peticiones que le hagan los clientes. Por tanto ambas aplicaciones Cliente/Servidor utilizan el interfaz TCP/IP llamado sockets. 2 Servicios estándar de Internet Antes de pasar a estudiar los servicios estándar de Internet, se muestra visualmente su representación. 1 Figura 1. Interfaz socket. Entre las aplicaciones (implementación del servicio) estándar de Internet se describen algunas: DNS (Domain Name Service) El DNS es el servicio de nombres, definido en las RFC 1034 y 1035. Éste servicio traduce nombres de host en direcciones IP’s y viceversa. El modelo cliente/servidor para éste servicio es el siguiente: El cliente construye y manda una petición al servidor y espera a que le conteste el servidor. El cliente hace dos tipos de consultas recursiva e iterativa, es decir, respectivamente el servidor espera por el puerto 53, cuando le llega la petición mira en su base de datos y si no está lo busca en otro servidor DNS mandándole la información que solicita. Si el cliente le pregunta al servidor si no lo sabe es el mismo cliente el que va a preguntar a otro servidor DNS. DHCP (Dinamic Host Configuration Protocol) Su RFC es la 1541. Utiliza el protocolo UDP. Se dedica a configurar las estaciones de red y darles una dirección IP de la siguiente manera: Asigna automáticamente direcciones IP permanentes a las distintas estaciones. Una asignación dinámica. Asignación manual por parte del administrador. TELNET Terminal remoto o Telnet se define en las RFC’s 854 y 855. Proporciona acceso a un terminal de un sistema UNIX remoto, utiliza el puerto 23 y el protocolo TCP. El servidor es de tipo TCP. El software de cliente TELNET suele permitir que el usuario especifique el nombre de la máquina remota o ponga su IP Las características de TELNET son: Sistema de autorización y autentificación (login y password). 2 Negociación de parámetros de terminal, y de opciones de la transmisión. Define un formato estándar en la comunicación entre cliente y servidor (NVT, Network Virtual Terminal) basado en códigos ASCII-7. El modelo cliente/servidor es como sigue. El cliente envía al servidor lo que teclee el usuario y mostrará en pantalla lo que mande el servidor. La información se transmite en formato NVT, pero cuando llegue a la máquina se debe convertir este formato al formato estándar de la máquina, es bueno pues permite la comunicación entre distintas máquinas distintos sistemas operativos. FTP La RFC donde se define es la 959. Permite la transferencia entres dos máquinas de forma fiable. Utiliza el puerto 21 y el protocolo TCP. Características de FTP: Acceso interactivo: Conjunto de comandos ( cd, get, help, etc). Transferencia binaria o ASCII. Sistema de autentificación y autorización (user y password). Utiliza el formato NVT para transmitir comandos, pero sin negociación de opciones. El cliente espera en su dirección de puerto local a una petición de conexión desde el puerto 20 del servidor. En una sesión FTP, los mensajes de error y control entre el cliente y el servidor comienzan con un número de tres dígitos seguido del texto. El software del cliente interpreta el número y genera el texto para los usuarios. Servicio de correo : SMTP, POP3 El servicio de correo permite el intercambio de mensajes, es decir, desde líneas de texto hasta ficheros. SMTP (Simple Mail Transfer Protocol) es el protocolo estándar de Internet utilizado en la transferencia de correo electrónico, definido en la RFC 821. Cuando se envía un correo el software cliente SMTP en el anfitrión local contacta con el servidor SMTP y comienza el intercambio de información. Utiliza el protocolo TCP y el puerto bien conocido 25. POP3 es un protocolo utilizado por los lectores de correo electrónico (p.e Microsoft Outlook, Eudora, ...) y se encarga de obtener el correo electrónico del buzón remoto y almacenarlo en al máquina local del usuario para su posterior lectura. Se define por su RFC 1125. Utiliza el protocolo TCP y el puerto bien conocido 110. NNTP, BOOTP, SNMP, FINGER, X500 La descripción de los servicios es la siguiente: NNTP: Protocolo estándar de Internet para la transferencia de noticias. Se define por la RFC 977. Utiliza el protocolo TCP y el puerto 119. 3 BOOTP: Se utiliza en el arranque remoto de las estaciones sin disco. Se define según la RFC 951. Suministra la dirección IP y el nombre del fichero donde se alberga la imagen del sistema operativo a cargar. SNMP: Permite la gestión y administración remota de los elementos de una red (host, encaminadores, puentes, etc). Se define sobre la RFC 1157 y funciona sobre UDP. FINGER: Ofrece información acerca de hosts, usuarios conectados. Se define en la RFC 742 , el protocolo que utiliza es TCP en el puerto 79. X500: Entorno gráfico que permite a una aplicación ejecutarse en un host y mostrar su salida gráfica en pantalla de otro host. Se define sobre las RFC 1013 y 1198. Otro servicio a incluir sería WWW, que se estudia a continuación. 2.1 El servicio más extendido en Internet es WWW El servicio más extendido de Internet junto con el correo electrónico es el WWW. El World Wide Web es un servicio que reúne dos técnicas, una la búsqueda de información y la otra el hipertexto. El hipertexto es una forma de organizar la información, de forma que algunas partes del texto, denominadas enlaces, se encuentran resaltadas, permitiendo acceder al pulsar sobre ellas a diferentes partes del documento o a otros documentos distintos, independientemente de su localización. Tras la idea de la creación del hipertexto surgió también la idea de hipermedia, la cual, no hace posible acceder a otros documentos sino también a imágenes, animaciones, vídeo, sonido, etc. Las características de WWW son las siguientes: Utiliza el lenguaje HTML para visualizar y crear las páginas web. El cliente web o browser (p.e Explorer, Nestcape, etc) permite el acceso a servidores usando el protocolo HTTP, ftp, telnet, etc. El navegador obtiene la página que demanda bajo la URL (Uniform Resource Locators), interpreta el texto y los comandos de formateo y muestra en pantalla la página formateada. El ejemplo siguiente de URL (Uniform Resource Locators) describirá la forma de identificar un objeto o recurso en Internet: HTTP://romana/specs/wd/cav43.HTML especifica: La descripción de la URL es la siguiente: Para éste ejemplo HTTP es el protocolo que solicita de recurso un documento, pero si en lugar de documentos se requieren otros recursos, se pueden usar los protocolos que a continuación se exponen que identifican el recurso que pueden solicitar: 4 o o o o o o o Https: Petición segura de documentos mediante HTTP. Los documentos y las peticiones se encriptan. Ftp: Petición de ficheros utililizando el protocolo Ftp. File: Acceso a fichero existente en la máquina local. News: Acceso a artículos de grupos de noticias. Mailto: Acceso al envío de correo electrónico a la dirección especificada a continuación. Telnet: Abre una sesión interactiva de telnet con el servidor. Gopher: Acceso a documentos y directorios por el protocolo Gopher. Romana: máquina con la que se quiere comunica o servidor. Specs/wd: Directorio o ruta dentro de la máquina. Cav43.htm: Recurso que se solicita y su extensión (fichero). 2.2.1 HTTP como protocolo que soporta el servicio WWW El origen del protocolo HTTP lo crea Tim Berners-Lee para WWW en 1991, siendo un protocolo rápido y sencillo. Inicialmente se denominó HTTP 0.9. El protocolo completo se definió en 1992 y se implementó en marzo de 1993. Soporta los servicios de conexión TCP/IP. Un proceso servidor escucha por el puerto de comunicaciones TCP (por defecto 80) y espera las solicitudes de clientes Web. Al ser TCP una vez establecida la comunicación el TCP se encarga de mantener la comunicación y garantizar que la transferencia de datos esté libre de errores ya que utiliza el protocolo a tres bandas. Antes se describía con un ejemplo la manera de hallar un recurso en Internet mediante la URL, pero de manera general es la siguiente: Servicio:/host:puerto/camino?parte_de_la_busqueda Si es el servicio WWW el puerto entonces se asume que el puerto es el 80. Las versiones que se tienen de HTTP son: HTTP 1.0 Esta especificación define las características básicas del protocolo. Fue desarrollado por Tim Berners-Lee, Roy T. Fielding, y Henrik Frystyk Nielsen. Se define por la RFC 1945. No admite conexiones persistentes. Pide servicio le contesta el servidor. HTTP 1.1 Las especificaciones son muy similares a la anterior. Se define por la RFC 2068. Sus especificaciones vienen definidas en (W3C) el sitio Web: www.w3c.org. Admite conexiones persistentes, se abre la conexión y posteriormente puede pedir la URL. Permanecen conectados al servidor. Aparece el protocolo de manejo de cookies, no se considera parte del protocolo HTTP 1.1, aunque es soportado por la mayoría de clientes. Fue propuesto por Netscape y actualmente está en proceso de adaptarse como un estándar de Internet, tal y como está especificado en la RFC 2109.Las cookies son un mecanismo general mediante el que los programas en la parte del servidor (CGIs, Servlets, etc.) pueden almacenar información en la parte del cliente de la conexión. Es una forma de añadir estado a las conexiones HTTP. 5 HTTP-NG Next Generation of HTTP, propuesta por Simón Spero. Es un protocolo binario con nuevas características para un acceso más rápido usando TCP. Este es el último HTTP en la actualidad. Su especificación viene definida en el sitio Web: www.w3c.org/Protocols/HTTP-NG. La causa de la aparición del nuevo protocolo HTTP-NG es debida a que el protocolo HTTP 1.1 causa retrasos en la red, por tanto, es un protocolo que se preocupa de que las comunicaciones en Internet sean más eficientes. Según su especificación se hacen nuevas peticiones sin haber finalizado la conexión establecida hasta el momento. Extenderá el concepto de objeto permitiendo hacer más fácil la comunicación de objetos distribuidos. HTTP soporta dos tipos de mensajes, de solicitud haciendo las peticiones el cliente y de respuesta que los manda el servidor, como se puede visualizar en la tabla siguiente. Los mensajes tienen la siguiente estructura organizada en líneas: Mensaje de solicitud 1 Comando HTTP parámetros. 2 3 4 Mensaje de respuesta Resultado Resultado de la de la solicitud operación (código numérico que permite conocer el éxito o fracaso de la operación). (Una línea) Cabeceras del Unas Cabeceras Unas requerimiento obligatorias y de la obligatorias otras respuesta y otras opcionales opcionales En blanco (Una línea) En blanco. (Una línea) Información Información opcional opcional Comando que se solicita al servidor HTTP (Una línea) Tabla 1. Formato mensajes de solicitud y respuesta en HTTP. La separación entre líneas se realiza por el par CR-LF (Retorno Carro más línea nueva). El final de las cabeceras por una línea en blanco, a continuación se incluirán los datos. Los comandos de HTTP son los que representan las diferentes operaciones que pueden especificarse a un servidor HTTP, su formato es el siguiente: Nombre del comando Objeto sobre el que se aplica Versión de HTTP utilizada 6 Así por ejemplo se tienen los siguientes comandos: Para el estándar HTTP 1.0 se recogen comandos para el envío, chequeo de estado y recepción de información siendo el comando GET el que recoge información del servidor, HEAD que solicita información de un objeto (fichero) y POST que sirve para enviar información al servidor. Viendo un ejemplo ejemplo de solicitud de documento con el comando GET, con la siguiente especificación “ GET <URL> [HTTP/versión] <CR LF> <CR LF> “ es el siguiente [UATW01]: GET /cernvm/FIND?sgml+cms HTTP/0.9 Indica que se solicita (es el comando GET) un recurso especificado en la URL y versión 0.9 (la inicial de HTTP). Para la versión HTTP 1.1 recoge nuevos comandos que son PUT que actualiza información de un objeto del servidor, DELETE que elimina el documento especificado del servidor, LINK crea una relación entre documentos y UNLINK que elimina la relación entre documentos. Las cabeceras sirven tanto por parte del servidor o del cliente para proporcionar información al otro extremo de la comunicación. Así por ejemplo por parte del cliente al servidor le informa, por ejemplo, tipo de software que está ejecutando, contenidos que entiende. Toda la información que le pasa el cliente la podría utilizar el servidor para generar la respuesta. Entre la información que se pasan las cabeceras se refleja el formato del mensaje a manejar, basado en MIME. MIME (MultiPurpose Internet Mail Extensions) es un estándar oficial de Internet que especifica cómo se deben formatear los mensajes para que puedan ser intercambiados entre diferentes sistemas de correo electrónico. MIME es un formato muy flexible, que permite incluir cualquier tipo de dato (text, audio, vídeo, imágenes, datos de aplicaciones, etc.) en los mensajes de correo. Las RFC que lo definen son las números 2045, 2046, 2047, 2048 y 2049 según la referencia. Algunos tipos MIME comunes son: 1. 2. 3. 4. 5. 6. Application/pdf: documento pdf. Application/postScript: fichero postScript. Application/vnd.ms-excel: fichero de hoja de cálculo Excel. Audio/x-wav: fichero de sonido en formato Microsoft Windows. Text/HTML: documento HTML. Video/mpeg: película MPEG. Cada vez que un cliente realiza una petición a un servidor, se ejecutan los siguientes pasos: 1. Un usuario accede a una URL, seleccionando un enlace de un documento HTML o introduciéndola directamente en el campo Location del cliente Web. 2. El cliente Web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo de acceso, la dirección DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del servidor. 7 3. Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente. 4. Se realiza la petición. Para ello, se envía el comando necesario (GET, POST, HEAD,…), la dirección del objeto requerido (el contenido de la URL que sigue a la dirección del servidor), la versión del protocolo HTTP empleada (casi siempre HTTP/1.0) y un conjunto variable de información, que incluye datos sobre las capacidades del browser, datos opcionales para el servidor, … 5. El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la información de retorno, seguido de la propia información. 6. Se cierra la conexión TCP. Este proceso se repite en cada acceso al servidor HTTP. Por ejemplo, si se recoge un documento HTML en cuyo interior están insertadas cuatro imágenes, el proceso anterior se repite cinco veces, una para el documento HTML y cuatro para las imágenes. 2.2.2 HTML como lenguaje que soporta el servicio WWW HTML expresa el formato visual de la página web, su idioma se basa en el Generalizado Estándar para el Formato de Documentos ó SGML que en inglés significa Standard Generalized Mark-up Language. siendo SGML un estándar internacional. Los orígenes de SGML empiezan con el lenguaje que crea IBM GML (General Makup Language) para poder almacenar la información que procesaban sobre los años 70, después sería estandarizado en 1986 llamado SGML (la s inicial surge de estándar). SGML permite definir lenguajes para dar formato a documentos (mark-up languages). Así HTML es un lenguaje de formato de documentos definido de acuerdo con SGML (o en otras palabras una aplicación de SGML) para dar formato a documentos de hipertexto. HTML es un lenguaje de descripción de páginas WWW que contiene etiquetas(tags) o marcas que describen el contenido del documento pero no el formato de la página ni su apariencia, la representación de la página dependerá del navegador, versión del navegador y de los módulos de extensión instalados. HTML describe cómo se visualizará por pantalla los elementos de texto: párrafos, listas, tablas , etc. Algunas etiquetas apuntan a las imágenes que tienen enlaces a otras páginas web. Las etiquetas se delimitan con los signos “<” y “>”. Descripción de algunas etiquetas: <HTML> ... </HTML> Declaran el inicio y fin de una página web escrita en HTML <HEAD> ... </HEAD> Delimitan la cabecera de la página <TITLE> ... </TITLE> Define el título (que no se muestra en la página) <BODY>... </BODY> Delimita el cuerpo de la página <Hn>...</Hn> Encabezado de nivel n <Bn>...</Bn> Pone ... en negrita <In>...</In> Pone ... en itálica <IMG SRC=”...”> Carga una imagen 8 <A HREF=”...”> ... </A> Define un hiperenlace Las etiquetas tienen atributos que permiten delimitar su carácter y su aplicabilidad. Si se combinan las etiquetas para formar un documento o página web sencilla su forma sería la siguiente: <HTML> <head> <title>Prueba</title> </head> <body> Hola </body> </HTML> La simplicidad de HTML es buena ya que cualquier navegador la entiende, pero los documentos carecen de atractivo. En los siguientes apartados se verán las mejoras que se están planteando y como se mejora HTML para que mejore el atractivo visual de las páginas web. Un punto a favor de HTML sería su contenido, está estructurado de manera lógica, puede ser representado de acuerdo con esa estructura por cualquier navegador, según sus capacidades. Él mismo se encargará de escribir los títulos con un tipo más grande que el de los párrafos, de poner el espacio entre párrafos, de dibujar los marcadores de las listas, de dibujar las líneas entre las celdas de una tabla, etc., sin que se tenga que preocuparse de esos aspectos. HTML ha ido evolucionando controlado por W3C, siendo la última especificación de HTML, HTML 4.01 de 1997, que declaró todos los elementos presentacionales como desaprobados, es decir, en riesgo de ser declarados como obsoletos en próximas especificaciones, de modo que los nuevos navegadores no se verían obligados a soportarlos. En su lugar, deberían utilizarse hojas de estilo. Puesto que el lenguaje HTML está limitado para darle forma al documento, se crean soluciones de diseño como son la utilización de tablas como imagen transparente, utilización de etiquetas que no son estándar, etc. Otro problema que da más razones para utilizar las hojas de estilo era que se mezclaba en el código HTML el contenido del documento con las etiquetas necesarias para dar forma al documento, haciendo más difícil la detección de errores a la hora de depurar páginas. Todo lo anterior da lugar a la creación de una nueva tecnología llamada hojas de estilo en cascada ó CSS según la bibliografía. Las características y ventajas que aporta CSS mediante una sintaxis especial es dar forma a: Un sitio Web entero. Se declararía con un fichero externo. La extensión del fichero podría ser cualquiera pero es mejor poner .css. Un documento HTML o página. Se utilizaría la etiqueta <STYLE> en la cabecera de la página. Una parte del documento. Se utiliza la etiqueta <DIV>. 9 Una etiqueta en concreto. Se utiliza el atributo style en la etiqueta en cuestión. En una porción pequeña del documento. Se utilizaría la etiqueta <SPAN>. Viendo a continuación ejemplos para definir el estilo en una pequeña página, en toda una página y en un sitio Web, se tendrá para: Una pequeña parte de página Usando la etiqueta <SPAN style=”color:valor”>XXX</SPAN>, daría como resultado el texto XXX en color de valor. Si se aplica <p style=”color:valor”>XXX></p> se aplica el color de valor a la etiqueta p que sería el párrafo. Si es con <div style=”color:valor”> XXX </div> se aplica a la sección de página que comprenda. Para toda la página Usando la etiqueta style en la cabecera de la página, como se describe a continuación: <HEAD> <STYLE TYPE="text/css"> Reglas de estilo (explicadas a continuación) </STYLE> </HEAD> Las reglas de estilo se definen con SELECTOR { PROPIEDAD : VALOR} SELECTOR: Hay tres tipos. Tipo de elemento. En un declaración head del documento se formaría con: p { color : valor } En el documento se declararía normalmente <p> XXX </p> Clase de atributo. En la declaración de una clase se formaría con: p.clase { color: valor ; ...} En el documento se declararía con <p class=”clase”> XXX </p> Identificador de atributo. En la declaración el identificador se podría formar: 10 #descripcionid {color: valor; ...} En el documento se declararía por ejemplo para la etiqueta h1 con <h1 id=”descripcionid”> XXX </h1> PROPIEDAD y VALOR: son las propiedades que se podría encontrar en cualquier página Web que comente hojas de estilo, por ejemplo la referencia tiene los atributos y valores que pueden tener. Para todo un sitio Web Se podría crear un fichero con extensión .css, pero que incluya sólamente sintaxis CSS. La forma de que la página Web que utiliza hojas de estilo sería la que incluyese la etiqueta link en la cabecera de la página cuyos atributos son: rel = “STYLESHEET” que indica que el enlace es a una hoja de estilos. Type = “text/css” archivo de texto en sintaxis CSS. Href = “estilos.css” nombre del fichero fuente de estilos. Un sitio Web enlazaría con ese estilo declarando de alguna manera en sus páginas el fichero .css, que podría ser la declaración: <HEAD> <STYLE TYPE="text/css"> < LINK REL=STYLESHEET TYPE="text/css" HREF= “estilos.css”> <TITLE>MiEstilo</TITLE> </STYLE> </HEAD> Para finalizar, la tecnología CSS sólo es válida para navegadores de Nestcape versiones de la 4 en adelante y de Microsoft a partir de la versión 3. 3 Evolución de HTML con las nuevas tecnologías. HTML debe evolucionar ya que se está viendo que cada día llegan nuevas tecnologías, por ejemplo, dispositivos portátiles, teléfonos móviles que hacen que el lenguaje de la red deba transformarse. Puesto que HTML presenta los siguientes problemas: Sólo tiene un uso en páginas web. Interpretación ambigua. Su estructura es caótica. Problemas de internacionalización. No es fácilmente procesable por las máquinas. Define más la presentación que el contenido. XML es una respuesta a ésta necesidad . No significa que sea un nuevo lenguaje que pueda sustituir a HTML como en principio se podría pensar. XML es un lenguaje 11 internacionalmente reconocido, es libre no pertenece a ninguna compañía, permitirá el acceso tanto a personas con minusvalías como a elementos hardware (teléfonos móviles, etc) . El usuario no deberá crearse su lenguaje sino que se utilizará el lenguaje estándar que se derive de XML y se pueda utilizar apropiadamente. Así si se quiere utilizar HTML será una aplicación que se derive de XML. Por ejemplo se tiene DocBook que es un lenguaje para el formato de libros electrónicos. MathML es un lenguaje para el formato de ecuaciones matemáticas. En DocBook hay un elemento para párrafos (<Para>). En MathML hay definidos elementos útiles para las fórmulas matemáticas, como sumatorios (<sum>), exponenciales (<exp>), etc., pero no hay un elemento para párrafos. Esto permite crear lenguajes específicos para cada aplicación o para cada tecnología, lo cual finalmente puede simplificar las cosas. Por ejemplo, los teléfonos móviles tienen una capacidad de procesamiento mucho menor que la de los ordenadores personales. Como el HTML es demasiado complicado para ellos, se desarrolló un nuevo lenguaje simplificado llamado WAP específico para teléfonos móviles. Desgraciadamente, WAP no es una aplicación de XML, aunque su lenguaje WML nace de XML con tags más restringidas [VAN01]. En el futuro se espera que los teléfonos móviles soporten XML, pero esto va a suponer esperar un tiempo de adaptación que se podría haber evitado. XML fue desarrollado a partir de 1996 como subconjunto de SGML, y fue adoptado como estándar en febrero de 1998 por la Word Widet Web Consortion (W3C). Resumiendo las tecnologías XML: Especificación XML V 1.0. Se puede encontrar su especificación oficial en HTTP://www.w3.org/TR/REC-xml. Definición de documentos, contenidos: DTD o XML Schemas. Definición de estilos, diseño XSL = XSLT + Xpath. Enlazado de documento XLL = Xlink + Xpointer Programación: SAX o DOM. Aplicaciones RDF, SMIL, HTML, etc. La descripción de la tecnologías que implementa XML se comentan a continuación. En cuanto a la descripción del documento XML se escribe en ASCII, al igual que HTML teniendo que poner en la cabecera <?xml versión=”1.0”>. El resto del documento se escribe con etiquetas anidadas, las cuales pueden tener atributos con sus respectivos valores. Los comentarios se escriben igual que HTML <!- Comentario ->. Viendo como ejemplo: <?xml versión=”1.0”> <PELICULA nombre=”El Padrino”> <PERSONAL> </DIRECTOR nombre=”Georgie Lucar”> </PERSONAL> </PELÍCULA> 12 Como se observa en el ejemplo la etiqueta principal película tiene personal entre el que destaca el director, estando las etiquetas anidadas. En cuanto a la definición de documentos, se podrían escribir muchos lenguajes escritos en XML para cualquier demanda de usuarios, por ejemplo si se demanda un lenguaje para almacenar diagnóstico de pacientes se podría tener un lenguaje llamado PacientesXML, si fuera para aplicaciones para móviles se podría utilizar un lenguaje de aplicaciones inalámbricas (Wireless) que se llama WML. Podría crearse infinitos lenguajes o sublenguajes ya que se derivan de XML se utilizan dos metalenguajes siendo el DTD (Definition Type Document) con una sintaxis muy especial y el XML Schema que es más fácil que el DTD. Para la presentación del documento al igual que HTML define hojas de estilo, XML define hojas de estilo pero en lugar de llamarse CSS se llaman XSL. Xlink es una aplicación XML que intenta superar las limitaciones que tienen los enlaces de hipertexto en HTML. En cuanto a la manera de acceder a los documentos XML y la forma con la que se debe trabajar con ellos, se dan unas normas con la manera de acceder a los documentos, incluyen una jerarquía de objetos que tienen unos métodos y atributos simplificando la manera de recorrer y acceder a la partes del documento. Los mecanismos que se tienen son SAX y DOM. SAX se utiliza para hacer un recorrido secuencial a los elementos del documento XML y DOM implica la creación de un árbol en memoria que contienen el documento XML. Anteriormente se ha comentado que HTML es una aplicación de XML, por tanto se puede definir como tal, pero normalmente se suele encontrar con el nombre XHTML 1.0. El XHTML 1.0 es igual que HTML 4 (su especificación se puede encontrar en HTTP://www.w3.org/TR/REC-HTML40 ) pero sigue las normas no de SGML sino de XML siendo más estricta. Así por ejemplo si en HTML la etiqueta p no necesita la etiqueta </p> en XML sí, también XHTML distingue mayúsculas de minúsculas, pero en definitiva las capacidades son la mismas que HTML 4. Se puede preguntar que ocurre con las páginas HTML existentes, y su respuesta sería que no pasará nada. Los navegadores seguirán entendiendo HTML, pero como para algunas aplicaciones conviene definirse subconjuntos de HTML es XHTML ( es modular ) la que ofrece ésta característica, lo que hace que los navegadores tomen lo que necesite, si por ejemplo, se tienen un módulo de imágenes el navegador tomará ese módulo de imagen, si es un módulo de Script lo mismo, si es un módulo de formularios igual, etc. De momento hasta que no se creen editores XHTML no se implementará ésta tecnología pero hay que estar al tanto ya que las cosas van muy rápidas. Su especificación se encuentra en HTTP://www.w3c.org/TR/xHTML1/. 3 Conclusiones Como se aprecia en el artículo, la Web 1.0 generó una serie de servicios que actualmente son la base de la Web 2.0, sin olvidar el protocolo que dio lugar a ellos, TCT/IP. Otro factor importante a la hora de utilizar estos servicios son lo socket, 13 puntos de enlace entre las aplicaciones y los diferentes sistemas operativos, que permiten la comunicación entre diferentes máquinas. Por último se tiene en cuenta la evolución que sufre HTML como lenguaje y su evolución a XML. Todo lo anterior da indicios de evolución para construir una Web 2.0, con metaherramientas que facilitan la conocida sociedad del conocimiento que se está produciendo hoy día. Bibliografía Tecnologías Web, (2010), extraído el 25 http://www.dccia.ua.es/dccia/inf/asignaturas/TW/teoria.html. de enero desde HTML a fondo, (2010), extraído http://www.desarrolloweb.com/html/. de enero desde el 26 Pozo,Juan R. HTML, SGML, XHTML, XML. Extraido el http://html.conclase.net/articulos/navegadores. Reino, Alfredo. Introducción a XML, http://www.ulpgc.es/otros/tutoriales/xml/. (2010), extraído 27 de enero desde el 26 enero desde 14