CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
24.03.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Движение Open Source

Открытые стандарты и новые формы международного сотрудничества

Труды Института системного программирования РАН

Страницы: 1 :: 2 :: 3 :: следующая

Аннотация

Открытые коды (ОК), или Open Source постоянно находятся в сфере внимания специалистов ИТ-индустрии. Зримыми показателями успеха ОК является глобальное наступление ОС Linux или популярность таких международных проектов, как Википедия. В статье выделяется общий принцип модели ОК - формирование открытого сообщества. Проекты по развитию и продвижению открытых стандартов также удовлетворяют этому принципу и представляют собой новую форму международного сотрудничества, что иллюстрируется примерами проектов, в которых принимает участие ИСП РАН.

Содержание

1. Введение

Модель Открытого кода (Open source) - это не только соглашения о формах использования программ или других результатов творческой деятельности людей и целых организаций. Правила использования ОК - это лишь формальная сторона, задающая рамки функционирования модели. Другой, возможно, более важной стороной модели, является свободный, индивидуальный выбор участия в создании и использовании ОК. В мире ОК никому не придет в голову заставить кого бы то ни было что-то создать или что-то использовать вопреки желаниям субъекта. ОК предоставляет человеку или организации возможности участия в процессе, а субъект, соответственно, сам делает выбор, что и как он будет делать, не нарушая оговоренных правил использования ОК.

Заметим, что такое партнерство сильно отличается от отношений, которые типичны для мира коммерции, где главными действующими лицами являются заказчик и исполнитель. В коммерческом мире один принимает решение, что нужно сделать (заказчик), а другой вынужден делать это (исполнитель). В то же время, в нашей реальности имеется распространенная модель совместной деятельности, где стороны не навязывают друг другу директив, а сотрудничают, соблюдая при этом свои интересы, и развиваются исходя опять же из собственных интересов. Речь идет о международных программах, в которые страны входят на добровольной основе и двигаются к общей цели, не теряя из виду и свои собственные интересы.

Не удивительно, что проекты, работающие по модели ОК, часто одновременно являются международными, и наоборот, в международных проектах по созданию и/или продвижению программных платформ и новых стандартов используется модель ОК. Это объясняется тем, что модель ОК и международные программы, построенные на добровольном участии стран, по духу близки друг другу, в обоих случаях мы видим суверенных партнеров, которые пытаются достичь общих и своих собственных целей, не ущемляя интересы партнеров.

Понятно, что, наряду со сходством, между проектами ОК и международными проектами, имеются и важные различия. Одной из причин таких различий служит существенно более высокая динамика проектов ОК: страны живут в соседстве веками, а проекты ОК длятся от нескольких недель до нескольких лет, но не больше. Высокая динамика означает, что партнеры должны быстро договориться не только о том, что делать, каковы цели и этапы проекта, но и о том, кто и что может и хочет делать. То есть в жизненном цикле проекта появляется существенная составляющая, которая направлена не на результат проекта, а на построение и усовершенствование процесса. При этом, как правило, нет никакого априорно предписанного процесса, а, скорее, выбирается некоторый шаблон, который может адаптироваться для конкретных условий. Акцент в проектах ОК делается на механизмы самоорганизации, которые позволяют найти процесс, приемлемый всем партнерам.

Модель ОК не следует трактовать слишком узко и ограничивать ее пригодность только сферой разработки программных систем. По этой модели организуются проекты из различных областей творческой деятельности - составление словарей и энциклопедий (например, сетевая энциклопедия Wikipedia [1], математическая энциклопедия проекта PlanetMath[2]), разработка учебных курсов (например, проекты PlanetMath и PlanetPhysics[3]), живопись и графика (например, открытый проект OpenClip[4]), музыкальное творчество (см. список открытых музыкальных проектов на сайте Remix Commons [5]) и т.д. Трактовка Политики открытого кода в Википедии не ограничивается только созданием программного обеспечения:

Политика открытого кода (open source politics) - принцип "распределенной" разработки, использующийся в технологии, искусстве, политике общественных организаций и сетей и, прежде всего, - в создании свободного программного обеспечения.

