topicos_avanzados_de_bd_II

17
II BASES DE DATOS Y TECNOLOGÍAS WEB 2.1 Herramientas y tecnologías de desarrollo para la Web 2.1.1 Intercambio electrónico de datos (EDI) 2.1.2 e-commerce y e-bussiness 2.1.3 e-Learning 2.1.4 Sistemas de seguridad para desarrollos Web 2.2 XML (Extensible Markup Language) 2.2.1 Fundamentos de XML 2.2.2 Diseño de aplicaciones Web usando XML 2.2.3 Productos XML 2.2.3.1 Middleware 2.2.3.2 Bases de datos 2.2.3.3 Sistemas de administración de contenidos 2.2.3.4 Motores de consulta 2.1 Herramientas y tecnologías de desarrollo para la web La visualización de una página web de la World Wide Web normalmente la URL de la página en el navegador web, o siguiendo un enlace de hipertexto a esa página o recurso. En ese momento el navegador comienza una serie de comunicaciones, transparentes para el usuario, para obtener los datos de la página y visualizarla. El primer paso consiste en traducir la parte nombre del servidor de la URL en una dirección IP usando la base de datos distribuida de Internet conocida como DNS. Esta dirección IP es necesaria para contactar con el servidor web y poder enviarle paquetes de datos. El siguiente paso es enviar una petición HTTP al servidor Web solicitando el recurso. En el caso de una página web típica, primero se solicita el texto HTML y luego es inmediatamente analizado por el navegador, el cual, después, hace peticiones adicionales para los gráficos y otros ficheros que formen parte de la página. Las estadísticas de popularidad de un sitio web normalmente están basadas en el número de páginas vistas o las peticiones de servidor asociadas, o peticiones de fichero, que tienen lugar. Al recibir los ficheros solicitados desde el servidor web, el navegador renderiza la página tal y como se describe en el código HTML, el CSS y otros lenguajes web. Al final se incorporan las imágenes y otros recursos para producir la página que ve el usuario en su pantalla. La mayoría de las páginas web contienen hiperenlaces a otras páginas relacionadas y algunas también contienen descargas, documentos fuente, definiciones y otros recursos web.

Transcript of topicos_avanzados_de_bd_II

Page 1: topicos_avanzados_de_bd_II

II BASES DE DATOS Y TECNOLOGÍAS WEB

2.1 Herramientas y tecnologías de desarrollo para la Web 2.1.1 Intercambio electrónico de datos (EDI) 2.1.2 e-commerce y e-bussiness 2.1.3 e-Learning 2.1.4 Sistemas de seguridad para desarrollos Web 2.2 XML (Extensible Markup Language) 2.2.1 Fundamentos de XML 2.2.2 Diseño de aplicaciones Web usando XML 2.2.3 Productos XML 2.2.3.1 Middleware 2.2.3.2 Bases de datos 2.2.3.3 Sistemas de administración de contenidos 2.2.3.4 Motores de consulta

2.1 Herramientas y tecnologías de desarrollo para la web

La visualización de una página web de la World Wide Web normalmente la URL de la página en el navegador web, o siguiendo un enlace de hipertexto a esa página o recurso. En ese momento el navegador comienza una serie de comunicaciones, transparentes para el usuario, para obtener los datos de la página y visualizarla.

El primer paso consiste en traducir la parte nombre del servidor de la URL en una dirección IP usando la base de datos distribuida de Internet conocida como DNS. Esta dirección IP es necesaria para contactar con el servidor web y poder enviarle paquetes de datos.

El siguiente paso es enviar una petición HTTP al servidor Web solicitando el recurso. En el caso de una página web típica, primero se solicita el texto HTML y luego es inmediatamente analizado por el navegador, el cual, después, hace peticiones adicionales para los gráficos y otros ficheros que formen parte de la página. Las estadísticas de popularidad de un sitio web normalmente están basadas en el número de páginas vistas o las peticiones de servidor asociadas, o peticiones de fichero, que tienen lugar.

Al recibir los ficheros solicitados desde el servidor web, el navegador renderiza la página tal y como se describe en el código HTML, el CSS y otros lenguajes web. Al final se incorporan las imágenes y otros recursos para producir la página que ve el usuario en su pantalla.

La mayoría de las páginas web contienen hiperenlaces a otras páginas relacionadas y algunas también contienen descargas, documentos fuente, definiciones y otros recursos web.

Page 2: topicos_avanzados_de_bd_II

