Sie sind auf Seite 1von 59

Instituto Tecnolgico Superior de Coatzacoalcos

Materia: Programacin Web


Antologa de la materia

Alumno: Sergio Ramrez Tenorio 7 F Nmero de control: 08080767

Programacin Web

Antologa Programacin Web

ndice

Pgina
Introduccin a las tecnologas Web 1.1 Perspectiva histrica dela Web. 1.2 Protocolo http 1.3 Introduccin al HTML. 1.4 Evolucin del desarrollo de aplicaciones Web. 1.5 Hojas de estilo en cascada e introduccin al XML. Desarrollo de aplicaciones Web 2.1 Arquitectura de las aplicaciones Web 2.2 Lenguajes de programacin del lado del cliente 2.3 Lenguajes de programacin del lado del servidor 2.4 Ambientes para el desarrollo de aplicaciones Web 2.5 Metodologas para el desarrollo de aplicaciones Web 2.6 Aspectos de seguridad Programacin del lado del servidor 3.1 Procesamiento del lado del servidor 3.2 Conceptos bsicos de la herramienta de desarrollo 3.3 Operadores 3.4 Sentencias 3.5 Arreglos 25 25 27 29 29
10 11 14 19 22 23 4 5 7 8 9

Sergio Ramrez Tenorio 7F

Pgina 1

Programacin Web

Antologa Programacin Web

3.6 Funciones y libreras 3.7 Ejemplos prcticos 3.8 Procesador de formularios 3.9 Sesiones

29 30 30 32

3.10 Conectividad entre el servidor web y el servidor de base 35 de datos 3.11 Manejo de archivos 3.12 Seguridad Unidad 4 Procesamiento del lado del cliente 4.1 Lenguaje Script del cliente 4.2 Modelo de objetos con lenguaje Script 4.3 Objetos lenguaje Script interconstruidos 4.4 Eventos con lenguaje Script 4.5 Validacipon de entrada de datos del lado cliente 4.6 Consideraciones del soporte navegador Unidad 5 Servicios Web XML 5.1 Visin general de servicios Web XML 5.2 Tecnologas subyacentes 5.3 Publicacin de servicios web 5.4 Consumo de un servicio Web 49 50 53 56 38 43 43 44 45 48 37 37

Sergio Ramrez Tenorio 7F

Pgina 2

Programacin Web

Antologa Programacin Web

UNIDAD I. Introduccin a las tecnologas Web


1.1 Perspectiva histrica del internet
Internet tuvo un origen militar que puede rastrearse a 1969, cuando la Agencia de Proyectos para Investigacin Avanzada (Advanced Research Projects Agency en ingls ARPA) del Departamento de Defensa de los Estados Unidos conect cuatro sistemas de cmputos geogrficamente distantes en una red que se conoci como ARPAnet. Pero, si bien la idea original estaba intrnsecamente ligada a la seguridad militar, su evolucin e implementacin tuvieron lugar alrededor del mundo acadmico. La misma red en experimentacin sirvi para conectar a los cientficos desarrollndola y ayudarlos a compartir opiniones, colaborar en el trabajo y aplicarla para fines prcticos. Pronto, ARPAnet conectara todas las agencias y proyectos del Departamento de Defensa de los E.U.A. y para 1972 se haban integrado ya 50 universidades y centros de investigacin diseminados en los Estados Unidos. Eventualmente la Fundacin Nacional de Ciencia (National Science Foundation en ingls NSF), entidad gubernamental de los Estados Unidos para el desarrollo de la ciencia se hizo cargo de la red, conectando las redes que luego daran lugar a la red de redes que hoy llamamos Internet.

Navegador web
Un "browser", es un programa o aplicacin que nos va a permitir movernos por internet y acceder al contenido de las webs, blogs, foros, galeras fotogrficas, etc., de Internet. El navegador interpreta el cdigo, HTML generalmente, en el que est escrita la pgina web y lo presenta en pantalla permitiendo al usuario interactuar con su contenido y navegar hacia otros lugares de la red mediante enlaces. Cmo funciona un navegador?

WWW
A diferencia de lo que muchas veces se suele creer, WWW no es Internet sino un sistema que se basa en protocolos y en buscadores a los que se puede acceder a travs de Internet. Dos elementos fundamentales que componen las pginas de este medio de comunicacin son los hipertextos y los hiperenlaces. En cuanto a los primeros, nos referimos a HTTP (Hypertext Transfer Protocol), que es el protocolo de transporte de los hipertextos y el HTML (Hypertext Markup Language), que es el lenguaje con el que se crean la mayora de los textos en la Web.

Sergio Ramrez Tenorio 7F

Pgina 3

Programacin Web

Antologa Programacin Web

El otro elemento, los hiperenlaces (o Hyperlinks), son los que permiten que se puedan realizar enlaces entre las distintas pginas Web, de forma tal que el usuario pueda navegar interconectndose entre una y otra. Este fue uno de los grandes aportes del ingls Tim BernersLee, que le dio la forma a lo que conocemos actualmente como WWW. Por otra parte, para poder utilizar este sistema, el usuario necesite tener cargado en su computadora un programa, conocido como browser (navegador web).

1.2 Protocolo HTTP


Desde 1990, el protocolo HTTP (Protocolo de transferencia de hipertexto) es el protocolo ms utilizado en Internet. Se utiliza en las transferencias de informacin de pginas en Internet, de tal forma que puedan ser visualizadas en un navegador o explorador; habitualmente comprender, entre otros elementos, textos en lenguaje HTML, imgenes, Applets de Java, datos, documentos de diversos tipos, animaciones y elementos multimedia. HTTP es el protocolo de transferencia de informacin que forma la base de la coleccin de informacin distribuida denominada World Wide Web. El protocolo HTTP no fija exactamente lo que se enva o cmo est programado, slo se refiere al mecanismo empleado para hacer llegar y recibir dicha informacin entre los servidores y el usuario final. Por tanto, controlar el mecanismo de comunicacin entre los servidores.

HTTPS
El protocolo HTTPS es una versin segura del protocolo HTTP que implementa un canal de comunicacin seguro y basado en SSL (Secure Socket Layers) entre el navegador del cliente y el servidor HTTP. El protocolo HTTPS (Hypertext Transfer Protocol Secure) garantiza que la informacin que sea transmitida entre la computadora del usuario y el sitio web, ser cifrada en su transmisin. Equivalente a una carta enviada por correo certificado, lo que se garantiza ser entregada a su receptor.

Sergio Ramrez Tenorio 7F

Pgina 4

Programacin Web

Antologa Programacin Web

Necesitamos SSL si... Si desarrollamos una tienda electrnica en Internet Aceptamos pedidos y pagos con tarjeta de crdito en lnea Ofrecemos un inicio de sesin en su sitio web, se procesan datos confidenciales como direcciones, fechas de nacimiento o nmeros de licencias, RFC, CURP, entre otros. Necesitamos cumplir normativas de seguridad y confidencialidad

HTTPS antes de enviar los datos realiza algunas acciones previas.

URL
Prcticamente, todo el mundo est familiarizado con una direccin de Internet o URL (Uniform Resource Locutor) usada en pginas Web. Sin embargo, la forma mas comn de direcciones que usamos, las cuales contienen letras y nombres reconocibles, solo se usan para que podamos reconocerlas e interpretarlas y no son las que utilizan los procesadores realmente. Para poder identificar un sitio en Internet, las computadoras usan nmeros denominados direcciones IP. Una direccin IP es un nmero formado por cuatro segmentos y separado por puntos. Cada uno de estos cuatro nmeros va del 0 al 255. Para hacer la traduccin entre uno y otro formato, se usa un DNS (Domain Name System: Servidor de nombre de dominios), los cuales guardan una base de datos que identifica y asocia los nombres de Webs a sus correspondientes direcciones IP.

Cookies
Sergio Ramrez Tenorio 7F Pgina 5

Programacin Web

Antologa Programacin Web

Las cookies fueron originalmente inventadas por Netscape para darle "memoria" a los servidores web y a los navegadores. Bsicamente, las cookies son archivos de texto ASCII que almacenan informacin siguiendo una estructura bsica. Su tamao no supera los 4kb. En una cookie se almacena cierta informacin sobre el visitante que la pgina considera importante recordar. Una cookie se usa, por ejemplo, para que cada vez que accedamos a una pgina est adaptada a nuestro gusto (en un idioma determinado, con ciertos colores, etc.). Los cookies representan mecanismos que permiten al servidor almacenar en el cliente informacin relativa a la transaccin. As, cuando el servidor responde a una peticin del cliente, inserta una informacin que se conservar en el cliente. Esta informacin es una descripcin relativa a un conjunto de direcciones URL. En adelante, ser insertada por el cliente en una peticin que referencie estas direcciones URL.

1.3 Introduccin a HTML


HTML (HyperText Markup Language) es un lenguaje muy sencillo que permite describir hipertexto, es decir, texto presentado de forma estructurada y agradable, con enlaces (hyperlinks) que conducen a otros documentos o fuentes de informacin relacionadas, y con inserciones multimedia (grficos, sonido...). La descripcin se basa en especificar en el texto la estructura lgica del contenido (ttulos, prrafos de texto normal, enumeraciones, definiciones, citas, etc.) as como los diferentes efectos que se quieren dar (especificar los lugares del documento donde se debe poner cursiva, negrita, o un grfico determinado) y dejar que luego la presentacin final de dicho hipertexto se realice por un programa especializado (como Internet Explorer, Netscape, Safari entre otros).

Un documento HTML comienza con la etiqueta <html>, y termina con </html>. Dentro del documento (entre las etiquetas de principio y fin de html), hay dos zonas bien diferenciadas: el encabezamiento, delimitado por <head> y </head>, que sirve para definir diversos valores vlidos en todo el documento; y el cuerpo, acotado por <body> y </body>, donde reside la informacin del documento.

Ejemplo de Hola mundo en HTML


<HTML> <HEAD> <TITLE>Mi primera pagina web </TITLE> </HEAD> <BODY> <H1 align="center" >Hola mundo! </H1> <HR> <P>Esto tan sencillo es una verdadera pgina web, aunque le falta el contenido, pero todo llegar.</P>

Sergio Ramrez Tenorio 7F

Pgina 6

Programacin Web
</BODY> </HTML>

Antologa Programacin Web

1.4 Evolucin del desarrollo de aplicaciones web


