Проприетарные программы. Открытое программное обеспечениеOpen Source. Ограничение на распространение

Alfresco — информационная платформа с открытым кодом, разработчиком которой выступает компания Alfresco Software Inc (Великобритания). Платформа не является системой электронного документооборота, но на ее основе можно самостоятельно или с помощью специалистов построить готовую систему.

Проекты по построению единой ECM-системы на базе Alfresco сегодня реализованы во многих странах: Франция, Швейцария, США, Великобритания, Бельгия, Япония, Мексика, Италия. По мировым меркам, это одна из наиболее распространенных систем электронного документооборота и управления проектами.
В России Alfresco также применима, ее используют многие крупные компании со сложными бизнес-процессами и разветвленной оргструктурой. Разработчики российской компании Citeck уже реализовали на Alfresco проекты различного характера в компаниях: BNP Paribas Cardif, General Electric, Unilever, DHL, Газпром космические системы, Райффайзен банк, Правительство Москвы и других.

Выбор в пользу Alfresco часто обусловлен 7 основными причинами :

  1. Свободное программное обеспечение (Open Source Software) и открытая лицензия. Это позволяет увеличивать количество рабочих мест без лицензионных издержек;
  2. Большое количество системных наработок Alfresco Software Inc и многочисленного сообщества. Весь инструментарий для развития системы;
  3. Известный бренд. Alfresco – мировой лидер среди программ для организации электронного документооборота;
  4. Удобный мультиязычный веб-интерфейс (в том числе и на русском языке). С его помощью осуществляется доступ к общим документам из любой точки мира через защищенное соединение;
  5. Низкие требования к IT-ресурсам: возможность интеграции в любую IT-инфраструктуру организации;
  6. Востребованные интегрированные компоненты в системе: совместное календарное планирование, поддержка совещаний, управление кейсами, учет и контроль документов и многое другое;
  7. Полная кроссплатформенность – серверная и клиентская части могут работать под управлением различных операционных систем, таких как: MS Windows, Linux, Mac OS X и др.

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

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

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

Структурированные документы часто представлены в виде таблиц и записей, которые хранятся в учётных системах (1С, SAP, Oracle и других). К неструктурированным относится контент, выходящий за рамки общей структуры — набор файлов и папок, медиа и видеофайлы, расположенные на внешних носителях или в интернете. И управлением неструктурированным контентом занимается отдельный класс систем, а именно Enterprise Content Management (ECM), к которым и относится Alfresco.

Компания Citeck реализует проекты на базе ECM Alfresco более 7 лет на территории России и других странах постсоветского пространства.

Почему выбирают нас… Таких причин много, но есть три ключевые :

  1. В 2014 году компания Citeck подписала партнерское соглашение с ООО «НЦПР», являющейся официальным представителем Alfresco Software, Ltd в России и странах СНГ.
    Таким образом Citeck может использовать единую платформу управления корпоративными информационными ресурсами -Alfresco Enterprise Edition — при ;
  2. Сотрудники компании сертифицированы на «Alfresco Certified Engineer»;
  3. Мы предлагаем свое решение на базе Open Source российской сборки. Наша платформа Сiteck ECOS входит в .

Описываемые версии систем: Citeck ECOS 3.2.a, Alfresco Community 5.1.f .

Перечень сокращений

Таблица 1. Сокращения

Основные понятия системы

Сервер приложений — программный компонент Java Enterprise Edition, позволяющий запуск и выполнение приложений Java.

Структура системы Alfresco

Трехзвенная структура

Alfresco придерживается трехзвенной архитектуры (Рисунок 1):

  • хранилище данных (Physical storage);
  • сервер приложений Alfresco (Alfresco Content Application Server);
  • клиентские приложения Alfresco (Alfresco Client).

Рисунок 1 – Структура звеньев Alfresco

Звено «Хранилище данных» состоит из хранилища файлов (File System) и базы данных (Relational DB). Хранилище файлов используется для хранения контента документов (файлов) и версий документов. Вся остальная информация (метаданные) хранится в БД. Схема базы данных Alfresco не является публичным API, часто изменяется от версии к версии Alfresco, и поэтому не должна быть использована при взаимодействии с Alfresco. Вместо этого, для взаимодействия с Alfresco рекомендуется использовать один из множества публичных сервисов (Embedded API, Remote API, см. ниже).

