13 декабря 2009 г.

Как OOXML становился стандартом ISO. Часть I

Я уже писал в посте «Базовые сведения об OOXML», что скандальная история с утверждением формата Office Open XML в качестве стандарта ISO/IEC 29500 наделала много шума. Причем, масштаб скандала оказался существенно шире рамок ISO-сообщества (как на международном, так и на национальных уровнях) и затронул даже правительственные структуры многих стран. О том, что в результате всего происшедшего ISO существенно испортила свою репутацию также было сказано неоднократно.

Я обещал написать пост с подробностями всей истории. И вот, наконец-то, я начинаю публиковать этот давно обещанный длинный-длинный пост (точнее, серию постов) про почти двухлетнюю эпопею «Рассмотрение и утверждение спецификации OOXML в ISO». Серию постов - потому что я понял, что длина единственного поста (если его опубликовать весь и сразу) будет превосходить все разумные пределы читательского интереса и терпения. Честно говоря, и пределы писательского терпения этот пост-сериал уже почти превзошел; я устал его готовить – потому что приходилось много раз переходить с одних сайтов, содержащих фрагменты мозаики под названием «Стандартизация OOXML в ISO», на другие, оттуда – в блоги непосредственных участников процесса из противостоящих лагерей, потом - идти на сайт ISO и уточнять детали процедур по рассмотрению проектов стандартов… Читать свидетельства и изложение слухов, сопоставлять факты, отсеивать явные домыслы… Наверное, при достаточном времени и желании можно было бы подготовить диссертацию по теме :). Вот только непонятно, по какой из дисциплин (история? психология? юриспруденция? психиатрия?) можно было бы такую диссертацию защитить… :)
  1. Зачем статус стандарта ISO для OOXML был так нужен Microsoft? Ответ лежит на поверхности – потому что в противном случае существовала (да, в общем-то, и продолжает существовать) серьезная угроза для рыночной позиции Microsoft в сегменте, который раньше был практически ее безраздельной вотчиной – офисном ПО. Правительственные учреждения и бизнес-организации многих стран все чаще стали склоняться не просто к открытым форматам и открытому ПО, а к тому, что имеет статус международного стандарта – и предпочитают, чтобы этот статус был как можно более высоким. А выше статуса стандарта ISO пока (?) еще ничего нет.
  2. Почему Microsoft пошла тем путем при стандартизации своего формата, каким она пошла? Да потому что это был самый простой и близкий путь к цели, пусть и не самый чистый. Был посредник, обладающий возможностями инициирования наиболее короткой процедуры, была процедура с заложенными в нее минами для всех участников процесса, кроме Microsoft, были лояльные к Microsoft исполнители процедуры…
  3. Как у Microsoft получилось сделать с ISO то, что она с ней сделала? Ну, собственно, развернутым ответом на этот вопрос и будет серия моих постов «Как OOXML становился стандартом ISO 29500:2008». А если говорить коротко – коррупция и процедура.
 В заключение вступительной части первого поста – картинка для понимания масштаба «бедствия» под названием «DIS 29500». На фотографии, сделанной при рассмотрении проекта стандарта DIS 29500 в национальном комитете по стандартизации Венгрии, на столе лежат 2 распечатанных стандарта: стопка побольше – DIS 29500, маленькая стопка – ISO 26300 (ODF)


Источник: Ссылка на Groklaw

Ну а теперь начнем рассматривать историю в деталях. А в деталях, как известно, скрывается Сами-Знаете-Кто… :)

Ecma International
Все началось с того, что формат OOXML был утвержден в качестве стандарта Ecma International, и этой же самой организации Microsoft поручила доработку стандарта для представления его в ISO. Что же это за организация – Ecma?
Аббревиатура ECMA исходно означала «European Computer Manufacturers Association». Ассоциация ECMA была создана в 1961 году, и в течение многих десятилетий разрабатывала стандарты для компьютерной отрасли. Многие из этих стандартов стали также и стандартами ISO. В 1994 году ECMA сменила название на Ecma International, чтобы отразить международный характер своей деятельности.
Среди наиболее известных (до OOXML, конечно :) ) стандартов, разработанных ECMA, - стандарты для гибких дисков и CD-ROM, стандарты 7- и 8-битовой кодировки символов (последний также известен как ISO 8859), стандарты для DDS- и DAT-картриджей.

