Σχετικό ενημερωτικό του FSFE
Η διαλειτουργικότητα δεινοπαθεί με το MS-OOXML
Η προτεινόμενη προδιαγραφή MS-OOXML/DIS29500 ανακινεί σοβαρά τεχνικά και νομικά ζητήματα. 1 Αυτή η ενημέρωση δίνει έμφαση σε τρία παραδείγματα για το πώς η προτεινόμενη προδιαγραφή MS-OOXML και η πρακτική της υλοποίηση στο MS Office 2007 παρεμποδίζει τη διαλειτουργικότητα, καλλιεργεί την εξάρτηση από τον προμηθευτή και καταλήγει στη στρέβλωση της αγοράς.
Δεν μετριάζει τις ανησυχίες το ότι στη Συνάντηση Επίλυσης Διαφορών με Ψηφοφορία του ISO για την προτεινόμενη προδιαγραφή περισσότερα από 1000 τεχνικά ζητήματα και προτάσεις ρυθμίσεων χρειάστηκε να τεθούν προς συζήτηση. Οι συμμετέχοντες κατάφεραν να συζητήσουν μόνο μεταξύ 20 με 30 ρυθμίσεις και να κάνουν δεκτές περίπου 200 ελάσσονες διορθώσεις σύνταξης στον καθορισμένο χρόνο. Περίπου 900 ρυθμίσεις δεν συζητήθηκαν. 2
Παράδειγμα #1: Απροσδιόριστο περιεχόμενο δυαδικού τύπου σε παραγόμενα αρχεία MS-OOXML στο MS Office 2007 παρεμποδίζει τη διαλειτουργικότητα
Η ανάλυση έχει δείξει ότι έγγραφα XLSX που δημιουργεί το MS Office 2007 περιέχουν πρόσθετο δυαδικό περιεχόμενο σε αυτό που περιγράφεται στην προτεινόμενη προδιαγραφή MS-OOXML. Αυτή η προσθήκη παρεμποδίζει τη διαλειτουργικότητα και μπορεί να μειώσει την πιστότητα του εγγράφου. Η ανάλυση έγινε με το κατέβασμα ενός εγγράφου XLSX απο το microsoft.com και ανοίγοντας το συμπιεσμένο περιεχόμενο για την επιθεώρηση της εσωτερικής δομής του αρχείου. 3 4
Το δυαδικό περιεχόμενο αποτελείται από τρία αρχεία που ορίζονται κατά την υλοποίηση με τα ονόματα printerSettings1.bin, printerSettings2.bin και printerSettings3.bin. Προέρχονται από τη Microsoft και το περιεχόμενό τους δεν περιλαμβάνεται στην προτεινόμενη προδιαγραφή. Η εξέταση των δυαδικών αρχείων σε έναν κειμενογράφο δεκαεξαδικής κωδικοποίησης αποκαλύπτει αναφορές στα 'Microsoft OneNote Import' και 'Letter'. Η αναφορά 'Letter' φαίνεται να είναι μια αναφορά στο μέγεθος της σελίδας.
Οι αναφορές σε μέγεθος σελίδας σε δυαδικό αρχείο που ορίζεται κατά την υλοποίηση είναι προβληματικές. Η πληροφορίες για το μέγεθος σελίδας είναι κρίσιμες στην εξασφάλιση της σωστής σελιδοποίησης ενός κειμένου. Οι Ευρωπαϊκές εφαρμογές χωρίς την πρόσβαση στη δυαδική πληροφορία μπορεί να χρησιμοποιούν μέγεθος σελίδας A4 αντί για Letter για την εμφάνιση του εγγράφου, αφήνοντας έτσι χώρο για περισσότερο περιεχόμενο σε κάθε σελίδα. Δύο διαφορετικοί χρήστες θα ήταν δυνατό να έχουν την εντύπωση ότι συζητούν για πολύ διαφορετικά έγγραφα όταν οι αριθμοί των σελίδων τους δεν ταιριάζουν.
Παράδειγμα #2: Η διατύπωση ως προς την εναρμόνιση δεν έχει νόημα
Η προτεινόμενη προδιαγραφή έχει μια χαλαρή διατύπωση για να καθορίσει την εναρμόνιση μιας εφαρμογής. Γράφει ότι ένα πρόγραμμα καταναλωτής της προδιαγραφής που την ακολουθεί πιστά πρέπει να ανοίξει ένα εναρμονισμένο έγγραφο χωρίς να προκληθεί κάποιο λάθος και ότι ένα πρόγραμμα παραγωγός εγγράφων που ακολουθεί την προδιαγραφή πρέπει να μπορεί να δημιουργεί ένα μοναδικό εναρμονισμένο έγγραφο. Οι υλοποιήσεις των χαρακτηριστικών της προδιαγραφής από εφαρμογές πρέπει να τηρούν τους κανόνες της προτεινόμενης προδιαγραφής. 5 Αυτοί οι όροι επιτρέπουν ακόμα και σε εφαρμογές που δεν χρησιμοποιούν έγγραφα, να θεωρούνται εναρμονισμένες.
Ένα παράδειγμα εφαρμογής που τηρεί τη διατύπωση περί εναρμόνισης της προτεινόμενης προδιαγραφής αλλά δεν θα έπρεπε να θεωρείται εναρμονισμένη είναι το πρόγραμμα GNU 'cp', μια εντολή που χρησιμοποιείται για την αντιγραφή αρχείων. 6 Το 'cp' τεχνικά είναι ένα εναρμονισμένο πρόγραμμα καταναλωτής της προτεινόμενης προδιαγραφής αφού δεν απορρίπτει ένα εναρμονισμένο έγγραφο και τα όποια χαρακτηριστικά (κανένα) που υλοποιούνται στο πρόγραμμα είναι πιστά στην προδιαγραφή. Το 'cp' είναι επίσης ένα πρόγραμμα παραγωγός της προτεινόμενης προδιαγραφής αφού μπορεί να δημιουργήσει ένα εναρμονισμένο έγγραφο και τα όποια χαρακτηριστικά (κανένα) που υλοποιούνται στο πρόγραμμα είναι πιστά στην προδιαγραφή.
Η διατύπωση εναρμόνισης για την προτεινόμενη προδιαγραφή είναι ανεπαρκής επειδή πρακτικά οποιαδήποτε εφαρμογή που ανοίγει ή αποθηκεύει έγγραφα μπορεί να θεωρηθεί εναρμονισμένη. Ο βαθμός ως προς το ποιες εφαρμογές χρησιμοποιούν έγγραφα δεν κρίνεται και αυτό επιτρέπει παραπλανητικούς ισχυρισμούς σχετικά με την υποστήριξη της προδιαγραφής. 7 Μια διατύπωση ως προς την εναρμόνιση είναι από τα σημαντικότερα σημεία ενός προτύπου, αλλά το σχετικό κείμενο που χρησιμοποιείται στην DIS29500 είναι πρακτικά χωρίς νόημα.
Παράδειγμα #3: Η Open Specification Promise της Microsoft δεν αποτελεί αξιόπιστη νομική κάλυψη για πλήρη διαλειτουργικότητα
Τα παραγόμενα από το MS Office 2007 αρχεία MS-OOXML περιέχουν περιεχόμενο το οποίο εξαρτάται από την υλοποίηση. Αυτή είναι ένα ζήτημα επειδή περιεχόμενο το οποίο δεν περιλαμβάνεται στην προτεινόμενη προδιαγραφή δεν έχει μια σαφή ιδιότητα σχετικά με την κάλυψη από την Microsoft Open Specification Promise (OSP). Η κάλυψη OSP περιορίζεται στις πατέντες ''οι οποίες είναι απαραίτητες για την υλοποίηση μόνο των απαιτούμενων τμημάτων της Καλυπτόμενης Προδιαγραφής τα οποία περιγράφονται λεπτομερώς και όχι αυτών που απλώς αναφέρονται σε μια τέτοια Προδιαγραφή''. 8
Η OSP παραθέτει στην τελευταία πρόταση της δεύτερης παραγράφου ότι ''Κανένα άλλο δικαίωμα εκτός από εκείνα τα οποία δηλώνονται με σαφήνεια σε αυτό το υποσχετικό δεν θα θεωρηθεί ότι επιτρέπει παραχώρηση, παραίτηση ή ότι λαμβάνεται έμμεσα, λόγω εξάντλησης, ανάκλησης ή με άλλον τρόπο''. 9 Φαίνεται λογικό να μην στηρίζεται κανείς στην OSP για περιεχόμενο απαραίτητο για να επιτραπεί η διαλειτουργικότητα το οποίο δεν περιγράφεται λεπτομερώς ή δεν αναφέρεται στην προτεινόμενη προδιαγραφή.
Αυτό το ζήτημα γίνεται πιο έντονο αν το έγγραφο αποθηκεύεται σε άλλες παραλλαγές του προτεινόμενου τύπου αρχειοθέτησης. Για παράδειγμα, τα έγγραφα XLSM περιλαμβάνουν απροσδιόριστο περιεχόμενο καθώς επίσης και δυαδικό περιεχόμενο. Τα έγγραφα XLSB περιλαμβάνουν περιεχόμενο που αποθηκεύεται με μια μέθοδο η οποία προφανώς δεν περιγράφεται στην προτεινόμενη προδιαγραφή. Τα έγγραφα XSLX με κωδικό επίσης αποθηκεύονται με τη χρήση ενός πλαισίου εγγράφων το οποίο προφανώς δεν καλύπτεται από την προτεινόμενη προδιαγραφή.
Συμπέρασμα
Το δυαδικό περιεχόμενο, η έλλειψη αποτελεσματικής διατύπωσης σχετικά με την εναρμόνιση και η νομική αβεβαιότητα είναι μόνο ένα δείγμα από τα ζητήματα που σχετίζονται με την προτεινόμενη προδιαγραφή MS-OOXML.
Με δεδομένο ότι η διαδικασία ISO έχει περίπου 900 ανεπίλυτα τεχνικά σχόλια και ότι δεν θα συζητηθούν νομικά θέματα, η καταλληλότητα της προτεινόμενης προδιαγραφής είναι περισσότερο από αμφισβητήσιμη. Το μόνο αποτέλεσμα της προτεινόμενης προδιαγραφής και της πρακτικής της υλοποίησης στο MS Office 2007 είναι η παρεμπόδιση της διαλειτουργικότητας, η εξάρτηση από τον προμηθευτή και η διαρκής στρέβλωση της αγοράς.
Κατά την άποψή μας υπάρχει μία μόνο λογική απάντηση από τους εθνικούς φορείς: πετάξτε έξω το DIS29500 από την επείγουσα διαδικασία ψηφίζοντας ''DISAPPROVE, with comments'' και προτείνετε μεθόδους χειρισμού της προτεινόμενης προδιαγραφής μέσα από την κανονική διαδικασία του ISO, με ιδανική λύση τη διοχέτευση της προδιαγραφής στο ISO/IEC 26300, το Open Document Format (ODF).
Σχετικά κείμενα
- DIS-29500: Deprecated before use?
- Six questions to national standardisation bodies
- The Converter Hoax
- Questions for Microsoft on Open Formats
[1] Δείτε για παράδειγμα http://www.grokdoc.net/index.php/EOOXML_objections
[2] http://www.consortiuminfo.org/standardsblog/article.php?story=20080229055319727
[3] http://download.microsoft.com/download/a/a/3/aa3411df-5b02-463a-8ab1-9587dd8a2508/Salesdata.xlsx
[4] Το συμπιεσμένο είχε τα ακόλουθα αρχεία: ./Content_Types].xml, ./_rels/.rels, ./docProps/app.xml, ./docProps/core.xml, ./docProps/custom.xml, ./xl/_rels/workbook.xml.rels, ./xl/calcChain.xml, ./xl/printerSettings/printerSettings1.bin, ./xl/printerSettings/printerSettings2.bin, ./xl/printerSettings/printerSettings3.bin, ./xl/sharedStrings.xml, ./xl/styles.xml, ./xl/tables/table1.xml, ./xl/theme/theme1.xml, ./xl/workbook.xml, ./xl/worksheets/_rels/sheet1.xml.rels, ./xl/worksheets/_rels/sheet2.xml.rels, ./xl/worksheets/_rels/sheet3.xml.rels, ./xl/worksheets/sheet1.xml, ./xl/worksheets/sheet2.xml, ./xl/worksheets/sheet3.xml
[5] Η ακριβής διατύπωση είναι “A conforming consumer shall not reject any conforming documents of at least one document conformance class. the document type (§4) expected by that application. A conforming producer shall be able to produce conforming documents of at least one document conformance class. A conforming application shall treat the information in Office Open XML documents in a manner consistent with the semantic definitions given in this Specification. An application's intended behavior need not require that application to process all of the information in an Office Open XML document. However, the information that it does process shall be processed in a manner that is consistent with the semantic definitions given in this Specification.”
[6] Ξεκινήστε με ένα εναρμονισμένο έγγραφο με όνομα 'test.docx'. Εκτελέστε την εντολή 'cp test.docx test_copy.docx' και επιβεβαιώστε ότι δεν παράγονται λάθη και ότι ένα νέο αντίγραφο του εναρμονισμένου δημιουργήθηκε.
[7] Παραδείγματα εφαρμογών που δίνει η Microsoft ως υποστηρικτικά της προτεινόμενης προδιαγραφής περιλαμβάνουν: το Apple Mac OS X, το οποίο δεν έχει υποστήριξη για εικόνες ή ενσωματωμένα αντικείμενα. Το iWork, το οποίο δεν έχει υποστήριξη για υπολογιστικά φύλλα, μπορεί να δεχτεί μόνο ένα περιορισμένο σύνολο εγγράφων και δεν έχει τη δυνατότητα αποθήκευσης εγγράφων. Το Google (Search / Preview), το οποίο διαχειρίζεται κείμενο αλλά δεν έχει υποστήριξη για σελιδοποίηση, εικόνες ή ενσωματωμένα αντικείμενα.
[8] http://www.microsoft.com/interop/osp/default.mspx
[9] Ibid