2. Открытый код и открытые сообщества

Особенность проектов по созданию открытого кода заключается в том, что эти проекты выполняются открытым сообществом. Что такое открытое сообщество?

Корпорация Microsoft распространяет исходные тексты стандартной библиотеки языка Си вместе со средой разработки MS Visual Studio, и каждый пользователь Visual Studio может легко с ними ознакомиться. Делает ли это стандартную библиотеку языка Си корпорации Microsoft открытым кодом? Нет, потому что у пользователей нет возможности организовать сообщество для развития этой библиотеки.

Открытое сообщество строится вокруг информационного ресурса. Это может быть сервер с исходными кодами некоторой программной системы, виртуальная энциклопедия или база стандартов. Люди объединяются в сообщество с целью развивать информационный ресурс - разрабатывать программу, писать и редактировать статьи в энциклопедии или разрабатывать или уточнять спецификации некоторого стандарта. Мы будем называть сообщество открытым, если оно удовлетворяет следующим требованиям:

  1. У всех членов сообщества есть доступ к информационному ресурсу, над которым ведётся работа.
  2. Сообщество ведёт коммуникацию через доступные извне каналы общения - дискуссионные листы, форумы.
  3. Известны правила, которые регулируют отношения людей в сообществе, причём для того, чтобы узнать эти правила, не требуется вступать в сообщество.
  4. Для вступления и участия в работе сообщества не требуется выплачивать лицензионные отчисления.
  5. Участие в сообществе не ограничивает социальных свобод (в частности, не требуется подписка о неразглашении коммерческой или иной тайны).

Участие в открытом сообществе налагает на человека определённые обязательства. Открытое сообщество представляет собой принципиально новую социальную формацию по сравнению с корпоративными или исследовательскими коллективами разработчиков. Прежде всего, это высокая личная ответственность каждого за качество и объём работы. Кроме того, проекты ведутся совместно несколькими независимыми разработчиками, и результат их работы является совместной интеллектуальной собственностью.

В условиях современного общества доступ к информационному ресурсу и интеллектуальной собственности определяется юридическим соглашением между пользователем ресурса и его поставщиком или его создателями. В мире ОК роль такого соглашения выполняет лицензия, определяющая правообладателя ресурса или его отдельных частей и регламентирующая условия использования ресурса. Условия лицензии играют ключевую роль в формировании открытого сообщества. Лицензии, запрещающие изменения или требующие сокрытия знаний об устройстве программы, разрушают всякую возможность создать открытое сообщество. И напротив, если лицензия позволяет изменять и дополнять исходные тексты программы, открыто обсуждать архитектуру и детали реализации, то она создаёт достаточные предпосылки, чтобы вокруг программы возникло открытое сообщество.

При первом знакомстве с понятием открытых кодов у многих возникает впечатление, что с такими работами можно делать всё, что заблагорассудится - использовать, продавать, изменять. Такая возможность есть в том случае, когда результаты работы передаются в общественное достояние (public domain), однако немногие из тех, кто задействован в работе с ОК, согласны передавать свои работы в общественное достояние с добровольным отказом от своего авторства. Но обозначение авторства на результатах работы, в частности, на исходных текстах программ, влечёт множество дополнительных вопросов, связанных с ответственностью за применение работы автора, имущественными отношениями и просто сохранением формального обозначения авторства в производных работах.

В движении открытых кодов нет окончательного понимания того, какие ограничения, налагаемые лицензией, позволяют создать открытое сообщество вокруг защищаемых ею информационных ресурсов. Причина, возможно, заключается в том, что к движению открытых кодов постоянно присоединяются новые игроки - крупные компании и корпорации - со своими юридическими отделами, которые "изобретают" свои лицензии для защиты открываемых исходников. Апологеты ОК сформулировали ряд требований к лицензии, с которыми согласно большинство участников движения открытых кодов (но не все!). Эти требования опубликованы на сайте Open Source Initiative [6], здесь мы приведём их в сокращённом виде:

лицензия должна обеспечить свободное распространение, доступ и модификацию открытых кодов, и не должна содержать положений, ущемляющих права отдельных категорий пользователей.

Наибольшей популярностью в настоящее время пользуются четыре лицензии: Gnu Public License (GPL) [7], Lesser Gnu Public License [8], Apache License (AL) [9] и BSD License [10]. На сайтах Free Software Foundation [11] и Open Source Initiative [12] приведены перечни лицензий, которые составители сочли удовлетворяющими требованиям открытых кодов. Эти лицензии используются не только для компьютерных программ, но и для документации, книг и даже произведений искусства.

Помимо лицензии, на формирование сообщества оказывают влияние правила, регулирующие отношения между участниками. В частности, правила могут описывать процедуру добавления новых членов в сообщество, организационную структуру и механизмы принятия решений. Эти правила могут быть закреплены формально, например, в уставе некоторого консорциума или могут входить в состав неформальной культуры сообщества. Последний вариант наиболее широко распространён.

Следование принципам открытых проектов, в особенности, принципу "открытых правил" требует совершенного нового стиля организации рабочего процесса в открытых проектах. Смена привычных стилей управления происходит постепенно, и во многих открытых проектах можно наблюдать те или иные рудименты закрытых методов управления. Например, в проекте по созданию ядра ОС Linux право записи в дерево исходных текстов предоставляется только тем, у кого "есть приемлемый вклад в ядро Linux и достаточное основание в получении непосредственного доступа" [13]. Объём "приемлемого вклада" и "достаточность основания" определяются здравым смыслом администраторов проекта kernel.org, причём они разрешают себе отказывать в выдаче такого разрешения или отмене уже выданного разрешения без объяснения причин.

Центр стандартизации Интернета (Internet Engineering Task Force, IETF) [14] вот уже на протяжении 25 лет является главным органом разработки стандартов технологий, поддерживающих сеть Интернет. В частности, именно в IETF приняты стандарты на стек протоколов TCP/IP, протоколы FTP, HTTP, SIP, TELNET, системы обеспечения безопасности в сети Интернет. Центр стандартизации Интернета является примером организации, в которой уже сложилась полностью открытая структура управления - разработаны и зафиксированы правила рабочего процесса, управления рабочим процессом, публикации и отзыва стандартов. Необходимо отметить, что эта структура складывалась на протяжении более чем 20 лет, причём работы по дальнейшему развитию и совершенствованию механизмов управления открытыми проектами в IETF не прекращаются.

Открытые сообщества складываются из добровольцев, которые зачастую не имеют материальной заинтересованности в результатах проекта. В силу этой особенности открытых сообществ приказные механизмы управления, как правило, не эффективны - несогласные просто уйдут и приложат свои силы в других проектах. Поэтому в открытых сообществах обязательно возникают элементы самоорганизации, которые позволяют вырабатывать организационные формы, приемлемые для всех участников. В частности, распространены коллегиальные механизмы принятия решений, выборный характер руководства проекта.

В соответствии с историей возникновения открытые сообщества можно разделить на две группы - те, что "возникли сами", и те, что "были созданы". К первой группе мы причисляем сообщества, возникшие вокруг небольшой инициативной группы или даже одного человека для создания или развития информационного ресурса. Примером может служить сообщество разработчиков ядра ОС Linux, которое выросло из инициативной группы, поддержавшей в начале 1990-х Линуса Торвальдса в его работе над новой операционной системой для персональных компьютеров. В таких проектах выделяется группа наиболее активных и уважаемых разработчиков, которые зарекомендовали себя в ходе проекта. Они наделяются полномочиями управлять проектом - принимать или отклонять изменения, вносимые в информационный ресурс, планировать разработку и т.д. Важной чертой этих проектов является то, что такая руководящая группа образуется как бы "сама по себе", зачастую с использованием демократических механизмов, таких как выдвижение кандидатов и голосование сообщества.

