Desarrollo de Sistemas de Información basados en
Tecnología Web con acceso a Base de Datos
Java Server Page (JSP) 

Active Server Page (ASP)

Personal Home Page (PHP)

Lenguaje XML

Incorporar una Pagina Web

Conclusiones

Infografía

JSP- Java Server Page

JSP es una tecnología basada en Java que simplifica el proceso de desarrollo de sitios web dinámicos. Las Java server Pages son ficheros de texto que sustituyen a las páginas HTML tradicionales. Los ficheros JSP contienen etiquetas HTML y código embebido que permite al diseñador de la página web acceder a datos desde código Java que se ejecuta en el servidor. 

JSP se implementa utilizando la tecnología Servlet. Cuando un servidor web recibe una petición de una página .jsp, la redirecciona a un proceso especial dedicado a manejar la ejecución de servlets (servlet container) llamado JSP container. 
 
 
Beneficios de JSP
 
Mejoras en el rendimiento: Utilización de hilos Java para el manejo de las peticiones. El contenedor servlet puede ser ejecutado como parte del servidor web. Como podemos tener hilos con el mismo padre podremos compartir recursos con facilidad entre las peticiones.
Soporte de componentes reutilizables: Creación y utilización de JavaBeans del servidor. Los JavaBeans utilizados en páginas .jsp pueden ser utilizados en servlets, applets o aplicaciones Java.
Separación entre la programación y la presentación: Los cambios realizados en el diseño de las páginas no interfieren en la lógica de la programación y viceversa.
Para poder utilizar esta tecnología es necesario un servidor web que soporte a páginas .html y código que implemente un contenedor JSP donde ejecutar las etiquetas JSP. Existen servidores web que incorporan dicha capacidad dentro de su código (Netscape Enterprise y Aplication Server 4.0) así como servidores escritos íntegramente en Java (Java Web Server de Sun y Jigsaw de W3 Consortium) que dan soporte directamente a esta tecnología. 
Jakarta es un proyecto realizado por Apache.org que consiste en una versión especial del conocido servidor web Apache con soporte para JSP. 
 
Un ejemplo
<html>
<head>
<title>Ejemplo JSP</title>
</head>
<body>
<%= new Date() %>
</body>
</html> 
El código anterior nos devolverá una página con la fecha actual.
 

 ¿Qué son los Servlets Java?

Los Servlets son las respuesta de la tecnología Java a la programación CGI. Son programas que se ejecutan en un servidor Web y construyen páginas Web. Construir páginas Web al vuelo es útil (y comunmente usado) por un número de razones:

La página Web está basada en datos envíados por el usuario. Por ejemplo, las páginas de resultados de los motores de búsqueda se generan de esta forma, y los programas que procesan pedidos desde sites de comercio electrónico también. 
Los datos cambian frecuentemente. Por ejemplo, un informe sobre el tiempo o páginas de cabeceras de noticias podrían construir la página dinámicamente, quizás devolviendo una página previamente construida y luego actualizandola. 
Las páginas Web que usan información desde bases de datos corporativas u otras fuentes. Por ejemplo, usaríamos esto para hacer una página Web en una tienda on-line que liste los precios actuales y el número de artículos en stock. 

 ¿Cuáles son las Ventajas de los Servlets sobre el CGI "Tradicional"?

Los Servlets Java son más eficientes, fáciles de usar, más poderosos, más portables, y más baratos que el CGI tradicional y otras muchas tecnologías del tipo CGI. (y lo que es más importante, los desarrolladores de servlets cobran más que los programadores de Perl :-).

Eficiencia. Con CGI tradicional, se arranca un nuevo proceso para cada solicitud HTTP. Si el programa CGI hace una operación relativamente rápida, la sobrecarga del proceso de arrancada puede dominar el tiempo de ejecución. Con los Servlets, la máquina Virtual Java permanece arrancada, y cada petición es manejada por un thread Java de peso ligero, no un pesado proceso del sistema operativo. De forma similar, en CGI tradicional, si hay N peticiones simultáneas para el mismo programa CGI, el código de este problema se cargará N veces en memoria. Sin embargo, con los Servlets, hay N threads pero sólo una copia de la clase Servlet. Los Servelt también tienen más alternativas que los programas normales CGI para optimizaciones como los cachés de cálculos prévios, mantener abiertas las conexiones de bases de datos, etc. 
Conveniencia. Hey, tu ya sabes Java. ¿Por qué aprender Perl? Junto con la conveniencia de poder utilizar un lenguaje familiar, los Servlets tienen una gran infraestructura para análisis automático y decodificación de datos de formularios HTML, leer y seleccionar cabeceras HTTP, manejar cookies, seguimiento de sesiones, y muchas otras utilidades. 
Potencia. Los Servlets Java nos permiten fácilmente hacer muchas cosas que son difíciles o imposibles con CGI normal. Por algo, los servlets pueden hablar directamente con el servidor Web. Esto simplifica las operaciones que se necesitan para buscar imágenes y otros datos almacenados en situaciones estándards. Los Servlets también pueden compartir los datos entre ellos, haciendo las cosas útiles como almacenes de conexiones a bases de datos fáciles de implementar. También pueden mantener información de solicitud en solicitud, simplicando cosas como seguimiento de sesión y el caché de cálculos anteriores. 
Portable. Los Servlets están escritos en Java y siguen un API bien estándarizado. Consecuentemente, los servlets escritos, digamos en el servidor I-Planet Enterprise, se pueden ejecutar sin modificarse en Apache, Microsoft IIS, o WebStar. Los Servlets están soportados directamente o mediante plug-in en la mayoría de los servidores Web. 
Barato. Hay un número de servidores Web gratuitos o muy baratos que son buenos para el uso "personal" o el uso en sites Web de bajo nivel. Sin embargo, con la excepción de Apache, que es gratuito, la mayoría de los servidores Web comerciales son relativamente caros. Una vez que tengamos un servidor Web, no importa el coste del servidor, añadirle soporte para Servlets (si no viene preconfigurado para soportarlos) es gratuito o muy barato. 
 

Comparando JSP con ASP
 