Web 1.0 Tipo de Web: esttica. Tecnologa asociada: HTML, GIF. Caractersticas: las pginas web son documentos estticos que jams se actualizaban Web 1.5 Tipo de Web: dinmica Tecnologa asociada: DHTML, ASP, CSS. Caractersticas: las pginas web son construidas dinmicamente a partir de una o varias bases de datos. Web 2.0 Tipo de Web: colaborativa Perodo: 2003 hoy Tecnologa asociada: Ajax, DHTML, XML, PHP Caractersticas: los usuarios se convierten en contribuidores. Publican las informaciones y realizan cambios en los datos. Como podemos observar la web ha ido evolucionando y a medida de ello se ha hecho preciso ir diferencindolas, obtenindose caractersticas que las identifican as: la web1.0 web esttica; la web 1.5 web dinmica y la web 2.0 la web colaborativa, siendo la ltima la web de hoy. La web 2.0 implica trabajo colaborativo, publicaciones en conjunto, intercambio, socializacin, reutilizacin, etc. y todo ello se lo puede hacer gracias a un sin nmero de aplicaciones web que lo permiten, as tenemos: blogs, Wikipedia, Flirck, YouTube, Slideshare, Myspace, Google docs, Twitter, etc. Obtenindose mltiples ventajas, entre ellas que los usuarios tengan facilidad de acceso a la informacin ya sea a consultas o investigaciones, facilidades de publicacin, interoperabilidad, socializacin, en fin lo que se trata es de estimular y aprovechar al mximo la inteligencia colectiva. Web 3.0 es una expresin que se utiliza para describir la evolucin del uso y la interaccin de las personas en internet a travs de diferentes formas entre los que se incluyen la transformacin de la red en una base de datos, un movimiento social hacia crear contenidos accesibles por mltiples aplicaciones non-browser, el empuje de las tecnologas de inteligencia artificial, la web semntica, la Web Geoespacial o la Web 3D. La expresin es utilizada por los mercados para promocionar las mejoras respecto a la Web 2.0. Esta expresin Web 3.0 apareci por primera vez en 2006 en un artculo de Jeffrey Zeldman, crtico de la Web 2.0 y asociado a tecnologas como AJAX.

Sergio Ramrez Tenorio 7F

Pgina 7

Programacin Web

Antologa Programacin Web

1.5 Hojas de estilo en cascada (CSS) e introduccin al XML


Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal usado para definir la presentacin de un documento estructurado escrito en HTML o XML. La idea que se encuentra detrs del desarrollo de CSS es separar la estructura de un documento de su presentacin. Qu es XML?

XML, siglas en ingls de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C). Deriva del lenguaje SGML y permite definir la gramtica de lenguajes especficos (de la misma manera que HTML es a su vez un lenguaje definido por SGML) para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo til cuando varias aplicaciones se deben comunicar entre s o integrar informacin. (Bases de datos Silberschatz). XML no ha nacido slo para su aplicacin para Internet, sino que se propone como un estndar para el intercambio de informacin estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de clculo y casi cualquier cosa imaginable. XML es una tecnologa sencilla que tiene a su alrededor otras que la complementan y la hacen mucho ms grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la informacin de una manera segura, fiable y fcil. Hola mundo en XML

Sergio Ramrez Tenorio 7F

Pgina 8

Programacin Web

Antologa Programacin Web

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <texto> <mensaje> Hola Mundo </mensaje> </texto>

Unidad 2 Desarrollo de Aplicaciones Web

2.1 Arquitectura de las Aplicaciones Web Arquitectura 2 capas


La arquitectura tradicional de cliente/servidor tambin es conocida como arquitectura de dos capas. Requiere una interfaz de usuario que se instala y corre en una PC o estacin de trabajo y enva solicitudes a un servidor para ejecutar operaciones complejas. Por ejemplo, una estacin de trabajo utilizada como cliente puede correr una aplicacin de interfaz de usuario que interroga a un servidor central de bases de datos. Ventajas del Sistema de Dos Capas: El desarrollo de aplicaciones en un ambiente de dos capas es mucho ms rpido que en ambientes anteriores, pero no es necesariamente ms rpido que con el nuevo ambiente de tres capas. Las herramientas para el desarrollo con dos capas son robustas y evaluadas. Las tcnicas de prototipo se emplean fcilmente. Las soluciones de dos capas trabajan bien en ambientes no dinmicos estables, pero no se ejecutan bien en organizaciones rpidamente cambiantes.

Desventajas del Sistema de Dos Capas:

Sergio Ramrez Tenorio 7F

Pgina 9

Programacin Web

Antologa Programacin Web

Los ambientes de dos capas requieren control excesivo de las versiones y demandan esfuerzo de distribucin de la aplicacin cuando se les hacen cambios. Esto se debe al hecho de que la mayora de la aplicacin lgica existe en la estacin de trabajo del cliente. La seguridad del sistema en un diseo de dos capas es compleja y a menudo requiere administracin de las bases de datos; esto es debido al nmero de dispositivos con acceso directo al ambiente de esas bases de datos. Las herramientas del cliente y de la base de datos, utilizadas en diseos de dos capas, constantemente estn cambiando. La dependencia a largo plazo de cualquier herramienta, puede complicar el escalamiento futuro o las implementaciones.

Sergio Ramrez Tenorio 7F

Pgina 10

Programacin Web

Antologa Programacin Web

Arquitectura 3 capas
La arquitectura de tres capas es un diseo reciente que introduce una capa intermedia en el proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas separadas. En la arquitectura tradicional de tres capas se instala una interfaz de usuario en la computadora del usuario final (el cliente). La arquitectura basada en Web transforma la interfaz de bsqueda existente (el explorador de Web), en la interfaz del usuario final. Ventajas de la Arquitectura de Tres Capas: Las llamas de la interfaz del usuario en la estacin de trabajo, al servidor de capa intermedia, son ms flexibles que en el diseo de dos capas, ya que la estacin solo necesita transferir parmetros a la capa intermedia. Con la arquitectura de tres capas, la interfaz del cliente no es requerida para comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de los datos puede ser modificada sin cambiar la interfaz del usuario en la PC. El cdigo de la capa intermedia puede ser reutilizado por mltiples aplicaciones si esta diseado en formato modular. La separacin de roles en tres capas, hace mas fcil remplazar o modificar una capa sin afectar a los mdulos restantes.

Desventajas de las Arquitecturas de Tres Capas y basadas en Web: Los ambientes de tres capas pueden incrementar el trfico en la red y requiere ms balance de carga u tolerancia a las fallas. Los exploradores actuales no son todos iguales. La estandarizacin entre diferentes proveedores ha sido lenta en desarrollarse. Muchas organizaciones son forzadas a escoger uno en lugar de otro, mientras que cada uno ofrece sus propias y distintas ventajas.

Arquitectura MVC El patrn MVC es una arquitectura de diseo software para separar los componentes de aplicacin en tres niveles, interfaz de usuario, lgica de control y lgica de negocio. Es una especializacin de un modelo de capas, con la diferencia que se usa para entornos web como patrn por excelencia.

Sergio Ramrez Tenorio 7F

Pgina 11

Programacin Web Responsabilidades de Capas en MVC

Antologa Programacin Web

Modelo: Es la capa encargada de encapsular toda la lgica de negocio de nuestra aplicacin. Esta capa se puede subdividir en varias: Lgica de negocio: Contiene clases o varias para constituir lo referente a la capa de aplicacin, se encarga de atender a las peticiones de los controladores y as dar una respuesta acorde con lo recibido. Capa de datos: Se encarga de gestionar toda la interconexin con el SGBD, as mismo, puede contener un gestor ORM para su aprovechamiento mximo y mejor mantenimiento. Solo se comunica con la lgica de negocio. Helpers: Llamados ayudantes apoyan tanto al controlador como a la vista para hacer ms livianas algunas tareas. Controlador: Es el eje central de nuestra arquitectura, encargada de gestionar todas las peticiones, validar los inputs recibidos y dirigir cualquier peticin de cualquier tipo. Solo se comunica con el modelo y responde a travs de vistas. Vista: Es la respuesta de cada controlador y lo que se le presenta al usuario final, se puede comunicar con el controlador, los helpers y el modelo (en algunas ocasiones).

2.2 Lenguajes de Programacin del Lado del Cliente

Javascript

Es un lenguaje de programacin utilizado para crear pequeos programas encargados de realizar acciones dentro del mbito de una pgina web.

Sergio Ramrez Tenorio 7F

Pgina 12

Programacin Web Caractersticas:

Antologa Programacin Web

El navegador (browser) del cliente es el encargado de interpretar las instrucciones Javascript de modo que el mayor recurso, y tal vez el nico, con que cuenta este lenguaje es el propio navegador. Permite efectos especiales sobre pginas web. Permite ejecutar instrucciones como respuesta a las acciones del usuario (eventos), con lo que podemos crear pginas interactivas con programas como calculadoras, agendas, o tablas de clculo. Es orientado a objetos, con funciones, estructuras de datos complejas. Pone a disposicin del programador todos los elementos que forman la pgina web, para que ste pueda acceder a ellos y modificarlos dinmicamente. JavaScript no permite dos de las caractersticas clsicas de los lenguajes orientados a objetos (herencia y polimorfismo), pero permite la creacin y manipulacin de objetos sencillos, y la definicin de mtodos y propiedades para dichos objetos. JavaScript soporta el Modelo de Objetos de Documento (DOM, Document Object Model). El DOM es el conjunto de objetos predefinidos que nos permite acceder a todos los elementos de una pgina y a ciertas caractersticas especficas del navegador.

Visual Basic Script

VBScript (abreviatura de Visual Basic Script Edition) es un lenguaje interpretado por el Windows Scripting Host de Microsoft. Caractersticas: Slo compatible con Internet Explorer, basado en Visual Basic de Microsoft; por ello se usa poco. Es parte fundamental de la ejecucin de aplicaciones de servidor programadas en ASP (Active Server Pages), las cuales estn en auge en el perodo 1997-2003. Cuando se emplea en Internet Explorer, VBScript funciona de forma muy similar a JavaScript, procesando cdigo contenido en el documento HTML. VBScript es el lenguaje usado para escribir algunos famosos gusanos de red, como I Love You.

Sergio Ramrez Tenorio 7F

Pgina 13

Programacin Web

Antologa Programacin Web

Applets de Java

Un applet Java es un applet escrito en el lenguaje de programacin Java. Los applets de Java pueden ejecutarse en un navegador web utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun. Caractersticas: Es un esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. no pueden escribir archivos), a menos que uno mismo le d los permisos necesarios en el sistema. Puede incrustarse en un documento HTML, es decir en una pgina web. Cuando un navegador carga una pgina web que contiene un applet, este se descarga en el navegador web y comienza a ejecutarse. Son multiplataforma y puede trabajar en todas las versiones de Java, adems de ser con la mayora de los navegadores web. Puede tener acceso completo a la mquina en la que se est ejecutando, si el usuario lo permite.

ActionScript (Flash)

Adobe ActionScript es el lenguaje de programacin de la Plataforma Adobe Flash. Originalmente desarrollado como una forma para que los desarrolladores programen en forma ms interactiva. La programacin con ActionScript permite mucha ms eficiencia en las aplicaciones de la plataforma Flash para construir animaciones de todo tipo, desde simples a complejas, ricas en datos e interfaces interactivas.