Esta colección de recursos útiles y relacionados, interconectados a través de enlaces de hipertexto, es lo que ha sido denominado como 'red' (web, en inglés) de información. Al trasladar esta idea a Internet, se creó lo que Tim Berners-Lee llamó WorldWideWeb (un término escrito en CamelCase, posteriormente desechado) en 1990.

Si un usuario accede de nuevo a una página después de un pequeño intervalo, es probable que no se vuelvan a recuperar los datos del servidor web de la forma en que se explicó en el apartado anterior. Por defecto, los navegadores almacenan en una caché del disco duro local todos los recursos web a los que el usuario va accediendo. El navegador enviará una petición HTTP sólo si la página ha sido actualizada desde la última carga, en otro caso, la versión almacenada se reutilizará en el paso de renderizado para agilizar la visualización de la página.

Esto es particularmente importante para reducir la cantidad de tráfico web en Internet. La decisión sobre la caducidad de la página se hace de forma independiente para cada recurso (imagen, hoja de estilo, ficheros JavaScript, etc, además de para el propio código HTML). Sin embargo en sitios de contenido muy dinámico, muchos de los recursos básicos sólo se envían una vez por sesión. A los diseñadores de sitios web les interesa reunir todo el código CSS y JavaScript en unos pocos ficheros asociados a todo el sitio web, de forma que pueden ser descargados en las cachés de los usuarios y reducir así el tiempo de carga de las páginas y las peticiones al servidor.

Hay otros componentes de Internet que pueden almacenar contenido Web. El más común en la práctica son los frecuentes firewalls de empresa y académicos donde se pueden almacenar los recursos web solicitados por un usuario para el beneficio de todos los que estén conectados a ese firewall. Algunos buscadores como Google, Yahoo!, GlowBoom o AltaVista también almacenan contenidos de sitios Web.

Aparte de las utilidades creadas en los servidores Web que pueden determinar cuándo los ficheros físicos han sido actualizados, los diseñadores de páginas web generadas dinámicamente pueden controlar las cabeceras HTTP enviadas a los usuarios, de forma que las páginas intermedias o sensibles a problemas de seguridad no sean guardadas en caché. Por ejemplo, en los bancos on line y las páginas de noticias se utiliza frecuentemente este sistema.

La web de hoy en día.

Page 3: topicos_avanzados_de_bd_II

2.1.1 Intercambio electrónico de datos

EDI es un conjunto coherente de datos, estructurados conforme a normas de mensajes acordadas, para la transmisión por medios electrónicos, preparados en un formato capaz de ser leído por el ordenador y de ser procesado automáticamente y sin ambigüedad.

También es aquella parte de un sistema de información capaz de cooperar con otros sistemas de información mediante el intercambio de mensajes EDI.

Funcionalidad.

Intercambio electrónico de datos es el intercambio entre sistemas de información, por medios electrónicos, de datos estructurados de acuerdo con normas de mensajes acordadas. A través del EDI, las partes involucradas cooperan sobre la base de un entendimiento claro y predefinido acerca de un negocio común, que se lleva a cabo mediante la transmisión de datos electrónicos estructurados.

En el EDI, las interacciones entre las partes tienen lugar por medio de aplicaciones informáticas que actúan a modo de interfaz con los datos locales y pueden intercambiar información comercial estructurada. El EDI establece cómo se estructuran, para su posterior transmisión, los datos de los documentos electrónicos y define el significado comercial de cada elemento de datos. Para transmitir la información necesita un servicio de transporte adicional (por ejemplo, un sistema de tratamiento de mensajes o de transferencia de ficheros).

Debe destacarse que el EDI respeta la autonomía de las partes involucradas, no impone restricción alguna en el procesamiento interno de la información intercambiada o en los mecanismos de transmisión.

Beneficios.

EDI sin duda nos ofrece una amplia gama de oportunidades de trabajo y beneficios para nuestra empresa entre los que se destacan :

• Agilización de procesos comerciales • Importante disminución de errores en los documentos • Disminución de stocks, debido a la facilidad de aplicación de técnicas "Just-

in-Time" • Ahorro de costos de administración • Mejora de la competitividad de la empresa que lo adopta.

Page 4: topicos_avanzados_de_bd_II

2.1.2 e-commerce y e-bussiness.

e-commerce