JSP y ASP sirven para hacer, más o menos, el mismo tipo de aplicaciones web. Sin embargo, en el fondo tienen bastantes diferencias. Después de mi experiencia en el trabajo con JSP, un día un cliente me preguntó por qué no programaba la página en ASP en lugar de JSP, ya que había oido hablar que el sistema de Microsoft tenía unas características muy apropiadas para su modelo de negocio. A partir de esta sugerencia, y para que mi cliente quedase satisfecho con la tecnología JSP -que es la que prefiero utilizar-, preparé una lista de ventajas de utilizar páginas dinámicas Java frente a las de Microsoft. 
Plataforma e independencia del servidor 
JSP sigue la filosofía de la arquitectura JAVA de "escribe una vez ejecuta donde quieras". La implantación de ASP está limitada para arquitecturas basadas en tecnología Microsoft. 
Así, JSP se puede ejecutar en los sistemas operativos y servidores web más populares, como por ejemplo Apache, Netscape o Microsoft IIS. Mientras que ASP sólo tiene soporte nativo para los servidores IIS y Personal Web Server, que son los dos servidores web para sistemas Microsoft, el primero con tecnología NT y el segundo para sistemas Windows 98 y similares. 
Proceso de desarrollo abierto (open source) 
El API JSP se beneficia de la extendida comunidad JAVA existente, por el contrario la tecnología ASP es específica de Microsoft que desarrolla sus procesos internamente. 
Mientras que tanto JSP como ASP usan una combinación de tags y scripts para crear paginas web dinámicas, la tecnología JSP permite a los desarrolladores crear nuevos tags. Así los desarrolladores pueden crear nuevos tags y no depender tanto de los scripts. 
Reusabilidad entre plataformas. 
Los componentes JSP son reusables en distintas plataformas (UNIX, Windows). 

La tecnología JSP usa Java como lenguaje de Script mientras que ASP usa VBScript o Jscript. Java es un lenguaje mas potente y escalable que los lenguajes de Script. Las páginas JSP son compilados en Servlets por lo que actúan como una puerta a todos los servicios Java de Servidor y librerías Java para aplicaciones http. Java hace el trabajo del desarrollador más fácil p. e. ayuda a proteger el sistema contra las "caídas" mientras que las aplicaciones ASP sobre sistemas NT son más susceptibles a sufrirlas, también ayuda en el manejo de la memoria protegiendo contra fallos de memoria y el duro trabajo de buscar los fallos de perdida de punteros de memoria que pueden hacer mas lento el funcionamiento de una aplicación. 
 

Mantenimiento 

Las aplicaciones que usan JSP tiene un mantenimiento más fácil que las que usan ASP. 

Los lenguajes de Script están bien para pequeñas aplicaciones, pero no encajan bien para aplicaciones grandes. Java es un lenguaje estructurado y es más fácil de construir y mantenimientos grandes como aplicaciones modulares. 
La tecnología JSP hace mayor énfasis en los componentes que en los Scripts, esto hace que sea más fácil revisar el contenido sin que afecte a la lógica o revisar la lógica sin cambiar el contenido. 
La arquitectura EJB encapsula la lógica de p. e.: acceso a BD, seguridad, integridad transaccional y aislamiento de la aplicación. 
Debido a que la tecnología JSP es abierta y multiplataforma, los servidores web, plataformas y otros componentes pueden ser fácilmente actualizados o cambiados sin que afecte a las aplicaciones basadas en la tecnología JSP. 
Conclusión 
Las ventajas sobre utilizar la tecnología Java con respecto a la propietaria de Microsoft (ASP) son, como se ha podido ver, diversas e interesantes. Sin embargo, podemos apuntar una ventaja de la programación en ASP, pues resulta bastante más fácil de aprender que JSP, por lo menos si no se tiene una experiencia previa en programación. Esto es debido a que Java es un lenguaje muy potente, pero un poco más complicado de usar porque es orientado a objetos y la manera de escribir los programas es más rígida. 
 

Ejemplo de código JSP

Java Server Pages (JSP) es una tecnología que nos permite mezclar HTML estático con HTML generado dinámicamente. Muchas páginas Web que están construidas con programas CGI son casi estáticas, con la parte dinámica limitada a muy pocas localizaciones. Pero muchas variaciones CGI, incluyendo los servlets, hacen que generemos la página completa mediante nuestro programa, incluso aunque la mayoría de ella sea siempre lo mismo. JSP nos permite crear dos partes de forma separada. Aquí tenemos un ejemplo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>Welcome to Our Store</TITLE></HEAD>
<BODY>
<H1>Welcome to Our Store</H1>
<SMALL>Welcome,
<!-- User name is "New User" for first-time visitors --> 
<% out.println(Utils.getUserNameFromCookie(request)); %>
To access your account settings, click
<A HREF="Account-Settings.html">here.</A></SMALL>
<P>
Regular HTML for all the rest of the on-line store's Web page.
</BODY></HTML>
 

ASP - Active Server Page
 

ASP es una tecnología desarrollada por MS para crear páginas web de contenido dinámico apoyándose en scripts ejecutados en el servidor. Básicamente una página ASP es una mezcla entre una página HTML y un programa que da como resultado una página HTML que es enviada al cliente (navegador).
Estos scripts o programas pueden en ASP ser escritos en uno de estos dos lenguajes de programación VBScript o JavaScript, pero el más extendido es VBScript, por eso centraremos todo este manual en VBScript y todas las posibilidades que él tiene.


 

Pero, ¿cúal es la diferencia de ASP.net con el ASP común que conocemos?

Mucha, realmente es mucha. Mientras ASP se escribía en VBScript, ASP.net puede ser escrito en cualquier lenguaje soportado por el .net Framework, es decir: VB.net; C# y JScript.net. Si, como has leído, ya no puedes utilizar VBScript sino que debes utilizar VB.net que es lo que más se aproxima. Otro cambio radical es que ASP.net es un lenguaje totalmente orientado a objetos.
 

¿Que mejoras trae ASP.net? ¿Es realmente mejor que ASP?