Sergio Ramrez Tenorio 7F

Pgina 14

Programacin Web Caractersticas:

Antologa Programacin Web

La versin ms extendida actualmente es ACTION 6.0, que signific una mejora en el manejo de programacin orientada a objetos al ajustarse mejor al estndar ECMA-262 y es utilizada en las ltimas versiones de Adobe Flash y Flex y en anteriores versiones de Flex. Flash est compuesto por objetos, con su respectiva ruta dentro del swf. Cada uno de estos en ActionScript pertenece a una clase (MovieClip, botones, Vectores (Arrays), etc.), que contiene Propiedades y Mtodos o Funciones

Principales funciones de ActionScript 3.0 Una nueva mquina virtual ActionScript, denominada AVM2, que utiliza un nuevo conjunto de instrucciones de cdigo de bytes y proporciona importantes mejoras de rendimiento. Una base de cdigo de compilador ms moderna, que se ajusta mejor al estndar ECMAScript (ECMA 262) y que realiza mejores optimizaciones que las versiones anteriores del compilador. Una interfaz de programacin de aplicaciones (API) ampliada y mejorada. Un ncleo del lenguaje basado en el prximo borrador de especificacin del lenguaje ECMAScript (ECMA-262) edicin 4. Una API XML basada en la especificacin de ECMAScript para XML (E4X) (ECMA357 edicin 2). E4X es una extensin del lenguaje ECMAScript que aade XML como un tipo de datos nativo del lenguaje. Un modelo de eventos basado en la especificacin de eventos DOM (modelo de objetos de documento) de nivel 3.

2.3 Lenguajes de Programacin del Lado del Servidor


Existe una multitud de lenguajes concebidos o no para Internet. Cada uno de ellos explota ms a fondo ciertas caractersticas que lo hacen ms o menos tiles para desarrollar distintas aplicaciones. Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de que se enve la pgina a travs de Internet al cliente. Las pginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la pgina final que ver el cliente. Los lenguajes de lado servidor ms ampliamente utilizados para el desarrollo de pginas dinmicas son el ASP, JSP, PERL y PHP.

Sergio Ramrez Tenorio 7F

Pgina 15

Programacin Web

Antologa Programacin Web

ASP.NET (Active Server Pages)

Lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnologa ASP, fue lanzada al mercado mediante una estrategia de mercado denominada .NET. Se desarrollado para resolver las limitantes que brindaba su antecesor ASP. Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con la extensin (aspx). Para su funcionamiento de las pginas se necesita tener instalado IIS con el Framework .Net. Microsft Windows 2003 incluye este framework, solo se necesitar instalarlo en versiones anteriores. El lenguaje ASP consiste en una serie de clases .NET utilizadas para crear aplicaciones Web, tanto del lado cliente (Web Form) como del lado servidor (Web Service). La integracin de nativa .NET Framework con el sistema operativo Windows Server 2003 hace que su ejecucin sea ms estable y rpida que otros lenguajes de programacin. Ventajas: Completamente orientado a objetos. Controles de usuario y personalizados. Divisin entre la capa de aplicacin o diseo y el cdigo. Facilita el mantenimiento de grandes aplicaciones. Incremento de velocidad de respuesta del servidor. Mayor velocidad. Mayor seguridad.

Desventajas: Mayor consumo de recursos. Tecnologa propietaria. Hospedaje de sitios web costosos.

Sergio Ramrez Tenorio 7F

Pgina 16

Programacin Web

Antologa Programacin Web

JSP
Es un lenguaje para la creacin de sitios web dinmicos, acrnimo de Java Server Pages. Est orientado a desarrollar pginas web en Java. JSP es un lenguaje multiplataforma. JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET, desarrollado para la creacin de aplicaciones web potentes. Posee un motor de pginas basado en los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor Tomcat. Caractersticas: Cdigo separado de la lgica del programa. Las pginas son compiladas en la primera peticin. Permite separar la parte dinmica de la esttica en las pginas web. Los archivos se encuentran con la extensin (jsp). El cdigo JSP puede ser incrustado en cdigo HTML.

Los elementos que pueden ser insertados en las pginas JSP son los siguientes: Cdigo: se puede incrustar cdigo Java. Directivas: permite controlar parmetros del servlet. Acciones: permite alterar el flujo normal de ejecucin de una pgina.

Ventajas: Ejecucin rpida del servlets. Crear pginas del lado del servidor. Multiplataforma. Cdigo bien estructurado. Integridad con los mdulos de Java. La parte dinmica est escrita en Java.

Desventajas: Complejidad de aprendizaje.

Sergio Ramrez Tenorio 7F

Pgina 17

Programacin Web

Antologa Programacin Web

PERL (Practical Extraction and Report Language)


Es un lenguaje de programacin desarrollado por Larry Wall (lwall at netlabs.com) inspirado en otras herramientas de UNIX como son: sed, grep, awk, c-shell, para la administracin de tareas propias de sistemas UNIX. No establece ninguna filosofa de programacin concreta. No se puede decir que sea orientado a objetos, modular o estructurado aunque soporta directamente todos estos paradigmas; su punto fuerte son las labores de procesamiento de textos y archivos. Lenguaje de programacin basado en scripts portable a casi cualquier plataforma. Es muy utilizado para escribir CGIs. Uno de sus elementos ms potentes son las expresiones regulares, que a partir de su versin en Perl han sido adoptadas por otros lenguajes y plataformas como .NET o Javascript. Ventajas: Es un buen lenguaje pegamento. Se pueden juntar varios programas de una forma sencilla para alcanzar una meta determinada. Los usuarios de Windows agradecern esta propiedad ya que normalmente adolecen de un buen lenguaje tipo script. Es relativamente rpido para un lenguaje tipo script. Est disponible en mltiples plataformas y sistemas operativos (UNIX, Linux y Windows). Un programa que se escriba teniendo en cuenta la compatibilidad puede ser escrito en una plataforma y ejecutado en otra. El desarrollo de aplicaciones es muy rpido. Hay una coleccin enorme de mdulos que pueden ser incorporados a cualquier script de Perl. Estn disponibles en el CPAN (Comprehensive Perl Archive Network). En particular existe una extensin para clculo numrico denominada PDL. Perl es gratuito. Mucho ms que eso, es Software Libre. Esto quiere decir que el cdigo fuente est disponible para que cualquiera lo pueda ver o modificar, y lo que es ms importante, siempre lo estar. Aunque nunca pretendas cambiar el cdigo, es importante disponer de la posibilidad de hacerlo, ya que siempre se podr contratar a una tercera persona para que lo modifique en el caso de que haya un error, y debera ser posible solucionarlo. Le otorga al programador mucha libertad para que haga el programa como quiera. Tal como dice el eslogan de Perl Hay ms de una forma de hacerlo.

Sergio Ramrez Tenorio 7F

Pgina 18

Programacin Web

Antologa Programacin Web

PHP
PHP es el acrnimo de Hipertext Preprocesor. Es un lenguaje de programacin del lado del servidor gratuito e independiente de plataforma, rpido, con una gran librera de funciones y mucha documentacin. Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP est desarrollado en poltica de cdigo abierto, a lo largo de su historia ha tenido muchas contribuciones de otros desarrolladores. El cliente solamente recibe una pgina con el cdigo HTML resultante de la ejecucin de la PHP. Como la pgina resultante contiene nicamente cdigo HTML, es compatible con todos los navegadores. Ventajas: Muy fcil de aprender. Se caracteriza por ser un lenguaje muy rpido. Soporta en cierta medida la orientacin a objeto. Clases y herencia. Es un lenguaje multiplataforma: Linux, Windows, entre otros. Capacidad de conexin con la mayora de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras. Capacidad de expandir su potencial utilizando mdulos. Posee documentacin en su pgina oficial la cual incluye descripcin y ejemplos de cada una de sus funciones. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. Incluye gran cantidad de funciones. No requiere definicin de tipos de variables ni manejo detallado del bajo nivel.

Desventajas: Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser ms ineficiente a medida que las solicitudes aumenten de nmero. La legibilidad del cdigo puede verse afectada al mezclar sentencias HTML y PHP. La programacin orientada a objetos es an muy deficiente para aplicaciones grandes. Dificulta la modularizacin. Dificulta la organizacin por capas de la aplicacin.

Sergio Ramrez Tenorio 7F

Pgina 19

Programacin Web Seguridad:

Antologa Programacin Web

PHP es un poderoso lenguaje e intrprete, ya sea incluido como parte de un servidor web en forma de mdulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza. PHP est diseado especficamente para ser un lenguaje ms seguro para escribir programas CGI que Perl o C, y con la seleccin correcta de opciones de configuracin en tiempos de compilacin y ejecucin, y siguiendo algunas prcticas correctas de programacin.

2.4 Ambiente para el Desarrollo de Aplicaciones Web


Los IDE (ambientes integrados de desarrollo) para aplicaciones Web son muy numerosos. Considerar los que permitan trabajar con los diferentes lenguajes para Web. Algunos son especficos para lenguajes del lado del servidor. Por ejemplo, Visual Studio solo soporta ASP.NET del lado del servidor. Existen IDEs libres y gratuitos de buena calidad. Un entorno de desarrollo integrado (IDE- Integrated Development Environment) tambin conocido como entorno de diseo integrado o el medio ambiente integrado de depuracin es una aplicacin de software que ofrece servicios integrales a los programadores de computadoras para el desarrollo de software. Un IDE normalmente se compone de: Un editor de texto. Un compilador. Un intrprete. Herramientas de automatizacin. Un depurador. Posibilidad de ofrecer un sistema de control de versiones. Factibilidad para ayudar en la construccin de interfaces grficas de usuario.

Microsoft Visual Studio


Es un entorno de desarrollo integrado para sistemas operativos Windows. Soporta varios lenguajes de programacin: Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET,

Sergio Ramrez Tenorio 7F

Pgina 20

Programacin Web

Antologa Programacin Web

Microsoft Visual Web Developer


Es un entorno de desarrollo liviano pensado para la utilizacin y aprendizaje. Est formado por un conjunto de herramientas y utilidades para la creacin de sitios Web y sus aplicaciones Web con ASP.NET 2.0. Caractersticas: Diseo de pginas Web Caractersticas del diseo de pginas Edicin de cdigo Desarrollo para sitios alojados Depuracin Controles Acceso a datos

Netbeans
NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programacin Java. NetBeans IDE El IDE NetBeans es un entorno de desarrollo integrado - una herramienta para programadores pensada para escribir, compilar, depurar y ejecutar programas. Est escrito en Java - pero puede servir para cualquier otro lenguaje de programacin NetBeans Enterprise Pack Provee soporte para la creacin de aplicaciones orientadas a servicios (SOA), incluyendo herramientas de esquemas XML, un editor WSDL, y un editor BPEL para web services.

