Our vision

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

Introduction

As Gary Hamel, an eminent guru in the field of business concepts innovation, says, “Would-be revolutionaries, intent on discovering uncontested competitive space, think about the future very differently from prognosticators and scenario planners. They know you can’t see the future. Their goal is less to understand the future than to understand the revolutionary portent in what is already changing. More specifically, they are looking for things where the rate of change is changing –for inflection points that foreshadow significant discontinuities. Those who fail to notice these nascent discontinuities will be rudely awakened by those who were paying attention.

The free software phenomenon, also termed open code (or open source) software, is definitely one of the most significant discontinuities in the field of ICT. Informally speaking, free software is the term used to refer to programs that users are free to run, examine and modify for any purpose (or even distribute in either their original or modified form) without having to pay for the privilege. Data taken from the ‘Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!’1 document highlight the predominance of open source based software applications in the Web servers domain, as well as the rapid expansion of GNU/Linux among the operating systems used on servers within academia, business and industry. Analysed by categories, open source software is present in most Web (Apache), mail (Sendmail) and machine routing (DNS) servers, in scripting languages for Web solutions (PHP) and in administration tools targeting security (OpenSSH). The growth is spectacular in key categories, like server operating systems (GNU/Linux) and database management systems (MySQL), where it takes an outstanding second and third place, respectively, in terms of market share. This trend is making itself felt in Spain too, as highlighted in the ‘2004 White Paper on Free Software in Spain’2 . Top strategic consultancy firms like Gartner Group are now echoing the leading role played by open source software and foresee an intensification in the use of this type of software in the field of business information systems3 .

There is still a huge gap between the GNU/Linux and Microsoft operating systems in terms of end user station market share, although advances in terms of usability and functionality mean that GNU/Linux is starting to be viewed as a real alternative in the field of work station definition at companies and as an option for residential clients desktop environments. However, the growing use of open source tools and products designed not only for GNU/Linux-based desktop environments but also running Microsoft operating systems, like browsers (led by Mozilla Firefox, which has gained a 10% share of the Web browsers market), electronic mail management tools (Mozilla Thunderbird), office suites (OpenOffice) or P2P tools (with tools like eMule), is possibly even more significant. On the other hand, the public administrations of many countries are taking advantage of the sizeable reduction in total acquisition costs (TCO – total cost of ownership) implicit in the choice of open source software for end user stations as part of large-scale deployments to develop digital literacy strategies. Worthy of note on this point are the initiatives launched by some Spanish public administrations that have led to the creation and dissemination of Debian-based distributions, targeting citizens or schools (LinEx in Estremadura, Guadalinex in Andalusia, MoLinux in Castile la Mancha, etc.)

This document analyses the open source software development opportunities that are being explored within the framework of the Morfeo community. Let me stress that these opportunities focus on the development of software as per the open source model. The opportunities or benefits for third parties using open source software developed are not analysed here.

Open source software opportunities

Consolidating standards

Software platform is a concept that has evolved throughout history, providing an even greater abstraction of the capabilities underlying any software application at each point in time, be it in the information systems or in the telecommunications services field. These capabilities are:

  • processing capability: the platform will provide a model establishing what entities an application contains and how their lifecycle is managed (creation, startup/activation, running, shutdown/deactivation, destruction)
  • storage capability: the platform will provide a model establishing how to save, retrieve and administer data representing the state of either the application entities or that the application entities should manage
  • connectivity capability: the platform will provide a model establishing how to locate application entities in a distributed environment, as well as how these entities can communicate and cooperate on implementing the application functionality
  • end user interaction capability: the platform will provide a model establishing what access channels the user can employ to access application functionality from different terminal types.

Apart from components that abstract one or more of the above capabilities, the software platform concept also covers those application components that can be reused across more than one application. On this point, the software platform concept is closely related to the reuse concept used in systems development.

As mentioned earlier, the software platform concept is continuously evolving. New components are added to the platform to offer a higher level of abstraction with respect to the above-mentioned capabilities and exploit the functionality of the existing components. Similarly, the border between platform and application is constantly being redefined. This applies especially to special-purpose platforms associated with particular information or services systems as new reusable application components covering part of the final functionality of the applications emerge.

A distinction can be made within both information systems and telecommunications services between general-purpose components, which are what we would call the basic software platform, and components targeting specific application types, which are vertical platforms (specific). The basic software platform includes components ranging from the operating system, which provides the basic processing, storage, connectivity and user interaction capabilities on the underlying hardware, through intermediate levels, covering middleware-related components, databases, etc., to components located at the application level (a user management module, for example). Built on top of the basic software platform, vertical platforms incorporate components linked to a particular application field, such as contents management services or workforce management systems (see Figure 1). Many of the components in this space are designed to solve part of the final system’s functionality and even provide a prefabricated end user interface. For this reason, components like these are referred to as microapplications in some contexts. The goal of vertical platforms is to improve the rapid construction of applications by assembling the components (microapplications) provided as part of the platform. They are then tailored and configured to meet the needs of a particular client or context. Thus a workforce management system can be built by assembling standard vertical platform microapplications that provide the final functionality associated with the different modules that make up this type of system: office module, human resources and materials module, reporting and indicator monitoring module, etc.

Applications are developed using programming interfaces (APIs – application programming interfaces) that offer one or more platform components. These APIs cover operations that are invoked at runtime from the applications and run by the platform components. The ultimate goal of any platform is to improve application construction by reducing development time and costs, as well as providing a robust and efficient execution environment to cut operating costs to a minimum. In return, any application is highly dependent on the underlying platform. Therefore, platform-level decisions are strategic decisions.

Pages: 1 2 3