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

Любой разумный разработчик стремится иметь в своем арсенале средства разработки с открытым исходным кодом; это особенно важно в облачных проектах, потому что такие средства ускоряют процесс разработки и облегчают тестирование. Однако в полученный продукт могут входить различные фрагменты открытого исходного кода из различных источников, и многие из них предполагают различные обязательства и ограничения. Чтобы не потерять преимущества во времени, полученные при разработке облачных приложений с открытым исходным кодом, нужно иметь возможность управлять сведениями о лицензировании каждого фрагмента кода, который используется в готовом облачном приложении. Научитесь управлять открытым исходным кодом, который можно применять в облачной среде, из облака. Здесь приводится пример практического подхода к управлению ПО с открытым исходным кодом в облаке с применением инструмента ProtecodeCloud™.

Лейси Томс, специалист по маркетингу, Protecode

Лейси Томс (Lacey Thoms) управляет всей деятельностью компании Protecode в сфере маркетинга и коммуникаций. Имеет степень бакалавра массовых коммуникаций Карлтонского университета.



Машад Куголи, генеральный директор, Protecode

Машад Куголи (Mahshad Koohgoli) обладает более чем 25-летним опытом работы в индустрии высоких технологий. Специализируется на создании молодых ИТ-предприятий и поставил на ноги три успешных компании. Имеет степень бакалавра и доктора Университета графства Сассекс в Англии.



Камъяр Эмами, операционный директор, Protecode

Камъяр Эмами (Kamyar Emami) имеет более чем 20-летний опыт работы в технологической и бизнес-сфере в международных компаниях транспортной, телекоммуникационной и нефтегазовой промышленности, в том числе несколько лет проработал в США, Австралии и Индии. Получил степень магистра информатики в университете Ватерлоо в Канаде, магистра математики в университете Солфорд в Англии и диплом по специальности "финансы" в Южном методистском университете штата Техас.



28.01.2013

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

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

Методы управления ПО с открытым исходным кодом

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

Организация процесса внедрения ПО с открытым исходным кодом

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

Рисунок 1. Управление ПО с открытым исходным кодом на разных этапах жизненного цикла разработки
Управление ПО с открытым исходным кодом на различных этапах жизненного цикла разработки

В 2011 году компания Protecode изучила существующие (на тот момент) методы внедрения и использования программного обеспечения с открытым исходным кодом более чем в 70 ИТ-компаниях по всему миру. Лучшие методы объединили в процесс внедрения ПО с открытым исходным кодом (OSSAP) ― набор необходимых и желательных шагов, которые можно полностью автоматизировать и интегрировать с существующими инструментами разработки в ИТ-организации.

Создание политики

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

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

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

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

Рисунок 2 демонстрирует общую структуру этапов OSSAP.

Рисунок 2. Общая структура этапов OSSAP
Общая структура этапов OSSAP

Точное обнаружение ПО с открытым исходным кодом

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

  • анализа каталогов программного обеспечения;
  • анализа папок, подпапок и даже имен файлов в каталоге;
  • анализа текстовых файлов, которые указывают на существование сторонних пакетов и лицензий;
  • «прочесывания» файлов программного обеспечения и выявления таких пометок, как «copyright xxx» или «лицензируется на условиях yyy».

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

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

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

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


Управление открытым исходным кодом в облаке

Инструмент ProtecodeCloud, основанный на базе данных GIPS компании Protecode, позволяет организациям устанавливать свои собственные процедуры OSSAP и управлять соблюдением лицензий ПО с открытым исходным кодом в арендуемой среде. Это особенно хорошо подходит для тех организаций, которые уже перевели свои операции разработки в облако. ProtecodeCloud теперь доступен для пользователей IBM® SmartCloud Enterprise, и его легко настроить путем инициирования экземпляра Protecode и приобретения кредитных лимитов на файлы на портале самообслуживания Protecode.

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

  1. Создание и цифровой ввод политики, определение приемлемых параметров программного обеспечения и выработка инструкций для механизма автоматического анализа.
  2. Выбор проекта программного обеспечения для оценки и запуск автоматической проверки. Автоматическое сканирование выполняется чрезвычайно быстро и не требует вмешательства после запуска.
  3. Подпись/подтверждение завершения автоматической проверки. В процессе подписи/подтверждения результаты проверяются, и информация либо утверждается, либо дополняется, либо вводятся новые данные. Процесс подписи выполняется вручную; в зависимости от размера оцениваемого портфеля он может занимать от половины рабочего дня до нескольких дней.
  4. Создание отчетов после завершения процесса подтверждения. Могут создаваться различные отчеты, предназначенные для различных аудиторий, например групп лицензирования, персонала экспортного контроля, менеджеров по выпуску продуктов или для клиентов.