PHP
NetBeans permite crear aplicaciones Web con PHP 5. Soporte para Symfony un gran framework MVC escrito en php. soporte para AJAX,

Sergio Ramrez Tenorio 7F

Pgina 21

Programacin Web

Antologa Programacin Web

soporte para JSP cada vez ms desarrolladores de aplicaciones LAMP o WAMP, estn utilizando NetBeans como IDE.

Eclipse
Eclipse es un IDE (Entorno de Desarrollo Integrado) tan potente como popular que incorpora un sin fin de utilidades para simplificar la labor de los programadores.

JBUILDER
JBuilder, un IDE (entorno de desarrollo integrado) Java de Borland. Es un software creado en 1995. La versin 2006 (Borland JBuilder 2006) tiene 3 ediciones: Enterprise (para aplicaciones J2EE, Web Services y Struts), Developer (para el completo desarrollo de aplicaciones Java) y Foundation (con capacidades bsicas para iniciarse en el desarrollo de aplicaciones java y de momento es de libre uso). La versin JBuilder 2007 est basada en Eclipse. Tiene tambin 3 ediciones: Enterprise (la ms completa), y Professional. Esta disponible para Windows, Linux y MacOS X La ltima versin es JBuilder 2008, tambin disponible en 3 versiones, Enterprise, Professional y Turbo.

Dreamweaver
Es en una potente y flexible herramienta de desarrollo que inclute numerosas herramientas para facilitarnos el desarrollo de aplicaciones web. Dreamweaver permite trabajar con los siguientes modelos de servidor: ASP JavaScript ASP VBScript ASP.NET C# ASP.NET VB COLDFUSION JSP PHP MySQL

Sergio Ramrez Tenorio 7F

Pgina 22

Programacin Web

Antologa Programacin Web

WORDPRESS
WordPress es un sistema de gestin de contenido enfocado a la creacin de blogs (sitios web peridicamente actualizados). Desarrollado en PHP y MySQL, bajo licencia GPL y cdigo modificable, tiene como fundador a Matt Mullenweg. WordPress fue creado a partir del desaparecido b2/cafelog y se ha convertido junto a Movable Type en el CMS ms popular de la blogosfera. Las causas de su enorme crecimiento son, entre otras, su licencia, su facilidad de uso y sus caractersticas como gestor de contenidos.

2.5 Metodologa para el desarrollo de aplicaciones web


Los principales problemas que nos encontramos es la falta de fiabilidad, seguridad, escalabilidad, mantenimiento, integracin y la alta dependencia para su desarrollo e implantacin junto con la falta de estndares. Lo que deseamos es controlar el caos que han provocado en el pasado procesos creativos de desarrollo con el fin de proporcionar un proceso sistemtico orientado a la mejora de la calidad de la aplicacin final. En esta nueva disciplina se parte de la base de que las necesidades de evolucin, mantenimiento, la adaptacin a nuevos dispositivos de acceso y la migracin a nuevas plataformas y entornos de desarrollo deben dirigir el proceso del ciclo de vida. Para todo esto se han desarrollado metodologas que permiten estructurar comunicar, entender, simplificar y formalizar tanto el dominio como las decisiones de diseo, as como disponer de documentacin detallada para posibles cambios del software. Las distintas metodologas se pueden dividir en tres generaciones en base a su sofisticacin, estas son: Primera Generacin: (Principios de los 90) Se sientan las bases de la ingeniera Web, en los que se incluyen conceptos como construccin de navegacin, separacin entre estructuras y el contenido durante el ciclo de desarrollo. Segunda Generacin: (Segunda mitad de los 90) Se refinan los primeros modelos y se aaden los soportes de funcionalidad bsica y se llevan a cabo los primeros esbozos de proceso donde se delimitan los modelos conceptual, lgico y fsico. Tercera generacin: (A partir del 2000): Se lleva a cabo la profundizacin en el soporte para la funcionalidad, enfatizacin de la figura del usuario en los mtodos, y se avanza hacia la estandarizacin de notaciones, procesos y lenguajes de especificacin.

Sergio Ramrez Tenorio 7F

Pgina 23

Programacin Web

Antologa Programacin Web

2.6 Aspectos de seguridad en desarrollo de aplicaciones web


La seguridad, en informtica como en otras reas, se basa en la proteccin de activos. Estos activos pueden ser elementos tan tangibles como un servidor o una base de datos, o pueden ser la reputacin de una empresa. Generalmente podemos evaluar la seguridad de un activo en base a tres aspectos principales que no necesitan explicacin: Integridad Disponibilidad Confidencialidad

Estos tres aspectos a su vez dependen de otros tres elementos principales que engloban prcticamente todos los distintos controles que se pueden establecer en un sistema informtico: Autorizacin No solo es necesario saber quienes acceden a nuestros activos, tambin es necesario establecer que es lo que pueden hacer con ellos. Un nivel de autorizacin dado determina que tipo de operaciones o transacciones puede efectuar un cliente dado sobre un recurso dado. Autenticacin Los clientes de nuestras aplicaciones o servicios deben ser identificados de forma nica, sean usuarios finales, otros servicios o computadoras externas. Registro y auditoria Luego de efectuada una operacin, es importante que esta sea registrada adecuadamente, en particular es esencial si queremos evitar el repudio de transacciones efectuada por un cliente.

Sergio Ramrez Tenorio 7F

Pgina 24

Programacin Web La seguridad web tiene 3 etapas primarias: Seguridad de la computadora del usuario.

Antologa Programacin Web

Los usuarios deben contar con navegadores y plataformas seguras, libres de virus y vulnerabilidades. Tambin debe garantizarse la privacidad de los datos del usuario. Seguridad del servidor Web y de los datos almacenados ah. Se debe garantizar la operacin continua del servidor, que los datos no sean modificados sin autorizacin (integridad) y que la informacin slo sea distribuida a las personas autorizadas (control de acceso). Seguridad de la informacin que viaja entre el servidor Web y el usuario. Garantizar que la informacin en trnsito no sea leda (confidencialidad), modificada o destruida por terceros. Tambin es importante asegurar que el enlace entre cliente y servidor no pueda interrumpirse fcilmente (disponibilidad).

Virtual Private Network (VPN)


Es una tecnologa de red que permite una extensin de la red local sobre una red pblica o no controlada, como por ejemplo Internet. Para hacerlo posible de manera segura es necesario proporcionar los medios para garantizar la autentificacin, integridad de toda la comunicacin: Autentificacin y autorizacin: Quin est del otro lado? Usuario/equipo y qu nivel de acceso debe tener. Integridad: de que los datos enviados no han sido alterados. Para ello se utiliza funciones de Hash. Los algoritmos de hash ms comunes son los Message Digest (MD2 y MD5) y el Secure Hash Algorithm (SHA). Confidencialidad: Dado que slo puede ser interpretada por los destinatarios de la misma. Se hace uso de algoritmos de cifrado como Data Encryption Standard (DES), Triple DES (3DES) y Advanced Encryption Standard (AES). No repudio: es decir, un mensaje tiene que ir firmado, y el que lo firma no puede negar que el mensaje lo envi l o ella.

Sergio Ramrez Tenorio 7F

Pgina 25

Programacin Web

Antologa Programacin Web

Unidad 3 Programacin del lado del servidor


3.1 Procesamiento del lado del servidor
Todo lo que suceda dentro del servidor es llamado procesamiento del lado del servidor, o serverside processing. Cuando tu aplicacin necesita interactuar con el servidor (por ejemplo, para cargar o guardar datos), sta realiza una peticin del lado del cliente (client-side request) desde el navegador, a travs de la red usando invocaciones remotas a mtodos (remote procedure call, RPC). Mientras se est procesando una llamada RPC, tu servidor est ejecutando cdigo del lado del servidor. Los primeros servidores web permitan visualizar exclusivamente informacin esttica. Esto represent bien pronto una limitacin; sobre todo desde el momento en el que la actividad publicitaria y comercial comenz a concentrarse tambin en la red Internet. La unificacin de tareas, que inicialmente pareca una ventaja para el desarrollo de pginas web, se convirti en realidad en una fuerte limitacin para el desarrollo de aplicaciones web. La programacin del lado del servidor es un elemento agregado muy importante en el diseo o construccin de sitios Web, ya que permite de una u otra forma el manejo de datos de forma dinmica. Los primeros servidores Web que permitan construir pginas dinmicas utilizaban CGI. CGI es aun muy comn en la actualidad y los servicios de IIS de Microsoft pueden usar CGI al igual que las pginas ASP. CGI es una tecnologa que nos permite invocar programas compilados o guiones en el servidor Web. CGI se ve a menudo en los servidores Web de sistemas UNIX, y muchos de los programas CGI son guiones Perl.

3.2 Conceptos Bsicos de la Herramienta de Desarrollo


Las herramientas de desarrollo son aquellas o aplicaciones que tengan cierta importancia en el desarrollo de un programa. Pueden ser de importancia vital (como un ensamblador, un compilador o un editor) o de importancia secundaria, como una IDE (Interfaz de Desarrollo Estructurada), las herramientas definidas son las propias del ciclo de generacin de un programa ejecutable:

El editor emacs, que cubre la fase de escritura del cdigo fuente. El compilador/enlazador gcc, que permite obtener ejecutables a partir del cdigo fuente. La herramienta make, que facilita (y agiliza) la generacin de ejecutables cuando intervienen varios ficheros fuente.

Sergio Ramrez Tenorio 7F

Pgina 26

Programacin Web

Antologa Programacin Web

Una de las herramientas que permite crear pginas web, es php, un lenguaje interpretado de alto nivel embebido en pginas HTML y ejecutado en el servidor, no es un lenguaje de marcas como podra ser HTML, XML o WML. El resultado es normalmente una pgina HTML pero igualmente podra ser una pagina WML. La caracterstica ms potente y destacable es su soporte para una gran cantidad de bases de datos. Hay cuatro formas de salir de HTML y entrar en el "modo de cdigo PHP":

<? ?> <? ?> <script language="php"> </script> <% %>

Sergio Ramrez Tenorio 7F

Pgina 27

Programacin Web

Antologa Programacin Web

3.3 Operadores
Son expresiones que permiten manipular los datos recolectados, cada uno de los datos que se asigna a un operador se llama operando. PHP dispone de una gran cantidad de operadores se pueden organizar en las siguientes categoras:

Operadores de Aritmtica: + Suma dos valores. $a + $b - Resta dos valores (o pasa a negativo un valor). $a - $b * Multiplica dos valores. $a * $b / Divide dos valores $a / $b % Resto de dividir dos valores $a % $b ++ Incremento en una unidad $a++ -- Decremento en una unidad $a--

