Nuestra visión

por Juan J. Hierro, Telefónica I+D

Introducción

Tal y como afirma Gary Hamel, reconocido gurú en el ámbito de la innovación de conceptos empresariales, “Quienes quieren ser revolucionarios, deseosos de encontrar espacios competitivos no explorados, piensan en el futuro de forma muy distinta a los pronosticadores y planificadores de escenarios. Su meta es menos entender el futuro y más entender el presagio revolucionario en lo que ya está cambiando. Concretamente, buscan cosas en las que el ritmo de cambio esté cambiando: buscan puntos de inflexión que anuncien discontinuidades significativas. Quienes no logren darse cuenta de estas discontinuidades nacientes serán despertados bruscamente por quienes estuvieron atentos”.

En el ámbito de la TIC, el fenómeno del software libre, también denominado software de código abierto (o de fuente abierta), constituye sin duda alguna una de las discontinuidades más significativas. En términos no muy formales, software libre es el término con el que se denomina a programas que conceden a sus usuarios la libertad de ejecutarlos para cualquier propósito, estudiarlos y modificarlos, así como distribuirlos en su forma original o modificada, pudiendo realizar todo esto sin tener que pagar por ello. Datos extraídos del documento ‘Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!’1 resaltan la presencia predominante de aplicaciones basadas en software de código abierto en el dominio de los servidores Web en Internet, así como el rápido incremento del sistema operativo GNU/Linux dentro los sistemas operativos utilizados en servidores dentro de los ámbitos académico, empresarial e industrial. Analizados por categorías, la presencia de software de código abierto es mayoritaria en servidores Web (Apache), de correo (Sendmail), de direccionamiento de equipos (DNS), en lenguajes de scripting para soluciones Web (PHP) y en herramientas de administración que contemplan seguridad (OpenSSH). En categorías fundamentales como el de los sistemas operativos para servidores (GNU/Linux) y los sistemas de gestión de bases de datos (MySQL) el crecimiento resulta espectacular, ocupando un destacado segundo lugar y tercer lugar en cuota de mercado, respectivamente. En España también se confirma esta tendencia, tal y como se destaca en el documento ‘Libro Blanco del Software Libre en España 20042’. Hoy en día, firmas de consultoría estratégica tan relevantes como el Gartner Group se hacen eco del protagonismo alcanzado por el software de código abierto y anticipan un uso creciente de este tipo de software en el ámbito de los Sistemas de Información empresariales3.

En el ámbito del puesto de usuario final, la diferencia en cuanto a cuota de mercado entre el Sistema Operativo GNU/Linux y los Sistemas Operativos de Microsoft es aún muy amplia, aunque los avances en cuanto a usabilidad y funcionalidad hacen que GNU/Linux comience a contemplarse como alternativa real en el ámbito de definición del puesto de trabajo en las empresas o como alternativa de entornos desktop de clientes residenciales. Sin embargo, más relevante si cabe es el incremento en uso que están experimentando herramientas y productos software de código abierto que no sólo están disponibles para entornos desktop basados en GNU/Linux sino también para entornos basados en Sistemas Operativos de Microsoft como son los navegadores (con Mozilla Firefox a la cabeza, que ha alcanzado un 10% de la cuota de mercado en navegadores web) las herramientas de gestión de correo electrónico (Mozilla Thunderbird), las suites ofimáticas (OpenOffice) o las herramientas P2P (con herramientas como eMule). Por otro lado, la notable reducción en costes totales de adquisición (TCO - Total Cost of Ownership) que implica la elección de software de código abierto en el puesto del usuario final cuando se contemplan despliegues a gran escala está siendo aprovechada por la Administración Pública en numerosos países en el desarrollo de estrategias de alfabetización digital. En este punto, cabe destacar las iniciativas impulsadas por ciertas Administraciones Públicas en España que han implicado la creación y divulgación de distribuciones basadas en Debian, dirigidas al ciudadano o a centros de enseñanza (LinEx en Extremadura, Guadalinex en Andalucía, MoLinux en Castilla la Mancha, etc.)

En el presente documento se analizan las oportunidades que, alrededor del desarrollo de software de código abierto, están siendo exploradas en el marco de la comunidad Morfeo. Subrayamos que estas oportunidades se centrar alrededor de desarrollar software bajo un modelo de código abierto. No contemplamos aquí el análisis de las oportunidades o beneficios que se derivan de usar software de código abierto desarrollado por terceros.

Las oportunidades entorno al software de código abierto que se han analizado son:

  • Consolidación de estándares
  • Creación de nuevas oportunidades en la integración de soluciones
  • Impulso al desarrollo de actividades de I+D+i

Consolidación de estándares