Создание политики лицензирования в ProtecodeCloud

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

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

Рисунок 3. Создание политики
Создание политики

Когда политика готова, файлы можно анализировать. Web-интерфейс анализатора открывается нажатием на вкладку анализатора портала ProtecodeCloud. Простой интерфейс позволяет выбрать пакеты программ, которые пользователь намерен анализировать, и имя результирующего отчета; чтобы запустить процесс анализа, нажмите кнопку Run. На рисунке 4 показан интерфейс системы анализа портфеля ПО.

Рисунок 4. Анализ портфеля ПО
Анализ портфеля ПО

Создание онлайн-отчетов

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

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

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

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

В обзоре представлены и другие сведения, например:

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

На рисунке 5 приведен пример итогового обзора.

Рисунок 5. Итоговый обзор
Итоговый обзор

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

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

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

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

Процесс подтверждения

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

Составление отчета

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

Отчет по лицензионным обязательствам (License Obligations Report - LOR) содержит дающий основания для принятия мер перечень обязательств, вытекающих из условий лицензионного соглашения и метода использования пакетов ПО с открытым исходным кодом в проекте. Не заменяя юрисконсульта, LOR, тем не менее, содержит контрольный список для выпускающих менеджеров, помогая им гарантировать соблюдение различных условий лицензий, найденных в портфеле, в зависимости от того, как оформлен продукт (например, содержит ли он функции управления цифровыми правами, или DRM), и сценариев использования.

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

Рисунок 6. Экран с отчетом License Obligations Report (LOR)
Экран с отчетом License Obligations Report (LOR)

Отчет о совместимости лицензий (License Compatibility Report - LCR) обеспечивает целостное представление о портфеле программного обеспечения компании и показывает, совместимы ли условия лицензий, используемых в портфеле, друг с другом. Например, при некоторых обстоятельствах условия лицензии GPL могут конфликтовать с условиями EPL (Eclipse Public License) или лицензии Apache. Экран LCR показан на рисунке 7.

Рисунок 7. Экран с отчетом License Compatibility Report (LCR)
Экран с отчетом License Compatibility Report (LCR)

В отчете по классификации экспортного контроля номер (Export Control Classification Number - ECCN) приводятся номера ECCN пакетов, обнаруженных в портфеле программного обеспечения. Эта информация может понадобиться, если программное обеспечение предназначено для экспорта (рисунок 8).

Рисунок 8. Экран с отчетом Export Control Classification Number (ECCN)
Экран с отчетом Export Control Classification Number (ECCN)

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

Рисунок 9. Отчет об уязвимостях ПО
Отчет об уязвимостях ПО

В число других доступных функций отчетности входят:

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

Поддержка SPDX

ProtecodeCloud полностью поддерживает стандарты обмена данными пакетов программного обеспечения (SPDX). SPDX ― это новый отраслевой стандарт, курируемый Linux® Foundation, который регламентирует передачу информации о компонентах, лицензиях и авторских правах, связанных с пакетом программного обеспечения как внутри организации, так и по цепочке поставок. SPDX предназначен для упрощения управления цепочкой поставок программного обеспечения.

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

ProtecodeCloud может читать SPDX-файлы во время анализа пакета программного обеспечения, позволяя добавлять комментарии и автоматически генерировать новый SPDX-файл для анализируемого пакета. Реализация стандарта SPDX компании Protecode обеспечивает полную гибкость благодаря ряду предварительно заполненных информационных панелей, которые могут дополняться аудитором. В окончательный SPDX-файл, создаваемый по требованию, можно включить как введенную, так и автоматически выявленную информацию, а также записи и комментарии аудитора. Пользователи могут выводить SPDX-файлы и выбирать между форматами RDF (Resource Description Framework), электронной таблицей или SPDX Tag Values.


Заключение

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

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

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

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

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



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

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления, Open source
ArticleID=856498
ArticleTitle=Управление программным обеспечением разработки ПО с открытым исходным кодом в облаке
publish-date=01282013