Sin duda, es mucho mejor que el ASP tradicional, ASP.net trae diversas mejoras entre las cuales se destacan:

  •  Rendimiento: la aplicación de compila en una sola vez al lenguaje nativo, y luego, en cada petición tiene una compilación Just In Time, es decir se compila desde el código nativo, lo que permite mucho mejor rendimiento. También permite el almacenamiento del caché en el servidor  
  •  Rapidez en programación: mediante diversos controles, podemos con unas pocas líneas y en menos de 5 minutos mostrar toda una base de datos y hacer rutinas complejas.  
  •  Servicios Web: trae herramientas para compartir datos e información entre distintos sitios.  
  •  Seguridad: tiene diversas herramientas que garantizan la seguridad de nuestras aplicaciones.  
¿Qué diferencias de sintaxis hay con respecto de ASP 3.0?

Partiendo de la base de que el lenguaje es otro, muchas, al ser programación orientada a objetos y al ser lenguaje de Visual Basic .net todo es muy diferente. Hay que cambiar el pensamiento y todos los viejos conceptos que teníamos de ASP 3.0.
ASP.net es más bien parecido a Visual Basic, en la página, todos los elementos son objetos, activos de servidor (que se generan ahí) y tienen propiedades y métodos.
Vale aclarar que en ASP.net existen los formularios activos del servidor ¿qué es esto?, son como los formularios tradicionales de HTML, pero se le agrega en el TAG FORM el atributo runat=server, y dentro del formulario se agregan los controles activos de servidor. Cuando ocurre un evento, la página se auto envía a si misma y se procesa el controlador para ese evento. Por ejemplo:
<%@ Page language="VB"%>
<%@ Import Namespace="System.data.oledb" %>

<script runat="server">
Sub Nombre_change(sender as object, e as EventArgs)
Mensaje.text = "Buenos días " + Nombre.text
End sub
</script>

<html><body>
<font face="verdana" size=2>Esta es la página de Pablo!</font><br><br>
<form runat="server">
Tu nombre: <asp:TextBox id="Nombre" OnTextChanged="Nombre_change" 
            runat="server" autopostback="true"/>
<asp:label id="Mensaje" runat="server" />
</form>
</body></html>
Tal vez parezca un poco complicado al principio. Pero analicemos el código. Primero si quieren experimentar, copien y peguen el código en el bloc de notas y guárdenlo en su WWWROOT como bienvenida.aspx, tomen nota de que para correr ASP.net deben tener el .NET Framework instalado en su PC, de otra manera no funcionará. Vayan a http://localhost/bienvenida.aspx. Tecleen su nombre y sitúen el cursor fuera del casillero de texto, como por arte de magia aparece un mensaje que nos da buenos días. Pero no es magia en realidad, veamos como funciona realmente.

En el código hay tres colores marcados: verde, rojo y azul.

  •  En las declaraciones del color verde podemos ver que le dan dos instrucciones, la primera, dice al compilador que el lenguaje utilizado es VB.net, de otra manera diría "C#", nótese la ausencia del ".net". En la segunda instrucción, vemos que importa el espacio de nombre System.Data.OleDB, que sirve para trabajar con bases de datos, innecesario en esta página claro, pero lo incluí para que vean como se incluye un espacio de nombre. Un espacio de nombre es algo que te permite realizar determinada función, por ejemplo, si queremos utilizar las poderosas características que trae ASP.net para trabajar con XML, importaríamos el espacio de nombre "System.XML".  
  • En el color rojo podemos observar sólo el método Nombre_change, correspondiente al evento del campo de texto Nombre, o sea, se ejecuta cuando el campo de texto Nombre cambia. Lo único que hace es poner en la etiqueta Mensaje el valor "Buenos días " más el valor que contenga el campo de texto Nombre.  
  •  El color azul es el conocido HTML, pero con un formulario con RunAt="Server", o sea, estos controles se ejecutan en el servidor y luego procesados traen código HTML común, o sea por ej: <input name="Nombre" type="text" id="Nombre">  
Una vez procesado todo el código, envía el siguiente resultado al navegador:
<html><body>
<font face="verdana" size=2>Esta es la página de Pablo!</font><br><br>
<form name="_ctl0" method="post" action="bienvenida.aspx" id="_ctl0">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" 
       value="dDwxMTU3NzQ3OTc0Ozs+jxrUecWhDY6AanZbrFANP9MYypQ=" />

<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform = document._ctl0;
theform.__EVENTTARGET.value = eventTarget;
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>

Tu nombre: <input name="Nombre" type="text" id="Nombre" 
     onchange="__doPostBack('Nombre','')" language="javascript" />
<span id="Mensaje"></span>
</form>
</body></html>
 

PHP - Personal Home Page

El lenguaje PHP es un lenguaje de programación de estilo clásico, con esto quiero decir que es un lenguaje de programación con variables, sentencias condicionales, bucles, funciones.... No es un lenguaje de marcas como podría ser HTML, XML o WML. Está mas cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.
Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina WML.


 

Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del navegador, pero sin embargo para que sus páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP.

El lenguaje de programación PHP es actualmente el más utilizado en la creación de sitios web. Su popularidad se debe a su carácter gratuito pero también a su versatilidad, sencillez y fiabilidad, junto con la facilidad para integrarse con la popular base de datos MySQL.
 

Introducción a PHP

PHP es un lenguaje de programación el cual se ejecuta en los servidores web y que te permite crear contenido dinámico en tus páginas HTML. 

Dispone de múltiples herramientas que te permiten acceder a bases de datos de forma sencilla, por lo que es ideal para crear tus aplicaciones para Internet. 

Es multiplataforma, funciona tanto para Unix (con Apache) como para Windows (con Microsoft Internet Information Server) de forma que el código que se haya creado para una de ellas no tiene porqué modificarse al pasar a la otra. 

La sintaxis que utiliza, la toma de otros lenguajes muy extendidos como C y Perl, por lo que si estás familiarizado con estos, con PHP te encontrarás como en casa.

Para quien conozca las ASP (Active Server Pages) de Microsoft, PHP es muy parecido, sólo que más rápido, gratuito y multiplataforma. 

