Modelos de Licencia de Software

Publicado: 27 de Febrero de 2008 | Actualizado: 7 de Abril de 2008
En esta página
Conceptos básicos de licencias de softwareConceptos básicos de licencias de software
Por qué se licencia el código fuentePor qué se licencia el código fuente
Modelos de licencia para paquetes de softwareModelos de licencia para paquetes de software
Modelos de licencia de software de Código AbiertoModelos de licencia de software de Código Abierto
Modelos de licencia híbridosModelos de licencia híbridos

Conceptos básicos de licencias de software

El software es un producto de creación, en el mismo sentido que un libro, una canción o una pintura. Y como ocurre con otros productos de la creatividad humana, el software está protegido por los derechos de propiedad intelectual (IP), que adquieren la forma de patentes, copyrights, marcas registradas o secretos industriales. Este documento analiza las implicaciones que tiene el modo en que los productores eligen gestionar la licencia de su software.

Cuando un desarrollador de software crea un programa de software, lo hace escribiendo "código fuente" en un lenguaje de programación. Existe muchos lenguajes de programación para escribir software, y al igual que ocurre con los idiomas naturales, cada lenguaje tiene su propia estructura gramatical, vocabulario y otros parámetros que los programadores deben aprender. Por tanto, la forma escrita del código (código fuente) es legible por un ser humano considerando que conoce dicho lenguaje. El código fuente está protegido por copyright, de una forma similar a cualquier creación escrita y, en consecuencia, el desarrollador puede restringir a los demás la posibilidad de copiarlo, modificarlo o distribuirlo. Además, como se indicaba antes, el código fuente puede incluir secretos industriales -ideas o conceptos que no son de conocimiento general y que el programador mantiene en secreto evitando compartirlos en el código fuente.

Para que un ordenador pueda ejecutar el software escrito por el programador, el código fuente debe convertirse a ceros y unos, un formato llamado código binario. Este proceso se conoce como compilar el código fuente. El código compilado también está protegido por las leyes de copyright, lo que faculta al desarrollador a restringir a los demás la posibilidad de copiarlo, modificarlo o distribuirlo en formato binario. El código compilado generalmente no es legible por el ser humano, y en realidad, la información útil que podría servir para explicar a alguien cómo funciona un programa de ordenador se evita de forma intencionada o se enmascara durante el proceso de compilación. En consecuencia, ciertas ideas, métodos o conceptos que quedan muy claros en el código fuente pueden protegerse como secretos industriales si el desarrollador solamente publica la versión binaria de su producto. En esta forma compilada, el software puede ser ejecutado en una máquina, y ciertos métodos y componentes incluidos dentro del producto pueden registrarse para su protección bajo patente, entendiendo que la tecnología cumple con los criterios de originalidad y exclusividad exigidos por la ley de patentes.

Todo esto conduce al hecho de que el productor de software tiene que decidir si desea o no compartir el código binario y/o el código fuente de su producto y bajo qué licencia lo puede hacer. Hay distintos tipos de licencia que rigen el uso del código fuente y del código binario. Se pueden dar un número infinito de permutaciones para las licencias de software, así que a los efectos de este análisis, nos vamos a limitar a analizar las modalidades más comunes de licencia para el código fuente.

Principio de la páginaPrincipio de la página

Por qué se licencia el código fuente

Antes de empezar con las licencias de código fuente, deberíamos mencionar que el tipo de licencia de software más conocido es el de licencia para el código binario, que es la forma más habitual para los usuarios de ordenador. En el formato binario, que el ordenador puede ejecutar, el software puede utilizarlo una persona que no sea programador. La licencia para código binario es la base de las licencias de software comercial que permite al creador aplicar cargos por el derecho de uso de su software.