Operadores de Asignacin: = Asigna a la parte derecha el valor izquierdo. $a = $b (Asigna a $a el contenido de $b). += Realiza la suma de la derecha con la izquierda, lo asigna a la derecha. $a += $b (Asigna a $a la suma de $b + $a). -= Realiza la resta de la derecha con la izquierda y la asigna a la derecha. $a -= $b (Asigna a $a la resta de $a - $b). *= Realiza la multiplicacin de la derecha con la izquierda y la asigna a la derecha. $a *= $b (Asigna a $a la multiplicacin de $a por $b). /= Realiza la divisin de la derecha con la izquierda y la asigna a la derecha $a /= $b (Asigna a $a la divisin de $a entre $b). %= Se obtiene el resto y se asigna. .= Concatena el valor de la izquierda con la derecha y lo asigna a la derecha $a .= $b (Asigna a $a la concatenacin de $a seguida por $b).

Sergio Ramrez Tenorio 7F

Pgina 28

Programacin Web Operadores de Lgica:

Antologa Programacin Web

! Operador NO o negacin. Si era true pasa a false y viceversa !$a AND Operador Y, si ambos son se cumplen vale verdadero, $a AND $b OR Operador O, vale verdadero si alguno de los dos se cumple, $a OR $b XOR Verdadero si alguno de los dos es true pero nunca ambos, $a XOR $b && True si ambos lo son, $a && $b || True si alguno lo es, $a || $b

Operadores de Cadena: El nico operador de cadenas que existen es el de concatenacin, el punto. $a = "Hola "; $b = $a . "Mundo"; // Ahora $b contiene "Hola Mundo" $a = "Mundo"; echo = 'Hola $a'; //Esto escribir "Hola $a

Operadores condicionales: == Comprueba si dos nmeros son iguales $a == $b != Comprueba si dos nmeros son distintos $a != $b > Mayor que, devuelve true en caso afirmativo $a > $b < Menor que, devuelve true en caso afirmativo $a < $b >= Mayor o igual $a >= $b <= Menor o igual $a <= $b

Sergio Ramrez Tenorio 7F

Pgina 29

Programacin Web

Antologa Programacin Web

3.4 Sentencias
En programacin, una sentencia es una lnea de cdigo en algn lenguaje de programacin. Un programa est constituido por mltiples sentencias de programacin, lo que es llamado cdigo fuente. Las sentencias de programacin suelen tener algn carcter que determina su final, por lo general es un punto y coma (;) o un punto final (.), y algunas estn separadas simplemente por ENTER (retorno de carro). Esto depende del lenguaje de programacin que se est empleando. Estructuras de control PHP al igual que la mayora de lenguajes de programacin necesita de herramientas que permitan tomar decisiones lgicas al servidor. Como las sentencias if, else, while, do while, for, switch. La tpica sentencia en PHP es una asignacin y termina en punto y coma: $saludos = Bienvenidos a PHP;

3.5 Arreglos
Es una coleccin ordenada de elementos abarcando los tipos de datos antes vistos que se identifican por su posicin, indexando el arreglo. La posicin del primer elemento siempre es cero. El tamao de un arreglo se puede consultar mediante el atributo length. Si el arreglo no ha sido inicializado sus elementos estn: indefinidos (undefined) vacos (null). Ejemplo. Definir un arreglo (a.length==0) // Genera un arreglo vaco var a = new Array(); var b = new Array(2.5, false, 6, "Hola"); // Genera un arreglo con 4 elementos de distinto tipo

3.6 Funciones y Libreras


En toda aplicacin ms o menos compleja hay bloques de acciones que se realizan ms de una vez y PHP no es la excepcin, para no tener que escribir estas acciones repetidamente, todos los lenguajes de un nivel ms o menos alto incorporan funciones. Para declarar una funcin se utiliza la expresin function seguida del nombre que se desea asignar, a continuacin y entre parntesis, los argumentos que recibe la funcin y finalmente y entre corchetes el cdigo que sta debe ejecutar.

Sergio Ramrez Tenorio 7F

Pgina 30

Programacin Web

Antologa Programacin Web

3.7 Procesado de Formularios


Los Formularios no forman parte de PHP, sino del lenguaje estndar de Internet, HTML, El procesamiento de los datos introducidos en el formulario (cliente) se debe hacer utilizando un programa aparte (o bien enviando dichos datos por medio del correo electrnico), localizado en un servidor remoto (indicado en una URL en un parmetro de la etiqueta) que har algo con dicha informacin (meterla en una BD, modificarla y devolverla al cliente).

3.8 Sesiones
Las sesiones se pueden implementar tanto a nivel del servidor como de la aplicacin, con o sin bases de datos y con o sin cookies (a veces se emplean URLs codificadas y mtodos de reinterpretacin de URLs en el lado del servidor). Generalmente una web se compone de una serie de pginas entre las que existe alguna relacin. Un ejemplo claro es una pgina en la cual es necesario estar registrado para poder acceder a ellas ya que en funcin de la categora del usuario nos permitir acceder a unas secciones o otras. En estas aplicaciones ser necesario ir comprobando los permisos de usuario y para ello se usa un elemento en PHP denominado "sesin". Una sesin se inicia cuando un usuario entra en la aplicacin web y finaliza cuando el usuario abandona la aplicacin. El soporte para sesiones de PHP permite inicializar fcilmente una sesin utilizando session_start y gracias al vector superglobal $_SESSION, se puede trabajar con sesiones como si de cualquier otro vector se tratara: <?php // Inicializamos sesion session_start(); // Guardamos una variable $_SESSION['nombre'] = 'Diego Garcia'; ?> Para el problema de diferenciar a varios usuarios existe una solucin muy bsica que consiste en un identificador de sesin diferente en cada caso. El cual debe ser enviado de una pagina a otra para mantener la sesin activa y tambin es necesario pasar el identificador de sesin en los formularios como un campo HIDDEN.

Sergio Ramrez Tenorio 7F

Pgina 31

Programacin Web <a href="pagina.php?<? =SID ?>">Entrar</a> //hipervinculo <input type="hidden" name="session_name()" value="SID">

Antologa Programacin Web

Funciones de gestin de sesiones session_start(); Si es la primera solicitud genera un identificador de sesin aleatorio cuyo nombre ser sess_IDsesin; si es otra solicitud continua la sesin iniciada anteriormente. session_destroy(); Elimina todos los datos asociados con una sesin, borra el archivo en el servidor pero no borra la cookie. session_register(nombre); Recibe como parmetro una serie de nombres de variable globales y los registra como variables de sesin en el fichero del servidor. session_unregister(nombre); Eliminamos la variable global introducida y se elimina el contenido de esta variable en el fichero del servidor.Sin pasar el parmetro nombre eliminaremos todas las variables de la sesin. session_is_registered(nombre); Devuelve true en caso de que en la sesin se encuentre registrada una variable con dicho nombre. session_unset(); Dejamos sin ningn valor asignado a todas las variables de la sesin. session_id(*nombre+); Si no le proporcionamos ningn parmetro nos da el identificador de sesin; si le proporcionamos el parmetro nombre cambia el valor del identificador por el parmetro nombre. session_name(*nombre+); Si se invoca sin parmetro devuelve el nombre de la variable interna que tiene el id de sesiones; si se pasa parmetro cambia el nombre de la sesin. session_get_cookie_params(); Permite definir nuevos valores para los parmetros de configuracin de las cookies. Para que el cambio sea permanente hay que invocar el cambio en todos los documentos. session_cache_limiter(*cache_limiter+); Si se le proporciona valor modifica el valor por defecto en cambio sino se muestra el cach que tiene por defecto. session_encode(); Devuelve una cadena con la informacin de una sesin, despus de usar esta funcin la informacin de la sesin queda actualizada. session_decode(cadena); Descodifica la cadena que recibe como parmetro y que contiene la informacin de sesin, despus de usar esta funcin se actualiza la informacin de sesin. session_save_path(*path+); Devuelve el camino al directorio donde se guardan los ficheros asociados a la sesin. El efecto solo dura en el script actual.

Sergio Ramrez Tenorio 7F

Pgina 32

Programacin Web

Antologa Programacin Web

session_module_name(*modulo+); Devuelve el nombre del modulo que se usa para realizar la gestin de sesiones. Cuando se invoca un parmetro se usa como nuevo gestor de sesiones. session_set_save_handler(open,close,read,write,destroy,gc); Permite definir su propio manejador para almacenar la informacin asociada con una sesin. De esta forma los datos pueden ser metidos en una BD en vez de en un fichero. Tenemos que pasarle como parmetro toda la informacin necesaria para crear y destruir sesiones.

3.10 Conectividad Entre el Servidor Web y el Servidor de Base de Datos


Para conectar al servidor de bases de datos en PHP, se debe conocer la direccin, el nombre de usuario y la contrasea. La direccin normalmente ser localhost, ya que la ejecutaremos desde el mismo servidor en la que esta alojada. En mySQL se debe usar una funcin llamada mysql_connect(), a esta funcin se le deben entregar tres parmetros. $link = mysql_connect("localhost","usuario","password"); $link = variable que almacenara el resultado que retorne la funcin. localhost = nombre del servidor en donde se encuentra la base de datos. usuario y password = usuario, previamente registrado y contrasea.

Ejemplo: Conectar PHP a una base de datos <html> < head> < title>Ejemplo de PHP</title> < /head> < body> < ?php function Conectarse() { if (!($link=mysql_connect("localhost", "usuario","Password"))) { echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("base_datos",$link)) { echo "Error seleccionando la BD."; exit(); }

Sergio Ramrez Tenorio 7F

Pgina 33

Programacin Web return $link; } $link=Conectarse(); echo "Conexin exitosa.<br>"; mysql_close($link); ?> < /body> < /html>

Antologa Programacin Web

Consultas Una vez hecha la conexin con el servidor de bases de datos, ya se pueden realizar consultas a las tablas de la base de datos, en PHP y MySQL existen cuatro funciones para esto. Select: busca informacin en la base de datos. Insert: ingresa informacin para almacenarla y luego ser obtenida mediante una consulta select. Update: actualiza la informacin guardada. Delete: obviamente borra la informacin.

Ordenar las consultas Para organizar las consultas se utiliza la instruccin ORDER BY y luego se indica el orden DESC (descendiente) o ASC (ascendiente). $query = "SELECT idNoticia,titulo,cuerpo,estado FROM noticias ORDER BY idNoticia DESC";

Sergio Ramrez Tenorio 7F

Pgina 34

Programacin Web Filtrar las consultas

Antologa Programacin Web

Si se desea hacer una consulta pero condicionando los datos a mostrar se usa la instruccin WHERE y se indica el campo, por ejemplo mostrar las noticias cuyo estado sea publicado: $query = "SELECT idNoticia,titulo,cuerpo,estado FROM noticias WHERE estado = publicado ORDER BY idNoticia DESC";

