Otras aplicaciones importantes de la capa de presentación
Transcripción
Otras aplicaciones importantes de la capa de presentación
Otras aplicaciones importantes de la capa de presentación 2.3.6.1 Capa de presentación Unicode Unicode es un estándar industrial cuyo objetivo principal es el de proporcionar el medio por el cual un texto, en cualquier forma e idioma, pueda ser codificado para el uso informático. El establecimiento de Unicode ha involucrado un ambicioso proyecto para reemplazar los esquemas de codificación de caracteres existentes, muchos de los cuales están muy limitados en tamaño y son incompatibles con entornos multilingües. Unicode se ha vuelto el más extenso y completo esquema de codificación de caracteres, siendo el más dominante en la internacionalización y adaptación local del software informático. El estándar ha sido implementado en un número considerable de tecnologías recientes, que incluyen XML, Java y sistemas operativos modernos. Origen y desarrollo Unicode tiene el propósito explícito de trascender las limitaciones de los códigos de caracteres tradicionales, como los definidos por el estándar ISO 8859, utilizado en numerosos países del mundo, pero que continúa incompatible entre ellos en gran parte. Buena parte de los codificadores de caracteres tradicionales comparten un problema en común: permiten procesamientos informáticos bilingües (generalmente usando caracteres latinos y del idioma local), pero no multilingües (procesamiento informático de idiomas arbitrarios mezclados entre ellos). Unicode intenta codificar los caracteres esenciales `grafemas´ más que las representaciones variantes para dichos caracteres. En caso de los caracteres chinos, esto lleva a veces a constantes controversias sobre la distinción entre caracteres esenciales y sus representaciones variantes. En procesamiento de textos, Unicode juega el papel de proveer un único punto de código (code point) para cada caracter. En otras palabras, Unicode representa un caracter de forma abstracta, y deja la representación visual (tamaño, dimensión, fuente o estilo) a otro software, como un navegador web o un procesador de texto. No obstante, esta simplicidad se complica con las concesiones hechas por los diseñadores de Unicode, con la esperanza de animar una mayor “adopción” de Unicode. Los primeros 256 puntos de código fueron idénticos al contenido del ISO 8859-1, para trivializar la conversión del texto occidental existente. Muchos de los caracteres esenciales se codificaron varias veces en distintos puntos de código para preservar distinciones utilizadas por codificaciones hereditarias y permitir conversiones de aquellas codificaciones a Unicode (y viceversa) sin perder ningún tipo de información. Por ejemplo, la sección de fullwidth forms de los puntos de código abarca un alfabeto latino completo, separado de la sección de alfabeto latino principal. En fuentes CJK (fuentes para chino, japonés y coreano), estos caracteres fueron representados tanto en su forma fullwidth como en otra en la que su ancho está reducido a la mitad. Además de que Unicode permite combinaciones de caracteres, también dispone de versiones precompuestas de la mayoría de combinaciones de letras diacríticas en uso. Estas versiones hacen conversiones desde y hacia las más simples codificaciones hereditarias y permiten que las aplicaciones utilicen Unicode como un formato de texto interno sin tener que implementar combinaciones de caracteres. Por ejemplo, é puede representarse en Unicode como U+0065 (letra latina minúscula e) seguido de U+0301 (acento agudo), pero puede también representarse directamente por el precompuesto U+00E9. El estándar Unicode también incluye un número de ítems relacionados, como las propiedades de caracteres, formas de normalización de textos y órdenes de visualización bidireccional (para la correcta visualización de texto que contenga escrituras de derecha a izquierda `Árabe o Hebreo´ y de izquierda a derecha a la vez). Escrituras cubiertas Unicode cubre la mayor parte de las escrituras usadas actualmente, incluyendo: • Árabe • Armenio • Bengalí • Braille • Sílabas aborígenes canadienses • Cheroqui • Copto • Cirílico • Devanāgarī • Esperanto • Ge’ez • Georgiano • Griego • Guyaratí • Gurmukhi • Hangul (Coreano) • Han (Kanji, Hanja y Hanzi) • Japonés (Kanji, Hiragana y Katakana) • Hebreo • Jémer (Camboyano) • • • • • • • • • • • • • Kannada (Canarés) Lao Latino Malayalam Mongol Burmese Oriya Syriac Tailandés (Thai) Tamil Tibetano Yi Zhuyin (Bopomofo) Unicode ha ido añadiendo escrituras y cubrirá aún más, incluyendo escrituras históricas menos utilizadas, incluso aquellas extinguidas para propósitos académicos: • • • • • • • Cuneiforme Griego antiguo Linear B Fenicio Rúnico Sumerio Ugarítico No hay planes inmediatos para incorporar jeroglíficos egipcios o escritura Maya. NOTA: Los jeroglíficos egipcios han sido propuestos para la versión de UNICODE 4.1. También ocurren adiciones posteriores de caracteres a las escrituras ya codificadas, como los símbolos, en particular para música y matemáticas. El mapa itinerario de Unicode enlista escrituras sin incluir con asignaciones tentativas de bloques de código. Escrituras inventadas, muchas de las cuales no están cualificadas para la inclusión en Unicode debido a la carencia de uso en el mundo real, están listados en el Registro Unicode ConScript, acompañado por los códigos no oficiales de asignación del Área de Uso Privado. De forma similar, considerables variantes de letras medievales y ligaduras no incluidas en Unicode, están codificadas en la Iniciativa de Fuente de Unicode. Algo curioso En 1997, Michael Everson propuso codificar los caracteres del ficticio idioma klingon (es el idioma en el universo de Star Trek) en el Plano 1 del ISO/IEC 106462. El Consorcio Unicode rechazó la propuesta en 2001, declarándola “inapropiada para codificar”; no porque fuera inadecuada técnicamente, sino porque los usuarios de Klingon normalmente leían, escribían e intercambiaban datos en transliteración latina. Actualmente, algunos de estos entusiastas bloggean en tlhIngan pIqaD (alfabeto Klingon) utilizando nuevas fuentes disponibles y distribuciones de teclado; la posibilidad de aplicarlo a ISO ha reaparecido. Hubo también propuestas sobre la inclusión de escrituras élficas como el Tengwar o el Cirth, de la ficticia Tierra Media de J. R. R. Tolkien (El autor del señor de los anillos), en el Plano 1, en 1993. El Consorcio retiró el borrador para incorporar cambios, propuestos por los seguidores de Tolkien, y no se consideró hasta 2005. Tanto el Klingon como el Élfico son asignados en el Registro Unicode ConScript. Mapeo y codificaciones Estándar El Consorcio Unicode, con sede en California (EE.UU.), desarrolla el estándar Unicode. Cualquier individuo o compañía puede formar parte de la organización, pagando una tasa de suscripción. Algunas de estas compañías están a la cabeza del mercado de hardware y software informático, como Adobe Systems, Apple Computer, IBM, Microsoft, Xerox y HP, entre otras. Primero se publicó El Estándar Unicode (ISBN 0321185781) en 1991, y sigue desarrollando estándares basados en el original. Unicode fue desarrollado conjuntamente con la Organización Internacional para la Estandarización (ISO) y comparte su repertorio con ISO/IEC 10646. Unicode e ISO/IEC 10646 funcionan equivalentemente como codificadores de caracteres, pero el Estándar Unicode contiene mucha más información para implementar, cubriendo en profundidad, temas como la codificación bitwise, collation y la renderización. Unicode enumera una vasta cantidad de propiedades para los caracteres, incluyendo aquellas necesarias para soportar texto bidireccional. Ambos estándares utilizan una terminología ligeramente diferente. Cuando se escribe un caracter en Unicode, es normal escribirlo como una “U+” seguido de un número hexadecimal indicando el punto del código del caracter. Para puntos de código usando el formato gráfico BMP, se usan cuatro dígitos, para los puntos de código fuera del formato gráfico BMP son usados cinco o seis dígitos, según sea requerido. Las versiones antiguas del mismo estándar utilizaban notaciones similares, pero con reglas ligeramente diferentes. Por ejemplo, Unicode 3.0 utilizaba “U-” seguido de ocho dígitos, y permitía que se utilizara “U+” solamente con exactamente 4 dígitos para poder indicar una unidad de código, no un punto de código. Almacenamiento, transferencia y procesamiento Por el momento, Unicode solamente ha sido mostrado como una manera de asignar un código único a cada caracter utilizado en los lenguajes escritos del mundo. El almacenamiento de esos números en el procesamiento de textos es otro tema; los problemas surgen del hecho de que mucho del software escrito puede manejar solamente codificación de caracteres de 8 bits, con respaldo a Unicode agregado recientemente de forma lenta. De manera similar en cuanto a la representación de caracteres de Asia, los caracteres de doble byte no pueden codificar más que 65.536 caracteres, y en la práctica las arquitecturas elegidas imponen límites muy pequeños. Tales límites no son suficientes ni siquiera para las necesidades escolares del lenguaje Chino. La lógica interna de la mayoría del software de 8 bits permite de forma típica solamente 8 bits para cada caracter, haciendo imposible utilizar más de 256 puntos en código sin procesamiento especial. El software de 16 bits solamente puede guardar poco más de 6 decenas de miles de caracteres. Unicode, por otro lado, ha definido más de 90.000 caracteres codificados. Los diseñadores de los sistemas entonces han tenido que sugerir muchos métodos y mecanismos para implementar Unicode; el método implementado depende del espacio de almacenamiento disponible, la compatibilidad de los códigos fuentes y la inter-operatividad con otros sistemas. Unicode define dos métodos de “mapeo” o de localización de caracteres: • La codificación UTF (Unicode Transformation Format) Formato de Transformación Unicode. • La codificación UCS (Universal Character Set) Juego de Caracteres Universal. Unicode en uso Sistemas operativos Unicode se ha convertido en el esquema dominante para el procesamiento y en ocasiones para el almacenamiento de texto (aunque mucho del texto aún es almacenado en codificaciones heredadas). Los adaptadores iniciales utilizaban UCS-2 y después cambiaron a UTF-16 (debido a que ésta era la única manera de agregar compatibilidad para caracteres que no eran bmp). El mejor ejemplo conocido de este sistema es Windows NT (y obviamente sus descendientes Windows 2000 y Windows XP). Aunque también los códigos de bytes de los ambientes Java y .NET lo utilizan. Por otro lado, UTF-8 (desarrollado por Plan 9) se ha convertido en la codificación principal de la mayoría de los sistemas operativos similares o basados en Unix (aunque otros también son usados por algunas bibliotecas) debido a que es relativamente fácil hacer el reemplazo por caracteres de los juegos de caracteres extendidos ASCII. Correo Electrónico (E-mail) MIME define dos mecanismos diferentes para la codificación de caracteres que no son ASCII en los correos electrónicos (e-mail), dependiendo de si el caracter está en los encabezados del correo como el de “Subject:” (asunto), o si está en el cuerpo del mensaje. En ambos casos, el juego original de caracteres está definido también como un código de transferencia. Para la transmisión de correo en Unicode las planas de caracteres de UTF-8 y Base64 son las más recomendadas. Los detalles de los dos mecanismos diferentes están especificados en los estandares MIME y en general se encuentran ocultos de los usuarios del software de correo electrónico. La adopción de Unicode en el correo electrónico ha sido muy lenta. La mayoría del texto del este de Asia está codificado todavía en codificaciones locales como Shift-JIS y muchos programas de correo comúnmente utilizados, si es que son compatibles con Unicode, aún no puede manejar los datos de Unicode correctamente. No se espera que esta situación cambie en un futuro cercano. WEB El HTML, acrónimo inglés de HyperText Markup Language (lenguaje de marcado de hipertexto), es un lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estándar de las páginas Web. Gracias a Internet y a los navegadores del tipo Internet Explorer, Opera, Firefox o Netscape, el HTML se ha convertido en uno de los formatos más populares que existen para la construcción de documentos y también de los más fáciles de aprender. HTML es una aplicación de SGML conforme al estándar internacional ISO 8879. XHTML es una reformulación de HTML 4 como aplicación XML 1.0, y que supone la base para la evolución estable de este lenguaje. Además XHTML permite la compatibilidad con los agentes de usuario que ya admitían HTML 4, siguiendo un conjunto de reglas. No hay especificación oficial del HTML 1.0 porque ya existían múltiples estándares informales del HTML cuando se decidió crear un estándar oficial. Los trabajos para crear un sucesor del HTML, posteriormente llamado ‘HTML+’, comenzaron a finales de 1993. El HTML+ se diseñó originalmente para ser un superconjunto del HTML que permitiera evolucionar gradualmente desde el formato HTML anterior. A la primera especificación formal de HTML+ se le dio, por lo tanto, el número de versión 2.0 para distinguirla de esos “estándares no oficiales” previos. Los trabajos sobre HTML+ continuaron, pero nunca se convirtió en un estándar. El HTML 4.0 también adoptó muchos elementos específicos desarrollados inicialmente para un navegador Web concreto, pero al mismo tiempo comenzó a limpiar el HTML, señalando algunos de ellos como ‘desaprobados’. Ya no va a haber nuevas versiones del HTML. Sin embargo, la herencia del HTML se mantiene en XHTML, que se basa en XML. Puedes crear documentos HTML en cualquier editor de textos (por ejemplo notepad de windows o gedit de GNU/Linux) y grabarlo con la extensión .html. Un ejemplo de código es el siguiente: <html lang=”es”> <head> <title>Ejemplo</title> </head> <body> <p>Mi primer ejemplo de html</p> </body> </html> Algunos navegadores recientes pueden mostrar páginas Web, utilizando Unicode si una fuente correcta está instalada. XML XML (sigla en inglés de eXtensible Markup Language, lenguaje de marcado extensible’) es un lenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Permite definir la gramática de lenguajes específicos. Por lo tanto, XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. 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 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. El XML se creó para que cumpliera varios objetivos: • Que fuera idéntico a la hora de servir, recibir, y procesar la información del HTML para aprovechar toda la tecnología implantada de éste. • Que fuera normal y conciso, desde el punto de vista de los datos y la manera de guardarlos. • Que fuera extensible, para que lo puedan utilizar en todos los campos del conocimiento. • Que fuese fácil de leer y editar. • Que fuese fácil de implantar, programar y aplicar a los distintos sistemas. Ventajas • Comunicación de datos. Si la información se transfiere en XML, cualquier aplicación podría escribir un documento de texto plano con los datos que estaba manejando en formato XML y otra aplicación recibir esta información y trabajar con ella. • Migración de datos. Si trabajamos en formato XML sería muy sencillo mover datos de una base de datos a otra. • Aplicaciones Web. Con XML hay una sola aplicación que maneja los datos y para cada navegador podemos tener una hoja de estilo o similar para aplicarle el estilo adecuado.