Los creadores de software suelen conservar sus derechos de propiedad intelectual (IP) aunque permiten a otras personas ver -y puede que utilizar- las ideas explícitas en ese código. La propiedad intelectual permite a los programadores generar oportunidades de negocio a partir de sus invenciones, y con ello un buen motivo para seguir desarrollando nuevas innovaciones. La licencia de código fuente es el vehículo por medio del cual el programador puede elegir los elementos que desea compartir de forma general y frente a aquellos cuya propiedad quiere retener de manera estricta.

Las licencias consiguen además que las ideas de los programadores se conviertan en algo útil y práctico, puesto que permiten a los demás mejorar, modificar y combinar dichas ideas en formas que los mismos programadores no pueden hacer, como es el convertir las ideas en productos destinados al consumo y utilización por parte de empresas y particulares. De esta forma, las licencias contribuyen a impulsar la innovación y el crecimiento que ha caracterizado a la industria de software en el último cuarto de siglo.

No obstante, no existe una forma única o "correcta" de licenciar el código fuente de software. Hay una gran variedad de tipos de licencia posibles para el código fuente. En un extremo del abanico aparecen licencias restrictivas que permite ver el código fuente pero no modificarlo ni redistribuirlo. Las licencias más permisivas facultan al desarrollador no solamente a ver el código fuente, sino manipularlo y redistribuirlo también. Cada licencia tendrá distintas condiciones que la sitúan en algún punto del abanico de opciones, y es decisión de los desarrolladores definir los términos que se aplican al uso de su código fuente. Como ocurre cuando se decide que licencia se aplicará a un proyecto dado, la decisión depende del deseo del autor de compartir su creación y de si busca o no un beneficio comercial de ello.

Existen tres categorías generales de licencia de código fuente:

Permisivas - Las licencias permisivas son las menos restrictivas de todas. Permiten la modificación y redistribución del código fuente licenciado para fines comerciales, sin que el creador aplique royalties al software. Esta licencia es también la más simple de utilizar para los desarrolladores en escenarios donde se combinan múltiples segmentos de código protegidos por distintos tipos de licencia. En términos generales, las licencias permisivas como la BSD, no colisionan con otras licencias de código fuente, lo que facilita enormemente su utilización.

Recíprocas – El concepto de licencia recíproca es un invento de la Free Software Foundation, y su ejemplo más conocido es la GPL (General Public License). El concepto de base, aparte de la ideología que subyace en esta licencia, es que un desarrollador que quiera hacer uso de código fuente licenciado bajo una licencia recíproca debe asumir ciertas restricciones y responsabilidades concretas que afectarán al modo en que el código fuente se puede utilizar y redistribuir. Existen diversas licencias recíprocas, cada una con un enfoque particular de la idea de "si juegas con mis juguetes, yo tengo que poder jugar con los tuyos."

Referencia – El código fuente protegido con una licencia de referencia está disponible para su examen y revisión, pero no se puede modificar ni distribuir. Para los proveedores de software comercial, esta licencia puede ser muy útil, ya que permite compartir la propiedad intelectual más sensible y crear un potente ecosistema alrededor de una tecnología concreta sin tener que renunciar a sus intereses económicos.

Principio de la páginaPrincipio de la página

Modelos de licencia para paquetes de software

En el modelo de desarrollo de software en forma de paquetes, el desarrollador se hace cargo prácticamente de todos los esfuerzos y riesgos que conlleva la conversión de ideas originales en soluciones prácticas. El desarrollador (o "la empresa" en su caso) tiene que hacer inversiones muy elevadas en investigación y desarrollo con la idea de obtener beneficios con la venta de los productos de software resultantes y los servicios de soporte y de todo tipo asociados a ellos.

El acceso al código fuente normalmente está restringido (a menudo a clientes, partners e instituciones educativas) porque el valor para el desarrollador radica en tener un conocimiento exclusivo del código fuente. El modelo de desarrollo de paquetes de software ha producido la mayor parte del software de mayor calidad durante muchos años, especialmente para la mayoría de empresas y consumidores individuales que no tienen ningún interés en conocer el código fuente y que pagan importes modestos por dejar todos estos asuntos técnicos en manos del desarrollador.