Insertar Para insertar informacin en la base de datos se utiliza la instruccin INSERT INTO, la sintaxis es la siguiente: INSERT INTO nombre_tabla (campo1,campo2) values (valoresCampo1,valoresCampo2) //Usndola con variables //primero se hace la conexin a la BD y despus la insercin: $query = "INSERT INTO noticias (nombre,cuerpo,estado) values (ttulo de noticia , hoy sucedi una noticia , publicada)"; $response = mysql_query($query, $link);

Actualizar Para modificar los datos en una tabla se utiliza la instruccin UPDATE $query = "UPDATE nombre_tabla set campo1 = valor1, campo2 = valor2 WHERE primaryKey = valorPrimaryKey "; $response = mysql_query($query, $link); Con UPDATE se indica que la base de datos se va a actualizar, set es para indicar los campos que se van a modificar y con qu valores. Es muy importante tambin la clusula WHERE para indicar que se est modificando una fila nicamente, si se requiere modificar varias filas con el mismo valor sta clusula se omite, y de esta forma se editara toda la tabla.

Borrar Para eliminar informacin en una tabla se usa DELETE, la sintaxis es similar a la de la instruccin UPDATE. //borrar registros $query = "DELETE FROM nombre_tabla WHERE primaryKey = valorPrimaryKey LIMIT 1";

Sergio Ramrez Tenorio 7F

Pgina 35

Programacin Web $response = mysql_query($query, $link); //borrar tablas $query= "DROP TABLE nombre_tabla"; $response = mysql_query($query, $link); //borrar columnas de una tabla $query= "ALTER TABLE nombre_tabla DROP COLUMN campo1"; $response = mysql_query($query, $link);

Antologa Programacin Web

3.11 Manejo de archivos


Existe una gran variedad de programas o software en el mundo de los computadores y la informtica, cada programa genera una extensin o tipo de archivo diferente, por tanto es indispensable conocer (por lo menos) cuales son los mas utilizados y que de hecho se convierten prcticamente en un estndar, no solo en Internet sino tambin en los computadores.

Funciones para la gestin de archivos en PHP: Cambio, creacin y borrado de directorios chdir(ruta_al_directorio); Permite cambiar el directorio activo a la ruta establecida como parmetro. mkdir(ruta_al_directorio,permisos); Esta funcin crea un nuevo directorio en la ruta que hemos indicado, el segundo parmetro debe ser un numero octal y es por el que vienen determinados los permisos. rmdir(ruta_directorio); Borra el directorio pasado como parmetro. Procesamiento de los elementos de un directorio opendir(ruta); abre el directorio de la ruta especificada. Una vez se ha ejecutado opendir() se pueden realizar tres operaciones: readdir(manejador); devuelve una cadena con el nombre del siguiente elemento del directorio, ya sea subdirectorio o fichero. rewinddir(manejador); procesa un directorio y sita el puntero interno en el primer directorio. closedir(manejador); finaliza el tratamiento de entradas de directorio.

Sergio Ramrez Tenorio 7F

Pgina 36

Programacin Web

Antologa Programacin Web