El comercio electrónico, también conocido como e-commerce (electronic commerce en inglés), consiste en la compra y venta de productos o de servicios a través de medios electrónicos, tales como Internet y otras redes informáticas. Originalmente el término se aplicaba a la realización de transacciones mediante medios electrónicos tales como el Intercambio electrónico de datos, sin embargo con el advenimiento de la Internet y la World Wide Web a mediados de los años 90 comenzó a referirse principalmente a la venta de bienes y servicios a través de la Internet, usando como forma de pago medios electrónicos, tales como las tarjetas de crédito.

La cantidad de comercio llevada a cabo electrónicamente ha crecido extraordinariamente debido a la propagación de la Internet. Una gran variedad de comercio se realiza de esta manera, estimulando la creación y utilización de innovaciones como la transferencia de fondos electrónica, la administración de cadenas de suministro, el marketing en Internet, el procesamiento de transacciones en línea (OLTP), el intercambio electrónico de datos (EDI), los sistemas de administración del inventario, y los sistemas automatizados de recolección de datos.

La mayor parte del comercio electrónico consiste en la compra y venta de productos entre personas y empresas, sin embargo un porcentaje considerable del comercio electrónico consiste en la adquisición de artículos virtuales (software y derivados en su mayoría), tales como el acceso a contenido "premium" de un sitio web.

El comercio electrónico realizado entre empresas es llamado en inglés Business-to-business o B2B. El B2B puede estar abierto a cualquiera que esté interesado (como el intercambio de mercancías o materias primas), o estar limitado a participantes específicos pre-calificados (mercado electrónico privado).

Usos.

El comercio electrónico puede utilizarse en cualquier entorno en el que se intercambien documentos entre empresas: compras o adquisiciones, finanzas, industria, transporte, salud, legislación y recolección de ingresos o impuestos.

Page 5: topicos_avanzados_de_bd_II

Ya existen compañías que utilizan el comercio electrónico para desarrollar los aspectos siguientes:

• Creación de canales nuevos de marketing y ventas. • Acceso interactivo a catálogos de productos, listas de precios y folletos

publicitarios. • Venta directa e interactiva de productos a los clientes. • Soporte técnico ininterrumpido, permitiendo que los clientes encuentren por

sí mismos, y fácilmente, respuestas a sus problemas mediante la obtención de los archivos y programas necesarios para resolverlos.

e-commerce.

e-bussiness.

E-business es la mejora en el funcionamiento de un negocio por medio de la conectividad, la conexión de la cadena de valor entre negocios, proveedores, aliados y sus clientes con el fin de lograr mejores relaciones con los clientes, reducir costos al desintermediar e integrar procesos de negocio, además de penetrar nichos o segmentos de mercado rentables.

Page 6: topicos_avanzados_de_bd_II

Esta conectividad es manejada por internet y otras tecnologías emergentes que están redefiniendo los patrones de compra y venta y en general, los comportamientos de los consumidores e inversionistas en el mundo. Alrededor de este tema se han desarrollado muchos otros conceptos relacionados pero no similares entre sí. Cuando hablamos de e-commerce hacemos referencia a la compra y venta de productos y servicios en la red. En otras palabras, este concepto hace parte del concepto global de e-business.

El e-business no es un negocio de tecnología de las empresas, es el reto de un nuevo modelo de negocio y el cambio estratégico de las empresas, de las industrias, de los mercados y en general de la economía.

Es importante entender que cuando se habla de e-business, se hace referencia al modelo de economía digital donde se integran transacciones business to business, business to consumer, business to goverment, business to employee, entre otros conceptos, lo que permite construir un modelo competitivo de cara al cliente, a los accionistas, a la empresa y socios de negocios mediante un enfoque visionario que soporte los objetivos estratégicos de negocio en la organización.

E-business emplea como medio habilitador diferentes tecnologías (internet, customer relationship systems, call/web center, data markets, optical cards, WAP technologies, etc.) para facilitar la conectividad y la relación entre una empresa y el mundo exterior.

2.1.3 e-Learning

El e-learning es un sistema de educación electrónico o a distancia en el que se integra el uso de las tecnologías de la información y otros elementos pedagógicos (didácticos) para la formación, capacitación y enseñanza de los usuarios o estudiantes en línea, es decir, se puede entender como una modalidad de aprendizaje dentro de la educación a distancia y se define como e-learning. Utiliza herramientas y medios diversos como Internet, intranets, CD-ROM, producciones multimedia (Textos, imágenes, audio, video, etc.), entre otros. Literalmente e-learning es aprendizaje con medios electrónicos: enseñanza dirigida por la tecnología.

