• Что такое программы с открытым исходным кодом. Использование по с открытым исходным кодом для создания успешных коммерческих продуктов

    09.10.2021

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

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

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

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

    Стоит отметить, что в глобальном представлении открытое ПО включает в себя непосредственно open source software, а также другие разновидности программных продуктов, которые могут распространяться безвозмездно и предоставлять исходный код для внесения изменений. К такому ПО относятся бесплатные (freeware) и свободные (free software) программы.

    Итак, термин open source (открытое программное обеспечение) был впервые применен в 1998 году программистами Эриком Реймондом (Eric Steven Raymond) и Брюсом Перенсом (Bruce Perens). Они были уверены в том, что термин free software (свободное программное обеспечение) в английском языке является неоднозначным и в каком-то смысле может даже отпугивать предпринимателей, являющихся потенциальными пользователями такого софта. В настоящее время open source является торговой маркой организации Open Source Initiative, которая занимается распространением ПО с открытым кодом. Кроме того, существует также и специальный комитет, который решает, может ли лицензия той или иной программы носить имя open source.

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

    Отличие между open source и free software заключается в приоритетах. Например, сторонники open source делают упор на эффективность работы с открытым исходным кодом в качестве метода разработки, модернизации и сопровождения программ. Сторонники термина "free software" считают, что именно права на свободное распространение, модификацию и изучение программ являются главным достоинством свободного открытого ПО, тем самым, закрепляя авторство на конкретный программный продукт.

    Основателем концепции free software является американский программист Ричард Столлмэн (Richard Matthew Stallman). Именно он впервые сформулировал понятие свободного программного обеспечения, в котором отразились принципы открытой разработки программ в научном сообществе, сложившемся в университетах США в 1970-е годы. Столлмэн сформулировал четкие критерии свободного ПО. Эти критерии оговаривают те права, которые автор свободной программы передает любому пользователю. Таким образом, используя свободное программное обеспечение, пользователь получает "четыре свободы": запускать, изучать, распространять и улучшать программу.

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

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

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

    Что касается условия распространения и использования программ free software, то зачастую их копирование запрещено, а обратная разработка, изменение, повторное распространение оговариваются в лицензионном соглашении.

    Тем не менее, существуют программы, попадающие, по мнению некоторых экспертов, под определение открытых, но не являющиеся свободными. К таким программам относится, к примеру, UnRAR, распаковщик RAR-архивов. Дело в том, что его исходный код находится в открытом доступе, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов.

    Безусловно, важен и тот факт, что категории открытого программного обеспечения бывают разные, так как они предполагают различные степени свободы в отношении действий пользователей. При этом порой можно наблюдать значительную разницу между определением свободного и открытого ПО. Открытое ПО, то есть программное обеспечение с (открытым) исходным кодом (Open Source Software) представляет собой способ разработки ПО, при котором создаваемый исходный код программ открыт, то есть, общедоступен для просмотра и изменения. Это позволяет всем желающим использовать уже созданный код для своих нужд и, возможно, помочь в разработке открытой программы. Бесплатность ПО есть право пользователя, но не обязанность производителя, т.к. открытая лицензия не требует, чтобы ПО всегда предоставлялось бесплатно. Однако многие из наиболее успешных проектов open source все же являются бесплатными.

    Открытый доступ к исходным кодам программ является также ключевым признаком свободного программного обеспечения, поэтому предложенный позднее Эриком Реймондом термин "Open Source Software" (ПО с открытым исходным текстом) некоторым представляется даже более удачным для обозначения феномена свободного ПО, чем предложенный в свое время Столлмэном "free software".

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

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

    Место свободных программ на сегодняшнем рынке ПО очень значительно, и многие коммерческие и государственные предприятия используют free software прямо или косвенно. Например, все пользователи сети интернет, хоть и опосредовано, задействуют свободную программу Bind, предоставляющую службу DNS. Кроме того, многие организации (в частности предоставляющие услуги через всемирную паутину) используют свободный web-сервер Apache, от работы которого может зависеть непосредственно прибыль предприятия, не говоря уже о серверах на платформе Linux.

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

    Например, в одной из общественных лицензий (GNU) есть даже стандартная формулировка, закрепляющая отсутствие гарантий: "Настоящая программа поставляется на условиях "как есть". Если иное не указано в письменной форме, автор и/или иной правообладатель не принимает на себя никаких гарантийных обязательств, как явно выраженных, так и подразумеваемых, в отношении программы, в том числе подразумеваемую гарантию товарного состояния при продаже и пригодности для использования в конкретных целях, а также любые иные гарантии".

    Кстати, в настоящее время система GNU, более широко известная как GNU/Linux или просто Linux, достаточно распространена, особенно на рынке серверов, и является вполне завершенным программным продуктом. Она состоит из большого количества программ проекта GNU (в первую очередь системных утилит и GNU toolchain), ядра Linux - части системы, отвечающей за выполнение других программ, включающей драйверы устройств и т. п., - и множества других свободных программ.

    Поэтому сегодня существует тенденция, когда большие ИТ-корпорации, такие как Intel, Oracle или IBM стараются оказывать поддержку проектам по разработке свободного ПО, оплачивая работу сотрудников этих проектов, чтобы степень ответственности разработчиков была на высоком уровне. Зачем они это делают, ведь открытое и свободное ПО является для них конкурентным? Ответ прост - они видят в этом выгоду, которую стараются не сделать упущенной, так как каждый день на базе ПО с открытым кодом появляется множество программ, некоторые из которых в последствии могут стать сильными коммерческими продуктами.

    Существует несколько основных лицензий, которые используются для распространения свободного ПО в настоящее время: AROS Public License, Лицензия BSD, CDDL, Common Public License, GNU Free Documentation License, GNU General Public License, GNU Lesser General Public License, Лицензия MIT, Mozilla Public License, Open Directory License и др. Для всех свободных лицензий, так или иначе, характерно соответствие принципам копилефта (copyleft - это каламбур от слова копирайт). В противоположность традиционному подходу к авторскому праву, при котором ограничивается свобода копирования произведений, принцип копилефта использует законы об авторском праве для обеспечения невозможности ограничить любому человеку права использовать, изменять и распространять, как само произведение, так и произведения, базирующиеся на нем. Идея копилефта заключается в том, что каждый, кто распространяет программу, как с изменениями, так и без них, не вправе ограничивать свободу ее дальнейшего распространения, либо модификации. Копилефт гарантирует, что каждый пользователь свободен в своих действиях.

    Количество лицензий, которые соответствуют Определению понятия open source (открытого ПО), на данный момент насчитывается более пятидесяти. Open Source является торговой маркой организации Open Source Initiative. Существует специальный комитет, решающий, может ли лицензия носить имя open source. Одним из самых больших в мире веб-сайтов для разработчиков открытого ПО является всем известный портал SourceForge.net. На этом сайте разработчики могут размещать и совместно разрабатывать свои программные проекты. В настоящее время на SourceForge.net размещено несколько сотен тысяч проектов, а количество зарегистрированных пользователей превышает один миллион.

    Безусловно, открытое и свободное программное обеспечение все активнее захватывают аудиторию. Программы на основе открытого кода довольно успешно применяются как частными пользователями, так и коммерческими, государственными и общественными организациями. Софт на базе open source и free software уже используется в качестве предустановочного для некоторых моделей ноутбуков и нетбуков различных производителей. Кроме того, ПО с открытым кодом постепенно завоевывает рынок систем автоматизации для малых и средних предприятий.

    Нет простого способа узнать, какая из них - лучшая модель разработки программного обеспечения для вашего бизнеса, с открытым исходным кодом или запатентованная.

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

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

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

    Идея о том, что одна полностью противоречит другой, не совсем верна. В этой статье объясняется разница между ними.

    Что такое ПО с открытым исходным кодом?

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

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

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

    Это знак сертификации, принадлежащий Инициативе с открытым исходным кодом (OSI). Термин «программное обеспечение с открытым исходным кодом» относится к программному обеспечению, которое разрабатывается и тестируется посредством открытого сотрудничества, что означает, что любой обладающий необходимыми академическими знаниями может получить доступ к исходному коду, изменить его и распространить собственную версию обновленного кода.

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

    Что такое проприетарное программное обеспечение?

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

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

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

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

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

    Примеры проприетарного программного обеспечения включают iTunes, Windows, macOS, Google Earth, Unix, Adobe Flash Player, Microsoft Word и т. Д.

    Разница между открытым исходным кодом и проприетарным программным обеспечением

    Контроль открытого и проприетарного программного обеспечения

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

    Безопасность открытого и запатентованного программного обеспечения

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

    Поддержка драйверов открытого и запатентованного программного обеспечения

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

    Удобство использования программного обеспечения с открытым исходным кодом и проприетарного программного обеспечения

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

    Непрозрачность открытого и запатентованного программного обеспечения

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

    Программное обеспечение с открытым исходным кодом и проприетарным программным обеспечением: сравнительная таблица

    Сводная информация о программном обеспечении с открытым исходным кодом

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

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

    Суть концепции состоит в нескольких принципах создания и распространения СПО:

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

    Указанные принципы используются при создании большинства

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

    Открытый код уже одержал ряд важных побед над сильнейшими из производителей собственнического (проприетарного) ПО. В частности, веб-сервер Apache намного опережает аналогичные продукты других компаний (в том числе Microsoft) по доле рынка благодаря своей низкой стоимости, независимости от поставщиков, наличию множества имеющих опыт его администрирования пользователей и поддержке разработчиков. Linux обошел по объемам поставок все остальные виды Unix для платформы Intel, включая долгое время удерживавшую лидерство SCO. СУБД с открытым кодом занимают крепкие позиции на рынках ОС с открытым кодом и популярных интернет-решений младшего класса. Угроза собственническому ПО исходит от преимуществ СПО, аналогичных преимуществам Интернета, т.е. открытости, свободы адаптации и т.д.

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

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

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

    Существует четыре основные угрозы для закрытых компаний со стороны открытого кода.

    • Ценовое давление. Поскольку лицензии открытого кода, по сути, требуют бесплатной дистрибуции ПО и его модификаций, цены на схожие традиционные продукты необходимо снижать, чтобы не уступать СПО и бороться с утратой доли рынка. Например, SCO не может брать по 2000 долл, за Unix для платформы Intel, в то время как Linux доступен бесплатно, a Microsoft монополизирует сектор настольных систем. Традиционные производители могут, однако, частично возместить себе потери, делая свои программные продукты более качественными по сравнению с СП О и взимая за это дополнительную плату.
    • Достаточно хорошая функциональность. «Достаточно хорошие» программы (но не лучшие) могут частично потеснить продукты поставщиков традиционного ПО, которые слишком часто бывают нацелены на массовый рынок. Более сложная (и дорогая) функциональность на ранних этапах своего развития всегда ориентирована на относительно небольшую группу пользователей-специалистов. Но даже действующим на этом рынке производителям все же нужно четко понимать, что рынок высокоразвитого ПО будет расширяться и углубляться. Если развитая функциональность не сумеет привлечь более широкий круг пользователей, заказчики, естественно, будут приобретать альтернативы с открытым кодом, пусть и менее развитые. На очень крупных массовых рынках доминирующие поставщики СПО кроме наращивания объемов поставок имеют массу возможностей для роста за счет реализации дополнительных стратегий в области продуктов и услуг. Размер массового рынка сам по себе обеспечивает снижение цен за счет высоких объемов поставок, что позволяет конечным потребителям получать ощутимые прибыли даже при незначительном увеличении стоимости своей продукции.

    В некоторых случаях СПО может даже обойти по функциональности традиционные продукты. Например, Apache стал первым из веб-серверов, в котором появилась популярная среди провайдеров интернет-функция IP-aliasing, позволяющая размещать на одной системе по нескольку доменных имен Интернета.

    • «Эффекты сети», обусловленные знанием и изучением ПО и инструментальных средств массового использования. Расходы на обучение пользователей новой технологии составляют значительную часть общей стоимости владения, превышающую цену на сам программный продукт. Компания с большой базой пользователей, знакомых с продуктом и сопровождающими его инструментальными средствами, может использовать это знакомство, выпуская новые версии или выходя на смежные рынки. Этот вид эффектов сети может варьироваться в зависимости от типа пользователя - разработчики ПО используют API, системные администраторы - определенные средства администрирования, пользователи работают с графическими пользовательскими интерфейсами, а руководители устанавливают отношения с поставщиками. Сформировавшись, эта сеть партнеров и пользователей решений с открытым кодом уже не разрушается и позволяет решать маркетинговые проблемы более мелкого порядка, вроде приобретения приверженцев и лояльности заказчиков.
    • Давление стандартизации. Последняя угроза со стороны движения открытого кода - это его инструментальные средства и культура, которая считает своим врагом всевозможные технологические барьеры, воздвигнутые производителями традиционного ПО.

    В последнее время наиболее быстро развивающимся направлением в программном обеспечении считается так называемый «коммерческий open-source», т.е. СП О, поддерживаемое обычными коммерческими компаниями. Одним из лидеров этого направления стоит считать корпорацию Sun, которая разрабатывает несколько крупных проектов в этом секторе: ОС OpenSolaris, СУБД MySQL, офисный пакет OpenOffice.org и среду виртуализации Virtual Box. Как правило, существуют несколько версий такого ПО, в том числе и коммерческая. При оплате лицензии пользователь получает техническую поддержку, а также в ряде случаев особые инструменты для удобной работы, не доступные в рамках открытой лицензии. То есть при небольших потребностях компании могут пользоваться свободными или бесплатными версиями ПО, а при возрастании запросов купить коммерческие расширения, не меняя при этом ничего в своей инфраструктуре и приложениях. Таким образом, коммерческий вариант СПО напрямую конкурирует с разработками традиционных компаний, например Microsoft, которая активно создает специальные схемы лицензирования для использования в среде Интернета (речь идет о серверном ПО).

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

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

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

    Марк Робертс (Mark Roberts)
    Директор по управлению продукцией (Director, Product Management)
    компании QNX Software Systems
    e-mail: [email protected]

    Аннотация

    Основное внимание в данной статье концентрируется на преимуществах, стратегических моментах, возникающих препятствиях и возможностях, связанных с использованием в коммерческой продукции программ с открытым исходным кодом. Используя в качестве примера интегрированную среду разработки (Integrated Development Environment - IDE) на базе платформы Eclipse, мы обсудим, какие отличия существуют между защитными (protective) и незащитными (nonprotective) лицензиями на исходный код программного обеспечения (ПО). При интеграции или компоновке открытого исходного кода с "фирменным" закрытым кодом зачастую требуется проявлять надлежащее внимание и осторожность. Следует иметь в виду и различные правовые проблемы, например, потенциальную возможность нарушения патентных прав. Мы также попытаемся объяснить, почему основные принципы использования ПО с открытым исходным кодом в среде информационных технологий (ИТ) не применимы в отношении коммерческой продукции для встраиваемых устройств.

    Среда разработки QNX Momentics как пример использования ПО с открытым исходным кодом

    Возвращаясь в 2001 г., когда многие фирмы-разработчики боролись за выживание в условиях всеобщего обвала рынка акций ИТ-компаний, особенно связанных с электронным бизнесом в Интернет, компания QNX Software Systems приняла стратегическое решение начать разработку новой интегрированной среды разработки (IDE) для рынка встраиваемых систем. У компании уже был солидный опыт по разработке серии инструментальных средств, используемых в разработке встраиваемых устройств, но руководство компании осознавало, что создание среды IDE позволит удержаться на гребне волны в условиях жесткой конкуренции. Решение о создании среды IDE стимулировалось также сменой акцентов в требованиях клиентов. В период спада деловой активности стесненные в средствах клиенты стали больше интересоваться решениями, которые могли бы максимизировать продуктивность работы и сделать их более мобильными (гибкими) при ведении работ, позволили бы повысить общую экономическую эффективность.

    Для компании QNX разработка среды IDE была "ставкой на будущее", так как в то время стоимость и усилия на разработку проекта были вне зоны досягаемости для большинства вендоров инструментальных средств встроенных систем. К счастью, QNX работала в тесном контакте с IBM по различным сегментам рынка встроенных устройств. Благодаря тесному сотрудничеству, компания IBM поделилась с QNX своими планами по выпуску интегрированной среды разработки с использованием открытого исходного кода - эта среда впоследствии стала основой для платформы Eclipse.

    Компания IBM предложила использовать опыт QNX для адаптации технологии IDE к нуждам разработчиков, занимающихся созданием встраиваемых приложений на базе языка C/C++. Специалисты компании QNX практически сразу указали на неопровержимые привлекательные стороны использования для среды IDE открытых исходных кодов. Например, для такой среды стало бы возможно:

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

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

    Основание открытого проекта Eclipse.org

    В ноябре 2001 г. компании Borland, IBM, Merant, QNX Software Systems, Red Hat и SUSE основали Консорциум Eclipse. В начале 2004 г. Совет Управляющих (Board of Stewards) реорганизовал Консорциум Eclipse в некоммерческую корпорацию с именем Eclipse Foundation.

    С самого начала Eclipse была проектом, действительно основанным на использовании открытого исходного кода. В рамках проекта предлагались как безвозмездно распространяемые технологии в виде открытых исходных текстов, так и возможность доступа к сообществу, состоящему из наиболее образованных и продвинутых разработчиков в своей области. Таким образом, данная технология оказалась универсальной платформой для интеграции всех видов инструментов разработки. В ее основе лежит открытая расширяемая архитектура, при этом она совершенно четко лицензируется как свободно распространяемый продукт, не требующий лицензионных отчислений. Вклад членов сообщества в проект Eclipse основан на стандартной модели разработки с открытым исходным кодом (Open Source Software - OSS), но большинство членов предлагают также и коммерческие разработки, основанные на платформе Eclipse.

    Проект создания инструментального хранилища

    В декабре 2001 г. компания QNX начала создание своей ОСРВ QNX® Neutrino®, базирующейся на среде IDE платформы Eclipse. В представлении компании среда IDE должна была обладать большими функциональными возможностями, ориентироваться на работу с языками C/C++, иметь глубоко интегрированные инструменты для отладки, профилирования, анализа и создания встраиваемых приложений. С самого начала, по замыслу команды QNX, это должна была быть многоцелевая и многоязычная среда IDE, поддерживающая множество инструментальных платформ. Сюда было включено:

    • несколько инструментальных платформ: Windows, Solaris, ОСРВ QNX Neutrino (разработка “сама для себя” - "self-hosted");
    • несколько целевых архитектур: ARM, MIPS, PowerPC, SH-4, x86;
    • языки программирования C, C++, Java.

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

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

    Группе были даны необходимые полномочия в сфере принятия решений, для них было составлено жесткое, на грани риска расписание работ, с выпуском бета-версии продукта через 16 недель, а коммерческой версии -к 4 июля 2002 г. Группа уложилась во все поставленные контрольные сроки и выпустила новый продукт - получивший имя QNX Momentics® IDE - точно в соответствии с расписанием, что явилось свидетельством заложенного в программное обеспечение с открытым исходным кодом потенциала по сокращению времени выхода продукции на рынок.

    От идеи до поставки продукта - менее 7 месяцев

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

    • использовать для кросс-разработки компиляторы GNU и инструменты для работы через командную строку;
    • осуществить поддержку подключаемых модулей сторонних разработчиков, например, IBM WebSphere для встраиваемых приложений Java и Rational ClearCase для модельно-управляемых разработок;
    • создать дополнительные инструменты для построения систем, управления целевыми устройствами, анализа памяти, профилирования систем и приложений и т.д.

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

    Обратный вклад в работу сообщества

    Сильная сторона успешного проекта с открытым исходным кодом заключена в совместной работе сообщества разработчиков и в постоянном улучшении кодовой базы. Если компания принимает на вооружение и с пользой применяет открытый исходный код, то она просто обязана вносить свой вклад в работу сообщества. С этой целью компания QNX в июне 2002 г. взяла на себя руководство проектом Eclipse CDT.

    Целью проекта Eclipse CDT (C/C++ Development Tools - инструменты разработки для языков C/C++) является создание общего набора взаимодействующих друг с другом инструментальных средств языков C/C++ для платформы Eclipse. Eclipse CDT был позиционирован как проект с открытым исходным кодом, с правами на управление со стороны корпорации Eclipse. Для запуска проекта CDT компания QNX передала для использования свои ресурсы для разработки и исходные коды проекта QNX Momentics IDE. Компании Rational и Red Hat как члены сообщества также оказали существенную поддержку проекта.

    Рис. 1. При использовании платформы Eclipse вендоры инструментальных средств могут сконцентрировать внимание на верхнем уровне стека работ, где собственно и создаются реальные новшества.

    Компания QNX по-прежнему ведет сопровождение проекта CDT, объем которого вырос с изначально скромных 80 000 строк кода до сегодняшних более чем 700 000 строк. В начале 2006 г. по журналу регистрации хода работ по проекту Eclipse CDT вклад компании QNX оценивался в 52%. Далее шла компания IBM со вкладом 36%. Проект CDT является вторым по популярности проектом корпорации Eclipse после собственно самой платформы Eclipse.

    Можно ли себе позволить "подарить" код?

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

    Более того, вы могли бы получить некоторый контроль над направлением развития "стандартной" платформы - заработанный, конечно, благодаря вашим заслугам перед сообществом! Если вы сопровождаете некоторый проект, ведите себя как хороший гражданин сообщества, уважайте чужое мнение, цените вклад и советы других членов. Не надо думать, что кто-то попытается "обчистить ваши карманы" в результате использования кода и перехватить у вас руководство над направлением развития платформы.

    К примеру, стратегия компании QNX Software Systems состоит в том, чтобы использовать преимущества от участия в работе корпорации Eclipse, разрабатывая в то же время новые функциональные возможности, подключаемые через стандартизованные точки расширения, которые уже имеются в составе платформ Eclipse и CDT. С этой целью компания QNX намерена оставаться активным членом сообщества Eclipse, извлекая выгоду из существующей кодовой базы и наработок третьих сторон (подключаемых модулей), помогая в удовлетворении реальных потребностей клиентов, создавая свои фирменные расширения. Описанная стратегия иллюстрируется на рис. 2.

    Рис. 2. Своими наработками можно делать вклад в работу сообщества.

    Резюме по преимуществам

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

    Выгода разработчиков заключается в уменьшении времени до поставки их продукции на рынок и в возможности воспользоваться результатами исследований других людей (при низких затратах на это). Среди этих результатов может присутствовать и высококачественный код, относящийся к категории "чистой интеллектуальной собственности" ("clean IP"), предоставленный уважаемыми фирмами, такими как IBM и QNX. Еще одним преимуществом для разработчика является то, что он получает простую и ясную схему лицензирования, включая коммерческие права и некоторую патентную защиту. Более того, разработчик получает возможность работы на платформах нескольких ОС, поддерживаемых в Eclipse, а также получает в свое распоряжение хорошо определенные в проекте Eclipse точки расширения.

    Выгода клиентов, покупающих среду IDE на базе Eclipse, состоит в использовании инструментальной платформы, предназначенной для разработки встраиваемых приложений, с мощной поддержкой средств кросс-компиляции, простой отладкой и наличием расширений для управления целевыми системами. Команда разработчиков клиента сможет по достоинству оценить многие функции, облегчающие работу, малое время, требующееся на дополнительное обучение, хорошую производительность продукта и надежную платформу, позволяющую работать с большими проектами. Клиент может также с пользой применить платформу Eclipse в своих собственных приложениях (например, RCP, eRCP и т.д.).

    Будущее корпорации Eclipse

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

    Рис. 3. Корпорация Eclipse является энергичным и быстро растущим сообществом разработчиков подключаемых модулей.

    Сравнение лицензий на открытый исходный код

    Не все лицензии на ПО с открытым исходным кодом являются равноправными. Компания QNX сделала хорошо продуманный шаг, остановившись на лицензии Eclipse Public License. Этот выбор был продиктован частично потребностями ее клиентов, использующих встраиваемое оборудование, а частично желанием установить контроль над технологиями, дифференцирующими продукцию (и извлечь из этого выгоду).

    Некоммерческая корпорация Open Source Initiative () предложила полезное, состоящее из 10 пунктов определение открытого исходного кода. В настоящее время на веб-сайте представлено более 50 одобренных OSI лицензий, включая Eclipse Public License. В этих лицензиях могут содержаться значительные отличия, которые нужно четко осознавать. Эти отличия могут существенно воздействовать на интеллектуальную собственность (ИС) разработчиков и на способность ее защиты. В наибольшей степени это относится к случаю использования открытого исходного кода (или производных разработок на базе открытого исходного кода) во встраиваемых устройствах.

    Защитная и незащитная лицензия

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

    Примерами незащитных лицензий являются оригинальные лицензии MIT и BSD. Незащитные лицензии сохраняют в силе авторские права владельца, но предоставляют широкие права пользователю, включая право на модификацию и неограниченное свободное распространение (или личное использование) ПО.

    Что понимается под "вирусной лицензией"

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

    Вопросы получения компенсаций

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

    Главные проблемы, возникающие при коммерциализации ПО с открытым исходным кодом

    Сравнение встраиваемых и ИТ-приложений

    Успеху сферы открытого исходного кода способствовало принятие ИТ-организациями ОС Linux. Выгода от использования Linux была связана с работой на относительно однородном и стабильном оборудовании (обычно семейства x86) и с использованием гибкой, богатой ресурсами компьютерной платформы.

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

    Обычно эти проблемы лицензирования не касаются ИТ-приложений, поскольку фирменное, связанное с конкретным предприятием ПО не распространяется дальше предприятия, используясь исключительно для внутренних нужд. Если же взять встраиваемые устройства, то через них всегда распространяется производное ПО, по отношению к которому срабатывает статья “force open” (принудительно открытый код) лицензий на открытый исходный код, что может подвергать риску главные аспекты ценных предложений с открытым исходным кодом.

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

    Проблемы лицензирования

    Неопределенность правового статуса

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

    Некоторые обходные пути, которые позволяют вендорам коммерческой продукции внедрить в Linux "фирменные" драйверы (например, Loadable Kernel Modules - загружаемые модули ядра), основываются скорее на аргументах типа "он сказал, она сказала", чем на прямых ссылках на текст лицензионного соглашения. Фактически такие драйверы, которые используют модули LKM, таят в себе опасный обход требований лицензии GPL. Впадая в крайность, можно интерпретировать дело так, что кодовая база Linux может быть представлена как бесполезная для большинства практических применений, если в неё не включены некоторые из этих самых "фирменных" драйверов. Такая ситуация способна достаточно эффективно обесценить идею лицензии GPL.

    Отсутствие компенсаций при нарушении прав ИС

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

    В некоторых лицензиях есть явные ссылки на патенты. Например, в лицензии Eclipse Public License есть явное упоминание о патентных правах, и в ней содержится пункт о мерах наказания в случае, если кто-то попытается отстаивать патентные права по-другому. Корпорация Eclipse прилагает также много усилий для проверки кода и выяснения источника его происхождения с точки зрения лицензионных, патентных или авторских прав.

    Дополнительные усилия для сохранения ИС

    Для использования открытого исходного кода компания должна затратить значительные усилия в следующих направлениях:

    • управление распространением продукции;
    • управление лицензиями;
    • разрешение правовых конфликтов в части обязательств клиентов;
    • уделение надлежащего внимания правовым вопросам: соблюдение чистоты прав ИС, проверка прав ИС на открытый код, установление источника происхождения кода, отслеживание изменений в версиях лицензий, например, GPL v3 и т.д.

    Принятие требований клиента

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

    Проблемы, связанные с ИС

    Затрагивают ли условия вашей лицензии на использование открытого исходного кода ту интеллектуальную собственность, которая является отличительной чертой вашего продукта? Если да, то ваша ИС находится под угрозой.

    Если во встраиваемых системах используется смесь ПО вашей собственной разработки и программ с открытым исходным кодом, то вы должны представлять суть, происхождение и взаимосвязь всех компонентов встраиваемого ПО. Без такого глубокого проникновения в суть предмета вы можете непреднамеренно нарушить права чьей-нибудь ИС или даже потерять права на ПО собственной разработки.

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

    Как показывает пример использования среды QNX Momentics IDE, для ПО с открытым исходным кодом существует много мгновенно получаемых преимуществ, включая сокращение времени до выпуска продукции на рынок, меньшие затраты на разработку и большую свободу по наделению вашего продукта дополнительными функциями и инновациями. Если вы предлагаете ваше ПО в виде услуги, которая решает некоторую проблему клиента, то клиенту безразлично, использовали вы или нет программы с открытым исходным кодом, он просто платит за полученную необходимую ему функцию.

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

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

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

    Успех программного обеспечения с открытым кодом весьма заметен. Оно не обошло стороной даже крупных производителей коммерческих программ. Компании IBM, Hewlett-Packard, Oracle и Microsoft признают его влияние и в некоторых случаях перенимают его методы. Похоже, что большинству компаний, в структуре которых имеется ИТ-служба, уже достаточно хорошо знакомы продукты с открытым кодом, а зачастую они и активно используют их.

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

    Что представляет собой программное обеспечение с открытым кодом?

    Вернемся назад в 1997 год. Талантливый разработчик операционной системы Linux Брюс Перенс составляет документ, связанный с подготовкой и распространением дистрибутива версии Debian Linux. Позднее он удалил все упоминания о Debian и представил концепцию, известную сегодня под названием The Open Source Definition. Помимо всего прочего в документе Definition говорилось, что программное обеспечение с открытым кодом должно распространяться без каких-либо отчислений разработчикам, распространители обязаны обеспечить всем желающим бесплатный доступ к исходному коду программ и все дальнейшие доработки и модернизированные варианты программ тоже должны поставляться на этих же условиях.

    По сути движение сторонников программного обеспечения с открытым кодом является близким родственником инициативы Free Software Movement, предложенной в 1983 году Ричардом Столлманом. Главной ее целью являлось бесплатное распространение программного обеспечения, освобождение его от стандартных ограничений коммерческих программ. Правила распространения бесплатного ПО регламентируются лицензией General Public License (GPL), которая в октябре 2006 года была утверждена в своей третьей редакции.

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

    Почему именно программы с открытым кодом?

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

    В конце 1990-х годов на программы с открытым кодом наконец обратило внимание и руководство предприятий. В условиях постоянного сокращения бюджетов ИТ-служб разработчики хвастались качеством и экономией, достигаемой при использовании ПО с открытым кодом, и во многих компаниях стали всерьез задумываться о применении программных компонентов с открытым кодом при реализации корпоративных проектов. Первыми крупными предприятиями, которые стали внедрять у себя программное обеспечение с открытым кодом, были компании The Weather Channel, Cendant Travel, Employease и Sabre.

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

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

    Причины отказа от ПО с открытым кодом

    Аргументы против программного обеспечения с открытым кодом, как правило, легко пересчитать по пальцам.

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

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

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

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

    С чего начать?

    Сегодня в виде продуктов с открытым кодом представлены почти все разновидности ПО делового назначения, начиная с серверов электронной почты и заканчивая системами VoIP. Многие компании в первую очередь обращают внимание на Web-приложения, где есть продукты, существующие на протяжении достаточно длительного времени и уже успевшие доказать свою состоятельность. Обычно упоминают о стеке LAMP (Linux, Apache, MySQL и PHP, Perl или Python в зависимости от конкретной ситуации). Широкое распространение получила Unix-подобная операционная система Linux. Одним из наиболее популярных Web-серверов сегодня является Apache. Система управления базами данных MySQL успешно конкурирует с дорогостоящими коммерческими продуктами. А языки программирования и сценариев PHP, Perl и Python находят широкое применение в качестве средств разработки Web-приложений с открытым кодом. Web-сайты с открытым кодом на основе Java часто опираются на сервер приложений JBoss. Познакомившись поближе с инструментальными средствами с открытым кодом, выявив сходство и различия между ними и коммерческими продуктами, вы откроете для себя и другие возможности. Возможно, удивит и то, что ваши разработчики время от времени на свой страх и риск обращаются к тем или иным продуктам с открытым кодом.

    Серверы приложений, конечно, хорошо, но что можно сказать о ПО с открытым кодом для настольных компьютеров?

    Конечные пользователи довольно часто применяют различные инструментальные средства с открытым кодом, предназначенные для настольных компьютеров. Ярким примером такого решения является Web-браузер Mozilla Firefox. Офисному пакету Sun OpenOffice отдельные государственные и коммерческие организации отдают предпочтение перед Microsoft Office. Но хотя некоторые игроки и отваживаются погрузиться в неизведанное, устанавливая на своих настоль ных компьютерах операционную систему Linux, Windows продолжает сохранять безусловно доминирующее положение. Дружественные по отношению к конечному пользователю версии Linux (например, LinSpire) не могут нарушить сложившееся положение, потому что обучение пользователей требует времени и денег. Кроме того, большинство коммерческих программных пакетов - от которых зависят многие компании - разрабатываются в первую очередь для Windows и только потом для Linux (если, конечно, версия для Linux вообще выходит в свет).

    Можно ли продать продукты с открытым кодом?

    Да, конечно, но правила Open Source Initiative запрещают чинить препятствия в продаже вашего кода и всем остальным. И все же многие компании находят способы зарабатывать на продуктах с открытым кодом. Многие, помимо собственно кода, предлагают услуги корпоративной поддержки, которые весьма охотно покупаются компаниями. Другие поставляют два варианта программного кода: один в открытой и бесплатной форме, а другой, включающий в себя дополнительные полезные функции, содержит закрытые компоненты и должен оплачиваться клиентами. Подобная смешанная модель становится все более популярной. Ее активно используют такие компании, как SourceFire, SugarCRM, Alfresco и ряд других.

    Другие ресурсы с открытым кодом

    Множество программ с открытым кодом можно найти в Internet:

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

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

    Ресурсы с открытым кодом - официальные и неофициальные

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

      Open Source Technology Group. Пожалуй, ведущий в мире проводник технологий с открытым кодом. Именно этому объединению принадлежит сайт новостей Slashdot, а также ресурсы SourceForge и FreshMeat.

      Open Source Risk Management. Предлагает механизмы, обеспечивающие соответствие нормативным требованиям.

      Open Source Development Labs. Организация, главной целью которой является продвижение операционной системы Linux в среде корпоративных клиентов.

    Похожие статьи