$directorio=dir(ruta_directorio); Este objeto cuenta con 3 mtodos y 2 propiedades(las propiedades slo de consulta por lo que no pueden ser modificadas. Los mtodos empleados son read(),rewind() y close() copy(fichero_origen,fichero_destino); Realiza una copia del fichero. unlink(nombre_fichero); Elimina el fichero. rename(nombre_antiguo,nombre_nuevo); Renombra el fichero pasado como parmetro.

Atributos de ficheros y directorios file_exists(elemento); Comprueba que el elemento pasado como parmetro exista. filesize(nombre_fichero); Informa el tamao del fichero en bytes. fileatime(fichero); informa el ultimo acceso al fichero. filemtime(fichero); informa la ultima modificacin del fichero. filectime(fichero); informa el ltimo cambio al fichero. filetype(fichero); devuelve el tipo de elemento que estamos tratando. Los resultados posibles que puede devolver son: block Dispositivo de bloques char Caracteres dir Directorio fifo FIFO file Fichero link Enlace unknown Desconocido Chmod(elemento_directorio,permisos); Recibe como parmetro el elemento y los permisos que deseamos otorgarles.

Funciones de gestin de archivos copy Copia un archivo copy($origen,$destino).

Sergio Ramrez Tenorio 7F

Pgina 37

Programacin Web

Antologa Programacin Web

rename Cambia el nombre del archivo de $antes a $despues rename($antes,$despues). unlink Borra el archivo unlink($archivo).

Funciones para la lectura de archivos fopen Abre un archivo y le asigna un identificador id. Veremos el modo ms adelante $id = Fopen($archivo, $modo). fgets Lee una lnea de un archivo hasta un numero mximo de caracteres fgets($id,$max). fwrite Escribe una cadena dentro del archivo fwrite($id, $cadena). fseek Avanza o retrocede el puntero del archivo un cierto numero de posiciones fseek($id,$posiciones). feof Comprueba si el puntero que lee el archivo ha llegado al final feof($id). fpassthru lee completamente el archivo y lo muestra fpassthru($id). fclose Cierra el archivo abierto previamente fclose($id).

3.12 Seguridad
PHP es un poderoso lenguaje e intrprete, ya sea incluido como parte de un servidor web en forma de mdulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza Por eso PHP es un lenguaje ms seguro para escribir programas CGI que Perl o C, y con la seleccin correcta de opciones de configuracin en tiempos de compilacin y ejecucin, siguiendo algunas prcticas correctas de programacin.

Sergio Ramrez Tenorio 7F

Pgina 38

Programacin Web

Antologa Programacin Web

Programacin Web

Unidad 4. Procesamiento del lado del cliente. Programacin en Javascript. Javascript


Se utilizar Javascript pues es el lenguaje estndar que interpretan los diferentes navegadores Web. JavaScript es un lenguaje de programacin interpretado, es decir, que no requiere compilacin, utilizado principalmente en pginas web, con una sintaxis semejante a la del lenguaje Java y el lenguaje C. Fue desarrollado por Netscape y Sun Microsystems, y se puede usar en los clientes Web de Netscape (a partir de la versin 2.0) y Microsoft (a partir de la versin 3.0); hay ligeras diferencias en los intrpretes JavaScript de cada plataforma. Ejemplo de programa Javascript. Qu podemos hacer con JavaScript? Pginas dinmicas (DHTML) Comprobacin de datos (Formularios) Uso de los elementos de la pgina web Intercambiar informacin entre pginas web en distintas ventanas Manipulacin de grficos, texto, etc... Comunicacin con plug-ins: Flash, Java, Shockwave, etc...

4.1 Lenguaje Script del cliente (Javascript).


Variables.
Se tienen cuatro tipos bsicos: Nmeros (enteros, decimales, etc...) Letras y nmeros (cadenas de caracteres) Valores lgicos (True y False) Objetos (una ventana, un texto, un formulario, el navegador, el historial, etc...)

Sergio Ramrez Tenorio 7F

Pgina 39

Programacin Web

Antologa Programacin Web

Variables
La forma general para declarar una variable es la siguiente: var nombre_variable nombre_variable = "valor" Ejemplos de definicin de variables: var miVar = 1234; var miVar2 = 12.34; var miCadena = 'Hola, mundo'; var matriz = new Array(); var matriz2 = new Array(15);

Variables locales y globales var variableGlobal=0; function nuevaFuncion() { var variableLocal=1; variableGlobal =0; } No se declara el tipo de dato de la variable, el tipo se asigna en ejecucin y puede cambiar de tipo durante su vida, por ejemplo: MiVariable=4; MiVariable="Una_Cadena";

Operadores.
Operadores aritmticos

Sergio Ramrez Tenorio 7F

Pgina 40

Programacin Web

Antologa Programacin Web

Operadores de asignacin:

Operadores condicionales (comparativos):

Operadores lgicos:

Expresiones
Javascript posee los siguientes tipos de expresiones: Aritmticas: tienen valor numrico. Cadenas: tienen valor de cadena Lgicas: tienen valor booleano.

Sergio Ramrez Tenorio 7F

Pgina 41

Programacin Web

Antologa Programacin Web

Ejemplos: x = y / m + 2; y = x >= m + 2; if ( x + 5 >= 25 && peso < 30 ) direccion = Pino # 100 + Col. Granjas

Estructuras condicionales. if (condicin) { //instrucciones } else { //instrucciones }

Estructuras condicionales.
switch ( expresin ) { case Valor_1: Instruccin o bloque de instrucciones; [break;] case Valor_2: Instruccin o bloque de instrucciones; [break;] case Valor_3: Instruccin o bloque de instrucciones; [break;] ... case Valor_N: Instruccin o bloque de instrucciones; [break;] [default:]Instruccin o bloque de instrucciones; }

Estructuras de repeticin.
Ejemplo: for (var i=1 ; i <= 10 ; i++) { if ( i > 5) , alert(Mayor de 5); } Ejemplo: cont = 0 while( cont<10 ) { document.write(cont+"<br>"); cont++; }

Sergio Ramrez Tenorio 7F

Pgina 42

Programacin Web

Antologa Programacin Web

Estructuras de repeticin.
Ejemplo:

do { i+=1; document.write(i); } while (i<5);

Estructuras de datos.
Arreglos (Array)
// Arreglo de textos var mensajes = new Array(6); mensajes[0] = "Javascript permite usar arreglos"; mensajes[1] = "Javascript permite usar cadenas"; mensajes[2] = "Javascript permite usar funciones"; mensajes[3] = "Javascript permite usar fechas"; mensajes*4+ = "Javascript permite usar funciones matemticas"; mensajes*5+ = "Javascript permite usar objetos"; // Arreglo de imgenes var imagenes = new Array(2); imagenes[0] = "../imagenes/tractor1.jpg"; imagenes[1] = "../imagenes/tractor2.jpg";

Funciones.
Las funciones son uno de los pilares sobre los que se apoya JavaScript. Una funcin es un conjunto de sentencias o procedimientos que realizarn unas operaciones adecuadas, haciendo uso de determinadas variables y propiedades. Sintaxis de funciones function nombreFuncion(parametro1, parametro2, ... ) { sentencia1; sentencia2; ... sentenciaN; }

Sergio Ramrez Tenorio 7F

Pgina 43

Programacin Web

Antologa Programacin Web

Ejemplo de funcin function ImprimeNombre(nombre) { document.write("<HR>Tu nombre es <B><I>"); document.write(nombre); document.write("</B></I><HR>"); }

Ejemplo de funcin. function cubo(numero) { var cubo = numero * numero * numero; return cubo; }

4.2 Modelo de objetos con lenguaje Script.


El modelo de objeto de documento (DOM) de Javascript: Representa una estructura jerrquica de los objetos de un documento HTML. Permite hacer una referencia adecuada al objeto que se requiere.

DOM de Javascript

4.3 Objetos del lenguaje script nter construidos y objetos del navegador.
Son los objetos ya definidos previamente en el lenguaje de Javascript y los objetos ya definidos en el navegador.

Sergio Ramrez Tenorio 7F

Pgina 44

Programacin Web

Antologa Programacin Web

Objetos incorporados de Javacript y del navegador: Objeto Anchor Applet Button Checkbox Date Document Form History Link Location Math Password RadioButton Reset Selection String Submit Text TextArea Window Caractersticas marca anchor de HTML <a > applet de Java campo INPUT HTML de tipo "button" campo INPUT HTML tipo "checkbox" permite trabajar con fechas pgina HTML formulario HTML lista de las pginas Web visitadas enlace de hipertexto URL constante o funcin matemtica campo INPUT tipo "password" campo INPUT tipo "radiobutton" campo INPUT tipo "reset" texto en un campo TEXTAREA o INPUT cadena de texto campo INPUT tipo "submit" campo INPUT tipo "text" campo INPUT tipo "textArea" ventana del navegador

4.4 Eventos con el lenguaje de script.


Un evento es el resultado de la interaccin entre un usuario con algn elemento de la interfaz grfica que se le presenta. Ejemplos: Hacer clic sobre un botn. Cambiar el contenido de un campo de texto. Mover el apuntador del ratn sobre un enlace.

Para cada tipo de evento hay que tener en mente tres elementos: quin lo genera, cundo ocurre y cul es el manejador de eventos que se debe utilizar.

Sergio Ramrez Tenorio 7F

Pgina 45

Programacin Web

Antologa Programacin Web

La tabla que sigue resume la mayora los eventos definidos por JavaScript, junto con los elementos relacionados a ellos para su programacin.

4.5 Validacin de entrada de datos del lado del cliente.


Es conveniente validar los datos que el usuario introduce en los formularios, antes de que estos se enven al servidor. Por ejemplo, verificar si el usuario proporcion el dato para un campo obligatorio o si el formato es correcto (por ejemplo para un e-mail). Es ms eficiente validar los datos localmente en vez de enviarlos y que se validen en el servidor, para esto se puede usar Javascript.
Sergio Ramrez Tenorio 7F Pgina 46

Programacin Web

Antologa Programacin Web

Pasos para validar un formulario. Para validar un formulario se debe generar la funcin para el evento submit (manejador de evento onsubmit) del objeto Form (formulario). Se escribe el cdigo para la validacin en esta funcin. Si al menos un campo no cumple los requisitos para la validacin, la funcin debe regresar un valor false (cancela el envo del formulario). Si todos los campos cumplen la validacin, la funcin debe regresar un true (se permite el envo del formulario).

Cookies
En la programacin para navegadores el trmino cookie (galleta) se interpreta como una cadena de no ms de 256 caracteres, que puede ser guardada en el cliente de forma explcita desde una pgina o servidor Web. Las cookies permiten entonces guardar una pequea cantidad de informacin en un archivo del lado del cliente. Desde un documento HTML se pueden crear, leer y actualizar las cookies, y en s, se pueden asociar distintas de ellas a un solo documento. La estructura general de una cookie se define de la siguiente forma:

nombre=valor; [expira=fecha; [ruta=path; [dominio=domain; [secure;]]]] Donde nombre: es el nombre de la cookie. valor: es el valor de la cookie. expira y fecha: indican la fecha de expiracin de la misma. Cuando no se indica, expira con la sesin del usuario. ruta y path: indican el URL de la pgina que gener la cookie. dominio y domain: indican el dominio desde el cual se conect el cliente. secure: indica que la cookie se transmitir nica y exclusivamente si la comunicacin entre cliente y servidor es segura.

En JavaScript la cadena que se utiliza para la consulta y manipulacin de cookies es: document.cookie. Dicha cadena representa todas las cookies asociadas al documento. Al ser esta una variable de tipo cadena se recomiendan utilizar mtodos tales como substring, charAt, indexOf y lastIndexOf para determinar los valores guardados en la cookie.

Una forma bsica para escribir una cookie: document.cookie='ejemplo=cookie'

Sergio Ramrez Tenorio 7F

Pgina 47

Programacin Web

Antologa Programacin Web

Forma bsica para leer una document.write(document.cookie);

cookie:

alert(document.cookie);

Ejemplos de uso de cookies:


Nmero de veces que algn usuario ha visitado una pgina. Llevar una historia personalizada de los elementos que se llevan en un carrito electrnico. Guardar preferencias del usuario.

Ejemplo del uso de cookies:

Cdigo de la pgina que guarda (escribe) la cookie.

Cdigo de la pgina que lee la cookie.

Sergio Ramrez Tenorio 7F

Pgina 48

Programacin Web

Antologa Programacin Web

4.6 Consideraciones del soporte del navegador.


Existen unos organismos que definen cmo deben de ser lenguajes como HTML, CSS o Javascript. A veces las interpretaciones son distintas por parte de las empresas desarrolladoras de software, o incluso estas se permiten el lujo de crear nuevas etiquetas o funcionalidades, incluso decidir cules soportan. En las aplicaciones Web se deben considerar los diferentes navegadores que los usuarios usarn para acceder a la aplicacin. La aplicacin se debe probar con los navegadores ms frecuentes, con el propsito de comprobar la correcta visualizacin y funcionamiento de las pginas

Sergio Ramrez Tenorio 7F

Pgina 49

Programacin Web

Antologa Programacin Web

5.1 Visin General Servicios Web XML


Un servicio web (en ingls, Web service) es un conjunto de protocolos y estndares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programacin diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopcin de estndares abiertos. Las organizaciones OASIS y W3C son los comits responsables de la arquitectura y reglamentacin de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera ms exhaustiva estos estndares. XML, siglas en ingls de eXtensible Markup Language (lenguaje de marcas extensible), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificacin y adaptacin del SGML y permite definir la gramtica de lenguajes especficos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definicin son XHTML, SVG, MathML. XML no ha nacido slo para su aplicacin en Internet, sino que se propone como un estndar para el intercambio de informacin estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de clculo y casi cualquier cosa imaginable. XML es una tecnologa sencilla que tiene a su alrededor otras que la complementan y la hacen mucho ms grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la informacin de una manera segura, fiable y fcil. XML proviene de un lenguaje inventado por IBM en los aos setenta, llamado GML (Generalized Markup Language), que surgi por la necesidad que tena la empresa de almacenar grandes cantidades de informacin. Este lenguaje gust a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Standard Generalized Markup Language), capaz de adaptarse a un gran abanico de problemas. A partir de l se han creado otros sistemas para almacenar informacin.

Sergio Ramrez Tenorio 7F

Pgina 50

Programacin Web

Antologa Programacin Web

Ventajas del XML


Es extensible: Despus de diseado y puesto en produccin, es posible extender XML con la adicin de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicacin alguna. El analizador es un componente estndar, no es necesario crear un analizador especfico para cada versin de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones. Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podramos tener una aplicacin en Linux con una base de datos Postgres y comunicarla con otra aplicacin en Windows y Base de Datos MS-SQL Server. Transformamos datos en informacin, pues se le aade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos.

5.2 Tecnologas Subyacentes


Un documento XML puede contener muchos tipos de informacin. Es decir, pueden haber muchos lenguajes escritos en XML para cualquier colectivo de usuarios. Por ejemplo, si lo utiliza el colectivo de mdicos podra crear un lenguaje en XML especfico para almacenar diagnsticos de los pacientes. Este lenguaje se podra llama PacientesML. Si los distribuidores de pelculas utilizan XML podrn crear sus propios lenguajes para guardar la informacin de las pelculas. Este lenguaje se podra llamar PeliculasML. Si estamos escribiendo aplicaciones para mviles podremos utilizar un lenguaje para aplicaciones inalmbricas (Wireless), que se llama WML. Como vemos, se pueden crear infinitos lenguajes a partir del XML. Para especificar cada uno de los usos de XML, o lo que es lo mismo, para especificar cada uno de los sublenguajes que podemos crear a partir de XML, se utilizan unos lenguajes propios. Son unos lenguajes que sirven para definir otros lenguajes, es decir, son metalenguajes. Los definen especificando qu etiquetas podemos o debemos encontrarnos en los documentos HTML, en qu orden, dentro de qu otras, adems de especificar los atributos que pueden o deben tener cada una de las etiquetas.

Sergio Ramrez Tenorio 7F

Pgina 51

Programacin Web

Antologa Programacin Web

Hay dos metalenguajes con los que definir los lenguajes que podemos obtener a partir de XML, el DTD y el XML Schema. El DTD, Definition Type Document, tiene una sintaxis especial, distinta de la de XML, que es sencilla, aunque un poco rara si nunca hemos visto un documento similar. Para evita r el DTD, que tiene una sintaxis muy especial, se intent encontrar una manera de escribir en XML la definicin de otro lenguaje XML. Se defini entonces el lenguaje XML Schema y funciona bien, aunque puede llegar a ser un poco ms complicado que especificarlo en DTD. Simplemente nos ahorramos de aprender un nuevo lenguaje con su sintaxis particular.

Un detalle importante de sealar a la hora de hablar de los DTD o XML Schema es que estos lenguajes tambin permiten comprobar la integridad de los datos en cualquier momento. Se calcula que un 70% de las lneas de cdigo que escribe un programador estn orientadas a comprobar la integridad de los datos, es decir, comprobar si donde se supone que hay un nmero efectivamente lo hay, si el nmero es entero o cualquier otra comprobacin. Nuestros metalenguajes de XML nos sirven para tomar un documento XML y comprobar que los datos que l incluye son vlidos, comprobando si lo que tenemos en el XML concuerda con lo que tendramos que tener. Eso lo podemos hacer al leer el documento, si no son validos se saca un mensaje de error y se detiene el proceso del documento. Si son vlidos hacemos lo que toque sin tener que preocuparnos por la integridad de los datos.

* Diseo: CSS o XSL.


Para cada documento XML que se desee presentar en pantalla formateado de la manera que deseemos se tiene que escribir una hoja de estilos o similar. . Tambin tenemos dos posibles lenguajes con los que formatear los textos de un documento XML para poder verlo por pantalla. La primera posibilidad es el CSS, que muchos ya conocern. La segunda opcin es el XSL, bastante ms avanzada. CSS (Cascading Style Sheets o hojas de estilo en cascada)no es nada nuevo, ya se poda utilizar con HTML y se cre en un intento de separar la forma del contenido en HTML. En XML tambin podemos utilizar las CSS, y se utilizan de una manera muy similar a cmo se utilizan en HTML, por lo menos los atributos de estilo que podemos aplicar son los mismos y sus posibles valores tambin. XSL, que son las siglas de XML Style Language, es el segundo lenguaje con el que trabajar en XML. Este lenguaje no se limita a definir qu estilo aplicar a cada elemento del documento XML. Adems se pueden realizar pequeas instrucciones tpicas de los lenguajes de programacin y la salida no tiene porque ser un documento HTML, sino que adems podra ser de otros tipos, cualquiera que podamos necesitar como un documento escrito en WML (para WAP), un documento de texto plano u otro documento XML.
Sergio Ramrez Tenorio 7F Pgina 52

Programacin Web

Antologa Programacin Web

XSL resulta mucho ms potente que CSS y de hecho es mucho ms adecuado utilizarlo. Una de sus principales ventajas la vemos a continuacin. Si tenemos un documento XML que queremos que se visualice en mltiples dispositivos distintos ser imprescindible utilizar XSL. En este esquema tendramos un solo documento XML y un documento XSL para cada dispositivo que queramos incluir, por ejemplo para un navegador Netscape, otro para Internet Explorer, otro para un mvil Ericson y otro para un mvil Nokia. Si maana aparece un nuevo dispositivo, por muy particular que sea, slo necesitaremos crear un documento XSL para que nuestros XML se puedan visualizar en l.

* Programacin: SAX o DOM.


Si queremos realizar acciones con nuestros datos escritos en XML tenemos tambin mucho camino ya implementado. El W3C ha especificado dos mecanismos para acceder a documentos XML y trabajar con ellos. Se tratan simplemente de unas normas que indican a los desarrolladores la manera de acceder a los documentos. Estas normas incluyen una jerarqua de objetos que tienen unos mtodos y atributos con los que tendremos que trabajar y que nos simplificarn las tareas relativas al recorrido y acceso a las partes del documento. Estos dos mecanismos se denominan SAX y DOM. SAX se utiliza para hacer un recorrido secuencial de los elementos del documento XLM y DOM implica la creacin de un rbol en memoria que contiene el documento XML, y con l en memoria podemos hacer cualquier tipo de recorrido y acciones con los elementos que queramos. Se puede programar con el lenguaje de programacin que se desee para acceder a un documento XML. Los creadores del lenguaje son los responsables de crear unas API que cumplan las especificaciones de XML para que luego los desarrolladores de cada lenguaje las encuentren y puedan trabajar con ellas. Un lenguaje tpico para trabajar con XML es Java y en este caso es SUN Microsystems la encargada de proveer el API que ha especificado el W3C y por lo tanto,.los desarrolladores en Java cuentan con unas clases especiales que ha creado SUN para programar con XML. Por su parte, los creadores de algunos lenguajes han implementado una tercera manera de programar con XML que se llama XSLT. Empresas como por ejemplo la organizacin Apache, SUN o Microsoft, ya la estn apoyando, aunque en el W3C no han dicho que sea un estndar. Es importante sealar que la W3C es un organismo muy lento y que mucho de lo que se hace en XML actualmente slo est en la W3C contemplado como una "nota" en la que los gurs estn pensando. El trabajo con bases de datos y XML se est desarrollando con un lenguaje que se llama XQL (XML Query Language), que es uno de los ejemplos de lenguaje que slo est publicado en el W3C como una "nota".

Sergio Ramrez Tenorio 7F

Pgina 53

Programacin Web

Antologa Programacin Web

Soap
SOAP (Simple Object Access Protocol) Es un protocolo estndar que define cmo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP fue creado por Microsoft, IBM y otros y est actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web. que es una estrategia de desarrollo de aplicaciones distribuidas usando tecnologas diversas adoptada por las diferentes organizaciones del mundo para resolver los problemas de falta de interoperabilidad entre las tecnologas anteriormente mencionadas, tomando como base protocolos ya establecidos y con gran aceptacin en Internet, como HTML y XML. * OBJETIVOS PRIMORDIALES DE SOAP a) Establecer un protocolo estndar de invocacin de servicios remotos, basado en protocolos estndares de Internet: HTTP (Protocolo de transporte de Hipertexto) para la transmisin y XML (lenguaje de marcado extensible) para la codificacin de datos. b) Independencia de plataforma, lenguaje de desarrollo e implementacin (modelo de objetos). El protocolo de comunicacin HTTP es el empleado intrnsecamente para la conexin sobre Internet. Garantiza que cualquier cliente con un navegador estndar pueda conectarse con un servidor remoto. La transmisin de datos se empaqueta con XML, que se ha convertido en el estndar del intercambio de datos, salvando las incompatibilidades entre otros protocolos, tales como el NDR (Network Data Representation) o el CDR (Common Data Representation). Por otra parte, los servidores Web pueden procesar las peticiones de usuario, empleando las tecnologas de Servlets, paginas ASP (Active Server Pages) o JSP (Java Server Pages), o un servidor de aplicaciones, invocando objetos de tipos CORBA, COM o EJB. Como SOAP circunscribe informacin adicional incluida en el documento XML a continuacin se presentar la descripcin de dicho documento.