Начиная с 90-х годов прошлого века, Ecma активно сотрудничает с Microsoft. Ею разработаны следующие стандарты, в основе которых лежат технологии Microsoft:
  • ECMA-334 (ISO/IEC 23270)– Спецификация языка C#
  • ECMA-335 (ISO/IEC 23271) – Спецификация общеязыковой инфраструктуры (Common Language Infrastructure - CLI)
  • ECMA-372 – Спецификация языка C++/CLI
  • ECMA-376 (ISO/IEC 29500)– Спецификация Office Open XML (OOXML)
  • ECMA-388 – Спецификация Open XML Paper Specification (Open XPS)
Говоря простым языком, Ecma в последние годы превратилась в «придворного стандартизатора» Microsoft, «проштамповывающего» стандарты, основанные на технологиях MS. Но не только поэтому ей была уготована такая заметная роль во всей истории.
Ecma имеет в ISO официальный статус «посредника высшей категории» (т.н. Class A Liason), что дает ей возможность «заносить» проекты стандартов для рассмотрения и утверждения по «короткой» схеме – т.н. процедуре Fast-Tracking (я писал об этой процедуре в посте «Порядок разработки стандартов ISO»). В принципе, сама по себе процедура Fast-Tracking имеет смысл – на ее основе ISO рассматривает и утверждает зрелые национальные и отраслевые стандарты в качестве международных. Но история с OOXML, думается, существенно пошатнула доверие к этой процедуре, вскрыв в ней серьезные недостатки. Вопрос, правда, заключается в том, захочет ли ISO исправлять эти недостатки?

Роль Ecma во всей истории не ограничилась только разработкой 6000-страничного проекта стандарта и «заносом» его в ISO. Правила процедуры Fast-Tracking, оказавшие решающее влияние на принятие OOXML в качестве стандарта ISO, были в свое время (какая предусмотрительность!) разработаны при активном участии Ecma International

Сентябрь 2007: первое голосование по DIS 29500
Строго говоря, 2 сентября проводилось не голосование, а подведение итогов голосования национальных комитетов по стандартизации. Непосредственные процедуры голосования проходили в странах-участницах ISO в течение лета 2007 года. Национальные голосования были завершающими шагами в процессе рассмотрения DIS 29500 на уровне стран-участниц ISO, на что было отведено (по правилам процедуры Fast-Tracking) 5 месяцев – с начала апреля по конец августа 2007 года.
Результаты голосования национальных участников ISO представлены на карте с впечатляющим названием – «Первая мировая война форматов».
  

 Источник: NoOOXML.org

Интерес для обсуждения, в первую очередь, представляют страны, помеченные значком черепа с костями, - при голосовании в национальных организациях по стандартизации в этих странах были отмечены серьезные отступления от правил и регламентов (либо формально правильные процедуры были применены ненадлежащим образом). Справедливости ради, нужно отметить, что и некоторые страны, не удостоенные «веселого Роджера», также внесли свой вклад в историю. Пойдем по порядку…
  
Тактика Microsoft
В ходе первой волны голосования по DIS 29500 Microsoft были применены два основных тактических приема – «рейдерский захват» национальных комитетов по стандартизации (с получением нужного результата голосования на уровне страны) и создание «марионеточных» У-членов (P-members) в комитете ISO, рассматривавшем проект стандарта – с тем, чтобы нужные результаты, полученные в странах, имели максимальный вес при подсчете голосов в соответствии с правилами голосования в ISO.
Кроме «рейдерства» и «У-марионеток» использовались и другие приемы – нарушения установленных процедур рассмотрения, изобретение новых «правил игры», давление на национальные комитеты с помощью искусственно сформированного «общественного мнения»…

В чем состояла суть тактики «рейдерского захвата»? Во многих странах законодательство в области стандартизации допускает упрощенную (и очень быструю) процедуру приема организаций в число участников национального органа по стандартизации. Зачастую организации достаточно просто объявить о своем желании участвовать в деятельности национального органа и уплатить символический членский взнос – причем, это можно сделать непосредственно перед началом заседания, на котором будет рассматриваться интересующий организацию проект стандарта. Дальше, думаю, все понятно? :) Практически во всех странах, где существовала описанная выше возможность, перед заседаниями, на которых рассматривался проект стандарта DIS 29500, наблюдался неожиданный «всплеск» (в разы, а иногда и на порядок) численности национального комитета  – причем, голосовали вновь прибывшие (вполне предсказуемо) за проект стандарта. Ну а то, что «по странному стечению обстоятельств» практически все «новички» были локальными партнерами Microsft – нужно ли уточнять? Ведь все происходило строго в рамках правил… Пикантности ситуациям добавляют вскрывшиеся свидетельства того, что Microsoft не только настаивала на участии своих партнеров в национальном голосовании, но и обещала возместить им финансовые издержки, понесенные в связи с вступлением в число «стандартизаторов». Правда, сама Microsoft впоследствии отрицала, что давала подобные обещания – дескать, это были «частные инициативы отдельных сотрудников региональных представительств».

