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?