Звено «Сервер приложений» предоставляет расширенные сервисы для работы с документами. Вся бизнес-логика работы с данными сосредоточена на этом звене. Для работы с различными видами клиентов, сервер приложений предоставляет различные виды внешних протоколов, такие как CMIS, REST API, CIFS, IMAP и другие. С другой стороны, с хранилищем данных сервер приложений работает через соединение с СУБД (JDBC) и механизмы файловой системы ОС. Благодаря использованию этих механизмов в качестве хранилища данных можно использовать любые реализации СУБД и файловых систем, единственное существенное требование — наличие необходимых драйверов JDBC и ОС.

Звено «Клиентские приложения» представлено различными клиентскими приложениями Alfresco. Это могут быть как веб-клиенты в браузере, так и приложения для настольных и мобильных платформ и даже доступ через механизмы файловой системы (CIFS, FTP, WebDAV).

Описанная архитектура позволяет реализовывать различные виды документно­ориентированных приложений, таких как управление файлами (Document Management — DM), управление веб-контентом (Web Content Management — WCM), управление документами (Records Management — RM) и другие.

Структура сервера приложений

Сервер приложений Alfresco является веб-приложением Java и состоит из различных компонентов. На верхнем уровне структура сервера приложений представлена ниже (Рисунок 2).

Рисунок 2 – Структура сервера приложений Alfresco

Сервер приложений следует рассматривать как расширенную СУБД, предоставляющую широкий спектр сервисов работы с документами:

  • сервисы для работы с контентом (Content Services) — моделирование, поиск, управление версиями, многоязычность, экспорт/импорт, преобразования контента, классификация контента через категории и тэги, выделение полей метаданных из контента;
  • сервисы управления (Control Services) — бизнес-процессы, правила и политики, права доступа, аудит доступа, генерация предварительного просмотра, публикация;
  • сервисы взаимодействия (Collaboration Services) — избранное, «мне нравится», лента событий, вики, блоги, форумы.

Эти сервисы предоставляются через ряд программных интерфейсов и протоколов:

  • внутренние интерфейсы (Embedded APIs) — интерфейс для Java, JavaScript, FreeMarker (шаблоны), языки для моделирования контента и бизнес-процессов;
  • внешние интерфейсы (Remote APIs) — интерфейсы веб-сервисов (SOAP), веб-скриптов (REST), а также CMIS API (варианты для SOAP и REST);
  • другие протоколы (Protocols) — CIFS, WebDAV, FTP, IMAP, SharePoint.

Архитектура сервера приложений позволяет реализовывать различные виды модулей и расширений к стандартному набору интерфейсов:

  • модели контента;
  • бизнес-процессы;
  • дополнительные сервисы для Java, JavaScript, FreeMarker;
  • правила и действия, политики;
  • дополнительные веб-скрипты (REST API).

Взаимодействие со смежными системами

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

  • индексации и поиска (Lucene, SOLR);
  • аутентификации (LDAP, NTLM, Kerberos, External)
  • преобразований контента (LibreOffice, ImageMagick, SWF Tools).

Индексация и поиск – абсолютно необходимые функции в большинстве приложений Alfresco. В новых версиях Alfresco больше не использует подсистему Lucene и рекомендует использовать SOLR.
Подсистема поиска поддерживает ряд существенных для приложений характеристик:

  • проверка прав доступа перед выдачей результатов поиска пользователю;
  • поддержка различных языков поиска, в том числе Full Text Search, CMIS, Lucene.

Подсистемы аутентификации позволяют делегировать функцию проверки подлинности пользователей внешним системам. Наиболее часто при интеграции с инфраструктурой предприятия для этих целей используются сервисы службы каталогов, такой как Microsoft Active Directory. При такой интеграции, информация о пользователях импортируется из AD в Alfresco, а аутентификация проходит по одному (или нескольким) из протоколов LDAP, NTLM, Kerberos. Сравнение протоколов аутентификации приведено ниже (Таблица 2)