Principio de la páginaPrincipio de la página

Modelos de licencia de software de Código Abierto

Las licencias de Código Abierto (Open Source Software, OSS) se generan en torno a un conjunto común de premisas y requisitos conocidos como OSD (Open Source Definition). Basándose en este conjunto de criterios, los desarrolladores licencian el código fuente de sus productos, garantizando a los receptores un amplio nivel de derechos para modificarlo y distribuirlo. Actualmente hay aproximadamente 59 licencias OSS, cada una con sus propios requisitos y restricciones, basadas en los preceptos del OSD.

Las licencias de tipo Código Abierto no son generalmente licencias gratuitas o de dominio público. Más bien, el autor original del software conserva la propiedad del código fuente; la licencia protege la propiedad del desarrollador. De este modo, el dueño de la propiedad (el código fuente) conserva la capacidad de hacer uso de su propia creación aunque la haya publicado bajo una licencia muy permisiva.

Una interpretación errónea muy extendida es que el código OSS licenciado puede utilizarse sin limitación. Bajo los requisitos de la OSD y los conflictos que aparecen a partir de los distintos términos en las casi sesenta licencias OSD, todo aquel que quiera utilizar software OSS debe tener muy en cuenta las obligaciones que contrae al aceptar los términos que rigen la licencia. En muchas ocasiones existen incompatibilidades en la licencia que pueden prohibir la combinación de dos bloques de código fuente "abierto".

Principio de la páginaPrincipio de la página

Modelos de licencia híbridos

A fin de poder aprovechar las ventajas que ofrecen los aspectos más interesantes de los modelos de licencia de paquetes de software y de código abierto, muchas empresas están optando por una estrategia híbrida con el objetivo de cubrir mejor las necesidades de los clientes y poder cumplir objetivos estratégicos de negocio. Las empresas piensan que adquieren una ventaja estratégica por disponer de una escala variable de términos de licencia para los distintos productos que componen su catálogo. Esta ha sido la forma dominante de las licencias de software en el sector. Los siguientes ejemplos nos dan una muestra de esta tendencia:

Apple Computer ha combinado el software comunitario con el software comercial para crear el sistema operativo OS/X. Aprovechando un derivado de la versión Unix BSD de 32 bits gratuita, la empresa ha podido migrar en poco tiempo hacia un sistema operativo de 32 bits sin tener que reescribir todo su sistema operativo anterior de 16 bits.

Real Networks ha publicado boques de código fuente de su reproductor multimedia bajo los auspicios del proyecto Helix. El software fue originalmente desarrollado como producto empaquetado tradicional sin publicación del código fuente. Al abrirlo a la comunidad de desarrollo, Real Networks consiguió generar mucha más actividad de desarrollo alrededor de su tecnología, y con ello mayor oportunidad de negocio para la propia empresa.

Red Hat ofrece software bajo la GPL (General Public License), que rige la redistribución del código fuente así como los derechos económicos derivados de la licencia de su código binario. El modelo de servicios aplicado por Red Hat para su viabilidad comercial establece un nivel de restricción sobre el uso del código fuente y el binario basado en contratos de soporte. Esta estrategia híbrida les permite ofrecer soluciones OSS de forma comercial.

Microsoft comparte código fuente con clientes, partners, gobiernos y desarrolladores en todo el mundo a través de su Iniciativa de Código Compartido. El 90 por ciento de las más de 80 ediciones de código fuente compartido permite a los desarrolladores modificar y redistribuir el código fuente. Esta ofertas incluyen tecnologías que van desde sistemas operativos enteros, como Windows XP a herramientas de desarrollo como el Windows Installer XML, o aplicaciones como FlexWiki. Microsoft seguirá ampliando sus ofertas de Código Compartido como una manera de permitir el acceso a los desarrolladores a la tecnología que necesitan para crear nuevos y potentes productos de software.


Principio de la páginaPrincipio de la página