4.6 Virtual Resource
5.1.2 Formato dei dati
Ognuno dei nodi di cui `e formato un documento IDN costituisce un’entit`a atomica, ovvero pu`o essere considerato anche come un elemento a s´e stante; pertanto pu`o disporre di memorizzare il proprio contenuto (genericamente detto dati di livello applicativo) con il formato che il progettista ha ritenuto pi`u idoneo alle finalit`a per le quali `e utilizzato.
Si ricordi che per formato dei dati o, pi`u genericamente, formato di file si in- tende la convenzione che viene usata al fine di leggere, scrivere o interpretare le informazioni ivi memorizzate.
Per identificare il formato di un file si possono utilizzare tre diverse modalit`a: • tramite l’estensione, ovvero una serie di lettere (in genere tre) separata dal nome del file mediante un punto; possono quindi esistere file .txt, ovvero file di testo, file .jpg, ovvero immagini, e cos`ı via. Questa tecnica viene adottata dai sistema operativi DOS e Windows;
• tramite un “magic number”, ovvero i primi due o pi`u byte del file; ad esempio #! identifica gli script nei sistemi Unix e Unix-like, mentre 0xffd8 identifica le immagini in formato JPEG;
• tramite metadati espliciti; ad esempio il file system HFS (Macintosh) affianca ad ogni file una serie di informazioni dettagliate come il suo formato e il programma che l’ha creato. Un approccio simile vie- ne utilizzato anche dai MIME Type (descritti nel seguito) usati per identificare il formato dei file trasferiti tramite internet.
La conoscenza del formato dei dati di livello applicativo risulta avere una primaria importanza ai fini di consentirne il riuso da parte di altri progettisti.
manuale da parte del progettista, sia mediante l’utilizzo di una particolare applicazione che consente ad utenti terzi di elaborare tali dati, sia attraverso l’utilizzo di una opportuna procedura batch realizzata ad hoc.
Infatti, l’infrastruttura InterDataNet, come gi`a enunciato nel capitolo 3, non fornisce per scelta architetturale informazioni relative al contenuto dei dati di livello applicativo, visto che si limita semplicemente ad abilitare l’applicazione IDN che utilizza tali dati a disporre di un dispositivo virtuale (il cosiddetto Virtual Resource) al quale `e delegato lo storage dei dati di interesse dell’applicazione.
L’architettura InterDataNet tratta infatti i dati di livello applicativo come un blob, delegando al singolo progettista la scelta del formato pi`u opportuno, in base alle proprie esigenze ed alle scelte progettuali.
Pertanto egli potrebbe scegliere ad esempio, ma non necessariamente, di utilizzare uno tra i formati elencati nel seguente elenco:
• testo semplice;
• testo separato da virgole (CSV); • pagine HTML;
• file XML; • file JSON.
Come gi`a accennato, al fine di riconoscere il formato dei file trasferiti all’in- terno di internet viene usato spesso il MIME (Multipurpose Internet Mail Extensions); tale standard, definito per la prima volta attraverso la RFC 1341 [BF92] 3, nacque per estendere SMTP (Simple Mail Transfer Proto- col [Kle08], il protocollo utilizzato per inviare le email) al fine di risolvere alcuni limiti insiti in esso, permettendo tra le altre cose, l’invio di testo in codifiche diverse dall’ASCII, l’inserimento di allegati binari come immagini, suoni e filmati [KR03].
Nonostante questo, l’uso di tale standard `e andato oltre il suo scopo iniziale ed oggi `e generalmente utilizzato come modalit`a per descrivere il tipo di contenuto dei file distribuiti via web (e non solo).
Una delle caratteristiche chiave del MIME `e il cosiddetto MIME Type o Content-Type, un meccanismo usato per specificare la natura dei dati del corpo di un’entit`a MIME, assegnando ai media un tipo (type) ed un sottotipo (subtype).
Il tipo viene utilizzato per dichiarare la categoria generica dei dati, mentre il sottotipo specifica il formato particolare per quel tipo di dati.
Il MIME `e stato progettato per essere ampliabile, fornendo delle linee guida per la messa a punto di nuove estensioni; al fine di assicurare che l’insie- me delle coppie tipo/sottotipo si sviluppi in modo ordinato, ben specificato
3Attualmente MIME `e uno standard specificato attraverso le sei diverse RFC
5.1 La necessit`a di individuare regole per i dati 103
e pubblico, `e istituito un processo di registrazione che usa l’Internet Assi- gned Numbers Authority (IANA), come registro centrale per le varie aree di ampliamento del MIME [IAN12].
Attualmente sono definiti sette tipi:
• application: per i dati che devono essere elaborati da un’applica- zione prima di poter essere utilizzati dall’utente. Ne fanno parte ad esempio: i files PDF (application/pdf ), XML (application/xml), ZIP (application/zip), ecc. . . ;
• audio: utilizzato per i files audio, come MP3 (audio/mpeg), Ogg Vorbis (audio/ogg), ecc. . . ;
• image: utilizzato per le immagini, come GIF (image/gif ), JPEG (image/jpeg), PNG (image/png), ecc. . . ;
• message: consente ad un messaggio di posta elettronica di essere incapsulato all’interno di un altro, e risulta utile per l’inoltro di email; • model: utilizzato per i files modelli 3D;
• multipart: utilizzato per indicare che il messaggio email si compone di pi`u parti, le quali sono di tipo e sottotipo diversi;
• text: utilizzato per indicare il testo leggibile o il codice sorgente. Uno dei sottotipi pi`u frequenti `e il text/plain, che indica un testo normale, senza comandi di formattazione o di stile, che deve essere mostrato a video cos`ı come `e. Altri sottotipi sono utilizzati per i files CSS (text/css), CSV (text/csv), HTML (text/html), ecc. . . ;
• video: utilizzato per i files video, come MPEG (video/mpeg), Quick- Time (video/quicktime), ecc. . .
`
E infine da evidenziare l’esistenza di un prefisso vnd, che pu`o essere utilizzato per specificare sottotipi relativi a formati di files prodotti da uno specifico “vendor”, quali i formati di Microsoft Excel (application/vnd.ms-excel), gli audio Wave (audio/vnd.wave), ecc. . .