Таблица 2. Сравнение различных протоколов аутентификации

При использовании NTLM сервер Alfresco играет роль «человека посредине», по факту эксплуатируя уязвимость протокола. Поэтому поддерживается только NTLM версии 1. Протокол NTLM версии 2 не поддерживается при взаимодействии с Active Directory, поскольку аутентификация в сторонних сервисах не является назначением протокола NTLM. Рекомендуемым протоколом аутентификации при интеграции в инфраструктуру предприятия является Kerberos.

Преобразования контента используются для различных целей, в частности для генерации предварительного просмотра и иконок, печати, масштабирования изображений. Для преобразований офисных форматов (и PDF) используется LibreOffice, для преобразований изображений (и PDF) — ImageMagick, для преобразования PDF в SWF для предпросмотра — SWF Tools.

Указанные службы могут работать в виде служб Windows, но в поставке Alfresco по умолчанию это не предусмотрено.

Ресурсы, необходимые для работы Alfresco

Аппаратные ресурсы

Очень грубо требования Alfresco к системе можно вычислить следующим образом.

Для 50 одновременно работающих или 500 зарегистрированных пользователей:

1,5 GB JVM RAM 2x server CPU (or 1xDual-core)

Для 100 одновременно работающих или 1000 зарегистрированных пользователей:

1,5 GB JVM RAM 4x server CPU (or 2xDual-core)

Для 200 одновременно работающих или 2000 зарегистрированных пользователей:

2,5 GB JVM RAM 8x server CPU (or 4xDual-core)

Если предполагается разворачивать сервер Alfresco в виртуальной среде, то эти цифры следует умножать на два.

Объем БД зависит в основном от примерного объема карточек, например, количество документов 1000 х количество полей 20 х средний размер поля 10 байт х среднее количество версий 5 х фактор индексации 2 = 1000 х 20 х 10 х 5 х 2 = 2 000 000 байт = 2 Мб.

Если по документам ставятся процессы, ведется история или хранится другая дополнительная информация, это также следует учитывать.

Объем дискового пространства зависит от размера контента документов, например, количество документов 1000 х средний размер 1 Мб х среднее количество версий 5 = 1000 х 1 х 5 = 5 000 Мб = 5 Гб.

Размер дискового пространства для индекса (lucene, SOLR) вычисляется подобным образом, причем в несколько раз меньше (ориентировочно в 3 раза).

Программные ресурсы

  • При стандартной установке Alfresco на Windows-системы создаются следующие службы:
  • alfrescoPostgreSQL — для запуска PostgreSQL — СУБД, которая обслуживает базу данных Alfresco;
  • alfrescoTomcat — для запуска Apache Tomcat — контейнер сервлетов, который обслуживает веб-приложения Alfresco.

Если данные имена служб были заняты, то установщик выбирает аналогичные незанятые имена, например, alfrescoPostgreSQL-1 или alfrescoTomcatnuml.

При установке на Linux-системы создается единственная служба alfresco, которая запускает все необходимые компоненты Alfresco (по умолчанию PostgreSQL и Tomcat).

Компоненты Alfresco занимают по умолчанию следующие сетевые порты TCP (таблица 3).

Таблица 3. Сравнение различных протоколов аутентификации

Порт Компонент Протокол Описание
5432 PostgreSQL PostgreSQL
8080 Tomcat HTTP Порт веб-приложений
8443 Tomcat HTTPS Порт веб-приложений
8009 Tomcat AJP
8005 Tomcat Shutdown-порт
8000 Java Отладочный порт Java (по умолчанию выключен)
7070 VTI SharePoint Поддержка онлайн-редактирования
21 Alfresco FTP Можно выключить в alfresco-global.properties
445 Alfresco CIFS Можно включить в alfresco-global.properties
50500 Alfresco RMI Также несколько других портов RMI 8100 LibreOffice
8100 LibreOffice LibreOffice

Если данные порты уже заняты другим, то при установке Alfresco можно указать другие порты для PostgreSQL, Tomcat и VTI, а порты Alfresco настроить в файле alfresco- global.properties. Если требуется указать другие порты после установки, это также можно сделать, необходимо обратиться к руководствам по настройке компонентов.