Вот наиболее громкие случаи нарушений на уровне национальных голосований:
  • Швеция. Пожалуй, самый известный случай «рейдерства» Microsoft. До начала рассмотрения проекта DIS 29500 в Шведском Институте Стандартов (SIS) в профильную рабочую группу входило всего 11 членов. Перед решающим голосованием число членов увеличилось до 34, т.е. добавились 23 (!) новых члена. Цена вопроса для каждого нового участника составляла 17 000 SEK (чуть более 2400 долларов) – это размер членского взноса для вступления в SIS (причем, Microsoft обещала компенсировать эти расходы через маркетинговую поддержку партнеров). Из 23 новых членов SIS один хорошо известен – это Google (и он твердо был намерен голосовать против DIS 29500), а из остальных 22-х – 18 являлись партнерами Microsoft (большинство – в статусе Gold Sertified Partner). Результаты голосования: 25 – «за», 6 – «против», 3 – воздержались. Как голосовали партнеры Microsft, думаю, уточнять не надо… Однако, голос Швеции в ISO в итоге не достался Microsoft. Найдя формальный повод (якобы один из участников голосования проголосовал дважды), SIS признал национальные результаты голосования по DIS 29500 недействительными.
  • Италия. Случай, абсолютно идентичный шведскому – только масштабы более впечатляющие. Благодаря поддержке MS, число членов профильного комитета перед решающим голосованием увеличилось с 5 до 83 (!). За каждого из новых членов MS уплатил членский взнос размером в 2000 евро.
  • Норвегия. В ходе публичного обсуждения проекта DIS 29500 Microsoft инициировала массовую отправку в национальный комитет по стандартизации – Standard Norge (SN) – писем в поддержку проекта стандарта от своих локальных партнеров. Для этой цели партнерам рассылались шаблонные тексты, в которых нужно было только проставить название компании. Некоторые из партнеров MS даже не удосужились убрать из шаблонов подсказку «Type company name here», когда отправляли свои письма в SN :). Из 59 писем в поддержку проекта стандарта, полученными SN, 37 были изготовлены по шаблону MS.  Однако, это не помогло – SN проголосовал «Против с комментариями».
  • США. Профильный комитет V1 INCITS (форума, уполномоченного ANSI для выработки позиции США по проекту DIS 29500) в начале 2007 года состоял из 7 человек, 6 из которых голосовали «против». К июлю 2007 года, когда должно было состояться одно из решающих голосований, в состав V1 входило уже 25 человек, 16 из которых присоединились к комитету в течение месяца перед голосованием. Из этих 16-ти 14 проголосовали «за»; практически все новые члены V1 были бизнес-партнерами Microsoft.
  • Венгрия. Один из немногих примеров, когда здравый смысл и четкое следование регламентам и процедурам смогли противостоять напору Microsoft. Несколько встреч с попытками рассмотреть и проголосовать по проекту DIS 29500 были организованы с нарушениями регламентов (не соблюдались сроки оповещения о предстоящих встречах, извращенно толковалось правило консенсуса и т.п.). В результате венгерское Министерство экономики и транспорта, в чем подчинении находится национальный комитет по стандартизации, приняло решение, что в отсутствие реального консенсуса единственной возможностью будет отказ Венгрии от какого бы то ни было голосования.
  • Нидерланды. Практически весь профильный технический комитет очень интенсивно работал над комментариями к проекту стандарта и почти состоявшийся консенсус был за то, чтобы проголосовать «Против с комментариями». «Почти состоявшийся» - потому что Microsoft решила проголосовать «За» (без объявления каких бы то ни было причин для такого решения), чем разрушила консенсус – и фактически наложила вето на решение абсолютного большинства. По правилам национального комитета, в этом случае стране полагалось голосовать в ISO «Воздержался» (без отправки каких-либо комментариев) – что и было сделано.
 Подробно рассказывать про все страны, в которых были зафиксированы нарушения при первом голосовании по проекту стандарта, и описывать суть этих нарушений, скучно – настолько все было однообразно. Поэтому ограничусь коротким перечислением:
  1. Рейдерство MS на уровне национальных комитетов по стандартизации: Бразилия, Колумбия, Португалия, Кения, Мексика, Нигерия, Швейцария
  2. Поддержка, оказанная MS с уровня национальных правительств: Малайзия  
  3. Прямой подкуп (подарки, оплаченные поездки и т.п.): Пакистан
  4. Инспирированные MS компании в поддержку DIS 29500: Индия, Мальта
  5. Дискриминация оппонентов MS: Португалия, Польша, Украина, Венесуэла
 Были и такие страны (к сожалению, в их число попала и Россия – см. ниже), где из-за бездействия функционеров национальных комитетов никаких заметных активностей по рассмотрению проекта стандарта DIS 29500 просто не было – Сербия, Хорватия