Ко второй группе мы относим сообщества, которые развиваются по принципам открытых сообществ, но изначально были созданы общественными или коммерческими организациями. Начиная с 1998 года, когда компания Netscape открыла исходные тексты своего браузера, всё больше компаний и корпораций передают свои ранее закрытые разработки в мир открытых кодов. При этом компании, как правило, учреждают некоммерческие общественные комитеты для управления открытым проектом. Эти организации выполняют те же самые функции, что и управляющие группы в проектах из первой группы, состав комитета также может формироваться на демократических принципах, но начальный состав комитета определяется компанией-основателем проекта.

3. Основные принципы проектов по разработке и продвижению открытых стандартов

Разработка программного обеспечения - это самая распространенная область применения модели ОК, но и здесь есть неожиданные "открытия". Одним из них служит разработка и продвижение открытых стандартов интерфейсов программных и аппаратных систем. Заметим, что текст стандарта (часто говорят "спецификация") больше похож на книгу, чем на программу. Совместная работа над книгой - это совсем другой процесс по сравнению с процессом создания программной системы. Еще меньше сходства между процессами создания ПО и процессами продвижения стандарта. Продвижение стандарта больше похоже на программы пропаганды и агитации в политике или на программы развития культурных связей или распространения знаний.

Разработка и продвижение стандартов обладают рядом особенностей, обусловленных природой стандартов.

  1. Стандартизацией занимаются не столько отдельные люди, сколько целые организации, поскольку реализация стандарта - это задача, требующая больших ресурсов и, как правило, непосильная для одного человека.
  2. В стандартизации часто бывают заинтересованы индустриальные компании. В таком случае в состав группы, разрабатывающей стандарт, делегируются представители компаний. Они получают зарплату за участие в работе над стандартом и отстаивают в стандарте интересы компании-работодателя.
  3. Стандарты могут затрагивать национальные интересы отдельных государств, поэтому многие международные органы стандартизации, в том числе и те, что ведут открытые проекты стандартизации, поддерживают сеть базовых организаций или региональных представительств в различных странах. Посредством базовых организаций решаются вопросы коммуникации с правительствами и адаптации стандарта и методов его продвижения к особенностям соответствующих стран. В этом проекты по стандартизации отличаются от большинства проектов ОК, которые являются в чистом виде интернациональными проектами без привязок к национальным структурам.

Разработка стандартов также имеет ряд отличий от типичных проектов ОК, направленных на создание программ. Программы разрабатываются инкрементально, небольшими кусками с частыми обновлениями исходных текстов. Проектная документация создаётся редко, даже пользовательская документация на программы, разработанные в проектах ОК, редко существует в полном объёме. Не всегда серьёзное внимание уделяется тестам, которые проверяют функциональную корректность программ.

Стандарты разрабатываются иначе. К ним предъявляются жёсткие требования (полнота, непротиворечивость, понятность, однозначность), поэтому изменения в стандарты вносятся, как правило, сразу большими частями, чтобы обеспечить высокое качество стандарта. Стандарты могут содержать отдельные части или главы, поясняющие их назначение и основные идеи, что аналогично проектной документации для программного обеспечения. Тестирование стандарта заключается в разработке реализаций-прототипов, что само по себе может быть гораздо сложнее, чем тестирование программ в проектах ОК.

Немаловажной частью продвижения стандарта является задача создания тестовых наборов для проверки соответствия стандарту. Эта задача лежит на стыке областей стандартизации и разработки программных средств. От обычных проектов по созданию ПО разработка тестовых наборов отличается, прежде всего, более глубокой проработкой требований, тщательной реализацией тестового набора, использованием специализированных средств разработки.

Тем не менее, несмотря на указанные особенности, мы считаем, что разработку и продвижение открытых стандартов тоже можно рассматривать в русле глобального движения Открытых кодов. Тому есть несколько оснований:

  1. Открытость проекта для включения новых участников. Создание и продвижение открытых стандартов осуществляется некоммерческими консорциумами или публичными форумами, которые не взимают плату за участие в работе сообщества. Участие в консорциуме или форуме происходит на добровольной основе.
  2. Открытость результатов для ознакомления. Разработанные стандарты, тестовые наборы, демонстрационные и агитационные материалы выкладываются в открытый доступ в сети Интернет, за скачивание и использование результатов проектов не взимается плата.
  3. Открытость результатов для использования. Разработанные открытые стандарты можно реализовать без выплаты лицензионных платежей. Можно самостоятельно проводить акции и кампании по продвижению стандарта, для этого не требуется получать специальные разрешения и платить лицензионные отчисления.