Методы расширения и настройки Alfresco

Alfresco распространяется в виде WAR-файла (WAR — Web Archive — формат архивов Java) или нескольких WAR-файлов, которые необходимо инсталлировать на сервер(ы) приложений Java (например, Apache Tomcat или JBoss Application Server). Расширения и модули, как правило, запаковываются внутрь веб-приложений, в то время как элементы конфигурации располагаются в отдельном месте — т.н. shared classpath (для Tomcat это папка tomcat/shared).

Alfresco поддерживает следующие варианты упаковки сторонних расширений:

  • не запакованные файлы;
  • ZIP-архив;
  • JAR-файлы;
  • AMP-файлы.

JAR-файл (JAR — Java Archive) — это формат архивов Java, он поддерживается всеми серверами приложений Java. JAR-файлы устанавливаются в shared classpath или прямо в папку «WEB-INF/lib» веб-приложения. Однако в этом случае не гарантируется их целостность, поэтому рекомендуется эти файлы запаковывать в AMP-архивы.

AMP-файл — это формат модуля Alfresco (AMP — Alfresco Module Package), который также является переименованным ZIP-архивом со специальными соглашениями о внутренней структуре. При установке AMP-файла его содержимое становится частью WAR-файла.

Элементы конфигурации располагаются в shared classpath. В частности, основной конфигурационный файл alfresco — файл alfresco-global.properties располагается в корне shared classpath (для Tomcat это папка tomcat/shared/classes). Конфигурация других расширений располагается по пути classpath:alfresco/extension (для репозитория Alfresco) и classpath:alfresco/web-extension (для Alfresco Share). Часто используемые конфигурационные файлы приведены ниже:

  • alfresco/extension/*-log4j.properties — файлы конфигурации журнала log4j;
  • alfresco/extension/subsystems/Authentication — файлы конфигурации подсистемы аутентификации (например, взаимодействие с MS Active Directory);
  • alfresco/extension/custom-vti* — файлы конфигурации модуля VTI (поддержка SharePoint Protocol для онлайн-редактирования документа);
  • alfresco/web-extension/share-config-custom.xml — custom-конфигурация Share.

Лог-файлы Alfresco (журналы событий)

Лог-файлы Alfresco в зависимости от версии Alfresco располагаются либо в корневой папке Alfresco, либо в папке tomcat/bin, либо в корне файловой системы (Linux). Alfresco генерирует по одному лог-файлу на веб-приложение. Соответственно, в стандартной инсталляции должны быть лог-файлы:

  • alfresco.log — журнал событий репозитория Alfresco
  • share.log — журнал событий Alfresco Share (веб-интерфейса)
  • solr.log — журнал событий SOLR (сервиса индексации)

Помимо этого, свои журналы ведет Apache Tomcat, они располагаются в папке tomcat/logs:

  • catalina.out для Linux, alfrescotomcat-stdout.YYYY-MM-DD.log для Windows — стандартный вывод Apache Tomcat
  • localhost_access_log.YYYY-MM-DD.txt — журнал обслуженных запросов

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

Модули расширения Citeck ECOS

Трехуровневая структура модулей

Модули расширения предназначены для добавления нового функционала в систему Alfresco. Для того чтобы обеспечить максимальное повторное использование функционала в самых различных областях применения используется трехуровневая структура:

  1. модули ядра (core) — содержат базовый функционал, применимый в широком спектре приложений (подобно самой Alfresco);
  2. модули приложений (applications) — содержат функционал, применимый только в определенных приложениях управления документами, например, управление договорами (contracts), управление доверенностями (attorneys), управление приказами (orders) и т.п.
  3. модули внедрения (custom) — содержат функционал, применимый только в конкретном внедрении системы в конкретной организации. У каждой организации свой набор модулей.

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

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

Состав и функции модулей ядра

В состав ядра системы Citeck ECOS входят следующие модули:

  • 1st-override-repo;
  • 1st-override-share;
  • idocs-repo;
  • idocs-share.

Модули с суффиксом «-repo» предназначены для установки в веб-приложение alfresco.war (репозиторий Alfresco), модули с суффиксом «-share» предназначены для установки в веб­приложение share.war (Alfresco Share — веб-интерфейс).

Модули с префиксом «1st-override-» предназначены для переопределения файлов Alfresco. Модули с префиксом «idocs-» содержат основной функционал ядра системы Citeck ECOS.

Среди функций, которые добавляет система Citeck ECOS к системе Alfresco, можно отметить следующие основные функции.

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

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

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

Расширенные возможности процессов. Возможности по автоматической выдаче прав на время задачи и их отъему после окончания задачи. Возможность приложения документов к задачам. Поддержка заместителей.

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

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

Кейс-менеджмент. Возможность организовывать кейсы — специальные контейнеры с произвольными типами вложений.

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

Карточка документа. Возможность составлять карточку документа из различных разделов (кардлетов), можно переставлять разделы и указывать произвольные условия их отображения.

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

Состав и возможности модулей приложений

В состав модулей приложений входят следующие модули:

  • contracts — управление договорами;
  • attorneys — управление доверенностями;
  • orders — управление приказами.

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

Описание сервиса синхронизации

Сервис синхронизации позволяет синхронизировать данные в различных хранилищах данных. Среди таких хранилищ поддерживаются:

  • репозиторий Alfresco;
  • внешние базы данных;
  • папки с XML-файлами;
  • папки с произвольными файлами.

Сервис синхронизации оперирует следующими основными абстракциями:

  • Object DAO — сервис для доступа к какому-то хранилищу данных, различаются Source DAO (источник данных) и Target DAO (приемник данных);
  • Object Type — тип объектов, которым оперирует Object DAO, каждый Object DAO оперирует своим типом объектов, например, объекты репозитория, записи БД, элементы XML и т.п.
  • Object Info — информация об объекте типа Object Type, существующем или потенциальном, Object DAO позволяет получить Object Info из Object Type и создать (обновить) Object Type по Object Info;
  • Object Converter — преобразует Object Info из формата Source DAO в формат Target DAO;
  • Sync Configuration — параметры синхронизации: откуда переносить (Source DAO), как преобразовывать (Object Converter), куда переносить (Target DAO).

Ниже приведена схема потоков данных при синхронизации (Рисунок 3). Преобразование происходит по следующей схеме:

  1. Source DAO получает очередной набор объектов для синхронизации (либо все, либо только обновленные с момента последней синхронизации);
  2. Source DAO преобразует полученные объекты формат Object Info;
  3. Object Converter обеспечивает согласование форматов Object Info между Source DAO и Target DAO; для преобразования отдельных полей могут использоваться дополнительные объекты Object Converter;
  4. Target DAO создает или обновляет объекты в соответствии с полученной информацией.

Сервис синхронизации поддерживает загрузку связей объектов благодаря специальным реализациям Object Converter, которые позволяют находить и (или) создавать связанные объекты в соответствии с конфигурацией.

Для повышения скорости импорта/экспорта в сервисе синхронизации поддерживается многопоточная работа и объединение синхронизации нескольких объектов в одной транзакции. Можно регулировать максимальное количество одновременных транзакций (т.е. количество потоков) и максимальное количество объектов в транзакции.

Скачать описание Citeck ECOS и Alfresco.

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

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

Проприетарное программное обеспечение

Фонд Свободного Программного обеспечения определил значение проприетарного программного обеспечения как программные продукты которые не является посвободными или свободными. Единственный, кто осуществляет полный контроль над проприетарным программным обеспечением это владелец авторского права на него.

Ограничения программного обеспечения

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

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

Современные способы ограничения проприетарного программного обеспечения

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

Ограничение на коммерческое использование

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

Ограничение на распространение

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

Ограничение на внесение изменений

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

Проприетарные форматы

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

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

Наша компания участвует в открытых проектах с 2005 года – и благодаря разработке собственных open source решений (проекты OpenVZ , CRIU), участвуя в других открытых проектах (QEMU , OpenStack , libvirt , libcontainer , и т.д.). За 10 лет мы собрали несколько наиболее распространённых мифов об открытом программном обеспечении. Я расскажу про каждое из заблуждений и объясню, почему оно ошибочно. Наверняка, вы вспомните еще столько же, но, на мой взгляд, эти пять самые «адовые».


Проект с открытым исходным кодом это открытый проект.

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

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

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

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

То есть открытый проект действительно даёт возможность любому человеку принять участие в написании кода, но в серьёзных проектах из-за высокого порога вхождения код не будет принят от людей с недостаточным уровнем экспертизы.
В большинстве крупных ИТ-компаний (IBM, Google, Canonical, Parallels и т.д.) есть целые департаменты, в которых специалисты получают зарплату за то, что работают над проектами с открытым исходным кодом и таким образом косвенно работают над продуктами компании.

Отдельно стоит упомянуть, что компании, которые разрабатывают продукты на базе открытых проектов, в ходе тестирования заинтересованы в улучшении кода открытых проектов, которые они используют. Поэтому все обнаруженные проблемы необходимо исправлять и добиваться, чтобы это исправление было добавлено в основную ветку проекта, чтобы иметь как можно меньше отличий в своём коде и коде открытого проекта. Наши продукты используют код других открытых проектов, поэтому проблемы, найденные в коде этих проектов, мы исправляем и отправляем в upstream. Так было с уязвимостями в ядре RHEL: Red Hat отметил Владимира Давыдова за обнаружение серьезных уязвимостей CVE-2014-0203 и CVE-2014-4483 в одном из обновлений ядра RHEL6 (вторая проблема, кстати, была найдена с помощью одного из наших автоматических тестов, использующих Linux Test Project). Василий Аверин получил благодарность за обнаружение ошибки CVE-2014-5045 , Дмитрий Монахов – за CVE-2012-4508 . Факт хорошего тестирования Linux-ядра был даже отмечен Эндрю Мортоном (кто это?): “Мне интересно. За последние несколько месяцев люди из @openvz.org нашли (и исправили) кучу непонятных, но серьезных и довольно древних багов. Как вы обнаружили эти баги?”

Итог

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

Проприета́рное , частное или собственническое программное обеспечение (англ. proprietary software) - программное обеспечение, являющееся частной собственностью авторов или правообладателей и не удовлетворяющее критериям свободы ПО (речь именно о свободе, а не просто открытости ПО) и, с позиции Фонда свободного ПО, при этом не являющееся полусвободным ПО. Правообладатель сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Часто проприетарным называют любое несвободное ПО, включая полусвободное .

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

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

Полусвободное ПО

Несвободное ПО, которое разрешает практически неограниченное использование, распространение и изменение (в том числе с распространением изменённых версий) ПО в некоммерческих целях, Фонд СПО называет полусвободным. Как и Open Source Initiative и Debian, Фонд СПО считает данные условия неприемлемыми для свободного ПО, но отличает полусвободное ПО от собственнического. «Проприетарное ПО» и «полусвободное ПО» вместе называются «несвободным ПО».

Средства ограничений

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

Типичные ограничения проприетарного ПО

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

Ограничение на коммерческое использование

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

Ограничение на распространение

Этот вид ограничений сопровождает обычно крупные программные проекты, когда правообладатель требует оплаты за каждую копию программы. Обычно с таким ограничением используются программные продукты, ориентированные на узкий «профессиональный» сегмент рынка или у программного обеспечения, требующегося большому числу пользователей. Примером может служить пакет программ Adobe CS3 или операционная система Microsoft Windows XP.

Ограничение на модификацию

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

Проприетарные форматы

Проприетарное ПО может работать с собственными форматами, никем другим не поддерживаемыми. Зачастую эти форматы чрезвычайно сложны или даже зашифрованы, а их распознание - незаконно. Пример: если записать музыку с компакт-диска на винчестер средствами Windows XP, получаем WMA с защитой от копирования. Некоторые разработчики называют «интероперабельностью» обмен данными с другими программами из того же пакета, что само собой разумеется (в действительности интероперабельность - способность программы обмениваться данными с ПО сторонних производителей). В результате может возникнуть замыкание на поставщике (vendor lock-in).