У-марионетки
Зачем были нужны «марионеточные» У-члены в ISO JTC1? Вспомним, что для утверждения проекта стандарта необходимо, чтобы за него проголосовало не менее 2/3 от числа У-членов соответствующего профильного комитета. Т.е. Microsoft недостаточно было добиться того, чтобы некоторые страны просто сказали «да», - важно было, чтобы они сказали свое «да», будучи У-членами комитета JTC1.
На протяжении ряда лет JTC1 имел достаточно стабильное число У-членов, принимавших активное участие в деятельности комитета: 1 новый У-член добавился в 2001 году, ни одного – в 2002, 4 – в 2003, 1 – в 2004, ни одного – в 2005, 4 – в 2006. К концу 2006 года в JTC1 насчитывалось всего 29 У-членов – это так называемая «старая гвардия». А в 2007 году число У-членов JTC1 увеличилось сразу на 12, большинство из которых добавлись в последние недели перед голосованием по DIS 29500.
Кто же эти новые У-члены JTC1? Вот они: Венесуэла, Казахстан, Кипр, Кот дИвуар, Ливан, Мальта, Пакистан, Тринидад и Тобаго, Турция, Уругвай, Эквадор, Ямайка. О том, как они голосовали (если это еще не очевидно…) – в конце поста.

А что же Россия?
Голосование по DIS 29500 в России не имело явно выраженных признаков нарушений (короткую историю процесса можно прочитать на C-News). Тем не менее, вопросы в связи с этим голосованием возникают. Технический комитет 22 (ТК22) «Информационные технологии» Федерального агентства по техническому регулированию и метрологии (Ростехрегулирование) рекомендовал руководству агентства воздержаться от голосования. Основанием для такой рекомендации (по словам одного из руководителей ТК22) было то, что за 5 месяцев, отведенных процедурой Fast-Tracking на рассмотрение проекта стандарта, невозможно было должным образом рассмотреть документ объемом более 6 тыс. страниц и вынести экспертное заключение. Непонятно, почему экспертам из более чем 50-ти стран, подготовившим в общей сложности более 3500 замечаний к проекту стандарта, ровно такого же количества времени хватило для вынесения своих экспертных заключений, а экспертам из России – не хватило? Может, просто потому, что никто и не пытался рассмотреть хоть сколько-то страниц из этих шести тысяч?
Как бы то ни было, рекомендация ТК22 не была принята во внимание руководством Ростехрегулирования. Один из заместителей руководителя агентства (по иронии судьбы, полный тезка «сатирика» Евгения Петросяна…) дал указание представителю России в ISO голосовать «за». На интернет-форумах, обсуждавших ситуацию с голосованием по DIS 29500 в России нашелся комментарий человека, которому удалось выйти на непосредственный контакт с г-ном Петросяном и задать ему вопрос о резонах такого решения. Ответом Петросяна-стандартизатора было, что голосование «против» или «воздержался» стало бы тормозом на пути прогресса. Как говорится, «Умри, Денис, лучше не скажешь…» - и Петросян-сатирик тоже смешнее не придумал бы…

Итоги голосования
Несмотря на вышеописанные приемы, сентябрьское голосование оказалось неблагоприятным для Microsoft – компании не удалось протащить свой проект стандарта «по-быстрому».
Статистика голосования:
У-члены: За - 17, Воздержались - 9, Против - 15. При 53% (17 из 32) У-членов, проголосоваших «за», DIS 29500 не прошел утверждение по первому критерию голосования.

Весьма показательна разница в голосовании «старой гвардии» и новых У-членов:
«Старая гвардия»: За – 7, Против – 14, Воздержались – 8
Новые У-члены: За – 10, Против – 1, Воздержались - 1

Общее голосование: За - 51, Воздержались - 18, Против - 18. При 26% (18 из 69) всех членов, проголосоваших «против», DIS 29500 не прошел утверждение и по второму критерию голосования (хотя это уже и не важно – в свете первого критерия).

Согласительная встреча по результатам голосования (BRM – Ballot Resolution Meeting), предварительно намеченная на конец февраля 2008 года, становилась неизбежной. А до нее еще нужно было обработать более 3500 комментариев, поступивших от стран-участниц в ходе первой фазы рассмотрения проекта стандарта DIS 29500

Продолжение следует…

Комментариев нет:

Отправить комментарий