Открытые сообщества стандартизации демонстрируют одно существенное отличие от закрытых органов стандартизации - они могут начинать процессы стандартизации для предложений, внесённых людьми или организациями, не входящими в сообщество. Это позволяет, в частности, оперативно стандартизировать технологии, разработанные в открытых программных проектах.

Продвижение стандартов требует вовлечения в процесс разных групп людей - чиновников, разработчиков программ и конечных пользователей этих программ. Для наибольшего эффекта необходимо сочетать различные активные методы обучения и вовлечения в процесс использования стандарта:

  • Проведение семинаров по популяризации стандартов, в том числе таких, на которых пользователи смогут попробовать прототипы систем с новыми технологиями.
  • Распространение бесплатных материалов, а также выступления на конференциях, учебные курсы в университетах и т.п.
  • Active tutorials - последовательное освоение новой технологии на практических примерах под руководством преподавателей и тренеров.

В начале 2000 года Европейский институт стандартизации телекоммуникаций предложил новую форму продвижения и развития стандартов, которая получила название Plugtests [15]. Это сравнительно новое изобретение в области развития и продвижения стандартов, поэтому мы рассмотрим более подробно.

Изначально идея Plugtests заключалась в том, чтобы проверить новые технологии (как правило, в телекоммуникационной сфере - Bluetooth, WiFi, IPv6 и т.д.) на практике. Представители различных компаний-производителей собирались в одном месте и привозили прототипы или уже запущенные в серию устройства. Далее на протяжении нескольких дней они проигрывали различные сценарии использования новой технологии, используя при этом устройства разных компаний. Фактически, они проверяли совместимость устройств между собой. По этой причине Plugtests позиционируются как "Interoperability Events".

В последнее время для многих сравнительно новых технологий появились более-менее полные тестовые наборы, что привело к появлению на Plugtests новых действующих лиц - производителей тестовых наборов и новых сценариев работы - прогона тестового набора на образцах продукции представителей промышленных компаний. У этого сценария есть два аспекта: производители проверяют соответствие своей продукции стандартам, а разработчики тестовых наборов проверяют корректность своего тестового набора.

Помимо непосредственных участников Plugtests - как промышленников, так и тестировщиков, в этих мероприятиях заинтересована ещё одна категория лиц - авторы стандарта или спецификации новой технологии. На Plugtests приезжают, как правило, инженеры-разработчики, которые досконально разбираются в соответствующих стандартах и имеют опыт их практической реализации, поэтому они могут дать очень ценные отзывы о качестве стандарта, ошибках или неточностях, обнаруженных в ходе работы.

Plugtests позволяют за сравнительно небольшую плату (или вовсе бесплатно) провести "живое" тестирование реализаций новых технологий в различных ситуациях, проверить совместимость продукции конкурентов до начала официальных продаж, "обкатать" новые тестовые наборы и провести тестирование соответствия новых реализаций. Помимо этого, Plugtests дают возможность экспертам-практикам и разработчикам стандартов встречаться и обмениваться идеями, прояснять непонятные места в стандарте.




Страницы: 1 :: 2 :: 3 :: следующая

Комментарии

аноним, Mon Dec 22 15:47:55 2008:
К сожалению, в статье ничего не сказано о стандартах ИСО - Информационные технологии.
Хотелось бы услышать о международном сотрудничестве и участии российских специалистов в этой сфере.
Eggog, Fri Jun 22 20:14:30 2007:
Ничего "бредового" не вижу.
Если не считать,конечно,сообщение предыдущего оратора:)
анонизм, Fri Jun 22 15:53:23 2007:
бред

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds