Textualidad - Braulio J. Solano Rojas

Transcripción

Textualidad - Braulio J. Solano Rojas
Textualidad
CI-2400 Programación Avanzada en
Sistemas de Tipo UNIX
Prof. Braulio José Solano Rojas
ECCI, UCR
Dos diseños relacionados
●
●
El diseño de formatos de archivos para
mantener datos de aplicaciones en un
almacenamiento permanente.
El diseño de protocolos de aplicaciones para
pasar datos y comandos entre aplicaciones
colaborativas, posiblemente en una red.
La importancia de ser textual
●
●
●
Transparencia
Encapsulación
Extendibilidad (IPv4)
Archivos de claves de Unix
games:*:12:100:games:/usr/games:
gopher:*:13:30:gopher:/usr/lib/gopher-data:
ftp:*:14:50:FTP User:/home/ftp:
esr:0SmFuPnH5JlNs:23:23:Eric S.
Raymond:/home/esr:
nobody:*:99:99:Nobody:/:
Archivos .newsrc
rec.arts.sf.misc! 1-14774,14786,14789
rec.arts.sf.reviews! 1-2534
rec.arts.sf.written: 1-876513
news.answers! 1-199359,213516,215735
news.announce.newusers! 1-4399
news.newusers.questions! 1-645661
news.groups.questions! 1-32676
news.software.readers! 195504,137265,137274,140059,140091,140117
alt.test! 1-1441498
El formato de archivos gráficos
PNG
●
●
●
●
Ejemplo de un formato binario bien pensado.
Economía de la transacción.
Interoperabilidad.
Fácil detectar errores.
Metaformatos de archivos de datos
●
Son un conjunto de convenciones sintácticas
y léxicas que están formalmente
estandarizadas o suficientemente
establecidas por la práctica. Por ello
bibliotecas de servicios estándares para
manejar la serialización y deserialización.
Estilo DSV
●
●
Archivo de claves de Unix.
Más fácil de parsear que CSV.
Formato RFC 822
●
●
●
Metaformato para mensajes, derivado del
correo electrónico en Internet.
Es utilizado por Usenet, HTTP 1.1, ...
Debilidad: cuando hay varios mensajes en un
solo archivo los límites de cada registro
pueden no ser obvios.
Formato Cookie-jar
●
●
●
Utilizado por fortune (programa que dice una
fortuna aleatoria).
Registros terminados por %% y nueva línea (a
veces % y nueva línea).
Indicado para texto no estructurado.
Record-jar
●
Cookie-jar combina bien con el metaformato
para registros RFC 822.
XML
●
●
●
●
Apropiado para estructuras de datos
complejas.
Se utiliza donde la “vieja escuela” de Unix
utilizaría el RFC 822.
Es fácil detectar datos corruptos.
Puede simplificar o complicar las cosas.
Formato INI de Windows
●
●
●
No es nativo de Unix pero es utilizado por
programas como Samba.
Está bien diseñado y es leíble, pero no
funciona bien con las herramientas de Unix.
Es un formato apropiado si sus datos caen en
dos niveles de organización de pares nombreatributo bajo una categoría.
Convenciones para formatos de
archivos textuales Unix
●
●
●
●
●
Una línea por registro.
Menos de 80 caracteres por línea si es
posible.
Utilizar un # introductorio para comentarios.
Apoyar la convención del “\”.
En formatos de una línea por registro utilizar :
o algún espacio en blanco para separar los
campos.
Convenciones para formatos de
archivos textuales Unix
●
●
●
No permitir que la distinción entre el espacio y
el tabulador sea significante.
Favorecer el hexadecimal sobre el octal.
Etc...
Pros y contras de la compresión
●
●
Se gana en espacio, por ejemplo, OpenOffice
comparado a Microsoft Office.
Se pierde la transparencia.
Diseño de protocolo de
aplicaciones
●
●
Todas las razones para que los archivos sean
textuales aplican también a los protocolos
específicos de aplicación.
Cuando el protocolo de aplicación es textual y
fácil de parsear, muchas cosas buenas se
vuelven más fáciles. Los vaciados de
transacción son más fáciles de entender. Las
cargas de prueba se vuelven más fáciles de
escribir.
Diseño de protocolo de
aplicaciones
●
Ejemplo: protocolos de correo en Internet.
●
●
●
●
SMTP
POP
IMAP
Tan fáciles que hasta con un simple telnet se
puede revisar el correo.
Metaformatos de protocolos de
aplicación
●
●
●
Simplifican la serialización de transacciones
en redes.
Sin embargo el ancho de banda es más caro
que el almacenamiento.
Aún así la transparencia e interoperabilidad de
los formatos textuales benefician tanto que
muchos desarrolladores han resistido la
tentación de mejorar el rendimiento.
¡Gracias por su atención!
¿Preguntas?

Documentos relacionados