El concepto de Plataforma Software es un concepto que ha ido evolucionando a lo largo de la historia, proporcionando en cada momento una abstracción cada vez mayor de las capacidades sobre las que cualquier aplicación software se apoya, ya sea en el ámbito de los Sistemas de Información o en el ámbito de los Servicios de Telecomunicaciones. Estas capacidades son:

  • capacidad de procesamiento: la plataforma proporcionará un modelo que establezca que entidades componen una aplicación y como se gestiona su ciclo de vida (creación, arranque/activación, ejecución, parada/desactivación y destrucción)

  • capacidad de almacenamiento: la plataforma proporcionará un modelo que establezca como guardar, recuperar y administrar datos que representen el estado de las entidades de aplicación o que dichas entidades deban manejar
  • capacidad de conectividad: la plataforma proporcionará un modelo que establezca tanto la forma de localizar entidades de aplicación en un entorno distribuido, como la forma en que dichas entidades pueden comunicarse y cooperar con el objetivo de implementar la funcionalidad de la aplicación
  • capacidad de interacción con el usuario final: la plataforma proporcionará un modelo que establezca canales de acceso a la funcionalidad de la aplicación por parte del usuario a través de distintos tipos de terminales

Además de componentes que abstraigan una o varias de las capacidades que acabamos de mencionar, el concepto de Plataforma Software también engloba aquellos componentes de aplicación que puedan reutilizarse de una aplicación a otra. En ese sentido, el concepto de plataforma software está fuertemente relacionado con el concepto de reutilización de componentes en el desarrollo de sistemas.

Como se ha indicado anteriormente, el concepto de Plataforma Software es un concepto en constante evolución. Nuevos componentes se incorporan a la plataforma ofreciendo un mayor nivel de abstracción respecto a las capacidades antes mencionadas, apoyándose en funcionalidad de componentes ya existentes. Así mismo, la frontera entre plataforma y aplicación está en constante redefinición, sobre todo en el ámbito de plataformas específicas asociadas a determinados sistemas de información o servicios, en la medida en que surgen nuevos componentes de aplicación reutilizables que ya resuelvan parte de la funcionalidad final de las aplicaciones.

Cuando hablamos de componentes de plataforma es posible distinguir entre componentes de propósito general que constituyen lo que denominaríamos plataforma software básica y componentes orientados a tipos de aplicación concretos, que constituyen plataformas verticales (específicas) tanto en el ámbito de los Sistemas de Información como en el ámbito de los Servicios de Telecomunicaciones. La plataforma software básica incluye componentes que van desde el Sistema Operativo que proporciona capacidades básicas de procesamiento, almacenamiento, conectividad e interacción con el usuario sobre el hardware subyacente, hasta componentes situados en el nivel de aplicación (un módulo de gestión de usuarios, por ejemplo) pasando por niveles intermedios donde se inscribirían componentes relacionados con middleware, bases de datos, etc. Sobre la plataforma software básica, las plataforma verticales incorporan componentes ligados a un ámbito de aplicación determinado, como pueda ser el asociado a Servicios de Gestión de Contenidos o Sistemas de Gestión de Fuerzas de Trabajo (ver Figura 1). En este espacio, muchos de los componentes están orientados a resolver parte de la funcionalidad final del sistema e incluso proporcionan, prefabricada, la parte correspondiente a interfaz de usuario final. Por ello, este tipo de componentes reciben la denominación de micro-aplicaciones en algunos contextos. El objetivo de las plataformas verticales es facilitar la construcción rápida de aplicaciones, fruto de ensamblar los componentes (micro-aplicaciones) proporcionados como parte de la plataforma, para posteriormente abordar un esfuerzo de adaptación y configuración a las necesidades de un cliente o contexto de uso concreto. Así, la construcción de un Sistema de Gestión de Fuerzas de Trabajo puede plantearse como el ensamblaje de micro-aplicaciones estándares que forman parte de una plataforma vertical que resuelven la funcionalidad final asociada a los distintos módulos que componen un sistema de este tipo: Módulo de Despacho, Módulo de Gestión de Recursos Humanos y Materiales, Módulo de Informes y Seguimiento de Indicadores, etc.

El desarrollo de aplicaciones se basa en el uso de interfaces de programación (APIs – Application Programming Interfaces) que ofrecen uno o más componentes de la plataforma. Dichas APIs engloban operaciones que, en ejecución, son invocadas desde las aplicaciones y ejecutadas por los componentes de plataforma. El objetivo último de cualquier plataforma es facilitar la construcción de aplicaciones, minimizando plazos y costes de desarrollo, así como proporcionar un entorno de ejecución robusto y eficiente, de forma que se minimicen los costes de explotación. En contrapartida, la dependencia de cualquier aplicación respecto a la plataforma sobre la cual se basa es elevada. Por ello, las decisiones en el ámbito de las plataformas son decisiones de carácter estratégico.