El funcionamiento es bastante simple: 
 

  • Escribes tus páginas HTML pero con el código PHP dentro. 
  • Guardas la página en el servidor web.
  • Un navegador solicita una página al servidor.
  • El servidor interpreta el código PHP.
  • El servidor envía el resultado del conjunto de código HTML y el resultado del código PHP que también es HTML.
  • En ningún caso se envía código PHP al navegador, por lo que todas las operaciones realizadas son transparentes para el usuario, al que le parecerá que está visitando una páginas HTML que cualquier navegador puede interpretar.

  • Esto tiene mucha utilidad, a continuación tienes un ejemplo de cómo sería el código de una página web con PHP, qué sería lo que recibe el navegador y que sería lo que el usuario visualiza en pantalla.

    Código de una página HTML con PHP
    <html>
    <head>
    <title> Ejemplo PHP </title>
    </head>
    <body>
    <?php
    $navegador = getenv("HTTP_USER_AGENT");
    ?>
    <P>Est&aacute;s usando el navegador 
    <b>
    <?php
    echo($navegador);
    ?>
    </b>.
    </P>
    </body>
    </html> 

    Código recibido por el navegador

    <html>
    <head>
    <title> Ejemplo PHP </title>
    </head>
    <body>
    <P>Est&acute;s usando el navegador 
    <b>Mozilla/4.71 [en] (Win95; I)</b>.
    </P>
    </body>
    </html> 

    Visualización en el navegador

    Estás usando el navegador Mozilla/4.71 [en] (Win95; I).
     

    Supongo que te habrás dado cuenta de que el código PHP, empieza con <?php y termina con ?>, que las instrucciones finalizan con punto y coma ";" y que puedes insertar código donde quieras y cuantas veces haga falta.
     

    XML- Extensible Markup Language

    Introducción al XML

    XML (eXtended Markup Language) es un lenguaje para la definición de lenguajes de etiquetas, lo que llamaríamos "metalenguaje". XML va a indicar como pueden ser creados otros lenguajes por marcas, define las gramáticas de otros lenguajes.

    Este lenguaje es relativamente joven, eso tendiendo en cuenta que la versión 1.0 es una recomendación del World Wide Web Consortium (W3C)1 de Febrero de 1998. Si bien las ideas no son tan nuevas, ya que XML se apoya en la definición del SGML que es un estandar ISO desde los años 80.

    Como acabo de mencionar, el XML es un subconjunto del lenguaje SGML, el cual también es un metalenguaje. El problema del SGML es que es una definición demasiado extensa, engorrosa y que su uso podría generar lenguajes incompletos en su definición como sucede con el HTML.

    Toda la algarabía en torno de este avance se hizo realidad cuando Microsoft lanzó su Internet Explorer 5 - el primer navegador comercial en apoyar las normas XML. 

    Las limitaciones del HTML, lo hacen menos apropiado para las aplicaciones avanzadas del Internet: 

    • HTML es una tecnología de presentación. Es decir, combina los datos con la vista de los mismos. Por lo tanto, es difícil separar las dos funciones.  
    • HTML cuenta con un conjunto fijo de rótulos. No se puede extender con los rótulos específicos de determinada aplicación.  
    • HTML es una tecnología "plana": No es posible especificar una jerarquía de datos, según su contenido o importancia.  
    • HTML no permite la fácil transmisión de datos al cliente para un procesado adicional. Por el contrario, HTML es generado continuamente por el servidor. Lo único que hace el cliente es proporcionar el mecanismo para mostrarlo en una pantalla.  
    • HTML ofrece apenas un modo de visualización de los datos. Si se desea diferentes modos de visualización, usted necesita rehacer o volver a generar los datos y completar la página HTML en el servidor, para luego exhibirla en el equipo del cliente. Si los datos estuvieran separados del formato de exhibición, usted podría descargarlos para los clientes y después mandar varios modos de visualización, a medida que sea necesario.  
      HTML no es muy legible - ni por máquina ni por personas. TTTampoco es muy consistente. Algunos rótulos comienzan y terminan de igual manera. Por ejemplo, <BODY> y </BODY>. En otros casos, hay un rótulo al comienzo pero ninguno al final, como <p> y <br>. Los que manejan HTML, tienen que saber lidiar con este tipo de formateo algo aleatorio.
    HTML y XML son normas creadas por W3C (Consorcio de la "World Wide Web"). Los miembros de este consorcio se dieron cuenta que para continuar con el crecimiento del Internet, tendría que haber alguna manera de separar los datos de sus respectivas páginas web. 

    Así fue como nació XML. Entonces ¿por qué no usar simplemente SGML? Sin entrar en detalles, limitémonos a decir que SGML es sumamente complejo. (De hecho, sus especificaciones cubren más de 500 páginas). En cambio, las normas XML son mucho más sencillas. (Cubren apenas 26 páginas).

    Aunque estrictamente hablando, el XML es tan solo una especificación de marcación de datos, hoy en día el término incluye una diversidad de tecnologías anexas, como el XML DOM, XSL, XLL, XML y VML. 
     

    El estándar XML

    XML publico su recomendacion "XML 1.0" en Febrero del 1998. En Enero de 1999 se publico "NameSpaces in XML" y en Junio del mismo año la recomendación sobre el "Style Sheet Linking".

    Si queréis conocer algo más sobre la actividad del grupo de desarrollo del XML lo podéis hacer en http://www.w3.org/XML/Activity

    Actualmente XML es un estándar abierto del W3C que agrupa una serie de tecnologías:
     

    •          XML. Lenguaje que define la sintaxis del XML que nos ayudará a crear nuevos lenguajes de etiquetas.  
    •          XLink. Define la forma estándar de añadir enlaces dentro de un documento XML.  
    •          XPointer y XFragments. Que define como poder hacer referencias a partes dentro del documento XML. Es como las URL, pero haciendo referencia a partes dentro del documento XML.  
    •         XSL (eXtensible StyleSheet Language). Define el estándar para las hojas de estilo de XML. Es la ampliación y modificación de las CSS. XSL está basado en XSLT.  
    •          XSLT (XSL Transformations). Es un lenguaje de transformación que se usa para ordenar, añadir y eliminar etiquetas y atributos.  
    •          XML Schemas. Ayuda a los desarrolladores a definir estructuras precisas basadas en XML.


    Otras tecnologías que van ligadas tanto al XML, como al HTML son:

    •          CSS (Cascading Style Sheets). Es la especificación sobre las Hojas de Estilo.  
    •          DOM (Document Object Model). Es un conjunto estandar de funciones que nos van a permitir modificar los documentos XML y HTML.  


    Ventajas del XML

    1.       XML es un lenguaje independiente de la plataforma sobre la que se trabaje. 

    2.       Es UNICODE, lo que hace que pueda ser utilizado en múltiples lenguajes. 

    3.       Independencia de la información con respecto a la representación. 

    4.       Cuando se incluye un cambio en el documento no supone un problema para su interpretación, ya que siempre hay que que leer el DTD. 

    5.       XML sigue un estándar. 

    6.       Los datos solo dependen de los datos en si, no de su formato. 

    7.       Para acceder a la información se puede utilizar una representación a alto nivel y no a bajo nivel como con el HTML. 
     

    El Documento XML

    La norma XML 1.0 se puede encontrar en el sitio www.w3.org/TR/REC-xml (sitio en inglés). Tenga en cuenta, sin embargo, que este no es el mejor lugar para comenzar a aprender acerca de XML. No obstante, es una buena referencia para consultar, una vez termine de leer este artículo. 

    Cada documento XML tiene una estructura lógica y otra física. Físicamente el documento está compuesto por entidades, las cuales se agrupan de forma jerárquica, existiendo una sola entidad raíz. Lógicamente el documento se compone de declaraciones, elementos, comentarios, referencias a carácter e instrucciones de proceso.

    Parte física

    <persona edad=24>
      <nombre>Victor</nombre>
      <apellido>Cuervo</apellido>
      <foto origen=’victor.jpg’ />
    </persona>

    Parte lógica

    <!ELEMENT persona (nombre,apellido+,foto)>
    <!ELEMENT nombre (#PCDATA)>
    <!ELEMENT apellido (#PCDATA)>

    <!ELEMENT foto (EMPTY)>

    <!ATTLIST persona edad CDATA #IMPLIED>
    <!ATTLIST foto origen CDATA #REQUIRED>
     

    Como vemos, la estructura de la parte física esta definida por la parte lógica.
     

    Elementos 

    El documento deberá de tener uno o varios elementos. Uno de esos elementos será el elemento raíz o elemento documento. Este elemento será único en el documento.

    Documento bien formado

    <personas>
      <persona>
        <nombre>Victor</nombre>
      </persona>
      <persona>
        <nombre>Luis</nombre>
      </persona>
    </personas>

     Documento erróneo

    <persona>
      <nombre>Victor</nombre>
    </persona>

    <persona>
      <nombre>Luis</nombre>
    </persona>

    Vemos que el documento erróneo no tiene un elemento raíz. Ya que el elemento persona no es único. Los elementos pueden tener contenido o ser elementos vacios:
     

    Marcas

    Dentro del documento tendremos texto y elementos de marcación. Los elementos de marcación, a los cuales llamaremos etiquetas irán delimitados por los caracteres menor (<) y mayor (>).

    Tenemos dos tipos de elementos: aquellos que van delimitados por una etiqueta de inicio (<etiquetaInicio>) y otra de fin (</etiquetaFin>) y los que son elementos vacíos, que tiene una sola etiqueta (<etiquetaUnica />).

    Elementos correctos

    <nombre>Victor</nombre>

    <imagen origen="foto.jpg" />

    Elementos erróneos

    <nombre>Victor<nombre>

    <imagen origen="foto.jpg">

    Estas etiquetas permiten anidar los elementos del documento. De tal manera que quede una estructura de anidacion jerárquica.

    Estructura correcta

    <persona>

    <nombre>Victor</nombre>
    <imagen origen="foto.jpg" />< /FONT> 

    </persona>

     Estructura errónea

    <persona><nombre>

    Victor

    </persona></nombre
     

    Atributos

    Los atributos especificarán características o propiedades de los elementos de un documento. Los valores de los atributos deberán de ir entre comillas, ya sean comillas simples o dobles.

    Atributos correctos

    <imagen origen="foto.jpg" />

    <imagen origen=’foto.jpg’ />

    Atributos incorrectos

    <imagen origen=foto.jpg />
     

    Sintaxis

    El lenguaje XML es sensible a mayúsculas. Es decir, que las etiquetas <NOMBRE>, <nombre> y <nomBre> son diferentes.

    Los elementos, entidades y atributos deben de empezar por una letra que puede ir seguida de letras, números, guiones, rayas, punto o dos puntos

    Las letras XML (en cualquiera de sus combinaciones de mayúsculas y minúsculas) no puede utilizarse como nombre de elemento, atributo o entidad.
     

    Comentarios 

    Para añadir un comentario dentro del documento XML deberemos de hacerlo de la siguiente forma:

    <!-- comentario -->
     

    Entidades

    Las entidades deberán de ir entre "&" y ";". Las entidades definidas por XML son:

    Las entidades deberán de ir entre "&" y ";". Las entidades definidas por XML son:

    &amp;     &

    &lt;   <

    &gt;   >

    &apos;   ‘

    &quot;  "
     

    Secciones CData 

    Las secciones Cdata aparecen por si queremos que un determinado texto sea reconocido como caracteres de texto y no como elementos de marcado, y evitar así, el tener que usar múltiples entidades.

    Estas secciones se definen de la siguiente forma

    <![CDATA[ contenido ]]> 

    Dentro de estas secciones no podremos, desgraciadamente, utilizar la cadena "]]>", ya que es la que marca el final de esta sección.

    <?xml version="1.0"?>

    <INFORMACION>
    <![CDATA[

      <HTML><HEAD><TITLE> Mi pagina </TITLE></HEAD>
      <BODY>
      Texto de la pagina
      </BODY></HTML>

    ]]>

    </INFORMACION>
     

    Prologo y declaración del tipo de documento 

    Los documentos XML deben de comenzar con una declaración XML, en la que se especifica la versión de XML que se esta utilizando. Para ello añadiremos al principio del documento la siguiente línea:

    <?xml version="1.0"?>

    Por el momento se usará el número 1.0, ya que solamente está en uso la versión 1.0 del lenguaje. Pero en un futuro, este campo servirá a los analizadores a verificar la versión del documento y ver así si la soportan o no.

    Además de la versión, podemos identificar el tipo de codificación de datos del documento: US-ASCII, UTF-8,…

    Después de haber realizado la declaración del documento XML podemos indicarle sobre que DTD se valida. El DTD (Definición del Tipo de Documento) que, a grandes rasgos, podemos decir que define los elementos que el documento XML podrá tener, así como una serie de reglas a cumplir.
     

    Tipos de documentos

    Dentro de los documentos XML distinguimos dos tipos de documentos: 

    Documentos válidos 
    Documentos bien formados 
    Documentos bien formados

    Un documento XML es un documento bien formado si tiene una estructura física que cumple las normas recogidas en la especificación XML v1.0 y que hemos visto anteriormente

    Documentos válidos

    Un documento XML es un documento válido cuando además de ser un documento bien formado esta sujeto a un DTD. 
     

    Documentos aislados

    Un "documento aislado" es aquel en el que no existen declaraciones de marcas externas al documento. Este valor será valido para el analizador, ya que sabe que este documento no está sujeto a marcas. Si indicamos que el documento no es aislado, estamos diciendo que ese documento puede tener declaraciones de marcas externas. 

    Para indicar que un documento es aislado 

    <?xml version="1.0"standalone= ’yes’?>

    y un documento no aislado:

    <?xml version="1.0"standalone=’no’?>
     

    Sintaxis correcta y errada de un documento XML

    Hay dos maneras de codificar un documento XML correctamente, para que este sea o bien formado o válido. 
    Un documento está bien formado, si se atiene a las reglas de la norma XML. 

    El documento es válido, si sus datos se conforman al esquema o plantilla del documento.
    La validez es importante cuando se desea intercambiar datos por medio de XML. ¿Qué tal si tuviera una factura en XML y la quisiera enviar a mis socios? Sería muy importante poder decirles qué formato se requiere, y a qué formato se ajusta el documento.

    En la actualidad hay dos maneras de especificar los documentos XML: Primero está el DTD (Definición de Tipo de Documento), y luego está el XML Scheme (Esquema XML). 

    El DTD forma parte de la norma XML 1.0. Por lo tanto, en la actualidad es el más prevaleciente. El problema con el DTD es que su sintaxis no es "intuitiva". Otro defecto es que no le permite especificar el tipo de los diversos elementos.

    En vista de estas limitaciones, el consorcio W3C está considerando la opción del Esquema XML. Este esquema - propuesto originalmente por Microsoft y por otras empresas de la industria XML - se vale de una sintaxis parecida a la del XML para describir los documentos. 

    Además, el Esquema XML tiene la habilidad de describir los tipos de elemento que contiene el documento (a través de XML-Data). En nuestra opinión, es más fácil para los no profesionales en SGML, leer, entender y crear el Esquema XML, que el DTD.

    Para darle una idea de las diferencias entre el XML Scheme y el DTD, veamos los archivos que bajamos del Internet. Estos archivos muestran los DTD para nuestros datos de vuelo, comparados con los mismos datos en Esquema XML. Cuál es más fácil de entender ¿el DTD o el Esquema XML?

    El XML le ofrece la habilidad de definir fácilmente sus propios tipos y rótulos de documentos. Pero si todo el mundo se pusiera a definir documentos a su manera, nadie podría intercambiar documentos parecidos con los demás. 

    Por lo tanto, se han propuesto dos grupos de normas de "documento comunes" y las empresas están acogiéndose muy rápidamente a una u otra de estas dos normas.

    BizTalk. Esta norma, liderada por Microsoft, pretende crear una base para los documentos comerciales más comunes, como las facturas y las órdenes de compra. 

    XML.org. Este sitio es básicamente una iniciativa en contra de Microsoft, la cual busca promover el uso del DTD para definir los principales tipos de documento comercial.
    Es muy pronto todavía para saber cuál de las dos normas resultará triunfante. Lo más probable es que perduren dos o tres formatos populares y que se cree un software de conversión que permita pasar los documentos de un formato a otro.
     

    Procedimiento a Seguir por una Empresa que desea Comercializar sus Productos a través de un Sistema Web.

    Explicaremos en esta sección los lineamientos para desarrollar un sistema web que permita a las empresas el comercializar directamente sus productos a usuarios finales utilizando como vía Internet. Este objetivo se cumple a través de la implementación de una tienda virtual con catálogo de producto y habilitación de medios de pago que harán posible el concretar la transacción comercial.
     

    Algunas de las características que tienen estos sistemas son los siguientes:
     

  • Sistema integrador con diversas funcionalidades dispuestas para la canalización de transacciones comerciales vía Internet de manera fácil y segura.  
  • El ciclo comercial que se habilita reproduce las opciones disponibles en cualquier transacción comercial del mundo físico, de este modo el usuario final podrá visualizar el producto de su preferencia, seleccionarlo y pagarlo, todo a través de Internet.  
  • Mantiene un sistema de administración de recursos o ERP interno con información de los almacenes de la tienda virtual.  
  • Su entorno amigable facilita a usuarios y administradores la interacción y mantenimiento de los catálogos.  

  •  

     

    En términos sencillos, lo primero que debe conocer una empresa es que requiere de las siguientes herramientas:
     

  • Un computador PC para el desarrollo de la aplicación. 
  • Un programa editor de páginas WEB (Netscape composer, Front Page, Dreamweaver ,etc). 
  • Se necesita un espacio en un servidor para poder poner sus páginas WEB; hay de muchos tipos y de todos los precios desde gratuitos hasta pagados. 
  • Cualquier programa editor de archivos gráficos. Entre ellos tenemos Corel Draw, Free Hand, Page Maker, etc. 
  • Cualquier programa editor de textos en formato ASCII. 

  • Algunas de las consideraciones que se tienen que tomar en cuenta a la hora de construir el sitio web son las soluciones a:
     

  • Como pagar ? 
  • Gastos de envío 
  • Plazos de entrega 
  • Garantía 
  • Devolución de productos 
  • Datos del cliente 
  • Impuestos 
  • Política de seguridad y confidencialidad 

  • Dentro de las técnicas del desarrollo de cualquier sistema de información esta el partir del levantamiento de los requerimientos del sistema, planificación del proyecto, seguimiento, definir el ciclo de vida del proyecto, asignación de recursos con estimado de costos, fase de análisis (de acuerdo al modelo seleccionado), diseño del sistema (de acuerdo al método seleccionado), construcción del sistema, pruebas y puesta en producción.

    Dentro del párrafo anterior hemos escrito sobre una forma tradicional de para llevar adelante un proyecto de este tipo. Sin embargo, debido al avance de las nuevas tecnologías y la diversidad de plataformas de explotación de los sistemas, se plantea la necesidad de separar, al máximo posible, la especificación de la funcionalidad de un sistema, de la especificación de la implementación de dicha funcionalidad en una plataforma específica.

    Los sistemas de información Web (SIW) son, en la actualidad, instrumentos imprescindibles para la divulgación de información, así como para la dotación de servicios a los usuarios de la red. 
    Uno de los problemas con los que nos encontramos en el desarrollo de SIW, es que aunque existen algunas aproximaciones metodológicas, no existe una metodología universalmente aceptada que permita el desarrollo de este tipo de sistemas. Además, las metodologías tradicionales no son siempre válidas para este tipo de desarrollos. No sólo no proporcionan todas las técnicas y notaciones requeridas para modelar un SIW, sino que además son, en general, “pesadas”, y no facilitan el desarrollo rápido de aplicaciones. 
    Por esta razón, se hace necesario una metodología que ayude y guíe en el proceso de desarrollo de SIW. Y la tendencia actual en el campo del desarrollo software, apuesta por un lado, por el uso de prácticas ágiles como las de eXtreme Programming, y por otra parte, por arquitecturas dirigidas por modelos, como propone OMG con MDA. 
     

    Metodologias para el desarrollo de sistemas de información web:

    MIDAS, es una metodología dirigida por modelos, para el desarrollo ágil de sistemas de información Web. 
    En esta línea ha surgido MDA, que propone una arquitectura basada en modelos, primero independientes (PIM) y luego específicos (PSM) de la plataforma destino. En este trabajo se propone un marco metodológico para el desarrollo de Sistemas de Información basado en MDA, específico para la plataforma Web, tecnología XML y objeto-relacional, denominado MIDAS. Se proporcionan los diversos modelos PIM y PSM, y guías para la transformación de los mismos.

    Palabras clave: MDA, metodologías orientadas a modelos, marcos metodológicos.

    En la actualidad, el enfoque para el desarrollo de los sistemas de información de las empresas se realiza a partir de la tecnología de desarrollo. Desde el punto de vista de la tecnología de la información, este planteamiento es inadecuado puesto que es más importante el conocimiento del propio negocio que la plataforma y tecnología específica de implementación. Siguiendo esta directriz, OMG (Object Management Group) ha creado MDA (Model Driven Architecture)[9]. MDA es un marco de trabajo para el desarrollo de software, orientado a modelos, que plantea la obtención del modelado del negocio, en base a modelos independientes de la plataforma (PIM), para después transformarlos en modelos específicos de la plataforma (PSI) a partir de unas guías de transformación entre los diferentes modelos.
    El trabajo aquí presentado es un marco metodológico orientado a modelos, para el desarrollo de sistemas de información Web (SIW) con tecnología XML y objeto relacional (OR), denominado MIDAS1, donde se proponen modelos PIM y PSM y algunas guías para la generación de modelos y para la transformación de los mismos.

    MIDAS [1,4] es un marco metodológico orientado a modelos para el desarrollo de Sistemas de Información Web con tecnología XML y OR.
    Los modelos propuestos (ver figura 1) se agrupan según una dimensión estructural y una dimensión de comportamiento, en base a las diferentes dimensiones del modelado de los SIW [10]. Por otra parte, el límite entre los modelos independientes de la plataforma y específicos de ella, lo fija el diseño lógico.

    Modelos de MIDAS

    MDA propone tres grupos de modelos diferentes, dentro de los cuales se enmarcan todos los modelos de MIDAS.
     
     

  • Modelos independientes de computación – CIM 

  • Los CIM se corresponden con los modelos de dominio y de negocio del sistema. En MIDAS, se propone el diagrama de clases y el diagrama de casos de uso, respectivamente para modelar el contexto del sistema.
     
  • Modelos independientes de la plataforma – PIM 

  • Los PIM proporcionan la especificación formal del sistema sin tener en cuenta aspectos técnicos ni la tecnología específica de implementación. A continuación se presentan los diferentes modelos, agrupados según una dimensión estructural y una dimensión de comportamiento:
    > PIM de la Dimensión Estructural. Recogen, a nivel conceptual, el contenido, el
    hipertexto y la presentación. A nivel de contenido se propone el diagrama de clases como modelo conceptual de datos. A nivel de hipertexto se propone realizar el modelo de hipertexto con dos técnicas: el modelado conceptual de fragmentos y de navegación propuestos por RMM [2], usando respectivamente los diagramas de fragmentos y de navegación propuestos en UWE [3]. Para el modelado de la presentación, se propone usar el diagrama de presentación definido también en UWE [3].
    > PIM de la Dimensión de Comportamiento. Recogen, a nivel conceptual, el comportamiento y la lógica de negocio del sistema, en base a la identificación de servicios. Se propone el modelo de casos de uso, el modelo de servicios y el modelo de composición de servicios. Como modelo de servicio se propone el diagrama de colaboración, propuesto en UML y el diagrama de servicio, que modela cada uno de los servicios identificando las operaciones que realiza. Como modelo de composición de servicio se proponen los diagramas de actividad y de
    transición de estados, además del diagrama de secuencia,todos ellos propuestos en UML.
     
  • Modelos dependientes de la plataforma - PSM 

  • Los PSM proporcionan modelos en términos de constructores de implementación
    disponibles en una tecnología específica. Los modelos se presentan agrupados según una dimensión estructural y de comportamiento.
    > PSM de la Dimensión Estructural. Son los modelos que representan, desde el nivel de diseño lógico hasta la implementación. la presentación y el hipertexto con la tecnología XML y la persistencia o contenid, del sistema con la tecnología OR. A nivel de presentación, el modelo lógico se implementaría con XSL. A nivel de hipertexto, se propone representar el modelo lógico de fragmentos y de navegación con Xlink en UML extendido; y los fragmentos a nivel lógico con XMLschema en UML extendido [11]. A nivel de contenido, el modelo lógico de datos se lleva a cabo de acuerdo con la propuesta definida en [6,7,8].
    > PSM de la Dimensión de Comportamiento. Son los modelos enfocados a recoger el comportamiento del sistema en base a lenguajes específicos. Para el modelado lógico de servicio se propone una extensión de UML para WSDL [5]. Para el modelado lógico de composición de servicios se propone el uso de técnicas relacionadas con la orquestación y coreografía de servicios.

    Transformación de modelos en MIDAS

    En MDA, las reglas de transformación proporcionan especificaciones para la transformación de modelos. Estas reglas se aplican para transformar modelos PIM a PIM, generalmente asociadas a los diferentes pasos que se suceden entre los modelos de especificación, análisis y diseño; modelos PIM a PSM, cuando el PIM está lo suficientemente refinado como para poder ser transformado en un modelo dependiente de la infraestructura final; modelos PSM a PSM aplicable al refinamiento de los modelos dependientes de la plataforma; y modelos PSM a PIM para permitir la abstracción de modelos a partir de implementaciones específicas de una plataforma y dependientes de una tecnología concreta.
    En MIDAS, las reglas de transformación de la dimensión estructural se encuentran definidas en [1]. En la dimensión de comportamiento existen diversas propuestas relacionadas con la obtención del modelo de hipertexto a partir del modelo de casos de uso y con la obtención del modelo lógico de servicio a partir del modelo de servicio.

    Se ha descrito MIDAS, un marco metodológico orientado a modelos para plataforma Web y tecnología XML y objeto-relacional.
    MIDAS se basa en la propuesta MDA de OMG y por ello propone tanto modelos
    independientes de plataforma como modelos específicos de plataforma en base a los aspectos estructurales y de comportamiento. MIDAS propone también reglas de transformación entre los diferentes modelos.
    Como trabajos futuros, se está trabajando en la definición de un proceso ágil de desarrollo para la arquitectura de MIDAS [1] y el marco metodológico aquí presentado. También se quiere automatizar la implementación de los modelos y las transformaciones entre ellos, en una herramienta CASE.
     

    Conclusiones

    En los párrafos anteriores hablamos sobre algunas metodologías para llevar adelante el desarrollo de aplicaciones web así como algunas consideraciones para el desarrollo de sitios para tiendas virtuales.. A continuación de acuerdo a la investigación realizada por nuestro equipo, resumimos los pasos a seguir (a nuestro criterio) para desarrollar un sistema a la medida de una empresa para que el pueda colocar a la venta sus productos:

    1. Levantamiento de los requerimientos del cliente para dimensionar el proyecto, para lo cual se requiere aplicar las técnicas de análisis de sistemas para recopilar información.
    2. Planificación del proyecto; estimado de costos y mano de obra requerida, elaboración del cronograma del proyecto.
    Dentro del plan del proyecto dependiendo del ciclo de vida seleccionado (cascada, basado en prototipo, etc.) se requiere seleccionar una metodología para el diseño y posterior desarrollo del sistema.
    3. Desarrollo de modelaje de la infraestructura requerida (servidor web, servidor de base de datos, servidor de aplicaciones).
    4. Desarrollo del modelo para dibujar las especificaciones formales del sistema:

  • Modelo de la presentación del sistema.
  • Modelo del comportamiento y lógica del negocio del sistema.

  • 5. Selección de las herramientas para el desarrollo del sistema (despliegues), base de datos, herramientas “browser”, servidor web).

    Dentro de su presupuesto y en las actividades de planificación del proyecto, se tiene que considerar los siguientes elementos: dominio, alojamiento (hosting), planificación y diseño de la web, marketing de buscadores y otras acciones de marketing.

    Dominio

    Siendo imprescindible dominio propio, los dominios gratuitos son lentos, y acribillan al visitante con pop-ups de publicidad y los subdominios son más difíciles de recordar y no proporcionan una buen imagen de marca.

    Es interesante adquirir todos aquellos dominios que estén relacionados con la empresa: nombre comerciales, marcas, expresiones comunes, etc. y tener en cuenta las distintas posibilidades: .com, .org, .net, .(pais), .info... para protegerla contra intereses maliciosos de terceros o de la competencia.

    Alojamiento (Hosting)

    Si la empresa no dispone de una importante infraestructura y equipo técnicos, no es conveniente asumir internamente las tareas de alojamiento de la web. Sea cual sea la web puede externalizarse el servicio de alojamiento ya sea con un servidor propio o compartido.

    Existen multitud de tarifas en función de las características de cada alojamiento, teniendo en cuenta por ejemplo, cantidad de espacio de disco, sistema operativo del servidor, tráfico, servidor seguro, programas preinstalados, estadísticas, número de cuentas de correo, enlace con bases de datos, etc.

    Planificación y Diseño de la web

    El coste de estos servicios será variable en función de la complejidad del proyecto, número de personas que deben trabajar en él, tiempo del que se dispone, programación, idiomas, redacción de textos ,etc. Estos costos pueden ir desde 1.200 a 60.000€ (1,000- 50,000$).

    Una vez la web esté funcionando, la empresa tendrá destinar también un dinero para su mantenimiento que dependerá del número y complejidad de las actualizaciones previstas o bien facilitar formación específica en la organización para responsabilizarse de estas tareas.

    Marketing de buscadores

    Un mínimo que incluye el trabajo y las tarifas que cobran los buscadores y directorios por la admisión de nuevas webs puede estar alrededor de 900€, aunque dependerá de la dimensión del proyecto (internacional o nacional, varios idiomas, etc).

    Otras acciones de marketing on-line u off-line

    Depende del alcance del proyecto, desde banners a e-mailings, anuncios en revistas, notas de prensa, etc.
     

    Infografia
     
    JSP  La página el rincon del programador describe a JSP como una tecnología basada en Java y se describen los
    beneficios del JSP.


     La página desarrollo Web realiza una comparación de las ventajas de JSP contra ASP
     

    Algunas ventajas de JSP y ejemplo de código JSP

    ASP
    Se describe que es ASP.NET y se dan algunas diferencias con el ASP tradicional 3.0 Conceptos básicos de ASP

    PHP

    Conceptos básicos de PHP

    Se hace una introducción a PHP y se describe una página HTML con el código PHP por dentro

    Página donde se hace una introducción teórica a PHP


    XML
    Se define al XML como un lenguaje de etiquetas , se hablan de sus ventajas y se muestran documentos XML

    Se describe en forma de defición el CML y HTML


     
    Páginas para consultar las reglas para desarrollar sistemas web y tiendas virtuales