E-learning es principalmente un medio electrónico para el aprendizaje a distancia o virtual, donde se puede interactuar con los profesores por medio de Internet. El usuario puede manejar los horarios, es un medio completamente autónomo. Constituye una propuesta de formación que contempla su implementación predominantemente mediante Internet, haciendo uso de los servicios y herramientas que esta tecnología provee.

Page 7: topicos_avanzados_de_bd_II

Ventajas.

• Inmersión práctica en un entorno Web 2.0 • Eliminación de barreras espaciales y temporales (desde su propia casa, en

el trabajo, en un viaje a través de dispositivos móviles, etc.). Supone una gran ventaja para empresas distribuidas geográficamente

• Prácticas en entornos de simulación virtual, difíciles de conseguir en formación presencial, sin una gran inversión.

• Gestión real del conocimiento: intercambio de ideas, opiniones, prácticas, experiencias. Enriquecimiento colectivo del proceso de aprendizaje sin límites geográficos.

• Actualización constante de los contenidos (deducción lógica del punto anterior)

• Reducción de costes (en la mayoría de los casos, a nivel metodológico y, siempre, en el aspecto logístico)

• Permite una mayor conciliación de la vida familiar y laboral.

e-learning a nivel mundial.

2.1.4 Sistemas de seguridad para desarrollos web.

Para muchas aplicaciones de negocios, como la publicidad y promociones simples, es probable que no se necesite tratar con precauciones de seguridad. Pero si se permite que los usuarios tengan acceso a datos delicados, se deberán tomar medidas para proteger a los datos. Debido a que cada vez son más las personas que desean transferir documentos e información de tarjetas de crédito o

Page 8: topicos_avanzados_de_bd_II

cualquier tipo de transmisión de datos en forma segura y sin el temor a los crackers y piratas.

Las medidas de seguridad básicas a tener en cuenta son:

LA ENCRIPTACIÓN DE DATOS.

Es una técnica para ocultar datos de manera que sólo puedan ser vistos por aquellos que deben verlos. Consiste en reemplazar un mensaje enviado con un algoritmo difícil de adivinar.

Los servidores seguros tratan de encriptar los datos entre el navegador y el servidor. En algún momento durante el ciclo de compras, después que los datos llegan al servidor seguro, el sistema debe desencriptar los datos. Aun si los datos son desencriptados sólo por un instante, la información podría ser interceptada por algún pirata. Crear un sistema en el que la información permanezca encriptada a lo largo del ciclo es prácticamente imposible.

La configuración más segura es una que transmita la información al propietario de la empresa en formato encriptado, pase la información a una computadora que no esté en Internet y luego desencripte la información.

Además si en una empresa se utiliza un mismo algoritmo para encriptar y desencripar datos, se necesitará que alguna tercera pieza de datos desencripte el código, que sería una clave. Esto sólo funcionará si tanto la persona transmisora como la parte receptora conocen la clave. Si la persona receptora no conoce la clave, tiene que enviar la clave a esa parte, y está puede ser interceptada.

FIRMA DIGITAL.

Ofrece un método de encriptación de datos que evita tener que compartir claves para leer mensajes.

Es la técnica llamada encriptación de clave pública, donde cada usuario tiene dos claves: una clave pública y una clave privada.

Los algoritmos de encriptación y desencriptación son adaptados de manera que sólo la clave pública puede desencriptar los datos encriptados por la clave privada. Por consiguiente, puede transmitir con libertad la clave pública al mundo.

Page 9: topicos_avanzados_de_bd_II

CREACIÓN DE UN SITIO SEGURO.

Las ventajas de crear un sistema seguro antes de ser pirateado deben ser obvias. La prevención es la mejor medicina y esto se aplica también ala seguridad de las computadoras. Se debe mantener la seguridad de los archivos de datos de tal forma que solo las personas correctas puedan verlos. Esto es crucial para los siguientes tipos de datos y archivos: contraseñas de usuarios, archivos de facturación, registros de sistema y de usuarios, información de tarjetas de créditos, información confinada de sistemas remotos, compiladores, herramientas de administración.

FIREWALLS, WRAPPERS Y PROXIES.

Los firewalls, wrappers y proxies ofrecen una buena línea de defensa para los propietarios de servidores Web y administradores de sistemas.

