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.

Documentos relacionados