Wsdl
WSDL son las siglas de Web Services Description Language, un formato XML que se utiliza para describir servicios Web (algunas personas lo leen como wisdel). La versin 1.0 fue la primera recomendacin por parte del W3C y la versin 1.1 no alcanz nunca tal estatus. La versin 2.0 se convirti en la recomendacin actual por parte de dicha entidad. WSDL describe la interfaz pblica a los servicios Web. Est basado en XML y describe la forma de comunicacin, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catlogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan despus al protocolo concreto de red y al formato del mensaje.

Sergio Ramrez Tenorio 7F

Pgina 54

Programacin Web

Antologa Programacin Web

As, WSDL se usa a menudo en combinacin con SOAP y XML Schema. Un programa cliente que se conecta a un servicio web puede leer el WSDL para determinar qu funciones estn disponibles en el servidor. Los tipos de datos especiales se incluyen en el archivo WSDL en forma de XML Schema. El cliente puede usar SOAP para hacer la llamada a una de las funciones listadas en el WSDL. El WDSL nos permite tener una descripcin de un servicio web. Especifica la interfaz abstracta a travs de la cual un cliente puede acceder al servicio y los detalles de cmo se debe utilizar.

Estructura del WSDL


Como vemos, la estructura del WSDL tiene los siguientes elementos: Tipos de Datos <types>: Esta seccin define los tipos de datos usados en los mensajes. Se utilizan los tipos definidos en la especificacin de esquemas XML. Mensajes <message>: Aqu definimos los elementos de mensaje. Cada mensaje puede consistir en una serie de partes lgicas. Las partes pueden ser de cualquiera de los tipos definidos en la seccin anterior. Tipos de Puerto <portType>: Con este apartado definimos las operaciones permitidas y los mensajes intercambiados en el Servicio. Bindings <binding>: Especificamos los protocolos de comunicacin usados. Servicios <service>: Conjunto de puertos y direccin de los mismos. Esta parte final hace referencia a lo aportado por las secciones anteriores. Con estos elementos no sabemos que hace un servicio pero si disponemos de la informacin necesaria para interactuar con l (funciones, mensajes de entrada/salida, protocolos...). Ejemplo. <definitions targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> name="StockQuote"

<types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all>


Sergio Ramrez Tenorio 7F Pgina 55

Programacin Web

Antologa Programacin Web

<element </all> </complexType> </element> <element <complexType> <all> <element </all> </complexType> </element> </schema> </types> <message <part </message> <message <part </message> <portType <operation <input <output </operation> </portType>

name="tickerSymbol"

type="string"/>

name="TradePrice">

name="price"

type="float"/>

name="body"

name="GetLastTradePriceInput"> element="xsd1:TradePriceRequest"/>

name="body"

name="GetLastTradePriceOutput"> element="xsd1:TradePrice"/>

name="StockQuotePortType"> name="GetLastTradePrice"> message="tns:GetLastTradePriceInput"/> message="tns:GetLastTradePriceOutput"/>

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service <documentation>My
Sergio Ramrez Tenorio 7F

first

name="StockQuoteService"> service</documentation>
Pgina 56

Programacin Web

Antologa Programacin Web

<port name="StockQuotePort" <soap:address </port> </service> </definitions>

binding="tns:StockQuoteSoapBinding"> location="http://example.com/stockquote"/>

Uddi
UDDI son las siglas del catlogo de negocios de Internet denominado Universal Description, Discovery and Integration. El registro en el catlogo se hace en XML. UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. El registro de un negocio en UDDI tiene tres partes: * Pginas blancas - direccin, contacto y otros identificadores conocidos. * Pginas amarillas - categorizacin industrial basada en taxonomas. * Pginas verdes - informacin tcnica sobre los servicios que aportan las propias empresas. UDDI es uno de los estndares bsicos de los servicios Web cuyo objetivo es ser accedido por los mensajes SOAP y dar paso a documentos WSDL, en los que se describen los requisitos del protocolo y los formatos del mensaje solicitado para interactuar con los servicios Web del catlogo de registros.

5.3 Publicacin de un Servicio Web


La implementacin de un servicio Web incluye copiar en un directorio virtual de un servidor Web el archivo .asmx y los ensamblados utilizados por el servicio Web que no se suministran como parte de Microsoft .NET Framework. Para obtener informacin sobre cmo implementar un servicio Web, vea Implementar servicios Web XML. Los servicios Web pueden publicarse en clientes potenciales de las siguientes maneras: Utilizando un archivo de descubrimiento XML con la extensin .disco. Utilizando una direccin URL que especifique una extensin .vsdisco. Utilizando un servicio Web con una cadena de consulta de ?DISCO. En este tema se muestra cmo configurar los dos primeros mecanismos de descubrimiento. En este tema no se explica cmo habilitar solicitudes para un servicio Web con una cadena de consulta de ?DISCO, puesto que este mtodo ya est disponible de manera automtica. Para obtener una explicacin de estas opciones, vea Publicacin e implementacin de servicios Web XML.

Sergio Ramrez Tenorio 7F

Pgina 57

Programacin Web

Antologa Programacin Web

Para publicar un documento de descubrimiento esttico para un servicio Web Cree un documento XML con el editor que prefiera y agregue el elemento ?xml version=1.0 ? a la primera lnea. En el documento XML, agregue un elemento discovery En el elemento discovery, agregue referencias a descripciones de servicio, esquemas XSD y dems documentos de descubrimiento. Copie el documento de descubrimiento en un directorio virtual de un servidor Web para implementarlo. Opcionalmente, si desea permitir que los posibles consumidores se desplacen para llegar hasta una direccin URL mediante la especificacin de una aplicacin IIS, sin tener que especificar un documento, puede agregar un vnculo a la pgina predeterminada de la aplicacin IIS. La ventaja es que los posibles consumidores no tienen que conocer el nombre de ningn documento de descubrimiento. Despus, los usuarios pueden suministrar direcciones URL.

Sergio Ramrez Tenorio 7F

Pgina 58

Das könnte Ihnen auch gefallen