Декабрь 2007

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

http://www.GPL-violations.org

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

Источник проблемы

В организации производства программного обеспечения программных проектов, концептуально, включают в себя многократно разлагающие проект на меньшие и более управляемым суб-проектов до этого момента, когда отдельные подпроекты могут назначаться отдельным лицам или группам. В таком случае разработчик индивидуального программного обеспечения, назначенного для программного обеспечения проекта имеет сочетание вариантов для поиска необходимого программного обеспечения, включая: (i) получение программного обеспечения от их организации кода репозитория, (ii) получение программного обеспечения от одного или нескольких хранилищ открытым исходным кодом, (iii) получение программного обеспечения посредством покупки и (iv) получение программного обеспечения посредством творческого процесса написания его.

В зависимости от размера и сложности проекта программного обеспечения, этот сценарий может повторяться много раз. Кроме того, когда подпроекта аутсорсинг или иным образом присвоенный отдельной организации, такие, как в рамках совместного проекта, аутсорсинг команда проходит через аналогичный сценарий. Короче говоря программное обеспечение, используемые любой типичной организации производства программного обеспечения могут быть получены из таких источников, как: (i) организации базы кода; (ii) открытым исходным кодом хранилища; (iii) коммерческих поставщиков; и (iv) наличие собственных средств разработки.

С этим сценарием в виду IP целостность конечного продукта является очень много функции: i) отдельные части и ii) ИС практики, которые были определены, контроль и соблюдение в процессе развития.

Мы отмечаем, что IP целостность программного обеспечения производства может быть нарушена в способами, которые включают:

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

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

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

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

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

Кто страдает

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

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

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

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

В этом примере может быть 20 или более игроков участвуют. Загрязнение IP в пищевой цепи затронет многих игроков.

Внимание на чистоту IP обычно усиливается, когда есть транзакция. Характер сделки могут быть:

  • Инвестиции в организацию, которая создает или использует программное обеспечение
  • M & A (слияния и поглощения) деятельности, связанной с игроком в выше пищевой цепи
  • Публичное предложение от игрока в цепочке
  • Программное обеспечение передачи от одного игрока к другому в цепочке, например контрактов или программного обеспечения лицензирования события

Такие операции способствуют созданию целой отрасли сосредоточены на проверке программного обеспечения чистоты путем должного усердия. Другой участник является положения о заверений и гарантий или IP компенсация в юридических документов, подтверждающих такие сделки. Это чаще сталкиваются юристы ИС и венчурные капиталисты (VCs) и угощал по истории транзакций, задержанные или потерянные (i) за время, которое требуется для проверки чистоты, или (ii) из-за неоднозначностей вокруг IP собственности. Все из которых выступает за необходимость принятия и внедрения методов разработки безопасного программного обеспечения.

Распространенных является загрязнение IP

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

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

Помимо ПСОК другие области роста загрязнения включают:

  • Дизайнер загрязнения в предыдущей жизни, который мы описали ранее, Общая
  • Аутсорсинг, на берегу или от берега, расширяется с дополнительной опасностью заражения перекрестными
  • E-торги для программного обеспечения как в Elance растет
  • Совместная разработка становится распространенным с университетами, правительств и промышленности как игроки

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

Современные методы профилактики

Мы сгруппировали общие методы управления ИС загрязнения на две группы: i) исправительные методы, которые пытаются обнаружить загрязнение или нарушения политики ИС в кусок программного обеспечения и ii) превентивные методы, которые стремятся остановить непреднамеренного проникновения нежелательного кода в проекте.

Мы далее будем делить эти методы на ручные и автоматизированные методы и будет комментировать их пригодности и предполагаемые недостатки.

Корректирующие решения

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

Общие цели за корректирующих решений являются: (i) для обнаружения IP загрязнения; (ii) для определения внешнего источника, из которого был взят IP загрязнение; (iii) для определения действительности подозреваемых ИС загрязнения; и (iv), с тем чтобы надлежащим образом реагировать на возможные загрязнения IP. Загрязнение IP может принимать одну из двух форм: (i) полный модуль или файл или (ii) фрагмент как подпрограммы или метод внутри модуля или файла. Примечательно, отражая что IP загрязнение редко является вредоносным, что это не редкость для IP загрязнения объекта связанные комментарии, четко идентифицирует источник или авторского права владельца объекта.

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

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

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

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

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

  • Сравнение и сопоставление фрагмента с различными фрагментами кода, существующих в репозитории
  • Вычисления codeprint для фрагмента и сравнивая этот codeprint против хранилища предварительно вычисляемых codeprints
  • Сканирование фрагмента для ключевых слов, таких как «лицензия», идентификации знаки, такие как «автор» и уведомления об авторских правах

Как уже упоминалось, как правило используются комбинации ручных и автоматизированных методов. Два обращает на себя внимание академических проектов в этой области являются: (i) Мосс (мера сходства программного обеспечения) в Стэнфордском университете и (ii) JPLAG в университете Карлсруэ.

Ограничения корректирующих решений

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

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

Даже если внешнее содержимое существует в базе данных, процесс сравнения не всегда является 100% точным. Кроме того процесс сравнения интенсивных вычислений, требующих жесткой увязки сравнения алгоритмов и репозитория. Это обычно требует совместного размещения репозитория и код для рассмотрения.

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

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

Превентивные решения

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

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

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

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

Резюме

Индустрии разработки программного обеспечения является свидетелем перехода, в результате взрывной рост OSS, код поисковых систем и практики внешнего подряда. Новый порядок, в результате этого перехода несет определенные проблемы ИС, которые должны быть эффективно обработаны, в противном случае результаты могут быть катастрофическими для программного обеспечения компании. Политики IP необходимо установить, контролировать и обеспечивать.

Доля этой статьи:

Цитируете эту статью:

Оцените содержание: 
Нет голосов были поданы еще. Скажи свое слово!