Los firewalls pueden ser software o hardware que protege los puertos y evita que los piratas penetren al sistema. Los firewalls permiten que tengan acceso al sistema sólo ciertos nombres de dominio confiables.

Los wrappers se encuentran disponibles en CERT al igual que en otros archivos en Internet. Los wrappers se ejecutan como una capa de software alrededor de su otro software. Un usuario que se conecta a FTP primero entraría en contacto con el wrapper, el cual luego habilitaría al FTP. El usuario no sabe que existe el wrapper y no puede detectar ninguna diferencia en el sistema.

Los wrappers son interesantes porque son flexibles. Pueden actuar como firewalls y en realidad pueden rechazar usuarios con base en sus nombres de usuarios al igual que en sus nombres de dominios. Además permite crear callejones sin salida que permiten atrapar piratas.

El modo proxy es un método permite ocultar datos por medio de reenrutamiento de las solicitudes. Es útil para usuarios que están detrás de una firewall. Los usuarios establecen una dirección proxy de su navegador para que apunte hacia su servidor Web. El servidor Web maneja entonces la dirección real de los datos hacia el mundo exterior. Esto reduce la dirección que el usuario está tomando cuando deja su sistema, permitiéndole al usuario enrutar los datos los datos a través de los agujeros en sus propias firewalls. La otra ventaja es que las solicitudes pueden ser filtradas por el software del servidor. Al filtrar la información, puede restringir el contenido y rastrear el uso al igual que modificar la información en ese instante. Los servidores proxy también pueden ser dirigidos a otros servidores proxy, lo cual les permite ocultar datos en forma efectiva.

Page 10: topicos_avanzados_de_bd_II

2.2 XML (Extensible Markup Language).

XML, siglas en inglés de Extensible Markup Language (lenguaje de marcas extensible), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (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 definición son XHTML, SVG, MathML.

XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más 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 información de una manera segura, fiable y fácil.

2.2.1 Fundamentos de XML

XML proviene de un lenguaje inventado por IBM en los años setenta, llamado GML (Generalized Markup Language), que surgió por la necesidad que tenía la empresa de almacenar grandes cantidades de información. 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 información.

En el año 1989 Tim Berners Lee creó la web, y junto con ella el lenguaje HTML. Este lenguaje se definió en el marco de SGML y fue de lejos la aplicación más conocida de este estándar. Los navegadores web sin embargo siempre han puesto pocas exigencias al código HTML que interpretan y así las páginas web son caóticas y no cumplen con la sintaxis.

Estas páginas web dependen fuertemente de una forma específica de lidiar con los errores y las ambigüedades, lo que hace a las páginas más frágiles y a los navegadores más complejos.

Page 11: topicos_avanzados_de_bd_II

Otra limitación del HTML es que cada documento pertenece a un vocabulario fijo, establecido por el DTD. No se pueden combinar elementos de diferentes vocabularios. Asimismo es imposible para un intérprete (por ejemplo un navegador) analizar el documento sin tener conocimiento de su gramática (del DTD). Por ejemplo, el navegador sabe que antes de una etiqueta <div> debe haberse cerrado cualquier <p> previamente abierto. Los navegadores resolvieron esto incluyendo lógica ad hoc para el HTML, en vez de incluir un analizador genérico. Ambas opciones, de todos modos, son muy complejas para los navegadores.

2.2.2 Diseño de aplicaciones web usando XML

No todas las herramientas relacionadas con Internet son capaces de trabajar con XML. Con un editor de textos ASCII (el Bloc de notas, por ejemplo) y con un visualizador que incluya un intérprete de XML (Microsoft Internet Explorer 5, por ejemplo), ya se pueden crear y ver documentos XML. No obstante, existen muchas herramientas nuevas que facilitan un poco la labor del diseñador. Existen otros varios navegadores que admiten XML, como Amaya, HotMetal o HyBrick, aunque casi cada día están saliendo nuevos productos (intérpretes, navegadores, Bases de Datos, editores, DTDs, etc.) [Santamaria F. XML]. Si el lector solicita información en un buscador sobre XML, se sorprenderá de la enorme relación de recursos que surgirán.

Desarrollo de aplicaciones con XML. Se pueden establece cuatro tipos de aplicaciones que impulsarán el desarrollo del XML:

• Aplicaciones que exijan que el cliente Web medie entre dos o más Bases de Datos. Se hará posible la integración de bases de datos distribuidas en los navegadores que admitan XML, pudiéndose modificar el contenido y la estructura de esta.

• Aplicaciones que intentan transferir una parte significativa de la carga del proceso del servidor al cliente Web. Esta carga hará que muchas de las funciones de modificación puedan desarrollarse desde el mismo navegador Web del cliente. El lado más negativo es que se necesitará mayor ancho de banda y mayor potencia del procesador del equipo para poder soportar esta arquitectura de tres capas.

• Aplicaciones que precisen que el cliente Web presente diferentes versiones de los mismos datos a diferentes usuarios.

• Aplicaciones en las que agentes Web inteligentes intentan adaptar la búsqueda de información a las necesidades de los usuarios individuales. Habrá una interacción entre la información requerida y las preferencias del usuario de la aplicación. Con el XML vendrá una segunda generación de aplicaciones con una mayor precisión de la búsqueda.

Page 12: topicos_avanzados_de_bd_II

2.2.3 Productos XML.

El número de productos para utilizar XML con Bases de Datos está creciendo a una gran velocidad. Nuevos productos entran al mercado de forma constante. Aquí se realiza una clasificación de estos productos, mencionando cuales son las características genéricas de los mismos, que funcionalidades brindan y se analizan algunos de estos productos existentes en el mercado.

Antes de continuar, hay que realizar la aclaración de que los documentos XML pertenecen a dos categorías: "basados en datos" y "basados en documentos". Los documentos XML "basados en datos" son en los que XML es usado como un transporte de datos. Estos son por ejemplo órdenes de compra, registros de pacientes y datos científicos. Los "basados en documentos" son en los que XML es usado para representar documentos, como un manual de usuario, páginas estáticas, folletos de marketing. Este último tipo de documento se caracteriza por su estructura irregular.

Para grabar y recuperar datos en un documento "basados en datos", se necesitará una Base de datos, como puede ser una Base de Datos relacional o una orientada a objetos.

Para grabar y recuperar datos en un documento "basados en documentos", se necesita una Base de Datos de XML o un Sistema de Administración de Contenidos. Ambos está diseñados para almacenar fragmentos del contenido, como procedimientos, capítulos, y glosarios, y pueden incluir metadatos, como nombre del autor, fecha de revisión, etc. Un Sistema de Administración de Contenidos generalmente tiene funcionalidades adicionales, como editores, controladores de versiones, etc [Bourret R.,XML].

Categorías de Productos

Para realizar esta división de los productos que están vinculados a la tecnología XML se tomó en cuenta cuales son las características de los mismos, las funciones que cumplen y cómo interactúan con las Bases de Datos. Cabe destacar que a veces las diferencias entre algunas de estas categorías es un poco arbitraria, ya que los productos ofrecen funcionalidades muy variadas que implica que se superpongan entre las categorías. Se puede establecer que siete categorías de productos:

Middleware: Software que es invocado desde nuestras aplicaciones para transferir datos entre documentos XML y Bases de Datos. Orientados a aplicaciones "basados en datos".

Bases de Datos XML-Enabled: Bases de Datos que pueden transferir datos entre documentos XML y ellas mismas. Orientados principalmente para aplicaciones "basados en datos".

Page 13: topicos_avanzados_de_bd_II

Bases de Datos de XML Nativo: Base de Datos que almacenan XML en su forma "nativa", generalmente tanto texto indexado como alguna variante del DOM. Son tanto para aplicaciones "basados en datos" o "basados en documentos".

Servidores XML: Plataforma que brinda servicio de datos (en forma de documentos XML) desde y hacia aplicaciones distribuidas, como e-commer Los documentos XML deben ser fáciles de crear ce y aplicaciones business to business. Orientados principalmente a aplicaciones "basados en datos".

Servidores de Aplicaciones XML: Servidores de aplicaciones Web que brindan servicio de XML a los navegadores. Son tanto para aplicaciones "basados en datos" o "basados en documentos".

Sistemas de Administración de Contenidos: Sistemas para administrar documentos legibles e incluyen soporte para editar, controlar las versiones, crear nuevos documentos a partir de documentos existentes. Principalmente destinados a aplicaciones "basados en documentos"

Motores de consulta de XML : Aplicaciones que permiten realizar consultas sobre documentos XML.

2.2.3.1 Middleware.

Middleware es software que es usado en aplicaciones "basadas en datos" para transferir datos entre documentos XML y Bases de Datos. Están escritos en diferentes lenguajes, pero la mayoría de estos utilizan ODBC, JDBC, o OLEDB. Aunque algunos de estos pueden enviar datos a través de Internet, la mayoría de estos necesitan ser usados con un servidor Web si se necesita acceso remoto a los datos. Dentro de esta categoría de productos podemos encontrar los siguientes productos:

Producto Desarrollador ADO Microsoft Allora HiT Software ASP2XML Stonebroom Attunity Connect Attunity Ltd. DatabaseDom IBM DataCraft IBM DB2XML Volker Turau DB/XML Vision DATA Mirror Corp. IConnector Infoteria idx -xmnesia IDEALX InterAccess XML Software Corporation ODBC2XML Intelligent Systems Researc ODBC Socket Server Team FXML PerXML Smart Transformation System PerCurrence XML Lightweight Extractor (XLE) IBM XML SQL Utility for Java and XSQL Oracle

Page 14: topicos_avanzados_de_bd_II

2.2.3.2 Bases de datos.

Bases de Datos XML-Enabled

Este tipo de Bases de Datos son (usualmente relacionales) que brindan la posibilidad de transferir datos entre documentos XML y ellas mismas. Estas Bases de Datos son generalmente diseñadas para almacenar y recuperar documentos "basados en datos". Esto es porque los datos son transferidos desde y hacia tablas definidas por el usuario, en lugar de tablas especialmente diseñadas para modelar el documento XML. Sin embargo, muchas de estas pueden almacenar documentos "basados en documentos" en una sola columna.

Muchas de las Bases de Datos pueden publicar documentos en el Web, esto implica que la línea que separa entre las Bases de Datos XML-Enabled y los Servidores de XML es confusa, pero cabe destacar que estos últimos están diseñados primariamente para construir aplicaciones basadas en el Web. Con más claridad se puede diferenciar las Bases de Datos XML-Enabled y los Servidores de Aplicaciones XML, los cuales no puede recibir datos como documentos XML. Dentro de este tipo de Bases de Datos, encontramos los productos:

Producto Desarrollador DB2 XML Extender and DB2 Text Extender IBM Informix Informix Microsoft SQL Server 2000 Microsoft Oracle 8i 9i Oracle

DB2 XML Extender y DB2 Text Extender. Desarrollador: IBM

El DB2 XML permite transferir datos entre documentos XML y DB2. Los DTDs de XML son mapeados a esquemas (y viceversa) con el lenguaje XML-based Data Access Definition (DAD). Una herramienta visual es provista para construir documentos DAD, de forma de mapear elementos y atributos a las tablas y columnas. Las aplicaciones son procedimientos almacenados, que invocan el Extender, quien luego guarda o trae datos basados en el documento DAD. El XML Extender administra documentos DAD y DTDs en sus propias tablas, evitando que las aplicaciones tengan que hacer esto y optimizando el acceso. Además, el DB2 Text Extender contiene una variedad de tecnologías para realizar búsquedas.

Informix. Desarrollador: Informix

Informix soporta XML a través de su traductor "Object Translator " y el producto "Web DataBlade." El Object Translator genera código, incluyendo la capacidad de que los objetos transfieran sus datos desde y hacia la Base de Datos. También

Page 15: topicos_avanzados_de_bd_II

soporta funcionalidades como transacciones y tipos de bloqueos pesimistas y optimistas. El soporte de XML está provisto a través de métodos generados que pueden transferir datos entre objetos y documentos XML. Los usuarios deben mapear los documentos XML a un árbol de objetos de datos con una herramienta visual. El Web DataBlade es una aplicación que crea Documentos XML desde templates conteniendo sentencias embebidas de SQL.

Microsoft SQL Server 2000. Desarrollador: Microsoft

Microsoft SQL Server 2000 soporta XML de tres formas distintas: La cláusula FOR XML en sentencias SELECT, consultas XPath que utilizan esquemas XML-Data, y la función OpenXML en procedimientos almacenados. Los esquemas XML-Data, también llamados "esquemas de mapeo", contienen atributos extras que mapean elementos y atributos a tablas y columnas. Esto modela un documento XML como un árbol de objetos de datos y son usados para consultar la Base de Datos usando un subset de XPath. Existe una herramienta gráfica para construir esquemas de mapeo.

La función OpenXML es usada para extraer cualquier parte de un documento XML como una tabla y puede ser usado como una tabla en la mayoría de los lugares donde estas son utilizadas, como por ejemplo en la cláusula FROM de una sentencia SELECT. Esto se puede utilizar en forma conjunta con una sentencia INSERT para transferir datos de un documento XML a la Base de Datos. Una expresión XPath identifica el elemento o atributo que representa una fila de datos. Inserts, updates, y deletes son realizados a través de documentos XML llamados "update grams". Estos contienen los datos de antes y después (ambos en caso de un update), solamente el después en el caso de un insert, y sólo el antes en caso de un delete.

Oracle 8i, 9i Desarrollador: Oracle

Oracle 8i puede almacenar documentos XML de tres maneras distintas: en el Internet File System (iFS), usando el utilitario para Java XML SQL, y como un objeto binario que puede ser buscado utilizando el Oracle Intermedia XML Search. Oracle 8i también incluye un número de otras herramientas relacionadas con XML, la más interesante de las cuales es el XML Class Generator, quien puede generar clases Java desde un DTD. Con iFS, una o más definición de tipos de documentos definen como se van a mapear un documento XML como un árbol de objetos de datos específicos. iFS usa ese mapeo de documentos tanto para construir tablas en cuales el documento XML puede ser almacenado, y para transferir datos entre documentos XML y la Base de Datos. Oracle Intermedia XML Search es un utilitario que puede automáticamente indexar y buscar documentos XML y fragmentos de estos, de cualquier tamaño hasta 4 Gigabytes. Oracle 9i incluye Base de Datos con soporte nativo de XML, e introduce un nuevo tipo de objeto de datos (XMLType).

Page 16: topicos_avanzados_de_bd_II

Bases de Datos de XML Nativo

Dentro de las Bases de Datos de XML Nativo encontramos dos tipos de categorías:

• Almacenamiento basado en texto Guarda el documento entero en forma de texto. Una estrategia simple es guardar documento como un BLOB (Binary Large Object) en una Base de Datos relacional o como un documento en un File system que brinde búsquedas sobre documentos.

• Almacenamiento basado en el Modelo Grabar un modelo binario del documento en un repositorio de datos existente. Por ejemplo, estos deben mapear el DOM a tablas relacionales como los elementos, atributos o entidades.

Las Bases de Datos de XML Nativo difieren de las Base de Datos XML-Enabled en tres formas principales:

• Las Bases de Datos de XML Nativo pueden preservar la estructura física, como también los comentarios, DTDs, etc. Mientras que las Bases de Datos XML-Enabled pueden hacer esto en teoría, pero eso no es realidad en la práctica.

• Las Base de Datos de XML Nativo pueden almacenar documentos XML sin conocer su esquema (DTD).

• La única conexión con los datos de una Base de Datos de XML Nativo es XML y las tecnologías relacionadas como XPath, DOM u otras API. En el otro sentido, las Base de Datos XML-enabled, ofrecen acceso directo a los datos como por ejemplo por ODBC.

Dentro de esta categoría podemos encontrar los siguientes productos:

Producto Desarrollador 4Suite - 4Suite Server FourThought Birdstep DataBase Engine Birdstep DbXML The dbXML Group EXcelon eXcelon Corp. Lore Stanford University Virtuoso OpenLink Software

Page 17: topicos_avanzados_de_bd_II

2.2.3.3 Sistemas de administración de contenidos.

Los Sistemas de Administración de Contenidos sirven para almacenar, recuperar e integrar documentos XML. Estos incluyen características como editores, controladores de versiones y control de accesos a usuarios concurrentes. Estas ofrecen funcionalidades en el manejo de documentos, como por ejemplo controlador de versiones. La mayoría de los Sistemas de Administración de Contenidos pueden publicar XML en el Web, pero son primariamente diseñados para administrar documentos "basados en documentos".

Producto Desarrollador Astoria Chrystal Software BladeRunner Interleaf Documentum Documentum Dynabase eBusiness Technologies Epic Arbortext Frontier UserLand Software GEM Content Management System

X.Systems

GroveMinder TechnoTeacher Hynet Directive Hynet Technologies Information Manager Interleaf POET Content Management Suite

Sorman

Prowler Infozone Target 2000 Progressive Information Technologies

Sistemas de administración de contenidos

2.2.3.4 Motores de consulta.

Los motores de consulta XML son programas que pueden realizar consultas sobre un Documento XML. Actualmente, existen una gran variedad de lenguajes: XQL, XPath, XML-QL, Quilt, XQuery, etc. Se espera que en el futuro el W3C logre estandarizar estos lenguajes en: XPath y XQuery.